001package org.hl7.fhir.r5.model;
002
003
004/*
005  Copyright (c) 2011+, HL7, Inc.
006  All rights reserved.
007  
008  Redistribution and use in source and binary forms, with or without modification, \
009  are permitted provided that the following conditions are met:
010  
011   * Redistributions of source code must retain the above copyright notice, this \
012     list of conditions and the following disclaimer.
013   * Redistributions in binary form must reproduce the above copyright notice, \
014     this list of conditions and the following disclaimer in the documentation \
015     and/or other materials provided with the distribution.
016   * Neither the name of HL7 nor the names of its contributors may be used to 
017     endorse or promote products derived from this software without specific 
018     prior written permission.
019  
020  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \
021  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \
022  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \
023  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \
024  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT \
025  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR \
026  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, \
027  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) \
028  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE \
029  POSSIBILITY OF SUCH DAMAGE.
030  */
031
032// Generated on Thu, Mar 23, 2023 19:59+1100 for FHIR v5.0.0
033
034import java.util.ArrayList;
035import java.util.Date;
036import java.util.List;
037import org.hl7.fhir.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 | unknown", 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 FHIRException("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 FHIRException("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 singleton property 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.ofType(Age) | Condition.abatement.ofType(Range)</b><br>
1866   * </p>
1867   */
1868  @SearchParamDefinition(name="abatement-age", path="Condition.abatement.ofType(Age) | Condition.abatement.ofType(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.ofType(Age) | Condition.abatement.ofType(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.ofType(dateTime) | Condition.abatement.ofType(Period)</b><br>
1886   * </p>
1887   */
1888  @SearchParamDefinition(name="abatement-date", path="Condition.abatement.ofType(dateTime) | Condition.abatement.ofType(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.ofType(dateTime) | Condition.abatement.ofType(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.ofType(string)</b><br>
1906   * </p>
1907   */
1908  @SearchParamDefinition(name="abatement-string", path="Condition.abatement.ofType(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.ofType(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>evidence-detail</b>
1982   * <p>
1983   * Description: <b>Supporting information found elsewhere</b><br>
1984   * Type: <b>reference</b><br>
1985   * Path: <b>Condition.evidence.reference</b><br>
1986   * </p>
1987   */
1988  @SearchParamDefinition(name="evidence-detail", path="Condition.evidence.reference", description="Supporting information found elsewhere", type="reference", target={Account.class, ActivityDefinition.class, ActorDefinition.class, AdministrableProductDefinition.class, AdverseEvent.class, AllergyIntolerance.class, Appointment.class, AppointmentResponse.class, ArtifactAssessment.class, AuditEvent.class, Basic.class, Binary.class, BiologicallyDerivedProduct.class, BiologicallyDerivedProductDispense.class, BodyStructure.class, Bundle.class, CapabilityStatement.class, CarePlan.class, CareTeam.class, ChargeItem.class, ChargeItemDefinition.class, Citation.class, Claim.class, ClaimResponse.class, ClinicalImpression.class, ClinicalUseDefinition.class, CodeSystem.class, Communication.class, CommunicationRequest.class, CompartmentDefinition.class, Composition.class, ConceptMap.class, Condition.class, ConditionDefinition.class, Consent.class, Contract.class, Coverage.class, CoverageEligibilityRequest.class, CoverageEligibilityResponse.class, DetectedIssue.class, Device.class, DeviceAssociation.class, DeviceDefinition.class, DeviceDispense.class, DeviceMetric.class, DeviceRequest.class, DeviceUsage.class, DiagnosticReport.class, DocumentReference.class, Encounter.class, EncounterHistory.class, Endpoint.class, EnrollmentRequest.class, EnrollmentResponse.class, EpisodeOfCare.class, EventDefinition.class, Evidence.class, EvidenceReport.class, EvidenceVariable.class, ExampleScenario.class, ExplanationOfBenefit.class, FamilyMemberHistory.class, Flag.class, FormularyItem.class, GenomicStudy.class, Goal.class, GraphDefinition.class, Group.class, GuidanceResponse.class, HealthcareService.class, ImagingSelection.class, ImagingStudy.class, Immunization.class, ImmunizationEvaluation.class, ImmunizationRecommendation.class, ImplementationGuide.class, Ingredient.class, InsurancePlan.class, InventoryItem.class, InventoryReport.class, Invoice.class, Library.class, Linkage.class, ListResource.class, Location.class, ManufacturedItemDefinition.class, Measure.class, MeasureReport.class, Medication.class, MedicationAdministration.class, MedicationDispense.class, MedicationKnowledge.class, MedicationRequest.class, MedicationStatement.class, MedicinalProductDefinition.class, MessageDefinition.class, MessageHeader.class, MolecularSequence.class, NamingSystem.class, NutritionIntake.class, NutritionOrder.class, NutritionProduct.class, Observation.class, ObservationDefinition.class, OperationDefinition.class, OperationOutcome.class, Organization.class, OrganizationAffiliation.class, PackagedProductDefinition.class, Parameters.class, Patient.class, PaymentNotice.class, PaymentReconciliation.class, Permission.class, Person.class, PlanDefinition.class, Practitioner.class, PractitionerRole.class, Procedure.class, Provenance.class, Questionnaire.class, QuestionnaireResponse.class, RegulatedAuthorization.class, RelatedPerson.class, RequestOrchestration.class, Requirements.class, ResearchStudy.class, ResearchSubject.class, RiskAssessment.class, Schedule.class, SearchParameter.class, ServiceRequest.class, Slot.class, Specimen.class, SpecimenDefinition.class, StructureDefinition.class, StructureMap.class, Subscription.class, SubscriptionStatus.class, SubscriptionTopic.class, Substance.class, SubstanceDefinition.class, SubstanceNucleicAcid.class, SubstancePolymer.class, SubstanceProtein.class, SubstanceReferenceInformation.class, SubstanceSourceMaterial.class, SupplyDelivery.class, SupplyRequest.class, Task.class, TerminologyCapabilities.class, TestPlan.class, TestReport.class, TestScript.class, Transport.class, ValueSet.class, VerificationResult.class, VisionPrescription.class } )
1989  public static final String SP_EVIDENCE_DETAIL = "evidence-detail";
1990 /**
1991   * <b>Fluent Client</b> search parameter constant for <b>evidence-detail</b>
1992   * <p>
1993   * Description: <b>Supporting information found elsewhere</b><br>
1994   * Type: <b>reference</b><br>
1995   * Path: <b>Condition.evidence.reference</b><br>
1996   * </p>
1997   */
1998  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam EVIDENCE_DETAIL = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_EVIDENCE_DETAIL);
1999
2000/**
2001   * Constant for fluent queries to be used to add include statements. Specifies
2002   * the path value of "<b>Condition:evidence-detail</b>".
2003   */
2004  public static final ca.uhn.fhir.model.api.Include INCLUDE_EVIDENCE_DETAIL = new ca.uhn.fhir.model.api.Include("Condition:evidence-detail").toLocked();
2005
2006 /**
2007   * Search parameter: <b>evidence</b>
2008   * <p>
2009   * Description: <b>Manifestation/symptom</b><br>
2010   * Type: <b>token</b><br>
2011   * Path: <b>Condition.evidence.concept</b><br>
2012   * </p>
2013   */
2014  @SearchParamDefinition(name="evidence", path="Condition.evidence.concept", description="Manifestation/symptom", type="token" )
2015  public static final String SP_EVIDENCE = "evidence";
2016 /**
2017   * <b>Fluent Client</b> search parameter constant for <b>evidence</b>
2018   * <p>
2019   * Description: <b>Manifestation/symptom</b><br>
2020   * Type: <b>token</b><br>
2021   * Path: <b>Condition.evidence.concept</b><br>
2022   * </p>
2023   */
2024  public static final ca.uhn.fhir.rest.gclient.TokenClientParam EVIDENCE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_EVIDENCE);
2025
2026 /**
2027   * Search parameter: <b>onset-age</b>
2028   * <p>
2029   * Description: <b>Onsets as age or age range</b><br>
2030   * Type: <b>quantity</b><br>
2031   * Path: <b>Condition.onset.ofType(Age) | Condition.onset.ofType(Range)</b><br>
2032   * </p>
2033   */
2034  @SearchParamDefinition(name="onset-age", path="Condition.onset.ofType(Age) | Condition.onset.ofType(Range)", description="Onsets as age or age range", type="quantity" )
2035  public static final String SP_ONSET_AGE = "onset-age";
2036 /**
2037   * <b>Fluent Client</b> search parameter constant for <b>onset-age</b>
2038   * <p>
2039   * Description: <b>Onsets as age or age range</b><br>
2040   * Type: <b>quantity</b><br>
2041   * Path: <b>Condition.onset.ofType(Age) | Condition.onset.ofType(Range)</b><br>
2042   * </p>
2043   */
2044  public static final ca.uhn.fhir.rest.gclient.QuantityClientParam ONSET_AGE = new ca.uhn.fhir.rest.gclient.QuantityClientParam(SP_ONSET_AGE);
2045
2046 /**
2047   * Search parameter: <b>onset-date</b>
2048   * <p>
2049   * Description: <b>Date related onsets (dateTime and Period)</b><br>
2050   * Type: <b>date</b><br>
2051   * Path: <b>Condition.onset.ofType(dateTime) | Condition.onset.ofType(Period)</b><br>
2052   * </p>
2053   */
2054  @SearchParamDefinition(name="onset-date", path="Condition.onset.ofType(dateTime) | Condition.onset.ofType(Period)", description="Date related onsets (dateTime and Period)", type="date" )
2055  public static final String SP_ONSET_DATE = "onset-date";
2056 /**
2057   * <b>Fluent Client</b> search parameter constant for <b>onset-date</b>
2058   * <p>
2059   * Description: <b>Date related onsets (dateTime and Period)</b><br>
2060   * Type: <b>date</b><br>
2061   * Path: <b>Condition.onset.ofType(dateTime) | Condition.onset.ofType(Period)</b><br>
2062   * </p>
2063   */
2064  public static final ca.uhn.fhir.rest.gclient.DateClientParam ONSET_DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_ONSET_DATE);
2065
2066 /**
2067   * Search parameter: <b>onset-info</b>
2068   * <p>
2069   * Description: <b>Onsets as a string</b><br>
2070   * Type: <b>string</b><br>
2071   * Path: <b>Condition.onset.ofType(string)</b><br>
2072   * </p>
2073   */
2074  @SearchParamDefinition(name="onset-info", path="Condition.onset.ofType(string)", description="Onsets as a string", type="string" )
2075  public static final String SP_ONSET_INFO = "onset-info";
2076 /**
2077   * <b>Fluent Client</b> search parameter constant for <b>onset-info</b>
2078   * <p>
2079   * Description: <b>Onsets as a string</b><br>
2080   * Type: <b>string</b><br>
2081   * Path: <b>Condition.onset.ofType(string)</b><br>
2082   * </p>
2083   */
2084  public static final ca.uhn.fhir.rest.gclient.StringClientParam ONSET_INFO = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_ONSET_INFO);
2085
2086 /**
2087   * Search parameter: <b>participant-actor</b>
2088   * <p>
2089   * Description: <b>Who or what participated in the activities related to the condition</b><br>
2090   * Type: <b>reference</b><br>
2091   * Path: <b>Condition.participant.actor</b><br>
2092   * </p>
2093   */
2094  @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 } )
2095  public static final String SP_PARTICIPANT_ACTOR = "participant-actor";
2096 /**
2097   * <b>Fluent Client</b> search parameter constant for <b>participant-actor</b>
2098   * <p>
2099   * Description: <b>Who or what participated in the activities related to the condition</b><br>
2100   * Type: <b>reference</b><br>
2101   * Path: <b>Condition.participant.actor</b><br>
2102   * </p>
2103   */
2104  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PARTICIPANT_ACTOR = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PARTICIPANT_ACTOR);
2105
2106/**
2107   * Constant for fluent queries to be used to add include statements. Specifies
2108   * the path value of "<b>Condition:participant-actor</b>".
2109   */
2110  public static final ca.uhn.fhir.model.api.Include INCLUDE_PARTICIPANT_ACTOR = new ca.uhn.fhir.model.api.Include("Condition:participant-actor").toLocked();
2111
2112 /**
2113   * Search parameter: <b>participant-function</b>
2114   * <p>
2115   * Description: <b>Type of involvement of the actor in the activities related to the condition</b><br>
2116   * Type: <b>token</b><br>
2117   * Path: <b>Condition.participant.function</b><br>
2118   * </p>
2119   */
2120  @SearchParamDefinition(name="participant-function", path="Condition.participant.function", description="Type of involvement of the actor in the activities related to the condition", type="token" )
2121  public static final String SP_PARTICIPANT_FUNCTION = "participant-function";
2122 /**
2123   * <b>Fluent Client</b> search parameter constant for <b>participant-function</b>
2124   * <p>
2125   * Description: <b>Type of involvement of the actor in the activities related to the condition</b><br>
2126   * Type: <b>token</b><br>
2127   * Path: <b>Condition.participant.function</b><br>
2128   * </p>
2129   */
2130  public static final ca.uhn.fhir.rest.gclient.TokenClientParam PARTICIPANT_FUNCTION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_PARTICIPANT_FUNCTION);
2131
2132 /**
2133   * Search parameter: <b>recorded-date</b>
2134   * <p>
2135   * Description: <b>Date record was first recorded</b><br>
2136   * Type: <b>date</b><br>
2137   * Path: <b>Condition.recordedDate</b><br>
2138   * </p>
2139   */
2140  @SearchParamDefinition(name="recorded-date", path="Condition.recordedDate", description="Date record was first recorded", type="date" )
2141  public static final String SP_RECORDED_DATE = "recorded-date";
2142 /**
2143   * <b>Fluent Client</b> search parameter constant for <b>recorded-date</b>
2144   * <p>
2145   * Description: <b>Date record was first recorded</b><br>
2146   * Type: <b>date</b><br>
2147   * Path: <b>Condition.recordedDate</b><br>
2148   * </p>
2149   */
2150  public static final ca.uhn.fhir.rest.gclient.DateClientParam RECORDED_DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_RECORDED_DATE);
2151
2152 /**
2153   * Search parameter: <b>severity</b>
2154   * <p>
2155   * Description: <b>The severity of the condition</b><br>
2156   * Type: <b>token</b><br>
2157   * Path: <b>Condition.severity</b><br>
2158   * </p>
2159   */
2160  @SearchParamDefinition(name="severity", path="Condition.severity", description="The severity of the condition", type="token" )
2161  public static final String SP_SEVERITY = "severity";
2162 /**
2163   * <b>Fluent Client</b> search parameter constant for <b>severity</b>
2164   * <p>
2165   * Description: <b>The severity of the condition</b><br>
2166   * Type: <b>token</b><br>
2167   * Path: <b>Condition.severity</b><br>
2168   * </p>
2169   */
2170  public static final ca.uhn.fhir.rest.gclient.TokenClientParam SEVERITY = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_SEVERITY);
2171
2172 /**
2173   * Search parameter: <b>stage</b>
2174   * <p>
2175   * Description: <b>Simple summary (disease specific)</b><br>
2176   * Type: <b>token</b><br>
2177   * Path: <b>Condition.stage.summary</b><br>
2178   * </p>
2179   */
2180  @SearchParamDefinition(name="stage", path="Condition.stage.summary", description="Simple summary (disease specific)", type="token" )
2181  public static final String SP_STAGE = "stage";
2182 /**
2183   * <b>Fluent Client</b> search parameter constant for <b>stage</b>
2184   * <p>
2185   * Description: <b>Simple summary (disease specific)</b><br>
2186   * Type: <b>token</b><br>
2187   * Path: <b>Condition.stage.summary</b><br>
2188   * </p>
2189   */
2190  public static final ca.uhn.fhir.rest.gclient.TokenClientParam STAGE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STAGE);
2191
2192 /**
2193   * Search parameter: <b>subject</b>
2194   * <p>
2195   * Description: <b>Who has the condition?</b><br>
2196   * Type: <b>reference</b><br>
2197   * Path: <b>Condition.subject</b><br>
2198   * </p>
2199   */
2200  @SearchParamDefinition(name="subject", path="Condition.subject", description="Who has the condition?", type="reference", target={Group.class, Patient.class } )
2201  public static final String SP_SUBJECT = "subject";
2202 /**
2203   * <b>Fluent Client</b> search parameter constant for <b>subject</b>
2204   * <p>
2205   * Description: <b>Who has the condition?</b><br>
2206   * Type: <b>reference</b><br>
2207   * Path: <b>Condition.subject</b><br>
2208   * </p>
2209   */
2210  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SUBJECT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SUBJECT);
2211
2212/**
2213   * Constant for fluent queries to be used to add include statements. Specifies
2214   * the path value of "<b>Condition:subject</b>".
2215   */
2216  public static final ca.uhn.fhir.model.api.Include INCLUDE_SUBJECT = new ca.uhn.fhir.model.api.Include("Condition:subject").toLocked();
2217
2218 /**
2219   * Search parameter: <b>verification-status</b>
2220   * <p>
2221   * Description: <b>unconfirmed | provisional | differential | confirmed | refuted | entered-in-error</b><br>
2222   * Type: <b>token</b><br>
2223   * Path: <b>Condition.verificationStatus</b><br>
2224   * </p>
2225   */
2226  @SearchParamDefinition(name="verification-status", path="Condition.verificationStatus", description="unconfirmed | provisional | differential | confirmed | refuted | entered-in-error", type="token" )
2227  public static final String SP_VERIFICATION_STATUS = "verification-status";
2228 /**
2229   * <b>Fluent Client</b> search parameter constant for <b>verification-status</b>
2230   * <p>
2231   * Description: <b>unconfirmed | provisional | differential | confirmed | refuted | entered-in-error</b><br>
2232   * Type: <b>token</b><br>
2233   * Path: <b>Condition.verificationStatus</b><br>
2234   * </p>
2235   */
2236  public static final ca.uhn.fhir.rest.gclient.TokenClientParam VERIFICATION_STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_VERIFICATION_STATUS);
2237
2238 /**
2239   * Search parameter: <b>code</b>
2240   * <p>
2241   * Description: <b>Multiple Resources: 
2242
2243* [AdverseEvent](adverseevent.html): Event or incident that occurred or was averted
2244* [AllergyIntolerance](allergyintolerance.html): Code that identifies the allergy or intolerance
2245* [AuditEvent](auditevent.html): More specific code for the event
2246* [Basic](basic.html): Kind of Resource
2247* [ChargeItem](chargeitem.html): A code that identifies the charge, like a billing code
2248* [Condition](condition.html): Code for the condition
2249* [DetectedIssue](detectedissue.html): Issue Type, e.g. drug-drug, duplicate therapy, etc.
2250* [DeviceRequest](devicerequest.html): Code for what is being requested/ordered
2251* [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
2252* [FamilyMemberHistory](familymemberhistory.html): A search by a condition code
2253* [ImagingSelection](imagingselection.html): The imaging selection status
2254* [List](list.html): What the purpose of this list is
2255* [Medication](medication.html): Returns medications for a specific code
2256* [MedicationAdministration](medicationadministration.html): Return administrations of this medication code
2257* [MedicationDispense](medicationdispense.html): Returns dispenses of this medicine code
2258* [MedicationRequest](medicationrequest.html): Return prescriptions of this medication code
2259* [MedicationStatement](medicationstatement.html): Return statements of this medication code
2260* [NutritionIntake](nutritionintake.html): Returns statements of this code of NutritionIntake
2261* [Observation](observation.html): The code of the observation type
2262* [Procedure](procedure.html): A code to identify a  procedure
2263* [RequestOrchestration](requestorchestration.html): The code of the request orchestration
2264* [Task](task.html): Search by task code
2265</b><br>
2266   * Type: <b>token</b><br>
2267   * Path: <b>AdverseEvent.code | AllergyIntolerance.code | AllergyIntolerance.reaction.substance | AuditEvent.code | Basic.code | ChargeItem.code | Condition.code | DetectedIssue.code | DeviceRequest.code.concept | DiagnosticReport.code | FamilyMemberHistory.condition.code | ImagingSelection.status | List.code | Medication.code | MedicationAdministration.medication.concept | MedicationDispense.medication.concept | MedicationRequest.medication.concept | MedicationStatement.medication.concept | NutritionIntake.code | Observation.code | Procedure.code | RequestOrchestration.code | Task.code</b><br>
2268   * </p>
2269   */
2270  @SearchParamDefinition(name="code", path="AdverseEvent.code | AllergyIntolerance.code | AllergyIntolerance.reaction.substance | AuditEvent.code | Basic.code | ChargeItem.code | Condition.code | DetectedIssue.code | DeviceRequest.code.concept | DiagnosticReport.code | FamilyMemberHistory.condition.code | ImagingSelection.status | List.code | Medication.code | MedicationAdministration.medication.concept | MedicationDispense.medication.concept | MedicationRequest.medication.concept | MedicationStatement.medication.concept | NutritionIntake.code | Observation.code | Procedure.code | RequestOrchestration.code | Task.code", description="Multiple Resources: \r\n\r\n* [AdverseEvent](adverseevent.html): Event or incident that occurred or was averted\r\n* [AllergyIntolerance](allergyintolerance.html): Code that identifies the allergy or intolerance\r\n* [AuditEvent](auditevent.html): More specific code for the event\r\n* [Basic](basic.html): Kind of Resource\r\n* [ChargeItem](chargeitem.html): A code that identifies the charge, like a billing code\r\n* [Condition](condition.html): Code for the condition\r\n* [DetectedIssue](detectedissue.html): Issue Type, e.g. drug-drug, duplicate therapy, etc.\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* [ImagingSelection](imagingselection.html): The imaging selection status\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* [MedicationStatement](medicationstatement.html): Return statements of this medication code\r\n* [NutritionIntake](nutritionintake.html): Returns statements of this code of NutritionIntake\r\n* [Observation](observation.html): The code of the observation type\r\n* [Procedure](procedure.html): A code to identify a  procedure\r\n* [RequestOrchestration](requestorchestration.html): The code of the request orchestration\r\n* [Task](task.html): Search by task code\r\n", type="token" )
2271  public static final String SP_CODE = "code";
2272 /**
2273   * <b>Fluent Client</b> search parameter constant for <b>code</b>
2274   * <p>
2275   * Description: <b>Multiple Resources: 
2276
2277* [AdverseEvent](adverseevent.html): Event or incident that occurred or was averted
2278* [AllergyIntolerance](allergyintolerance.html): Code that identifies the allergy or intolerance
2279* [AuditEvent](auditevent.html): More specific code for the event
2280* [Basic](basic.html): Kind of Resource
2281* [ChargeItem](chargeitem.html): A code that identifies the charge, like a billing code
2282* [Condition](condition.html): Code for the condition
2283* [DetectedIssue](detectedissue.html): Issue Type, e.g. drug-drug, duplicate therapy, etc.
2284* [DeviceRequest](devicerequest.html): Code for what is being requested/ordered
2285* [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
2286* [FamilyMemberHistory](familymemberhistory.html): A search by a condition code
2287* [ImagingSelection](imagingselection.html): The imaging selection status
2288* [List](list.html): What the purpose of this list is
2289* [Medication](medication.html): Returns medications for a specific code
2290* [MedicationAdministration](medicationadministration.html): Return administrations of this medication code
2291* [MedicationDispense](medicationdispense.html): Returns dispenses of this medicine code
2292* [MedicationRequest](medicationrequest.html): Return prescriptions of this medication code
2293* [MedicationStatement](medicationstatement.html): Return statements of this medication code
2294* [NutritionIntake](nutritionintake.html): Returns statements of this code of NutritionIntake
2295* [Observation](observation.html): The code of the observation type
2296* [Procedure](procedure.html): A code to identify a  procedure
2297* [RequestOrchestration](requestorchestration.html): The code of the request orchestration
2298* [Task](task.html): Search by task code
2299</b><br>
2300   * Type: <b>token</b><br>
2301   * Path: <b>AdverseEvent.code | AllergyIntolerance.code | AllergyIntolerance.reaction.substance | AuditEvent.code | Basic.code | ChargeItem.code | Condition.code | DetectedIssue.code | DeviceRequest.code.concept | DiagnosticReport.code | FamilyMemberHistory.condition.code | ImagingSelection.status | List.code | Medication.code | MedicationAdministration.medication.concept | MedicationDispense.medication.concept | MedicationRequest.medication.concept | MedicationStatement.medication.concept | NutritionIntake.code | Observation.code | Procedure.code | RequestOrchestration.code | Task.code</b><br>
2302   * </p>
2303   */
2304  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CODE);
2305
2306 /**
2307   * Search parameter: <b>encounter</b>
2308   * <p>
2309   * Description: <b>Multiple Resources: 
2310
2311* [AuditEvent](auditevent.html): Encounter related to the activity recorded in the AuditEvent
2312* [CarePlan](careplan.html): The Encounter during which this CarePlan was created
2313* [ChargeItem](chargeitem.html): Encounter associated with event
2314* [Claim](claim.html): Encounters associated with a billed line item
2315* [ClinicalImpression](clinicalimpression.html): The Encounter during which this ClinicalImpression was created
2316* [Communication](communication.html): The Encounter during which this Communication was created
2317* [CommunicationRequest](communicationrequest.html): The Encounter during which this CommunicationRequest was created
2318* [Composition](composition.html): Context of the Composition
2319* [Condition](condition.html): The Encounter during which this Condition was created
2320* [DeviceRequest](devicerequest.html): Encounter during which request was created
2321* [DiagnosticReport](diagnosticreport.html): The Encounter when the order was made
2322* [EncounterHistory](encounterhistory.html): The Encounter associated with this set of history values
2323* [ExplanationOfBenefit](explanationofbenefit.html): Encounters associated with a billed line item
2324* [Flag](flag.html): Alert relevant during encounter
2325* [ImagingStudy](imagingstudy.html): The context of the study
2326* [List](list.html): Context in which list created
2327* [MedicationDispense](medicationdispense.html): Returns dispenses with a specific encounter
2328* [MedicationStatement](medicationstatement.html): Returns statements for a specific encounter
2329* [NutritionIntake](nutritionintake.html): Returns statements for a specific encounter
2330* [NutritionOrder](nutritionorder.html): Return nutrition orders with this encounter identifier
2331* [Observation](observation.html): Encounter related to the observation
2332* [Procedure](procedure.html): The Encounter during which this Procedure was created
2333* [Provenance](provenance.html): Encounter related to the Provenance
2334* [QuestionnaireResponse](questionnaireresponse.html): Encounter associated with the questionnaire response
2335* [RequestOrchestration](requestorchestration.html): The encounter the request orchestration applies to
2336* [RiskAssessment](riskassessment.html): Where was assessment performed?
2337* [ServiceRequest](servicerequest.html): An encounter in which this request is made
2338* [Task](task.html): Search by encounter
2339* [VisionPrescription](visionprescription.html): Return prescriptions with this encounter identifier
2340</b><br>
2341   * Type: <b>reference</b><br>
2342   * Path: <b>AuditEvent.encounter | CarePlan.encounter | ChargeItem.encounter | Claim.item.encounter | ClinicalImpression.encounter | Communication.encounter | CommunicationRequest.encounter | Composition.encounter | Condition.encounter | DeviceRequest.encounter | DiagnosticReport.encounter | EncounterHistory.encounter | ExplanationOfBenefit.item.encounter | Flag.encounter | ImagingStudy.encounter | List.encounter | MedicationDispense.encounter | MedicationStatement.encounter | NutritionIntake.encounter | NutritionOrder.encounter | Observation.encounter | Procedure.encounter | Provenance.encounter | QuestionnaireResponse.encounter | RequestOrchestration.encounter | RiskAssessment.encounter | ServiceRequest.encounter | Task.encounter | VisionPrescription.encounter</b><br>
2343   * </p>
2344   */
2345  @SearchParamDefinition(name="encounter", path="AuditEvent.encounter | CarePlan.encounter | ChargeItem.encounter | Claim.item.encounter | ClinicalImpression.encounter | Communication.encounter | CommunicationRequest.encounter | Composition.encounter | Condition.encounter | DeviceRequest.encounter | DiagnosticReport.encounter | EncounterHistory.encounter | ExplanationOfBenefit.item.encounter | Flag.encounter | ImagingStudy.encounter | List.encounter | MedicationDispense.encounter | MedicationStatement.encounter | NutritionIntake.encounter | NutritionOrder.encounter | Observation.encounter | Procedure.encounter | Provenance.encounter | QuestionnaireResponse.encounter | RequestOrchestration.encounter | RiskAssessment.encounter | ServiceRequest.encounter | Task.encounter | VisionPrescription.encounter", description="Multiple Resources: \r\n\r\n* [AuditEvent](auditevent.html): Encounter related to the activity recorded in the AuditEvent\r\n* [CarePlan](careplan.html): The Encounter during which this CarePlan was created\r\n* [ChargeItem](chargeitem.html): Encounter associated with event\r\n* [Claim](claim.html): Encounters associated with a billed line item\r\n* [ClinicalImpression](clinicalimpression.html): The Encounter during which this ClinicalImpression was created\r\n* [Communication](communication.html): The Encounter during which this Communication was created\r\n* [CommunicationRequest](communicationrequest.html): The Encounter during which this CommunicationRequest was created\r\n* [Composition](composition.html): Context of the Composition\r\n* [Condition](condition.html): The Encounter during which this Condition was created\r\n* [DeviceRequest](devicerequest.html): Encounter during which request was created\r\n* [DiagnosticReport](diagnosticreport.html): The Encounter when the order was made\r\n* [EncounterHistory](encounterhistory.html): The Encounter associated with this set of history values\r\n* [ExplanationOfBenefit](explanationofbenefit.html): Encounters associated with a billed line item\r\n* [Flag](flag.html): Alert relevant during encounter\r\n* [ImagingStudy](imagingstudy.html): The context of the study\r\n* [List](list.html): Context in which list created\r\n* [MedicationDispense](medicationdispense.html): Returns dispenses with a specific encounter\r\n* [MedicationStatement](medicationstatement.html): Returns statements for a specific encounter\r\n* [NutritionIntake](nutritionintake.html): Returns statements for a specific encounter\r\n* [NutritionOrder](nutritionorder.html): Return nutrition orders with this encounter identifier\r\n* [Observation](observation.html): Encounter related to the observation\r\n* [Procedure](procedure.html): The Encounter during which this Procedure was created\r\n* [Provenance](provenance.html): Encounter related to the Provenance\r\n* [QuestionnaireResponse](questionnaireresponse.html): Encounter associated with the questionnaire response\r\n* [RequestOrchestration](requestorchestration.html): The encounter the request orchestration applies to\r\n* [RiskAssessment](riskassessment.html): Where was assessment performed?\r\n* [ServiceRequest](servicerequest.html): An encounter in which this request is made\r\n* [Task](task.html): Search by encounter\r\n* [VisionPrescription](visionprescription.html): Return prescriptions with this encounter identifier\r\n", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Encounter") }, target={Encounter.class } )
2346  public static final String SP_ENCOUNTER = "encounter";
2347 /**
2348   * <b>Fluent Client</b> search parameter constant for <b>encounter</b>
2349   * <p>
2350   * Description: <b>Multiple Resources: 
2351
2352* [AuditEvent](auditevent.html): Encounter related to the activity recorded in the AuditEvent
2353* [CarePlan](careplan.html): The Encounter during which this CarePlan was created
2354* [ChargeItem](chargeitem.html): Encounter associated with event
2355* [Claim](claim.html): Encounters associated with a billed line item
2356* [ClinicalImpression](clinicalimpression.html): The Encounter during which this ClinicalImpression was created
2357* [Communication](communication.html): The Encounter during which this Communication was created
2358* [CommunicationRequest](communicationrequest.html): The Encounter during which this CommunicationRequest was created
2359* [Composition](composition.html): Context of the Composition
2360* [Condition](condition.html): The Encounter during which this Condition was created
2361* [DeviceRequest](devicerequest.html): Encounter during which request was created
2362* [DiagnosticReport](diagnosticreport.html): The Encounter when the order was made
2363* [EncounterHistory](encounterhistory.html): The Encounter associated with this set of history values
2364* [ExplanationOfBenefit](explanationofbenefit.html): Encounters associated with a billed line item
2365* [Flag](flag.html): Alert relevant during encounter
2366* [ImagingStudy](imagingstudy.html): The context of the study
2367* [List](list.html): Context in which list created
2368* [MedicationDispense](medicationdispense.html): Returns dispenses with a specific encounter
2369* [MedicationStatement](medicationstatement.html): Returns statements for a specific encounter
2370* [NutritionIntake](nutritionintake.html): Returns statements for a specific encounter
2371* [NutritionOrder](nutritionorder.html): Return nutrition orders with this encounter identifier
2372* [Observation](observation.html): Encounter related to the observation
2373* [Procedure](procedure.html): The Encounter during which this Procedure was created
2374* [Provenance](provenance.html): Encounter related to the Provenance
2375* [QuestionnaireResponse](questionnaireresponse.html): Encounter associated with the questionnaire response
2376* [RequestOrchestration](requestorchestration.html): The encounter the request orchestration applies to
2377* [RiskAssessment](riskassessment.html): Where was assessment performed?
2378* [ServiceRequest](servicerequest.html): An encounter in which this request is made
2379* [Task](task.html): Search by encounter
2380* [VisionPrescription](visionprescription.html): Return prescriptions with this encounter identifier
2381</b><br>
2382   * Type: <b>reference</b><br>
2383   * Path: <b>AuditEvent.encounter | CarePlan.encounter | ChargeItem.encounter | Claim.item.encounter | ClinicalImpression.encounter | Communication.encounter | CommunicationRequest.encounter | Composition.encounter | Condition.encounter | DeviceRequest.encounter | DiagnosticReport.encounter | EncounterHistory.encounter | ExplanationOfBenefit.item.encounter | Flag.encounter | ImagingStudy.encounter | List.encounter | MedicationDispense.encounter | MedicationStatement.encounter | NutritionIntake.encounter | NutritionOrder.encounter | Observation.encounter | Procedure.encounter | Provenance.encounter | QuestionnaireResponse.encounter | RequestOrchestration.encounter | RiskAssessment.encounter | ServiceRequest.encounter | Task.encounter | VisionPrescription.encounter</b><br>
2384   * </p>
2385   */
2386  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ENCOUNTER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ENCOUNTER);
2387
2388/**
2389   * Constant for fluent queries to be used to add include statements. Specifies
2390   * the path value of "<b>Condition:encounter</b>".
2391   */
2392  public static final ca.uhn.fhir.model.api.Include INCLUDE_ENCOUNTER = new ca.uhn.fhir.model.api.Include("Condition:encounter").toLocked();
2393
2394 /**
2395   * Search parameter: <b>identifier</b>
2396   * <p>
2397   * Description: <b>Multiple Resources: 
2398
2399* [Account](account.html): Account number
2400* [AdverseEvent](adverseevent.html): Business identifier for the event
2401* [AllergyIntolerance](allergyintolerance.html): External ids for this item
2402* [Appointment](appointment.html): An Identifier of the Appointment
2403* [AppointmentResponse](appointmentresponse.html): An Identifier in this appointment response
2404* [Basic](basic.html): Business identifier
2405* [BodyStructure](bodystructure.html): Bodystructure identifier
2406* [CarePlan](careplan.html): External Ids for this plan
2407* [CareTeam](careteam.html): External Ids for this team
2408* [ChargeItem](chargeitem.html): Business Identifier for item
2409* [Claim](claim.html): The primary identifier of the financial resource
2410* [ClaimResponse](claimresponse.html): The identity of the ClaimResponse
2411* [ClinicalImpression](clinicalimpression.html): Business identifier
2412* [Communication](communication.html): Unique identifier
2413* [CommunicationRequest](communicationrequest.html): Unique identifier
2414* [Composition](composition.html): Version-independent identifier for the Composition
2415* [Condition](condition.html): A unique identifier of the condition record
2416* [Consent](consent.html): Identifier for this record (external references)
2417* [Contract](contract.html): The identity of the contract
2418* [Coverage](coverage.html): The primary identifier of the insured and the coverage
2419* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The business identifier of the Eligibility
2420* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The business identifier
2421* [DetectedIssue](detectedissue.html): Unique id for the detected issue
2422* [DeviceRequest](devicerequest.html): Business identifier for request/order
2423* [DeviceUsage](deviceusage.html): Search by identifier
2424* [DiagnosticReport](diagnosticreport.html): An identifier for the report
2425* [DocumentReference](documentreference.html): Identifier of the attachment binary
2426* [Encounter](encounter.html): Identifier(s) by which this encounter is known
2427* [EnrollmentRequest](enrollmentrequest.html): The business identifier of the Enrollment
2428* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare
2429* [ExplanationOfBenefit](explanationofbenefit.html): The business identifier of the Explanation of Benefit
2430* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier
2431* [Flag](flag.html): Business identifier
2432* [Goal](goal.html): External Ids for this goal
2433* [GuidanceResponse](guidanceresponse.html): The identifier of the guidance response
2434* [ImagingSelection](imagingselection.html): Identifiers for the imaging selection
2435* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID
2436* [Immunization](immunization.html): Business identifier
2437* [ImmunizationEvaluation](immunizationevaluation.html): ID of the evaluation
2438* [ImmunizationRecommendation](immunizationrecommendation.html): Business identifier
2439* [Invoice](invoice.html): Business Identifier for item
2440* [List](list.html): Business identifier
2441* [MeasureReport](measurereport.html): External identifier of the measure report to be returned
2442* [Medication](medication.html): Returns medications with this external identifier
2443* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier
2444* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier
2445* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier
2446* [MedicationStatement](medicationstatement.html): Return statements with this external identifier
2447* [MolecularSequence](molecularsequence.html): The unique identity for a particular sequence
2448* [NutritionIntake](nutritionintake.html): Return statements with this external identifier
2449* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier
2450* [Observation](observation.html): The unique id for a particular observation
2451* [Person](person.html): A person Identifier
2452* [Procedure](procedure.html): A unique identifier for a procedure
2453* [QuestionnaireResponse](questionnaireresponse.html): The unique identifier for the questionnaire response
2454* [RelatedPerson](relatedperson.html): An Identifier of the RelatedPerson
2455* [RequestOrchestration](requestorchestration.html): External identifiers for the request orchestration
2456* [ResearchSubject](researchsubject.html): Business Identifier for research subject in a study
2457* [RiskAssessment](riskassessment.html): Unique identifier for the assessment
2458* [ServiceRequest](servicerequest.html): Identifiers assigned to this order
2459* [Specimen](specimen.html): The unique identifier associated with the specimen
2460* [SupplyDelivery](supplydelivery.html): External identifier
2461* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest
2462* [Task](task.html): Search for a task instance by its business identifier
2463* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier
2464</b><br>
2465   * Type: <b>token</b><br>
2466   * Path: <b>Account.identifier | AdverseEvent.identifier | AllergyIntolerance.identifier | Appointment.identifier | AppointmentResponse.identifier | Basic.identifier | BodyStructure.identifier | CarePlan.identifier | CareTeam.identifier | ChargeItem.identifier | Claim.identifier | ClaimResponse.identifier | ClinicalImpression.identifier | Communication.identifier | CommunicationRequest.identifier | Composition.identifier | Condition.identifier | Consent.identifier | Contract.identifier | Coverage.identifier | CoverageEligibilityRequest.identifier | CoverageEligibilityResponse.identifier | DetectedIssue.identifier | DeviceRequest.identifier | DeviceUsage.identifier | DiagnosticReport.identifier | DocumentReference.identifier | Encounter.identifier | EnrollmentRequest.identifier | EpisodeOfCare.identifier | ExplanationOfBenefit.identifier | FamilyMemberHistory.identifier | Flag.identifier | Goal.identifier | GuidanceResponse.identifier | ImagingSelection.identifier | ImagingStudy.identifier | Immunization.identifier | ImmunizationEvaluation.identifier | ImmunizationRecommendation.identifier | Invoice.identifier | List.identifier | MeasureReport.identifier | Medication.identifier | MedicationAdministration.identifier | MedicationDispense.identifier | MedicationRequest.identifier | MedicationStatement.identifier | MolecularSequence.identifier | NutritionIntake.identifier | NutritionOrder.identifier | Observation.identifier | Person.identifier | Procedure.identifier | QuestionnaireResponse.identifier | RelatedPerson.identifier | RequestOrchestration.identifier | ResearchSubject.identifier | RiskAssessment.identifier | ServiceRequest.identifier | Specimen.identifier | SupplyDelivery.identifier | SupplyRequest.identifier | Task.identifier | VisionPrescription.identifier</b><br>
2467   * </p>
2468   */
2469  @SearchParamDefinition(name="identifier", path="Account.identifier | AdverseEvent.identifier | AllergyIntolerance.identifier | Appointment.identifier | AppointmentResponse.identifier | Basic.identifier | BodyStructure.identifier | CarePlan.identifier | CareTeam.identifier | ChargeItem.identifier | Claim.identifier | ClaimResponse.identifier | ClinicalImpression.identifier | Communication.identifier | CommunicationRequest.identifier | Composition.identifier | Condition.identifier | Consent.identifier | Contract.identifier | Coverage.identifier | CoverageEligibilityRequest.identifier | CoverageEligibilityResponse.identifier | DetectedIssue.identifier | DeviceRequest.identifier | DeviceUsage.identifier | DiagnosticReport.identifier | DocumentReference.identifier | Encounter.identifier | EnrollmentRequest.identifier | EpisodeOfCare.identifier | ExplanationOfBenefit.identifier | FamilyMemberHistory.identifier | Flag.identifier | Goal.identifier | GuidanceResponse.identifier | ImagingSelection.identifier | ImagingStudy.identifier | Immunization.identifier | ImmunizationEvaluation.identifier | ImmunizationRecommendation.identifier | Invoice.identifier | List.identifier | MeasureReport.identifier | Medication.identifier | MedicationAdministration.identifier | MedicationDispense.identifier | MedicationRequest.identifier | MedicationStatement.identifier | MolecularSequence.identifier | NutritionIntake.identifier | NutritionOrder.identifier | Observation.identifier | Person.identifier | Procedure.identifier | QuestionnaireResponse.identifier | RelatedPerson.identifier | RequestOrchestration.identifier | ResearchSubject.identifier | RiskAssessment.identifier | ServiceRequest.identifier | Specimen.identifier | SupplyDelivery.identifier | SupplyRequest.identifier | Task.identifier | VisionPrescription.identifier", description="Multiple Resources: \r\n\r\n* [Account](account.html): Account number\r\n* [AdverseEvent](adverseevent.html): Business identifier for the event\r\n* [AllergyIntolerance](allergyintolerance.html): External ids for this item\r\n* [Appointment](appointment.html): An Identifier of the Appointment\r\n* [AppointmentResponse](appointmentresponse.html): An Identifier in this appointment response\r\n* [Basic](basic.html): Business identifier\r\n* [BodyStructure](bodystructure.html): Bodystructure identifier\r\n* [CarePlan](careplan.html): External Ids for this plan\r\n* [CareTeam](careteam.html): External Ids for this team\r\n* [ChargeItem](chargeitem.html): Business Identifier for item\r\n* [Claim](claim.html): The primary identifier of the financial resource\r\n* [ClaimResponse](claimresponse.html): The identity of the ClaimResponse\r\n* [ClinicalImpression](clinicalimpression.html): Business identifier\r\n* [Communication](communication.html): Unique identifier\r\n* [CommunicationRequest](communicationrequest.html): Unique identifier\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* [Contract](contract.html): The identity of the contract\r\n* [Coverage](coverage.html): The primary identifier of the insured and the coverage\r\n* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The business identifier of the Eligibility\r\n* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The business identifier\r\n* [DetectedIssue](detectedissue.html): Unique id for the detected issue\r\n* [DeviceRequest](devicerequest.html): Business identifier for request/order\r\n* [DeviceUsage](deviceusage.html): Search by identifier\r\n* [DiagnosticReport](diagnosticreport.html): An identifier for the report\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* [EnrollmentRequest](enrollmentrequest.html): The business identifier of the Enrollment\r\n* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare\r\n* [ExplanationOfBenefit](explanationofbenefit.html): The business identifier of the Explanation of Benefit\r\n* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier\r\n* [Flag](flag.html): Business identifier\r\n* [Goal](goal.html): External Ids for this goal\r\n* [GuidanceResponse](guidanceresponse.html): The identifier of the guidance response\r\n* [ImagingSelection](imagingselection.html): Identifiers for the imaging selection\r\n* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID\r\n* [Immunization](immunization.html): Business identifier\r\n* [ImmunizationEvaluation](immunizationevaluation.html): ID of the evaluation\r\n* [ImmunizationRecommendation](immunizationrecommendation.html): Business identifier\r\n* [Invoice](invoice.html): Business Identifier for item\r\n* [List](list.html): Business identifier\r\n* [MeasureReport](measurereport.html): External identifier of the measure report to be returned\r\n* [Medication](medication.html): Returns medications with this external 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* [MedicationStatement](medicationstatement.html): Return statements with this external identifier\r\n* [MolecularSequence](molecularsequence.html): The unique identity for a particular sequence\r\n* [NutritionIntake](nutritionintake.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* [Person](person.html): A person Identifier\r\n* [Procedure](procedure.html): A unique identifier for a procedure\r\n* [QuestionnaireResponse](questionnaireresponse.html): The unique identifier for the questionnaire response\r\n* [RelatedPerson](relatedperson.html): An Identifier of the RelatedPerson\r\n* [RequestOrchestration](requestorchestration.html): External identifiers for the request orchestration\r\n* [ResearchSubject](researchsubject.html): Business Identifier for research subject in a study\r\n* [RiskAssessment](riskassessment.html): Unique identifier for the assessment\r\n* [ServiceRequest](servicerequest.html): Identifiers assigned to this order\r\n* [Specimen](specimen.html): The unique identifier associated with the specimen\r\n* [SupplyDelivery](supplydelivery.html): External identifier\r\n* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest\r\n* [Task](task.html): Search for a task instance by its business identifier\r\n* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier\r\n", type="token" )
2470  public static final String SP_IDENTIFIER = "identifier";
2471 /**
2472   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
2473   * <p>
2474   * Description: <b>Multiple Resources: 
2475
2476* [Account](account.html): Account number
2477* [AdverseEvent](adverseevent.html): Business identifier for the event
2478* [AllergyIntolerance](allergyintolerance.html): External ids for this item
2479* [Appointment](appointment.html): An Identifier of the Appointment
2480* [AppointmentResponse](appointmentresponse.html): An Identifier in this appointment response
2481* [Basic](basic.html): Business identifier
2482* [BodyStructure](bodystructure.html): Bodystructure identifier
2483* [CarePlan](careplan.html): External Ids for this plan
2484* [CareTeam](careteam.html): External Ids for this team
2485* [ChargeItem](chargeitem.html): Business Identifier for item
2486* [Claim](claim.html): The primary identifier of the financial resource
2487* [ClaimResponse](claimresponse.html): The identity of the ClaimResponse
2488* [ClinicalImpression](clinicalimpression.html): Business identifier
2489* [Communication](communication.html): Unique identifier
2490* [CommunicationRequest](communicationrequest.html): Unique identifier
2491* [Composition](composition.html): Version-independent identifier for the Composition
2492* [Condition](condition.html): A unique identifier of the condition record
2493* [Consent](consent.html): Identifier for this record (external references)
2494* [Contract](contract.html): The identity of the contract
2495* [Coverage](coverage.html): The primary identifier of the insured and the coverage
2496* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The business identifier of the Eligibility
2497* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The business identifier
2498* [DetectedIssue](detectedissue.html): Unique id for the detected issue
2499* [DeviceRequest](devicerequest.html): Business identifier for request/order
2500* [DeviceUsage](deviceusage.html): Search by identifier
2501* [DiagnosticReport](diagnosticreport.html): An identifier for the report
2502* [DocumentReference](documentreference.html): Identifier of the attachment binary
2503* [Encounter](encounter.html): Identifier(s) by which this encounter is known
2504* [EnrollmentRequest](enrollmentrequest.html): The business identifier of the Enrollment
2505* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare
2506* [ExplanationOfBenefit](explanationofbenefit.html): The business identifier of the Explanation of Benefit
2507* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier
2508* [Flag](flag.html): Business identifier
2509* [Goal](goal.html): External Ids for this goal
2510* [GuidanceResponse](guidanceresponse.html): The identifier of the guidance response
2511* [ImagingSelection](imagingselection.html): Identifiers for the imaging selection
2512* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID
2513* [Immunization](immunization.html): Business identifier
2514* [ImmunizationEvaluation](immunizationevaluation.html): ID of the evaluation
2515* [ImmunizationRecommendation](immunizationrecommendation.html): Business identifier
2516* [Invoice](invoice.html): Business Identifier for item
2517* [List](list.html): Business identifier
2518* [MeasureReport](measurereport.html): External identifier of the measure report to be returned
2519* [Medication](medication.html): Returns medications with this external identifier
2520* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier
2521* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier
2522* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier
2523* [MedicationStatement](medicationstatement.html): Return statements with this external identifier
2524* [MolecularSequence](molecularsequence.html): The unique identity for a particular sequence
2525* [NutritionIntake](nutritionintake.html): Return statements with this external identifier
2526* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier
2527* [Observation](observation.html): The unique id for a particular observation
2528* [Person](person.html): A person Identifier
2529* [Procedure](procedure.html): A unique identifier for a procedure
2530* [QuestionnaireResponse](questionnaireresponse.html): The unique identifier for the questionnaire response
2531* [RelatedPerson](relatedperson.html): An Identifier of the RelatedPerson
2532* [RequestOrchestration](requestorchestration.html): External identifiers for the request orchestration
2533* [ResearchSubject](researchsubject.html): Business Identifier for research subject in a study
2534* [RiskAssessment](riskassessment.html): Unique identifier for the assessment
2535* [ServiceRequest](servicerequest.html): Identifiers assigned to this order
2536* [Specimen](specimen.html): The unique identifier associated with the specimen
2537* [SupplyDelivery](supplydelivery.html): External identifier
2538* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest
2539* [Task](task.html): Search for a task instance by its business identifier
2540* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier
2541</b><br>
2542   * Type: <b>token</b><br>
2543   * Path: <b>Account.identifier | AdverseEvent.identifier | AllergyIntolerance.identifier | Appointment.identifier | AppointmentResponse.identifier | Basic.identifier | BodyStructure.identifier | CarePlan.identifier | CareTeam.identifier | ChargeItem.identifier | Claim.identifier | ClaimResponse.identifier | ClinicalImpression.identifier | Communication.identifier | CommunicationRequest.identifier | Composition.identifier | Condition.identifier | Consent.identifier | Contract.identifier | Coverage.identifier | CoverageEligibilityRequest.identifier | CoverageEligibilityResponse.identifier | DetectedIssue.identifier | DeviceRequest.identifier | DeviceUsage.identifier | DiagnosticReport.identifier | DocumentReference.identifier | Encounter.identifier | EnrollmentRequest.identifier | EpisodeOfCare.identifier | ExplanationOfBenefit.identifier | FamilyMemberHistory.identifier | Flag.identifier | Goal.identifier | GuidanceResponse.identifier | ImagingSelection.identifier | ImagingStudy.identifier | Immunization.identifier | ImmunizationEvaluation.identifier | ImmunizationRecommendation.identifier | Invoice.identifier | List.identifier | MeasureReport.identifier | Medication.identifier | MedicationAdministration.identifier | MedicationDispense.identifier | MedicationRequest.identifier | MedicationStatement.identifier | MolecularSequence.identifier | NutritionIntake.identifier | NutritionOrder.identifier | Observation.identifier | Person.identifier | Procedure.identifier | QuestionnaireResponse.identifier | RelatedPerson.identifier | RequestOrchestration.identifier | ResearchSubject.identifier | RiskAssessment.identifier | ServiceRequest.identifier | Specimen.identifier | SupplyDelivery.identifier | SupplyRequest.identifier | Task.identifier | VisionPrescription.identifier</b><br>
2544   * </p>
2545   */
2546  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
2547
2548 /**
2549   * Search parameter: <b>patient</b>
2550   * <p>
2551   * Description: <b>Multiple Resources: 
2552
2553* [Account](account.html): The entity that caused the expenses
2554* [AdverseEvent](adverseevent.html): Subject impacted by event
2555* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for
2556* [Appointment](appointment.html): One of the individuals of the appointment is this patient
2557* [AppointmentResponse](appointmentresponse.html): This Response is for this Patient
2558* [AuditEvent](auditevent.html): Where the activity involved patient data
2559* [Basic](basic.html): Identifies the focus of this resource
2560* [BodyStructure](bodystructure.html): Who this is about
2561* [CarePlan](careplan.html): Who the care plan is for
2562* [CareTeam](careteam.html): Who care team is for
2563* [ChargeItem](chargeitem.html): Individual service was done for/to
2564* [Claim](claim.html): Patient receiving the products or services
2565* [ClaimResponse](claimresponse.html): The subject of care
2566* [ClinicalImpression](clinicalimpression.html): Patient assessed
2567* [Communication](communication.html): Focus of message
2568* [CommunicationRequest](communicationrequest.html): Focus of message
2569* [Composition](composition.html): Who and/or what the composition is about
2570* [Condition](condition.html): Who has the condition?
2571* [Consent](consent.html): Who the consent applies to
2572* [Contract](contract.html): The identity of the subject of the contract (if a patient)
2573* [Coverage](coverage.html): Retrieve coverages for a patient
2574* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The reference to the patient
2575* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The reference to the patient
2576* [DetectedIssue](detectedissue.html): Associated patient
2577* [DeviceRequest](devicerequest.html): Individual the service is ordered for
2578* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device
2579* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient
2580* [DocumentReference](documentreference.html): Who/what is the subject of the document
2581* [Encounter](encounter.html): The patient present at the encounter
2582* [EnrollmentRequest](enrollmentrequest.html): The party to be enrolled
2583* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care
2584* [ExplanationOfBenefit](explanationofbenefit.html): The reference to the patient
2585* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for
2586* [Flag](flag.html): The identity of a subject to list flags for
2587* [Goal](goal.html): Who this goal is intended for
2588* [GuidanceResponse](guidanceresponse.html): The identity of a patient to search for guidance response results
2589* [ImagingSelection](imagingselection.html): Who the study is about
2590* [ImagingStudy](imagingstudy.html): Who the study is about
2591* [Immunization](immunization.html): The patient for the vaccination record
2592* [ImmunizationEvaluation](immunizationevaluation.html): The patient being evaluated
2593* [ImmunizationRecommendation](immunizationrecommendation.html): Who this profile is for
2594* [Invoice](invoice.html): Recipient(s) of goods and services
2595* [List](list.html): If all resources have the same subject
2596* [MeasureReport](measurereport.html): The identity of a patient to search for individual measure report results for
2597* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations  for
2598* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses  for
2599* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient
2600* [MedicationStatement](medicationstatement.html): Returns statements for a specific patient.
2601* [MolecularSequence](molecularsequence.html): The subject that the sequence is about
2602* [NutritionIntake](nutritionintake.html): Returns statements for a specific patient.
2603* [NutritionOrder](nutritionorder.html): The identity of the individual or set of individuals who requires the diet, formula or nutritional supplement
2604* [Observation](observation.html): The subject that the observation is about (if patient)
2605* [Person](person.html): The Person links to this Patient
2606* [Procedure](procedure.html): Search by subject - a patient
2607* [Provenance](provenance.html): Where the activity involved patient data
2608* [QuestionnaireResponse](questionnaireresponse.html): The patient that is the subject of the questionnaire response
2609* [RelatedPerson](relatedperson.html): The patient this related person is related to
2610* [RequestOrchestration](requestorchestration.html): The identity of a patient to search for request orchestrations
2611* [ResearchSubject](researchsubject.html): Who or what is part of study
2612* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?
2613* [ServiceRequest](servicerequest.html): Search by subject - a patient
2614* [Specimen](specimen.html): The patient the specimen comes from
2615* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied
2616* [SupplyRequest](supplyrequest.html): The patient or subject for whom the supply is destined
2617* [Task](task.html): Search by patient
2618* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for
2619</b><br>
2620   * Type: <b>reference</b><br>
2621   * Path: <b>Account.subject.where(resolve() is Patient) | AdverseEvent.subject.where(resolve() is Patient) | AllergyIntolerance.patient | Appointment.participant.actor.where(resolve() is Patient) | Appointment.subject.where(resolve() is Patient) | AppointmentResponse.actor.where(resolve() is Patient) | AuditEvent.patient | Basic.subject.where(resolve() is Patient) | BodyStructure.patient | CarePlan.subject.where(resolve() is Patient) | CareTeam.subject.where(resolve() is Patient) | ChargeItem.subject.where(resolve() is Patient) | Claim.patient | ClaimResponse.patient | ClinicalImpression.subject.where(resolve() is Patient) | Communication.subject.where(resolve() is Patient) | CommunicationRequest.subject.where(resolve() is Patient) | Composition.subject.where(resolve() is Patient) | Condition.subject.where(resolve() is Patient) | Consent.subject.where(resolve() is Patient) | Contract.subject.where(resolve() is Patient) | Coverage.beneficiary | CoverageEligibilityRequest.patient | CoverageEligibilityResponse.patient | DetectedIssue.subject.where(resolve() is Patient) | DeviceRequest.subject.where(resolve() is Patient) | DeviceUsage.patient | DiagnosticReport.subject.where(resolve() is Patient) | DocumentReference.subject.where(resolve() is Patient) | Encounter.subject.where(resolve() is Patient) | EnrollmentRequest.candidate | EpisodeOfCare.patient | ExplanationOfBenefit.patient | FamilyMemberHistory.patient | Flag.subject.where(resolve() is Patient) | Goal.subject.where(resolve() is Patient) | GuidanceResponse.subject.where(resolve() is Patient) | ImagingSelection.subject.where(resolve() is Patient) | ImagingStudy.subject.where(resolve() is Patient) | Immunization.patient | ImmunizationEvaluation.patient | ImmunizationRecommendation.patient | Invoice.subject.where(resolve() is Patient) | List.subject.where(resolve() is Patient) | MeasureReport.subject.where(resolve() is Patient) | MedicationAdministration.subject.where(resolve() is Patient) | MedicationDispense.subject.where(resolve() is Patient) | MedicationRequest.subject.where(resolve() is Patient) | MedicationStatement.subject.where(resolve() is Patient) | MolecularSequence.subject.where(resolve() is Patient) | NutritionIntake.subject.where(resolve() is Patient) | NutritionOrder.subject.where(resolve() is Patient) | Observation.subject.where(resolve() is Patient) | Person.link.target.where(resolve() is Patient) | Procedure.subject.where(resolve() is Patient) | Provenance.patient | QuestionnaireResponse.subject.where(resolve() is Patient) | RelatedPerson.patient | RequestOrchestration.subject.where(resolve() is Patient) | ResearchSubject.subject.where(resolve() is Patient) | RiskAssessment.subject.where(resolve() is Patient) | ServiceRequest.subject.where(resolve() is Patient) | Specimen.subject.where(resolve() is Patient) | SupplyDelivery.patient | SupplyRequest.deliverFor | Task.for.where(resolve() is Patient) | VisionPrescription.patient</b><br>
2622   * </p>
2623   */
2624  @SearchParamDefinition(name="patient", path="Account.subject.where(resolve() is Patient) | AdverseEvent.subject.where(resolve() is Patient) | AllergyIntolerance.patient | Appointment.participant.actor.where(resolve() is Patient) | Appointment.subject.where(resolve() is Patient) | AppointmentResponse.actor.where(resolve() is Patient) | AuditEvent.patient | Basic.subject.where(resolve() is Patient) | BodyStructure.patient | CarePlan.subject.where(resolve() is Patient) | CareTeam.subject.where(resolve() is Patient) | ChargeItem.subject.where(resolve() is Patient) | Claim.patient | ClaimResponse.patient | ClinicalImpression.subject.where(resolve() is Patient) | Communication.subject.where(resolve() is Patient) | CommunicationRequest.subject.where(resolve() is Patient) | Composition.subject.where(resolve() is Patient) | Condition.subject.where(resolve() is Patient) | Consent.subject.where(resolve() is Patient) | Contract.subject.where(resolve() is Patient) | Coverage.beneficiary | CoverageEligibilityRequest.patient | CoverageEligibilityResponse.patient | DetectedIssue.subject.where(resolve() is Patient) | DeviceRequest.subject.where(resolve() is Patient) | DeviceUsage.patient | DiagnosticReport.subject.where(resolve() is Patient) | DocumentReference.subject.where(resolve() is Patient) | Encounter.subject.where(resolve() is Patient) | EnrollmentRequest.candidate | EpisodeOfCare.patient | ExplanationOfBenefit.patient | FamilyMemberHistory.patient | Flag.subject.where(resolve() is Patient) | Goal.subject.where(resolve() is Patient) | GuidanceResponse.subject.where(resolve() is Patient) | ImagingSelection.subject.where(resolve() is Patient) | ImagingStudy.subject.where(resolve() is Patient) | Immunization.patient | ImmunizationEvaluation.patient | ImmunizationRecommendation.patient | Invoice.subject.where(resolve() is Patient) | List.subject.where(resolve() is Patient) | MeasureReport.subject.where(resolve() is Patient) | MedicationAdministration.subject.where(resolve() is Patient) | MedicationDispense.subject.where(resolve() is Patient) | MedicationRequest.subject.where(resolve() is Patient) | MedicationStatement.subject.where(resolve() is Patient) | MolecularSequence.subject.where(resolve() is Patient) | NutritionIntake.subject.where(resolve() is Patient) | NutritionOrder.subject.where(resolve() is Patient) | Observation.subject.where(resolve() is Patient) | Person.link.target.where(resolve() is Patient) | Procedure.subject.where(resolve() is Patient) | Provenance.patient | QuestionnaireResponse.subject.where(resolve() is Patient) | RelatedPerson.patient | RequestOrchestration.subject.where(resolve() is Patient) | ResearchSubject.subject.where(resolve() is Patient) | RiskAssessment.subject.where(resolve() is Patient) | ServiceRequest.subject.where(resolve() is Patient) | Specimen.subject.where(resolve() is Patient) | SupplyDelivery.patient | SupplyRequest.deliverFor | Task.for.where(resolve() is Patient) | VisionPrescription.patient", description="Multiple Resources: \r\n\r\n* [Account](account.html): The entity that caused the expenses\r\n* [AdverseEvent](adverseevent.html): Subject impacted by event\r\n* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for\r\n* [Appointment](appointment.html): One of the individuals of the appointment is this patient\r\n* [AppointmentResponse](appointmentresponse.html): This Response is for this Patient\r\n* [AuditEvent](auditevent.html): Where the activity involved patient data\r\n* [Basic](basic.html): Identifies the focus of this resource\r\n* [BodyStructure](bodystructure.html): Who this is about\r\n* [CarePlan](careplan.html): Who the care plan is for\r\n* [CareTeam](careteam.html): Who care team is for\r\n* [ChargeItem](chargeitem.html): Individual service was done for/to\r\n* [Claim](claim.html): Patient receiving the products or services\r\n* [ClaimResponse](claimresponse.html): The subject of care\r\n* [ClinicalImpression](clinicalimpression.html): Patient assessed\r\n* [Communication](communication.html): Focus of message\r\n* [CommunicationRequest](communicationrequest.html): Focus of message\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* [Contract](contract.html): The identity of the subject of the contract (if a patient)\r\n* [Coverage](coverage.html): Retrieve coverages for a patient\r\n* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The reference to the patient\r\n* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The reference to the patient\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* [DocumentReference](documentreference.html): Who/what is the subject of the document\r\n* [Encounter](encounter.html): The patient present at the encounter\r\n* [EnrollmentRequest](enrollmentrequest.html): The party to be enrolled\r\n* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care\r\n* [ExplanationOfBenefit](explanationofbenefit.html): The reference to the patient\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* [GuidanceResponse](guidanceresponse.html): The identity of a patient to search for guidance response results\r\n* [ImagingSelection](imagingselection.html): Who the study is about\r\n* [ImagingStudy](imagingstudy.html): Who the study is about\r\n* [Immunization](immunization.html): The patient for the vaccination record\r\n* [ImmunizationEvaluation](immunizationevaluation.html): The patient being evaluated\r\n* [ImmunizationRecommendation](immunizationrecommendation.html): Who this profile is for\r\n* [Invoice](invoice.html): Recipient(s) of goods and services\r\n* [List](list.html): If all resources have the same subject\r\n* [MeasureReport](measurereport.html): The identity of a patient to search for individual measure report results for\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* [MedicationStatement](medicationstatement.html): Returns statements for a specific patient.\r\n* [MolecularSequence](molecularsequence.html): The subject that the sequence is about\r\n* [NutritionIntake](nutritionintake.html): Returns statements for a specific patient.\r\n* [NutritionOrder](nutritionorder.html): The identity of the individual or set of individuals who requires the diet, formula or nutritional supplement\r\n* [Observation](observation.html): The subject that the observation is about (if patient)\r\n* [Person](person.html): The Person links to this Patient\r\n* [Procedure](procedure.html): Search by subject - a patient\r\n* [Provenance](provenance.html): Where the activity involved patient data\r\n* [QuestionnaireResponse](questionnaireresponse.html): The patient that is the subject of the questionnaire response\r\n* [RelatedPerson](relatedperson.html): The patient this related person is related to\r\n* [RequestOrchestration](requestorchestration.html): The identity of a patient to search for request orchestrations\r\n* [ResearchSubject](researchsubject.html): Who or what is part of study\r\n* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?\r\n* [ServiceRequest](servicerequest.html): Search by subject - a patient\r\n* [Specimen](specimen.html): The patient the specimen comes from\r\n* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied\r\n* [SupplyRequest](supplyrequest.html): The patient or subject for whom the supply is destined\r\n* [Task](task.html): Search by patient\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 } )
2625  public static final String SP_PATIENT = "patient";
2626 /**
2627   * <b>Fluent Client</b> search parameter constant for <b>patient</b>
2628   * <p>
2629   * Description: <b>Multiple Resources: 
2630
2631* [Account](account.html): The entity that caused the expenses
2632* [AdverseEvent](adverseevent.html): Subject impacted by event
2633* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for
2634* [Appointment](appointment.html): One of the individuals of the appointment is this patient
2635* [AppointmentResponse](appointmentresponse.html): This Response is for this Patient
2636* [AuditEvent](auditevent.html): Where the activity involved patient data
2637* [Basic](basic.html): Identifies the focus of this resource
2638* [BodyStructure](bodystructure.html): Who this is about
2639* [CarePlan](careplan.html): Who the care plan is for
2640* [CareTeam](careteam.html): Who care team is for
2641* [ChargeItem](chargeitem.html): Individual service was done for/to
2642* [Claim](claim.html): Patient receiving the products or services
2643* [ClaimResponse](claimresponse.html): The subject of care
2644* [ClinicalImpression](clinicalimpression.html): Patient assessed
2645* [Communication](communication.html): Focus of message
2646* [CommunicationRequest](communicationrequest.html): Focus of message
2647* [Composition](composition.html): Who and/or what the composition is about
2648* [Condition](condition.html): Who has the condition?
2649* [Consent](consent.html): Who the consent applies to
2650* [Contract](contract.html): The identity of the subject of the contract (if a patient)
2651* [Coverage](coverage.html): Retrieve coverages for a patient
2652* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The reference to the patient
2653* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The reference to the patient
2654* [DetectedIssue](detectedissue.html): Associated patient
2655* [DeviceRequest](devicerequest.html): Individual the service is ordered for
2656* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device
2657* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient
2658* [DocumentReference](documentreference.html): Who/what is the subject of the document
2659* [Encounter](encounter.html): The patient present at the encounter
2660* [EnrollmentRequest](enrollmentrequest.html): The party to be enrolled
2661* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care
2662* [ExplanationOfBenefit](explanationofbenefit.html): The reference to the patient
2663* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for
2664* [Flag](flag.html): The identity of a subject to list flags for
2665* [Goal](goal.html): Who this goal is intended for
2666* [GuidanceResponse](guidanceresponse.html): The identity of a patient to search for guidance response results
2667* [ImagingSelection](imagingselection.html): Who the study is about
2668* [ImagingStudy](imagingstudy.html): Who the study is about
2669* [Immunization](immunization.html): The patient for the vaccination record
2670* [ImmunizationEvaluation](immunizationevaluation.html): The patient being evaluated
2671* [ImmunizationRecommendation](immunizationrecommendation.html): Who this profile is for
2672* [Invoice](invoice.html): Recipient(s) of goods and services
2673* [List](list.html): If all resources have the same subject
2674* [MeasureReport](measurereport.html): The identity of a patient to search for individual measure report results for
2675* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations  for
2676* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses  for
2677* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient
2678* [MedicationStatement](medicationstatement.html): Returns statements for a specific patient.
2679* [MolecularSequence](molecularsequence.html): The subject that the sequence is about
2680* [NutritionIntake](nutritionintake.html): Returns statements for a specific patient.
2681* [NutritionOrder](nutritionorder.html): The identity of the individual or set of individuals who requires the diet, formula or nutritional supplement
2682* [Observation](observation.html): The subject that the observation is about (if patient)
2683* [Person](person.html): The Person links to this Patient
2684* [Procedure](procedure.html): Search by subject - a patient
2685* [Provenance](provenance.html): Where the activity involved patient data
2686* [QuestionnaireResponse](questionnaireresponse.html): The patient that is the subject of the questionnaire response
2687* [RelatedPerson](relatedperson.html): The patient this related person is related to
2688* [RequestOrchestration](requestorchestration.html): The identity of a patient to search for request orchestrations
2689* [ResearchSubject](researchsubject.html): Who or what is part of study
2690* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?
2691* [ServiceRequest](servicerequest.html): Search by subject - a patient
2692* [Specimen](specimen.html): The patient the specimen comes from
2693* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied
2694* [SupplyRequest](supplyrequest.html): The patient or subject for whom the supply is destined
2695* [Task](task.html): Search by patient
2696* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for
2697</b><br>
2698   * Type: <b>reference</b><br>
2699   * Path: <b>Account.subject.where(resolve() is Patient) | AdverseEvent.subject.where(resolve() is Patient) | AllergyIntolerance.patient | Appointment.participant.actor.where(resolve() is Patient) | Appointment.subject.where(resolve() is Patient) | AppointmentResponse.actor.where(resolve() is Patient) | AuditEvent.patient | Basic.subject.where(resolve() is Patient) | BodyStructure.patient | CarePlan.subject.where(resolve() is Patient) | CareTeam.subject.where(resolve() is Patient) | ChargeItem.subject.where(resolve() is Patient) | Claim.patient | ClaimResponse.patient | ClinicalImpression.subject.where(resolve() is Patient) | Communication.subject.where(resolve() is Patient) | CommunicationRequest.subject.where(resolve() is Patient) | Composition.subject.where(resolve() is Patient) | Condition.subject.where(resolve() is Patient) | Consent.subject.where(resolve() is Patient) | Contract.subject.where(resolve() is Patient) | Coverage.beneficiary | CoverageEligibilityRequest.patient | CoverageEligibilityResponse.patient | DetectedIssue.subject.where(resolve() is Patient) | DeviceRequest.subject.where(resolve() is Patient) | DeviceUsage.patient | DiagnosticReport.subject.where(resolve() is Patient) | DocumentReference.subject.where(resolve() is Patient) | Encounter.subject.where(resolve() is Patient) | EnrollmentRequest.candidate | EpisodeOfCare.patient | ExplanationOfBenefit.patient | FamilyMemberHistory.patient | Flag.subject.where(resolve() is Patient) | Goal.subject.where(resolve() is Patient) | GuidanceResponse.subject.where(resolve() is Patient) | ImagingSelection.subject.where(resolve() is Patient) | ImagingStudy.subject.where(resolve() is Patient) | Immunization.patient | ImmunizationEvaluation.patient | ImmunizationRecommendation.patient | Invoice.subject.where(resolve() is Patient) | List.subject.where(resolve() is Patient) | MeasureReport.subject.where(resolve() is Patient) | MedicationAdministration.subject.where(resolve() is Patient) | MedicationDispense.subject.where(resolve() is Patient) | MedicationRequest.subject.where(resolve() is Patient) | MedicationStatement.subject.where(resolve() is Patient) | MolecularSequence.subject.where(resolve() is Patient) | NutritionIntake.subject.where(resolve() is Patient) | NutritionOrder.subject.where(resolve() is Patient) | Observation.subject.where(resolve() is Patient) | Person.link.target.where(resolve() is Patient) | Procedure.subject.where(resolve() is Patient) | Provenance.patient | QuestionnaireResponse.subject.where(resolve() is Patient) | RelatedPerson.patient | RequestOrchestration.subject.where(resolve() is Patient) | ResearchSubject.subject.where(resolve() is Patient) | RiskAssessment.subject.where(resolve() is Patient) | ServiceRequest.subject.where(resolve() is Patient) | Specimen.subject.where(resolve() is Patient) | SupplyDelivery.patient | SupplyRequest.deliverFor | Task.for.where(resolve() is Patient) | VisionPrescription.patient</b><br>
2700   * </p>
2701   */
2702  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PATIENT);
2703
2704/**
2705   * Constant for fluent queries to be used to add include statements. Specifies
2706   * the path value of "<b>Condition:patient</b>".
2707   */
2708  public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("Condition:patient").toLocked();
2709
2710
2711}
2712