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.utilities.Utilities;
038import org.hl7.fhir.r5.model.Enumerations.*;
039import org.hl7.fhir.instance.model.api.IBaseBackboneElement;
040import org.hl7.fhir.exceptions.FHIRException;
041import org.hl7.fhir.instance.model.api.ICompositeType;
042import ca.uhn.fhir.model.api.annotation.ResourceDef;
043import ca.uhn.fhir.model.api.annotation.SearchParamDefinition;
044import org.hl7.fhir.instance.model.api.IBaseBackboneElement;
045import ca.uhn.fhir.model.api.annotation.Child;
046import ca.uhn.fhir.model.api.annotation.ChildOrder;
047import ca.uhn.fhir.model.api.annotation.Description;
048import ca.uhn.fhir.model.api.annotation.Block;
049
050/**
051 * Risk of harmful or undesirable, physiological response which is unique to an individual and associated with exposure to a substance.
052 */
053@ResourceDef(name="AllergyIntolerance", profile="http://hl7.org/fhir/StructureDefinition/AllergyIntolerance")
054public class AllergyIntolerance extends DomainResource {
055
056    public enum AllergyIntoleranceCategory {
057        /**
058         * Any substance consumed to provide nutritional support for the body.
059         */
060        FOOD, 
061        /**
062         * Substances administered to achieve a physiological effect.
063         */
064        MEDICATION, 
065        /**
066         * Any substances that are encountered in the environment, including any substance not already classified as food, medication, or biologic.
067         */
068        ENVIRONMENT, 
069        /**
070         * A preparation that is synthesized from living organisms or their products, especially a human or animal protein, such as a hormone or antitoxin, that is used as a diagnostic, preventive, or therapeutic agent. Examples of biologic medications include: vaccines; allergenic extracts, which are used for both diagnosis and treatment (for example, allergy shots); gene therapies; cellular therapies.  There are other biologic products, such as tissues, which are not typically associated with allergies.
071         */
072        BIOLOGIC, 
073        /**
074         * added to help the parsers with the generic types
075         */
076        NULL;
077        public static AllergyIntoleranceCategory fromCode(String codeString) throws FHIRException {
078            if (codeString == null || "".equals(codeString))
079                return null;
080        if ("food".equals(codeString))
081          return FOOD;
082        if ("medication".equals(codeString))
083          return MEDICATION;
084        if ("environment".equals(codeString))
085          return ENVIRONMENT;
086        if ("biologic".equals(codeString))
087          return BIOLOGIC;
088        if (Configuration.isAcceptInvalidEnums())
089          return null;
090        else
091          throw new FHIRException("Unknown AllergyIntoleranceCategory code '"+codeString+"'");
092        }
093        public String toCode() {
094          switch (this) {
095            case FOOD: return "food";
096            case MEDICATION: return "medication";
097            case ENVIRONMENT: return "environment";
098            case BIOLOGIC: return "biologic";
099            case NULL: return null;
100            default: return "?";
101          }
102        }
103        public String getSystem() {
104          switch (this) {
105            case FOOD: return "http://hl7.org/fhir/allergy-intolerance-category";
106            case MEDICATION: return "http://hl7.org/fhir/allergy-intolerance-category";
107            case ENVIRONMENT: return "http://hl7.org/fhir/allergy-intolerance-category";
108            case BIOLOGIC: return "http://hl7.org/fhir/allergy-intolerance-category";
109            case NULL: return null;
110            default: return "?";
111          }
112        }
113        public String getDefinition() {
114          switch (this) {
115            case FOOD: return "Any substance consumed to provide nutritional support for the body.";
116            case MEDICATION: return "Substances administered to achieve a physiological effect.";
117            case ENVIRONMENT: return "Any substances that are encountered in the environment, including any substance not already classified as food, medication, or biologic.";
118            case BIOLOGIC: return "A preparation that is synthesized from living organisms or their products, especially a human or animal protein, such as a hormone or antitoxin, that is used as a diagnostic, preventive, or therapeutic agent. Examples of biologic medications include: vaccines; allergenic extracts, which are used for both diagnosis and treatment (for example, allergy shots); gene therapies; cellular therapies.  There are other biologic products, such as tissues, which are not typically associated with allergies.";
119            case NULL: return null;
120            default: return "?";
121          }
122        }
123        public String getDisplay() {
124          switch (this) {
125            case FOOD: return "Food";
126            case MEDICATION: return "Medication";
127            case ENVIRONMENT: return "Environment";
128            case BIOLOGIC: return "Biologic";
129            case NULL: return null;
130            default: return "?";
131          }
132        }
133    }
134
135  public static class AllergyIntoleranceCategoryEnumFactory implements EnumFactory<AllergyIntoleranceCategory> {
136    public AllergyIntoleranceCategory fromCode(String codeString) throws IllegalArgumentException {
137      if (codeString == null || "".equals(codeString))
138            if (codeString == null || "".equals(codeString))
139                return null;
140        if ("food".equals(codeString))
141          return AllergyIntoleranceCategory.FOOD;
142        if ("medication".equals(codeString))
143          return AllergyIntoleranceCategory.MEDICATION;
144        if ("environment".equals(codeString))
145          return AllergyIntoleranceCategory.ENVIRONMENT;
146        if ("biologic".equals(codeString))
147          return AllergyIntoleranceCategory.BIOLOGIC;
148        throw new IllegalArgumentException("Unknown AllergyIntoleranceCategory code '"+codeString+"'");
149        }
150        public Enumeration<AllergyIntoleranceCategory> fromType(PrimitiveType<?> code) throws FHIRException {
151          if (code == null)
152            return null;
153          if (code.isEmpty())
154            return new Enumeration<AllergyIntoleranceCategory>(this, AllergyIntoleranceCategory.NULL, code);
155          String codeString = ((PrimitiveType) code).asStringValue();
156          if (codeString == null || "".equals(codeString))
157            return new Enumeration<AllergyIntoleranceCategory>(this, AllergyIntoleranceCategory.NULL, code);
158        if ("food".equals(codeString))
159          return new Enumeration<AllergyIntoleranceCategory>(this, AllergyIntoleranceCategory.FOOD, code);
160        if ("medication".equals(codeString))
161          return new Enumeration<AllergyIntoleranceCategory>(this, AllergyIntoleranceCategory.MEDICATION, code);
162        if ("environment".equals(codeString))
163          return new Enumeration<AllergyIntoleranceCategory>(this, AllergyIntoleranceCategory.ENVIRONMENT, code);
164        if ("biologic".equals(codeString))
165          return new Enumeration<AllergyIntoleranceCategory>(this, AllergyIntoleranceCategory.BIOLOGIC, code);
166        throw new FHIRException("Unknown AllergyIntoleranceCategory code '"+codeString+"'");
167        }
168    public String toCode(AllergyIntoleranceCategory code) {
169      if (code == AllergyIntoleranceCategory.FOOD)
170        return "food";
171      if (code == AllergyIntoleranceCategory.MEDICATION)
172        return "medication";
173      if (code == AllergyIntoleranceCategory.ENVIRONMENT)
174        return "environment";
175      if (code == AllergyIntoleranceCategory.BIOLOGIC)
176        return "biologic";
177      return "?";
178      }
179    public String toSystem(AllergyIntoleranceCategory code) {
180      return code.getSystem();
181      }
182    }
183
184    public enum AllergyIntoleranceCriticality {
185        /**
186         * Worst case result of a future exposure is not assessed to be life-threatening or having high potential for organ system failure.
187         */
188        LOW, 
189        /**
190         * Worst case result of a future exposure is assessed to be life-threatening or having high potential for organ system failure.
191         */
192        HIGH, 
193        /**
194         * Unable to assess the worst case result of a future exposure.
195         */
196        UNABLETOASSESS, 
197        /**
198         * added to help the parsers with the generic types
199         */
200        NULL;
201        public static AllergyIntoleranceCriticality fromCode(String codeString) throws FHIRException {
202            if (codeString == null || "".equals(codeString))
203                return null;
204        if ("low".equals(codeString))
205          return LOW;
206        if ("high".equals(codeString))
207          return HIGH;
208        if ("unable-to-assess".equals(codeString))
209          return UNABLETOASSESS;
210        if (Configuration.isAcceptInvalidEnums())
211          return null;
212        else
213          throw new FHIRException("Unknown AllergyIntoleranceCriticality code '"+codeString+"'");
214        }
215        public String toCode() {
216          switch (this) {
217            case LOW: return "low";
218            case HIGH: return "high";
219            case UNABLETOASSESS: return "unable-to-assess";
220            case NULL: return null;
221            default: return "?";
222          }
223        }
224        public String getSystem() {
225          switch (this) {
226            case LOW: return "http://hl7.org/fhir/allergy-intolerance-criticality";
227            case HIGH: return "http://hl7.org/fhir/allergy-intolerance-criticality";
228            case UNABLETOASSESS: return "http://hl7.org/fhir/allergy-intolerance-criticality";
229            case NULL: return null;
230            default: return "?";
231          }
232        }
233        public String getDefinition() {
234          switch (this) {
235            case LOW: return "Worst case result of a future exposure is not assessed to be life-threatening or having high potential for organ system failure.";
236            case HIGH: return "Worst case result of a future exposure is assessed to be life-threatening or having high potential for organ system failure.";
237            case UNABLETOASSESS: return "Unable to assess the worst case result of a future exposure.";
238            case NULL: return null;
239            default: return "?";
240          }
241        }
242        public String getDisplay() {
243          switch (this) {
244            case LOW: return "Low Risk";
245            case HIGH: return "High Risk";
246            case UNABLETOASSESS: return "Unable to Assess Risk";
247            case NULL: return null;
248            default: return "?";
249          }
250        }
251    }
252
253  public static class AllergyIntoleranceCriticalityEnumFactory implements EnumFactory<AllergyIntoleranceCriticality> {
254    public AllergyIntoleranceCriticality fromCode(String codeString) throws IllegalArgumentException {
255      if (codeString == null || "".equals(codeString))
256            if (codeString == null || "".equals(codeString))
257                return null;
258        if ("low".equals(codeString))
259          return AllergyIntoleranceCriticality.LOW;
260        if ("high".equals(codeString))
261          return AllergyIntoleranceCriticality.HIGH;
262        if ("unable-to-assess".equals(codeString))
263          return AllergyIntoleranceCriticality.UNABLETOASSESS;
264        throw new IllegalArgumentException("Unknown AllergyIntoleranceCriticality code '"+codeString+"'");
265        }
266        public Enumeration<AllergyIntoleranceCriticality> fromType(PrimitiveType<?> code) throws FHIRException {
267          if (code == null)
268            return null;
269          if (code.isEmpty())
270            return new Enumeration<AllergyIntoleranceCriticality>(this, AllergyIntoleranceCriticality.NULL, code);
271          String codeString = ((PrimitiveType) code).asStringValue();
272          if (codeString == null || "".equals(codeString))
273            return new Enumeration<AllergyIntoleranceCriticality>(this, AllergyIntoleranceCriticality.NULL, code);
274        if ("low".equals(codeString))
275          return new Enumeration<AllergyIntoleranceCriticality>(this, AllergyIntoleranceCriticality.LOW, code);
276        if ("high".equals(codeString))
277          return new Enumeration<AllergyIntoleranceCriticality>(this, AllergyIntoleranceCriticality.HIGH, code);
278        if ("unable-to-assess".equals(codeString))
279          return new Enumeration<AllergyIntoleranceCriticality>(this, AllergyIntoleranceCriticality.UNABLETOASSESS, code);
280        throw new FHIRException("Unknown AllergyIntoleranceCriticality code '"+codeString+"'");
281        }
282    public String toCode(AllergyIntoleranceCriticality code) {
283      if (code == AllergyIntoleranceCriticality.LOW)
284        return "low";
285      if (code == AllergyIntoleranceCriticality.HIGH)
286        return "high";
287      if (code == AllergyIntoleranceCriticality.UNABLETOASSESS)
288        return "unable-to-assess";
289      return "?";
290      }
291    public String toSystem(AllergyIntoleranceCriticality code) {
292      return code.getSystem();
293      }
294    }
295
296    public enum AllergyIntoleranceSeverity {
297        /**
298         * Causes mild physiological effects.
299         */
300        MILD, 
301        /**
302         * Causes moderate physiological effects.
303         */
304        MODERATE, 
305        /**
306         * Causes severe physiological effects.
307         */
308        SEVERE, 
309        /**
310         * added to help the parsers with the generic types
311         */
312        NULL;
313        public static AllergyIntoleranceSeverity fromCode(String codeString) throws FHIRException {
314            if (codeString == null || "".equals(codeString))
315                return null;
316        if ("mild".equals(codeString))
317          return MILD;
318        if ("moderate".equals(codeString))
319          return MODERATE;
320        if ("severe".equals(codeString))
321          return SEVERE;
322        if (Configuration.isAcceptInvalidEnums())
323          return null;
324        else
325          throw new FHIRException("Unknown AllergyIntoleranceSeverity code '"+codeString+"'");
326        }
327        public String toCode() {
328          switch (this) {
329            case MILD: return "mild";
330            case MODERATE: return "moderate";
331            case SEVERE: return "severe";
332            case NULL: return null;
333            default: return "?";
334          }
335        }
336        public String getSystem() {
337          switch (this) {
338            case MILD: return "http://hl7.org/fhir/reaction-event-severity";
339            case MODERATE: return "http://hl7.org/fhir/reaction-event-severity";
340            case SEVERE: return "http://hl7.org/fhir/reaction-event-severity";
341            case NULL: return null;
342            default: return "?";
343          }
344        }
345        public String getDefinition() {
346          switch (this) {
347            case MILD: return "Causes mild physiological effects.";
348            case MODERATE: return "Causes moderate physiological effects.";
349            case SEVERE: return "Causes severe physiological effects.";
350            case NULL: return null;
351            default: return "?";
352          }
353        }
354        public String getDisplay() {
355          switch (this) {
356            case MILD: return "Mild";
357            case MODERATE: return "Moderate";
358            case SEVERE: return "Severe";
359            case NULL: return null;
360            default: return "?";
361          }
362        }
363    }
364
365  public static class AllergyIntoleranceSeverityEnumFactory implements EnumFactory<AllergyIntoleranceSeverity> {
366    public AllergyIntoleranceSeverity fromCode(String codeString) throws IllegalArgumentException {
367      if (codeString == null || "".equals(codeString))
368            if (codeString == null || "".equals(codeString))
369                return null;
370        if ("mild".equals(codeString))
371          return AllergyIntoleranceSeverity.MILD;
372        if ("moderate".equals(codeString))
373          return AllergyIntoleranceSeverity.MODERATE;
374        if ("severe".equals(codeString))
375          return AllergyIntoleranceSeverity.SEVERE;
376        throw new IllegalArgumentException("Unknown AllergyIntoleranceSeverity code '"+codeString+"'");
377        }
378        public Enumeration<AllergyIntoleranceSeverity> fromType(PrimitiveType<?> code) throws FHIRException {
379          if (code == null)
380            return null;
381          if (code.isEmpty())
382            return new Enumeration<AllergyIntoleranceSeverity>(this, AllergyIntoleranceSeverity.NULL, code);
383          String codeString = ((PrimitiveType) code).asStringValue();
384          if (codeString == null || "".equals(codeString))
385            return new Enumeration<AllergyIntoleranceSeverity>(this, AllergyIntoleranceSeverity.NULL, code);
386        if ("mild".equals(codeString))
387          return new Enumeration<AllergyIntoleranceSeverity>(this, AllergyIntoleranceSeverity.MILD, code);
388        if ("moderate".equals(codeString))
389          return new Enumeration<AllergyIntoleranceSeverity>(this, AllergyIntoleranceSeverity.MODERATE, code);
390        if ("severe".equals(codeString))
391          return new Enumeration<AllergyIntoleranceSeverity>(this, AllergyIntoleranceSeverity.SEVERE, code);
392        throw new FHIRException("Unknown AllergyIntoleranceSeverity code '"+codeString+"'");
393        }
394    public String toCode(AllergyIntoleranceSeverity code) {
395      if (code == AllergyIntoleranceSeverity.MILD)
396        return "mild";
397      if (code == AllergyIntoleranceSeverity.MODERATE)
398        return "moderate";
399      if (code == AllergyIntoleranceSeverity.SEVERE)
400        return "severe";
401      return "?";
402      }
403    public String toSystem(AllergyIntoleranceSeverity code) {
404      return code.getSystem();
405      }
406    }
407
408    @Block()
409    public static class AllergyIntoleranceParticipantComponent extends BackboneElement implements IBaseBackboneElement {
410        /**
411         * Distinguishes the type of involvement of the actor in the activities related to the allergy or intolerance.
412         */
413        @Child(name = "function", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=false, summary=true)
414        @Description(shortDefinition="Type of involvement", formalDefinition="Distinguishes the type of involvement of the actor in the activities related to the allergy or intolerance." )
415        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/participation-role-type")
416        protected CodeableConcept function;
417
418        /**
419         * Indicates who or what participated in the activities related to the allergy or intolerance.
420         */
421        @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)
422        @Description(shortDefinition="Who or what participated in the activities related to the allergy or intolerance", formalDefinition="Indicates who or what participated in the activities related to the allergy or intolerance." )
423        protected Reference actor;
424
425        private static final long serialVersionUID = -576943815L;
426
427    /**
428     * Constructor
429     */
430      public AllergyIntoleranceParticipantComponent() {
431        super();
432      }
433
434    /**
435     * Constructor
436     */
437      public AllergyIntoleranceParticipantComponent(Reference actor) {
438        super();
439        this.setActor(actor);
440      }
441
442        /**
443         * @return {@link #function} (Distinguishes the type of involvement of the actor in the activities related to the allergy or intolerance.)
444         */
445        public CodeableConcept getFunction() { 
446          if (this.function == null)
447            if (Configuration.errorOnAutoCreate())
448              throw new Error("Attempt to auto-create AllergyIntoleranceParticipantComponent.function");
449            else if (Configuration.doAutoCreate())
450              this.function = new CodeableConcept(); // cc
451          return this.function;
452        }
453
454        public boolean hasFunction() { 
455          return this.function != null && !this.function.isEmpty();
456        }
457
458        /**
459         * @param value {@link #function} (Distinguishes the type of involvement of the actor in the activities related to the allergy or intolerance.)
460         */
461        public AllergyIntoleranceParticipantComponent setFunction(CodeableConcept value) { 
462          this.function = value;
463          return this;
464        }
465
466        /**
467         * @return {@link #actor} (Indicates who or what participated in the activities related to the allergy or intolerance.)
468         */
469        public Reference getActor() { 
470          if (this.actor == null)
471            if (Configuration.errorOnAutoCreate())
472              throw new Error("Attempt to auto-create AllergyIntoleranceParticipantComponent.actor");
473            else if (Configuration.doAutoCreate())
474              this.actor = new Reference(); // cc
475          return this.actor;
476        }
477
478        public boolean hasActor() { 
479          return this.actor != null && !this.actor.isEmpty();
480        }
481
482        /**
483         * @param value {@link #actor} (Indicates who or what participated in the activities related to the allergy or intolerance.)
484         */
485        public AllergyIntoleranceParticipantComponent setActor(Reference value) { 
486          this.actor = value;
487          return this;
488        }
489
490        protected void listChildren(List<Property> children) {
491          super.listChildren(children);
492          children.add(new Property("function", "CodeableConcept", "Distinguishes the type of involvement of the actor in the activities related to the allergy or intolerance.", 0, 1, function));
493          children.add(new Property("actor", "Reference(Practitioner|PractitionerRole|Patient|RelatedPerson|Device|Organization|CareTeam)", "Indicates who or what participated in the activities related to the allergy or intolerance.", 0, 1, actor));
494        }
495
496        @Override
497        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
498          switch (_hash) {
499          case 1380938712: /*function*/  return new Property("function", "CodeableConcept", "Distinguishes the type of involvement of the actor in the activities related to the allergy or intolerance.", 0, 1, function);
500          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 allergy or intolerance.", 0, 1, actor);
501          default: return super.getNamedProperty(_hash, _name, _checkValid);
502          }
503
504        }
505
506      @Override
507      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
508        switch (hash) {
509        case 1380938712: /*function*/ return this.function == null ? new Base[0] : new Base[] {this.function}; // CodeableConcept
510        case 92645877: /*actor*/ return this.actor == null ? new Base[0] : new Base[] {this.actor}; // Reference
511        default: return super.getProperty(hash, name, checkValid);
512        }
513
514      }
515
516      @Override
517      public Base setProperty(int hash, String name, Base value) throws FHIRException {
518        switch (hash) {
519        case 1380938712: // function
520          this.function = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
521          return value;
522        case 92645877: // actor
523          this.actor = TypeConvertor.castToReference(value); // Reference
524          return value;
525        default: return super.setProperty(hash, name, value);
526        }
527
528      }
529
530      @Override
531      public Base setProperty(String name, Base value) throws FHIRException {
532        if (name.equals("function")) {
533          this.function = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
534        } else if (name.equals("actor")) {
535          this.actor = TypeConvertor.castToReference(value); // Reference
536        } else
537          return super.setProperty(name, value);
538        return value;
539      }
540
541  @Override
542  public void removeChild(String name, Base value) throws FHIRException {
543        if (name.equals("function")) {
544          this.function = null;
545        } else if (name.equals("actor")) {
546          this.actor = null;
547        } else
548          super.removeChild(name, value);
549        
550      }
551
552      @Override
553      public Base makeProperty(int hash, String name) throws FHIRException {
554        switch (hash) {
555        case 1380938712:  return getFunction();
556        case 92645877:  return getActor();
557        default: return super.makeProperty(hash, name);
558        }
559
560      }
561
562      @Override
563      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
564        switch (hash) {
565        case 1380938712: /*function*/ return new String[] {"CodeableConcept"};
566        case 92645877: /*actor*/ return new String[] {"Reference"};
567        default: return super.getTypesForProperty(hash, name);
568        }
569
570      }
571
572      @Override
573      public Base addChild(String name) throws FHIRException {
574        if (name.equals("function")) {
575          this.function = new CodeableConcept();
576          return this.function;
577        }
578        else if (name.equals("actor")) {
579          this.actor = new Reference();
580          return this.actor;
581        }
582        else
583          return super.addChild(name);
584      }
585
586      public AllergyIntoleranceParticipantComponent copy() {
587        AllergyIntoleranceParticipantComponent dst = new AllergyIntoleranceParticipantComponent();
588        copyValues(dst);
589        return dst;
590      }
591
592      public void copyValues(AllergyIntoleranceParticipantComponent dst) {
593        super.copyValues(dst);
594        dst.function = function == null ? null : function.copy();
595        dst.actor = actor == null ? null : actor.copy();
596      }
597
598      @Override
599      public boolean equalsDeep(Base other_) {
600        if (!super.equalsDeep(other_))
601          return false;
602        if (!(other_ instanceof AllergyIntoleranceParticipantComponent))
603          return false;
604        AllergyIntoleranceParticipantComponent o = (AllergyIntoleranceParticipantComponent) other_;
605        return compareDeep(function, o.function, true) && compareDeep(actor, o.actor, true);
606      }
607
608      @Override
609      public boolean equalsShallow(Base other_) {
610        if (!super.equalsShallow(other_))
611          return false;
612        if (!(other_ instanceof AllergyIntoleranceParticipantComponent))
613          return false;
614        AllergyIntoleranceParticipantComponent o = (AllergyIntoleranceParticipantComponent) other_;
615        return true;
616      }
617
618      public boolean isEmpty() {
619        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(function, actor);
620      }
621
622  public String fhirType() {
623    return "AllergyIntolerance.participant";
624
625  }
626
627  }
628
629    @Block()
630    public static class AllergyIntoleranceReactionComponent extends BackboneElement implements IBaseBackboneElement {
631        /**
632         * Identification of the specific substance (or pharmaceutical product) considered to be responsible for the Adverse Reaction event. Note: the substance for a specific reaction may be different from the substance identified as the cause of the risk, but it must be consistent with it. For instance, it may be a more specific substance (e.g. a brand medication) or a composite product that includes the identified substance. It must be clinically safe to only process the 'code' and ignore the 'reaction.substance'.  If a receiving system is unable to confirm that AllergyIntolerance.reaction.substance falls within the semantic scope of AllergyIntolerance.code, then the receiving system should ignore AllergyIntolerance.reaction.substance.
633         */
634        @Child(name = "substance", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=false, summary=false)
635        @Description(shortDefinition="Specific substance or pharmaceutical product considered to be responsible for event", formalDefinition="Identification of the specific substance (or pharmaceutical product) considered to be responsible for the Adverse Reaction event. Note: the substance for a specific reaction may be different from the substance identified as the cause of the risk, but it must be consistent with it. For instance, it may be a more specific substance (e.g. a brand medication) or a composite product that includes the identified substance. It must be clinically safe to only process the 'code' and ignore the 'reaction.substance'.  If a receiving system is unable to confirm that AllergyIntolerance.reaction.substance falls within the semantic scope of AllergyIntolerance.code, then the receiving system should ignore AllergyIntolerance.reaction.substance." )
636        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/substance-code")
637        protected CodeableConcept substance;
638
639        /**
640         * Clinical symptoms and/or signs that are observed or associated with the adverse reaction event.
641         */
642        @Child(name = "manifestation", type = {CodeableReference.class}, order=2, min=1, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
643        @Description(shortDefinition="Clinical symptoms/signs associated with the Event", formalDefinition="Clinical symptoms and/or signs that are observed or associated with the adverse reaction event." )
644        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/clinical-findings")
645        protected List<CodeableReference> manifestation;
646
647        /**
648         * Text description about the reaction as a whole, including details of the manifestation if required.
649         */
650        @Child(name = "description", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=false)
651        @Description(shortDefinition="Description of the event as a whole", formalDefinition="Text description about the reaction as a whole, including details of the manifestation if required." )
652        protected StringType description;
653
654        /**
655         * Record of the date and/or time of the onset of the Reaction.
656         */
657        @Child(name = "onset", type = {DateTimeType.class}, order=4, min=0, max=1, modifier=false, summary=false)
658        @Description(shortDefinition="Date(/time) when manifestations showed", formalDefinition="Record of the date and/or time of the onset of the Reaction." )
659        protected DateTimeType onset;
660
661        /**
662         * Clinical assessment of the severity of the reaction event as a whole, potentially considering multiple different manifestations.
663         */
664        @Child(name = "severity", type = {CodeType.class}, order=5, min=0, max=1, modifier=false, summary=false)
665        @Description(shortDefinition="mild | moderate | severe (of event as a whole)", formalDefinition="Clinical assessment of the severity of the reaction event as a whole, potentially considering multiple different manifestations." )
666        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/reaction-event-severity")
667        protected Enumeration<AllergyIntoleranceSeverity> severity;
668
669        /**
670         * Identification of the route by which the subject was exposed to the substance.
671         */
672        @Child(name = "exposureRoute", type = {CodeableConcept.class}, order=6, min=0, max=1, modifier=false, summary=false)
673        @Description(shortDefinition="How the subject was exposed to the substance", formalDefinition="Identification of the route by which the subject was exposed to the substance." )
674        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/route-codes")
675        protected CodeableConcept exposureRoute;
676
677        /**
678         * Additional text about the adverse reaction event not captured in other fields.
679         */
680        @Child(name = "note", type = {Annotation.class}, order=7, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
681        @Description(shortDefinition="Text about event not captured in other fields", formalDefinition="Additional text about the adverse reaction event not captured in other fields." )
682        protected List<Annotation> note;
683
684        private static final long serialVersionUID = 1007789961L;
685
686    /**
687     * Constructor
688     */
689      public AllergyIntoleranceReactionComponent() {
690        super();
691      }
692
693    /**
694     * Constructor
695     */
696      public AllergyIntoleranceReactionComponent(CodeableReference manifestation) {
697        super();
698        this.addManifestation(manifestation);
699      }
700
701        /**
702         * @return {@link #substance} (Identification of the specific substance (or pharmaceutical product) considered to be responsible for the Adverse Reaction event. Note: the substance for a specific reaction may be different from the substance identified as the cause of the risk, but it must be consistent with it. For instance, it may be a more specific substance (e.g. a brand medication) or a composite product that includes the identified substance. It must be clinically safe to only process the 'code' and ignore the 'reaction.substance'.  If a receiving system is unable to confirm that AllergyIntolerance.reaction.substance falls within the semantic scope of AllergyIntolerance.code, then the receiving system should ignore AllergyIntolerance.reaction.substance.)
703         */
704        public CodeableConcept getSubstance() { 
705          if (this.substance == null)
706            if (Configuration.errorOnAutoCreate())
707              throw new Error("Attempt to auto-create AllergyIntoleranceReactionComponent.substance");
708            else if (Configuration.doAutoCreate())
709              this.substance = new CodeableConcept(); // cc
710          return this.substance;
711        }
712
713        public boolean hasSubstance() { 
714          return this.substance != null && !this.substance.isEmpty();
715        }
716
717        /**
718         * @param value {@link #substance} (Identification of the specific substance (or pharmaceutical product) considered to be responsible for the Adverse Reaction event. Note: the substance for a specific reaction may be different from the substance identified as the cause of the risk, but it must be consistent with it. For instance, it may be a more specific substance (e.g. a brand medication) or a composite product that includes the identified substance. It must be clinically safe to only process the 'code' and ignore the 'reaction.substance'.  If a receiving system is unable to confirm that AllergyIntolerance.reaction.substance falls within the semantic scope of AllergyIntolerance.code, then the receiving system should ignore AllergyIntolerance.reaction.substance.)
719         */
720        public AllergyIntoleranceReactionComponent setSubstance(CodeableConcept value) { 
721          this.substance = value;
722          return this;
723        }
724
725        /**
726         * @return {@link #manifestation} (Clinical symptoms and/or signs that are observed or associated with the adverse reaction event.)
727         */
728        public List<CodeableReference> getManifestation() { 
729          if (this.manifestation == null)
730            this.manifestation = new ArrayList<CodeableReference>();
731          return this.manifestation;
732        }
733
734        /**
735         * @return Returns a reference to <code>this</code> for easy method chaining
736         */
737        public AllergyIntoleranceReactionComponent setManifestation(List<CodeableReference> theManifestation) { 
738          this.manifestation = theManifestation;
739          return this;
740        }
741
742        public boolean hasManifestation() { 
743          if (this.manifestation == null)
744            return false;
745          for (CodeableReference item : this.manifestation)
746            if (!item.isEmpty())
747              return true;
748          return false;
749        }
750
751        public CodeableReference addManifestation() { //3
752          CodeableReference t = new CodeableReference();
753          if (this.manifestation == null)
754            this.manifestation = new ArrayList<CodeableReference>();
755          this.manifestation.add(t);
756          return t;
757        }
758
759        public AllergyIntoleranceReactionComponent addManifestation(CodeableReference t) { //3
760          if (t == null)
761            return this;
762          if (this.manifestation == null)
763            this.manifestation = new ArrayList<CodeableReference>();
764          this.manifestation.add(t);
765          return this;
766        }
767
768        /**
769         * @return The first repetition of repeating field {@link #manifestation}, creating it if it does not already exist {3}
770         */
771        public CodeableReference getManifestationFirstRep() { 
772          if (getManifestation().isEmpty()) {
773            addManifestation();
774          }
775          return getManifestation().get(0);
776        }
777
778        /**
779         * @return {@link #description} (Text description about the reaction as a whole, including details of the manifestation if required.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
780         */
781        public StringType getDescriptionElement() { 
782          if (this.description == null)
783            if (Configuration.errorOnAutoCreate())
784              throw new Error("Attempt to auto-create AllergyIntoleranceReactionComponent.description");
785            else if (Configuration.doAutoCreate())
786              this.description = new StringType(); // bb
787          return this.description;
788        }
789
790        public boolean hasDescriptionElement() { 
791          return this.description != null && !this.description.isEmpty();
792        }
793
794        public boolean hasDescription() { 
795          return this.description != null && !this.description.isEmpty();
796        }
797
798        /**
799         * @param value {@link #description} (Text description about the reaction as a whole, including details of the manifestation if required.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
800         */
801        public AllergyIntoleranceReactionComponent setDescriptionElement(StringType value) { 
802          this.description = value;
803          return this;
804        }
805
806        /**
807         * @return Text description about the reaction as a whole, including details of the manifestation if required.
808         */
809        public String getDescription() { 
810          return this.description == null ? null : this.description.getValue();
811        }
812
813        /**
814         * @param value Text description about the reaction as a whole, including details of the manifestation if required.
815         */
816        public AllergyIntoleranceReactionComponent setDescription(String value) { 
817          if (Utilities.noString(value))
818            this.description = null;
819          else {
820            if (this.description == null)
821              this.description = new StringType();
822            this.description.setValue(value);
823          }
824          return this;
825        }
826
827        /**
828         * @return {@link #onset} (Record of the date and/or time of the onset of the Reaction.). This is the underlying object with id, value and extensions. The accessor "getOnset" gives direct access to the value
829         */
830        public DateTimeType getOnsetElement() { 
831          if (this.onset == null)
832            if (Configuration.errorOnAutoCreate())
833              throw new Error("Attempt to auto-create AllergyIntoleranceReactionComponent.onset");
834            else if (Configuration.doAutoCreate())
835              this.onset = new DateTimeType(); // bb
836          return this.onset;
837        }
838
839        public boolean hasOnsetElement() { 
840          return this.onset != null && !this.onset.isEmpty();
841        }
842
843        public boolean hasOnset() { 
844          return this.onset != null && !this.onset.isEmpty();
845        }
846
847        /**
848         * @param value {@link #onset} (Record of the date and/or time of the onset of the Reaction.). This is the underlying object with id, value and extensions. The accessor "getOnset" gives direct access to the value
849         */
850        public AllergyIntoleranceReactionComponent setOnsetElement(DateTimeType value) { 
851          this.onset = value;
852          return this;
853        }
854
855        /**
856         * @return Record of the date and/or time of the onset of the Reaction.
857         */
858        public Date getOnset() { 
859          return this.onset == null ? null : this.onset.getValue();
860        }
861
862        /**
863         * @param value Record of the date and/or time of the onset of the Reaction.
864         */
865        public AllergyIntoleranceReactionComponent setOnset(Date value) { 
866          if (value == null)
867            this.onset = null;
868          else {
869            if (this.onset == null)
870              this.onset = new DateTimeType();
871            this.onset.setValue(value);
872          }
873          return this;
874        }
875
876        /**
877         * @return {@link #severity} (Clinical assessment of the severity of the reaction event as a whole, potentially considering multiple different manifestations.). This is the underlying object with id, value and extensions. The accessor "getSeverity" gives direct access to the value
878         */
879        public Enumeration<AllergyIntoleranceSeverity> getSeverityElement() { 
880          if (this.severity == null)
881            if (Configuration.errorOnAutoCreate())
882              throw new Error("Attempt to auto-create AllergyIntoleranceReactionComponent.severity");
883            else if (Configuration.doAutoCreate())
884              this.severity = new Enumeration<AllergyIntoleranceSeverity>(new AllergyIntoleranceSeverityEnumFactory()); // bb
885          return this.severity;
886        }
887
888        public boolean hasSeverityElement() { 
889          return this.severity != null && !this.severity.isEmpty();
890        }
891
892        public boolean hasSeverity() { 
893          return this.severity != null && !this.severity.isEmpty();
894        }
895
896        /**
897         * @param value {@link #severity} (Clinical assessment of the severity of the reaction event as a whole, potentially considering multiple different manifestations.). This is the underlying object with id, value and extensions. The accessor "getSeverity" gives direct access to the value
898         */
899        public AllergyIntoleranceReactionComponent setSeverityElement(Enumeration<AllergyIntoleranceSeverity> value) { 
900          this.severity = value;
901          return this;
902        }
903
904        /**
905         * @return Clinical assessment of the severity of the reaction event as a whole, potentially considering multiple different manifestations.
906         */
907        public AllergyIntoleranceSeverity getSeverity() { 
908          return this.severity == null ? null : this.severity.getValue();
909        }
910
911        /**
912         * @param value Clinical assessment of the severity of the reaction event as a whole, potentially considering multiple different manifestations.
913         */
914        public AllergyIntoleranceReactionComponent setSeverity(AllergyIntoleranceSeverity value) { 
915          if (value == null)
916            this.severity = null;
917          else {
918            if (this.severity == null)
919              this.severity = new Enumeration<AllergyIntoleranceSeverity>(new AllergyIntoleranceSeverityEnumFactory());
920            this.severity.setValue(value);
921          }
922          return this;
923        }
924
925        /**
926         * @return {@link #exposureRoute} (Identification of the route by which the subject was exposed to the substance.)
927         */
928        public CodeableConcept getExposureRoute() { 
929          if (this.exposureRoute == null)
930            if (Configuration.errorOnAutoCreate())
931              throw new Error("Attempt to auto-create AllergyIntoleranceReactionComponent.exposureRoute");
932            else if (Configuration.doAutoCreate())
933              this.exposureRoute = new CodeableConcept(); // cc
934          return this.exposureRoute;
935        }
936
937        public boolean hasExposureRoute() { 
938          return this.exposureRoute != null && !this.exposureRoute.isEmpty();
939        }
940
941        /**
942         * @param value {@link #exposureRoute} (Identification of the route by which the subject was exposed to the substance.)
943         */
944        public AllergyIntoleranceReactionComponent setExposureRoute(CodeableConcept value) { 
945          this.exposureRoute = value;
946          return this;
947        }
948
949        /**
950         * @return {@link #note} (Additional text about the adverse reaction event not captured in other fields.)
951         */
952        public List<Annotation> getNote() { 
953          if (this.note == null)
954            this.note = new ArrayList<Annotation>();
955          return this.note;
956        }
957
958        /**
959         * @return Returns a reference to <code>this</code> for easy method chaining
960         */
961        public AllergyIntoleranceReactionComponent setNote(List<Annotation> theNote) { 
962          this.note = theNote;
963          return this;
964        }
965
966        public boolean hasNote() { 
967          if (this.note == null)
968            return false;
969          for (Annotation item : this.note)
970            if (!item.isEmpty())
971              return true;
972          return false;
973        }
974
975        public Annotation addNote() { //3
976          Annotation t = new Annotation();
977          if (this.note == null)
978            this.note = new ArrayList<Annotation>();
979          this.note.add(t);
980          return t;
981        }
982
983        public AllergyIntoleranceReactionComponent addNote(Annotation t) { //3
984          if (t == null)
985            return this;
986          if (this.note == null)
987            this.note = new ArrayList<Annotation>();
988          this.note.add(t);
989          return this;
990        }
991
992        /**
993         * @return The first repetition of repeating field {@link #note}, creating it if it does not already exist {3}
994         */
995        public Annotation getNoteFirstRep() { 
996          if (getNote().isEmpty()) {
997            addNote();
998          }
999          return getNote().get(0);
1000        }
1001
1002        protected void listChildren(List<Property> children) {
1003          super.listChildren(children);
1004          children.add(new Property("substance", "CodeableConcept", "Identification of the specific substance (or pharmaceutical product) considered to be responsible for the Adverse Reaction event. Note: the substance for a specific reaction may be different from the substance identified as the cause of the risk, but it must be consistent with it. For instance, it may be a more specific substance (e.g. a brand medication) or a composite product that includes the identified substance. It must be clinically safe to only process the 'code' and ignore the 'reaction.substance'.  If a receiving system is unable to confirm that AllergyIntolerance.reaction.substance falls within the semantic scope of AllergyIntolerance.code, then the receiving system should ignore AllergyIntolerance.reaction.substance.", 0, 1, substance));
1005          children.add(new Property("manifestation", "CodeableReference(Observation)", "Clinical symptoms and/or signs that are observed or associated with the adverse reaction event.", 0, java.lang.Integer.MAX_VALUE, manifestation));
1006          children.add(new Property("description", "string", "Text description about the reaction as a whole, including details of the manifestation if required.", 0, 1, description));
1007          children.add(new Property("onset", "dateTime", "Record of the date and/or time of the onset of the Reaction.", 0, 1, onset));
1008          children.add(new Property("severity", "code", "Clinical assessment of the severity of the reaction event as a whole, potentially considering multiple different manifestations.", 0, 1, severity));
1009          children.add(new Property("exposureRoute", "CodeableConcept", "Identification of the route by which the subject was exposed to the substance.", 0, 1, exposureRoute));
1010          children.add(new Property("note", "Annotation", "Additional text about the adverse reaction event not captured in other fields.", 0, java.lang.Integer.MAX_VALUE, note));
1011        }
1012
1013        @Override
1014        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
1015          switch (_hash) {
1016          case 530040176: /*substance*/  return new Property("substance", "CodeableConcept", "Identification of the specific substance (or pharmaceutical product) considered to be responsible for the Adverse Reaction event. Note: the substance for a specific reaction may be different from the substance identified as the cause of the risk, but it must be consistent with it. For instance, it may be a more specific substance (e.g. a brand medication) or a composite product that includes the identified substance. It must be clinically safe to only process the 'code' and ignore the 'reaction.substance'.  If a receiving system is unable to confirm that AllergyIntolerance.reaction.substance falls within the semantic scope of AllergyIntolerance.code, then the receiving system should ignore AllergyIntolerance.reaction.substance.", 0, 1, substance);
1017          case 1115984422: /*manifestation*/  return new Property("manifestation", "CodeableReference(Observation)", "Clinical symptoms and/or signs that are observed or associated with the adverse reaction event.", 0, java.lang.Integer.MAX_VALUE, manifestation);
1018          case -1724546052: /*description*/  return new Property("description", "string", "Text description about the reaction as a whole, including details of the manifestation if required.", 0, 1, description);
1019          case 105901603: /*onset*/  return new Property("onset", "dateTime", "Record of the date and/or time of the onset of the Reaction.", 0, 1, onset);
1020          case 1478300413: /*severity*/  return new Property("severity", "code", "Clinical assessment of the severity of the reaction event as a whole, potentially considering multiple different manifestations.", 0, 1, severity);
1021          case 421286274: /*exposureRoute*/  return new Property("exposureRoute", "CodeableConcept", "Identification of the route by which the subject was exposed to the substance.", 0, 1, exposureRoute);
1022          case 3387378: /*note*/  return new Property("note", "Annotation", "Additional text about the adverse reaction event not captured in other fields.", 0, java.lang.Integer.MAX_VALUE, note);
1023          default: return super.getNamedProperty(_hash, _name, _checkValid);
1024          }
1025
1026        }
1027
1028      @Override
1029      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
1030        switch (hash) {
1031        case 530040176: /*substance*/ return this.substance == null ? new Base[0] : new Base[] {this.substance}; // CodeableConcept
1032        case 1115984422: /*manifestation*/ return this.manifestation == null ? new Base[0] : this.manifestation.toArray(new Base[this.manifestation.size()]); // CodeableReference
1033        case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // StringType
1034        case 105901603: /*onset*/ return this.onset == null ? new Base[0] : new Base[] {this.onset}; // DateTimeType
1035        case 1478300413: /*severity*/ return this.severity == null ? new Base[0] : new Base[] {this.severity}; // Enumeration<AllergyIntoleranceSeverity>
1036        case 421286274: /*exposureRoute*/ return this.exposureRoute == null ? new Base[0] : new Base[] {this.exposureRoute}; // CodeableConcept
1037        case 3387378: /*note*/ return this.note == null ? new Base[0] : this.note.toArray(new Base[this.note.size()]); // Annotation
1038        default: return super.getProperty(hash, name, checkValid);
1039        }
1040
1041      }
1042
1043      @Override
1044      public Base setProperty(int hash, String name, Base value) throws FHIRException {
1045        switch (hash) {
1046        case 530040176: // substance
1047          this.substance = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1048          return value;
1049        case 1115984422: // manifestation
1050          this.getManifestation().add(TypeConvertor.castToCodeableReference(value)); // CodeableReference
1051          return value;
1052        case -1724546052: // description
1053          this.description = TypeConvertor.castToString(value); // StringType
1054          return value;
1055        case 105901603: // onset
1056          this.onset = TypeConvertor.castToDateTime(value); // DateTimeType
1057          return value;
1058        case 1478300413: // severity
1059          value = new AllergyIntoleranceSeverityEnumFactory().fromType(TypeConvertor.castToCode(value));
1060          this.severity = (Enumeration) value; // Enumeration<AllergyIntoleranceSeverity>
1061          return value;
1062        case 421286274: // exposureRoute
1063          this.exposureRoute = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1064          return value;
1065        case 3387378: // note
1066          this.getNote().add(TypeConvertor.castToAnnotation(value)); // Annotation
1067          return value;
1068        default: return super.setProperty(hash, name, value);
1069        }
1070
1071      }
1072
1073      @Override
1074      public Base setProperty(String name, Base value) throws FHIRException {
1075        if (name.equals("substance")) {
1076          this.substance = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1077        } else if (name.equals("manifestation")) {
1078          this.getManifestation().add(TypeConvertor.castToCodeableReference(value));
1079        } else if (name.equals("description")) {
1080          this.description = TypeConvertor.castToString(value); // StringType
1081        } else if (name.equals("onset")) {
1082          this.onset = TypeConvertor.castToDateTime(value); // DateTimeType
1083        } else if (name.equals("severity")) {
1084          value = new AllergyIntoleranceSeverityEnumFactory().fromType(TypeConvertor.castToCode(value));
1085          this.severity = (Enumeration) value; // Enumeration<AllergyIntoleranceSeverity>
1086        } else if (name.equals("exposureRoute")) {
1087          this.exposureRoute = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1088        } else if (name.equals("note")) {
1089          this.getNote().add(TypeConvertor.castToAnnotation(value));
1090        } else
1091          return super.setProperty(name, value);
1092        return value;
1093      }
1094
1095  @Override
1096  public void removeChild(String name, Base value) throws FHIRException {
1097        if (name.equals("substance")) {
1098          this.substance = null;
1099        } else if (name.equals("manifestation")) {
1100          this.getManifestation().remove(value);
1101        } else if (name.equals("description")) {
1102          this.description = null;
1103        } else if (name.equals("onset")) {
1104          this.onset = null;
1105        } else if (name.equals("severity")) {
1106          value = new AllergyIntoleranceSeverityEnumFactory().fromType(TypeConvertor.castToCode(value));
1107          this.severity = (Enumeration) value; // Enumeration<AllergyIntoleranceSeverity>
1108        } else if (name.equals("exposureRoute")) {
1109          this.exposureRoute = null;
1110        } else if (name.equals("note")) {
1111          this.getNote().remove(value);
1112        } else
1113          super.removeChild(name, value);
1114        
1115      }
1116
1117      @Override
1118      public Base makeProperty(int hash, String name) throws FHIRException {
1119        switch (hash) {
1120        case 530040176:  return getSubstance();
1121        case 1115984422:  return addManifestation(); 
1122        case -1724546052:  return getDescriptionElement();
1123        case 105901603:  return getOnsetElement();
1124        case 1478300413:  return getSeverityElement();
1125        case 421286274:  return getExposureRoute();
1126        case 3387378:  return addNote(); 
1127        default: return super.makeProperty(hash, name);
1128        }
1129
1130      }
1131
1132      @Override
1133      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
1134        switch (hash) {
1135        case 530040176: /*substance*/ return new String[] {"CodeableConcept"};
1136        case 1115984422: /*manifestation*/ return new String[] {"CodeableReference"};
1137        case -1724546052: /*description*/ return new String[] {"string"};
1138        case 105901603: /*onset*/ return new String[] {"dateTime"};
1139        case 1478300413: /*severity*/ return new String[] {"code"};
1140        case 421286274: /*exposureRoute*/ return new String[] {"CodeableConcept"};
1141        case 3387378: /*note*/ return new String[] {"Annotation"};
1142        default: return super.getTypesForProperty(hash, name);
1143        }
1144
1145      }
1146
1147      @Override
1148      public Base addChild(String name) throws FHIRException {
1149        if (name.equals("substance")) {
1150          this.substance = new CodeableConcept();
1151          return this.substance;
1152        }
1153        else if (name.equals("manifestation")) {
1154          return addManifestation();
1155        }
1156        else if (name.equals("description")) {
1157          throw new FHIRException("Cannot call addChild on a singleton property AllergyIntolerance.reaction.description");
1158        }
1159        else if (name.equals("onset")) {
1160          throw new FHIRException("Cannot call addChild on a singleton property AllergyIntolerance.reaction.onset");
1161        }
1162        else if (name.equals("severity")) {
1163          throw new FHIRException("Cannot call addChild on a singleton property AllergyIntolerance.reaction.severity");
1164        }
1165        else if (name.equals("exposureRoute")) {
1166          this.exposureRoute = new CodeableConcept();
1167          return this.exposureRoute;
1168        }
1169        else if (name.equals("note")) {
1170          return addNote();
1171        }
1172        else
1173          return super.addChild(name);
1174      }
1175
1176      public AllergyIntoleranceReactionComponent copy() {
1177        AllergyIntoleranceReactionComponent dst = new AllergyIntoleranceReactionComponent();
1178        copyValues(dst);
1179        return dst;
1180      }
1181
1182      public void copyValues(AllergyIntoleranceReactionComponent dst) {
1183        super.copyValues(dst);
1184        dst.substance = substance == null ? null : substance.copy();
1185        if (manifestation != null) {
1186          dst.manifestation = new ArrayList<CodeableReference>();
1187          for (CodeableReference i : manifestation)
1188            dst.manifestation.add(i.copy());
1189        };
1190        dst.description = description == null ? null : description.copy();
1191        dst.onset = onset == null ? null : onset.copy();
1192        dst.severity = severity == null ? null : severity.copy();
1193        dst.exposureRoute = exposureRoute == null ? null : exposureRoute.copy();
1194        if (note != null) {
1195          dst.note = new ArrayList<Annotation>();
1196          for (Annotation i : note)
1197            dst.note.add(i.copy());
1198        };
1199      }
1200
1201      @Override
1202      public boolean equalsDeep(Base other_) {
1203        if (!super.equalsDeep(other_))
1204          return false;
1205        if (!(other_ instanceof AllergyIntoleranceReactionComponent))
1206          return false;
1207        AllergyIntoleranceReactionComponent o = (AllergyIntoleranceReactionComponent) other_;
1208        return compareDeep(substance, o.substance, true) && compareDeep(manifestation, o.manifestation, true)
1209           && compareDeep(description, o.description, true) && compareDeep(onset, o.onset, true) && compareDeep(severity, o.severity, true)
1210           && compareDeep(exposureRoute, o.exposureRoute, true) && compareDeep(note, o.note, true);
1211      }
1212
1213      @Override
1214      public boolean equalsShallow(Base other_) {
1215        if (!super.equalsShallow(other_))
1216          return false;
1217        if (!(other_ instanceof AllergyIntoleranceReactionComponent))
1218          return false;
1219        AllergyIntoleranceReactionComponent o = (AllergyIntoleranceReactionComponent) other_;
1220        return compareValues(description, o.description, true) && compareValues(onset, o.onset, true) && compareValues(severity, o.severity, true)
1221          ;
1222      }
1223
1224      public boolean isEmpty() {
1225        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(substance, manifestation, description
1226          , onset, severity, exposureRoute, note);
1227      }
1228
1229  public String fhirType() {
1230    return "AllergyIntolerance.reaction";
1231
1232  }
1233
1234  }
1235
1236    /**
1237     * Business identifiers assigned to this AllergyIntolerance by the performer or other systems which remain constant as the resource is updated and propagates from server to server.
1238     */
1239    @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
1240    @Description(shortDefinition="External ids for this item", formalDefinition="Business identifiers assigned to this AllergyIntolerance by the performer or other systems which remain constant as the resource is updated and propagates from server to server." )
1241    protected List<Identifier> identifier;
1242
1243    /**
1244     * The clinical status of the allergy or intolerance.
1245     */
1246    @Child(name = "clinicalStatus", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=true, summary=true)
1247    @Description(shortDefinition="active | inactive | resolved", formalDefinition="The clinical status of the allergy or intolerance." )
1248    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/allergyintolerance-clinical")
1249    protected CodeableConcept clinicalStatus;
1250
1251    /**
1252     * Assertion about certainty associated with the propensity, or potential risk, of a reaction to the identified substance (including pharmaceutical product).  The verification status pertains to the allergy or intolerance, itself, not to any specific AllergyIntolerance attribute.
1253     */
1254    @Child(name = "verificationStatus", type = {CodeableConcept.class}, order=2, min=0, max=1, modifier=true, summary=true)
1255    @Description(shortDefinition="unconfirmed | presumed | confirmed | refuted | entered-in-error", formalDefinition="Assertion about certainty associated with the propensity, or potential risk, of a reaction to the identified substance (including pharmaceutical product).  The verification status pertains to the allergy or intolerance, itself, not to any specific AllergyIntolerance attribute." )
1256    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/allergyintolerance-verification")
1257    protected CodeableConcept verificationStatus;
1258
1259    /**
1260     * Identification of the underlying physiological mechanism for the reaction risk.
1261     */
1262    @Child(name = "type", type = {CodeableConcept.class}, order=3, min=0, max=1, modifier=false, summary=true)
1263    @Description(shortDefinition="allergy | intolerance - Underlying mechanism (if known)", formalDefinition="Identification of the underlying physiological mechanism for the reaction risk." )
1264    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/allergy-intolerance-type")
1265    protected CodeableConcept type;
1266
1267    /**
1268     * Category of the identified substance.
1269     */
1270    @Child(name = "category", type = {CodeType.class}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
1271    @Description(shortDefinition="food | medication | environment | biologic", formalDefinition="Category of the identified substance." )
1272    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/allergy-intolerance-category")
1273    protected List<Enumeration<AllergyIntoleranceCategory>> category;
1274
1275    /**
1276     * Estimate of the potential clinical harm, or seriousness, of the reaction to the identified substance.
1277     */
1278    @Child(name = "criticality", type = {CodeType.class}, order=5, min=0, max=1, modifier=false, summary=true)
1279    @Description(shortDefinition="low | high | unable-to-assess", formalDefinition="Estimate of the potential clinical harm, or seriousness, of the reaction to the identified substance." )
1280    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/allergy-intolerance-criticality")
1281    protected Enumeration<AllergyIntoleranceCriticality> criticality;
1282
1283    /**
1284     * Code for an allergy or intolerance statement (either a positive or a negated/excluded statement).  This may be a code for a substance or pharmaceutical product that is considered to be responsible for the adverse reaction risk (e.g., "Latex"), an allergy or intolerance condition (e.g., "Latex allergy"), or a negated/excluded code for a specific substance or class (e.g., "No latex allergy") or a general or categorical negated statement (e.g.,  "No known allergy", "No known drug allergies").  Note: the substance for a specific reaction may be different from the substance identified as the cause of the risk, but it must be consistent with it. For instance, it may be a more specific substance (e.g. a brand medication) or a composite product that includes the identified substance. It must be clinically safe to only process the 'code' and ignore the 'reaction.substance'.  If a receiving system is unable to confirm that AllergyIntolerance.reaction.substance falls within the semantic scope of AllergyIntolerance.code, then the receiving system should ignore AllergyIntolerance.reaction.substance.
1285     */
1286    @Child(name = "code", type = {CodeableConcept.class}, order=6, min=0, max=1, modifier=false, summary=true)
1287    @Description(shortDefinition="Code that identifies the allergy or intolerance", formalDefinition="Code for an allergy or intolerance statement (either a positive or a negated/excluded statement).  This may be a code for a substance or pharmaceutical product that is considered to be responsible for the adverse reaction risk (e.g., \"Latex\"), an allergy or intolerance condition (e.g., \"Latex allergy\"), or a negated/excluded code for a specific substance or class (e.g., \"No latex allergy\") or a general or categorical negated statement (e.g.,  \"No known allergy\", \"No known drug allergies\").  Note: the substance for a specific reaction may be different from the substance identified as the cause of the risk, but it must be consistent with it. For instance, it may be a more specific substance (e.g. a brand medication) or a composite product that includes the identified substance. It must be clinically safe to only process the 'code' and ignore the 'reaction.substance'.  If a receiving system is unable to confirm that AllergyIntolerance.reaction.substance falls within the semantic scope of AllergyIntolerance.code, then the receiving system should ignore AllergyIntolerance.reaction.substance." )
1288    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/allergyintolerance-code")
1289    protected CodeableConcept code;
1290
1291    /**
1292     * The patient who has the allergy or intolerance.
1293     */
1294    @Child(name = "patient", type = {Patient.class}, order=7, min=1, max=1, modifier=false, summary=true)
1295    @Description(shortDefinition="Who the allergy or intolerance is for", formalDefinition="The patient who has the allergy or intolerance." )
1296    protected Reference patient;
1297
1298    /**
1299     * The encounter when the allergy or intolerance was asserted.
1300     */
1301    @Child(name = "encounter", type = {Encounter.class}, order=8, min=0, max=1, modifier=false, summary=false)
1302    @Description(shortDefinition="Encounter when the allergy or intolerance was asserted", formalDefinition="The encounter when the allergy or intolerance was asserted." )
1303    protected Reference encounter;
1304
1305    /**
1306     * Estimated or actual date,  date-time, or age when allergy or intolerance was identified.
1307     */
1308    @Child(name = "onset", type = {DateTimeType.class, Age.class, Period.class, Range.class, StringType.class}, order=9, min=0, max=1, modifier=false, summary=false)
1309    @Description(shortDefinition="When allergy or intolerance was identified", formalDefinition="Estimated or actual date,  date-time, or age when allergy or intolerance was identified." )
1310    protected DataType onset;
1311
1312    /**
1313     * The recordedDate represents when this particular AllergyIntolerance record was created in the system, which is often a system-generated date.
1314     */
1315    @Child(name = "recordedDate", type = {DateTimeType.class}, order=10, min=0, max=1, modifier=false, summary=false)
1316    @Description(shortDefinition="Date allergy or intolerance was first recorded", formalDefinition="The recordedDate represents when this particular AllergyIntolerance record was created in the system, which is often a system-generated date." )
1317    protected DateTimeType recordedDate;
1318
1319    /**
1320     * Indicates who or what participated in the activities related to the allergy or intolerance and how they were involved.
1321     */
1322    @Child(name = "participant", type = {}, order=11, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
1323    @Description(shortDefinition="Who or what participated in the activities related to the allergy or intolerance and how they were involved", formalDefinition="Indicates who or what participated in the activities related to the allergy or intolerance and how they were involved." )
1324    protected List<AllergyIntoleranceParticipantComponent> participant;
1325
1326    /**
1327     * Represents the date and/or time of the last known occurrence of a reaction event.
1328     */
1329    @Child(name = "lastOccurrence", type = {DateTimeType.class}, order=12, min=0, max=1, modifier=false, summary=false)
1330    @Description(shortDefinition="Date(/time) of last known occurrence of a reaction", formalDefinition="Represents the date and/or time of the last known occurrence of a reaction event." )
1331    protected DateTimeType lastOccurrence;
1332
1333    /**
1334     * Additional narrative about the propensity for the Adverse Reaction, not captured in other fields.
1335     */
1336    @Child(name = "note", type = {Annotation.class}, order=13, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
1337    @Description(shortDefinition="Additional text not captured in other fields", formalDefinition="Additional narrative about the propensity for the Adverse Reaction, not captured in other fields." )
1338    protected List<Annotation> note;
1339
1340    /**
1341     * Details about each adverse reaction event linked to exposure to the identified substance.
1342     */
1343    @Child(name = "reaction", type = {}, order=14, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
1344    @Description(shortDefinition="Adverse Reaction Events linked to exposure to substance", formalDefinition="Details about each adverse reaction event linked to exposure to the identified substance." )
1345    protected List<AllergyIntoleranceReactionComponent> reaction;
1346
1347    private static final long serialVersionUID = -1955746770L;
1348
1349  /**
1350   * Constructor
1351   */
1352    public AllergyIntolerance() {
1353      super();
1354    }
1355
1356  /**
1357   * Constructor
1358   */
1359    public AllergyIntolerance(Reference patient) {
1360      super();
1361      this.setPatient(patient);
1362    }
1363
1364    /**
1365     * @return {@link #identifier} (Business identifiers assigned to this AllergyIntolerance by the performer or other systems which remain constant as the resource is updated and propagates from server to server.)
1366     */
1367    public List<Identifier> getIdentifier() { 
1368      if (this.identifier == null)
1369        this.identifier = new ArrayList<Identifier>();
1370      return this.identifier;
1371    }
1372
1373    /**
1374     * @return Returns a reference to <code>this</code> for easy method chaining
1375     */
1376    public AllergyIntolerance setIdentifier(List<Identifier> theIdentifier) { 
1377      this.identifier = theIdentifier;
1378      return this;
1379    }
1380
1381    public boolean hasIdentifier() { 
1382      if (this.identifier == null)
1383        return false;
1384      for (Identifier item : this.identifier)
1385        if (!item.isEmpty())
1386          return true;
1387      return false;
1388    }
1389
1390    public Identifier addIdentifier() { //3
1391      Identifier t = new Identifier();
1392      if (this.identifier == null)
1393        this.identifier = new ArrayList<Identifier>();
1394      this.identifier.add(t);
1395      return t;
1396    }
1397
1398    public AllergyIntolerance addIdentifier(Identifier t) { //3
1399      if (t == null)
1400        return this;
1401      if (this.identifier == null)
1402        this.identifier = new ArrayList<Identifier>();
1403      this.identifier.add(t);
1404      return this;
1405    }
1406
1407    /**
1408     * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3}
1409     */
1410    public Identifier getIdentifierFirstRep() { 
1411      if (getIdentifier().isEmpty()) {
1412        addIdentifier();
1413      }
1414      return getIdentifier().get(0);
1415    }
1416
1417    /**
1418     * @return {@link #clinicalStatus} (The clinical status of the allergy or intolerance.)
1419     */
1420    public CodeableConcept getClinicalStatus() { 
1421      if (this.clinicalStatus == null)
1422        if (Configuration.errorOnAutoCreate())
1423          throw new Error("Attempt to auto-create AllergyIntolerance.clinicalStatus");
1424        else if (Configuration.doAutoCreate())
1425          this.clinicalStatus = new CodeableConcept(); // cc
1426      return this.clinicalStatus;
1427    }
1428
1429    public boolean hasClinicalStatus() { 
1430      return this.clinicalStatus != null && !this.clinicalStatus.isEmpty();
1431    }
1432
1433    /**
1434     * @param value {@link #clinicalStatus} (The clinical status of the allergy or intolerance.)
1435     */
1436    public AllergyIntolerance setClinicalStatus(CodeableConcept value) { 
1437      this.clinicalStatus = value;
1438      return this;
1439    }
1440
1441    /**
1442     * @return {@link #verificationStatus} (Assertion about certainty associated with the propensity, or potential risk, of a reaction to the identified substance (including pharmaceutical product).  The verification status pertains to the allergy or intolerance, itself, not to any specific AllergyIntolerance attribute.)
1443     */
1444    public CodeableConcept getVerificationStatus() { 
1445      if (this.verificationStatus == null)
1446        if (Configuration.errorOnAutoCreate())
1447          throw new Error("Attempt to auto-create AllergyIntolerance.verificationStatus");
1448        else if (Configuration.doAutoCreate())
1449          this.verificationStatus = new CodeableConcept(); // cc
1450      return this.verificationStatus;
1451    }
1452
1453    public boolean hasVerificationStatus() { 
1454      return this.verificationStatus != null && !this.verificationStatus.isEmpty();
1455    }
1456
1457    /**
1458     * @param value {@link #verificationStatus} (Assertion about certainty associated with the propensity, or potential risk, of a reaction to the identified substance (including pharmaceutical product).  The verification status pertains to the allergy or intolerance, itself, not to any specific AllergyIntolerance attribute.)
1459     */
1460    public AllergyIntolerance setVerificationStatus(CodeableConcept value) { 
1461      this.verificationStatus = value;
1462      return this;
1463    }
1464
1465    /**
1466     * @return {@link #type} (Identification of the underlying physiological mechanism for the reaction risk.)
1467     */
1468    public CodeableConcept getType() { 
1469      if (this.type == null)
1470        if (Configuration.errorOnAutoCreate())
1471          throw new Error("Attempt to auto-create AllergyIntolerance.type");
1472        else if (Configuration.doAutoCreate())
1473          this.type = new CodeableConcept(); // cc
1474      return this.type;
1475    }
1476
1477    public boolean hasType() { 
1478      return this.type != null && !this.type.isEmpty();
1479    }
1480
1481    /**
1482     * @param value {@link #type} (Identification of the underlying physiological mechanism for the reaction risk.)
1483     */
1484    public AllergyIntolerance setType(CodeableConcept value) { 
1485      this.type = value;
1486      return this;
1487    }
1488
1489    /**
1490     * @return {@link #category} (Category of the identified substance.)
1491     */
1492    public List<Enumeration<AllergyIntoleranceCategory>> getCategory() { 
1493      if (this.category == null)
1494        this.category = new ArrayList<Enumeration<AllergyIntoleranceCategory>>();
1495      return this.category;
1496    }
1497
1498    /**
1499     * @return Returns a reference to <code>this</code> for easy method chaining
1500     */
1501    public AllergyIntolerance setCategory(List<Enumeration<AllergyIntoleranceCategory>> theCategory) { 
1502      this.category = theCategory;
1503      return this;
1504    }
1505
1506    public boolean hasCategory() { 
1507      if (this.category == null)
1508        return false;
1509      for (Enumeration<AllergyIntoleranceCategory> item : this.category)
1510        if (!item.isEmpty())
1511          return true;
1512      return false;
1513    }
1514
1515    /**
1516     * @return {@link #category} (Category of the identified substance.)
1517     */
1518    public Enumeration<AllergyIntoleranceCategory> addCategoryElement() {//2 
1519      Enumeration<AllergyIntoleranceCategory> t = new Enumeration<AllergyIntoleranceCategory>(new AllergyIntoleranceCategoryEnumFactory());
1520      if (this.category == null)
1521        this.category = new ArrayList<Enumeration<AllergyIntoleranceCategory>>();
1522      this.category.add(t);
1523      return t;
1524    }
1525
1526    /**
1527     * @param value {@link #category} (Category of the identified substance.)
1528     */
1529    public AllergyIntolerance addCategory(AllergyIntoleranceCategory value) { //1
1530      Enumeration<AllergyIntoleranceCategory> t = new Enumeration<AllergyIntoleranceCategory>(new AllergyIntoleranceCategoryEnumFactory());
1531      t.setValue(value);
1532      if (this.category == null)
1533        this.category = new ArrayList<Enumeration<AllergyIntoleranceCategory>>();
1534      this.category.add(t);
1535      return this;
1536    }
1537
1538    /**
1539     * @param value {@link #category} (Category of the identified substance.)
1540     */
1541    public boolean hasCategory(AllergyIntoleranceCategory value) { 
1542      if (this.category == null)
1543        return false;
1544      for (Enumeration<AllergyIntoleranceCategory> v : this.category)
1545        if (v.getValue().equals(value)) // code
1546          return true;
1547      return false;
1548    }
1549
1550    /**
1551     * @return {@link #criticality} (Estimate of the potential clinical harm, or seriousness, of the reaction to the identified substance.). This is the underlying object with id, value and extensions. The accessor "getCriticality" gives direct access to the value
1552     */
1553    public Enumeration<AllergyIntoleranceCriticality> getCriticalityElement() { 
1554      if (this.criticality == null)
1555        if (Configuration.errorOnAutoCreate())
1556          throw new Error("Attempt to auto-create AllergyIntolerance.criticality");
1557        else if (Configuration.doAutoCreate())
1558          this.criticality = new Enumeration<AllergyIntoleranceCriticality>(new AllergyIntoleranceCriticalityEnumFactory()); // bb
1559      return this.criticality;
1560    }
1561
1562    public boolean hasCriticalityElement() { 
1563      return this.criticality != null && !this.criticality.isEmpty();
1564    }
1565
1566    public boolean hasCriticality() { 
1567      return this.criticality != null && !this.criticality.isEmpty();
1568    }
1569
1570    /**
1571     * @param value {@link #criticality} (Estimate of the potential clinical harm, or seriousness, of the reaction to the identified substance.). This is the underlying object with id, value and extensions. The accessor "getCriticality" gives direct access to the value
1572     */
1573    public AllergyIntolerance setCriticalityElement(Enumeration<AllergyIntoleranceCriticality> value) { 
1574      this.criticality = value;
1575      return this;
1576    }
1577
1578    /**
1579     * @return Estimate of the potential clinical harm, or seriousness, of the reaction to the identified substance.
1580     */
1581    public AllergyIntoleranceCriticality getCriticality() { 
1582      return this.criticality == null ? null : this.criticality.getValue();
1583    }
1584
1585    /**
1586     * @param value Estimate of the potential clinical harm, or seriousness, of the reaction to the identified substance.
1587     */
1588    public AllergyIntolerance setCriticality(AllergyIntoleranceCriticality value) { 
1589      if (value == null)
1590        this.criticality = null;
1591      else {
1592        if (this.criticality == null)
1593          this.criticality = new Enumeration<AllergyIntoleranceCriticality>(new AllergyIntoleranceCriticalityEnumFactory());
1594        this.criticality.setValue(value);
1595      }
1596      return this;
1597    }
1598
1599    /**
1600     * @return {@link #code} (Code for an allergy or intolerance statement (either a positive or a negated/excluded statement).  This may be a code for a substance or pharmaceutical product that is considered to be responsible for the adverse reaction risk (e.g., "Latex"), an allergy or intolerance condition (e.g., "Latex allergy"), or a negated/excluded code for a specific substance or class (e.g., "No latex allergy") or a general or categorical negated statement (e.g.,  "No known allergy", "No known drug allergies").  Note: the substance for a specific reaction may be different from the substance identified as the cause of the risk, but it must be consistent with it. For instance, it may be a more specific substance (e.g. a brand medication) or a composite product that includes the identified substance. It must be clinically safe to only process the 'code' and ignore the 'reaction.substance'.  If a receiving system is unable to confirm that AllergyIntolerance.reaction.substance falls within the semantic scope of AllergyIntolerance.code, then the receiving system should ignore AllergyIntolerance.reaction.substance.)
1601     */
1602    public CodeableConcept getCode() { 
1603      if (this.code == null)
1604        if (Configuration.errorOnAutoCreate())
1605          throw new Error("Attempt to auto-create AllergyIntolerance.code");
1606        else if (Configuration.doAutoCreate())
1607          this.code = new CodeableConcept(); // cc
1608      return this.code;
1609    }
1610
1611    public boolean hasCode() { 
1612      return this.code != null && !this.code.isEmpty();
1613    }
1614
1615    /**
1616     * @param value {@link #code} (Code for an allergy or intolerance statement (either a positive or a negated/excluded statement).  This may be a code for a substance or pharmaceutical product that is considered to be responsible for the adverse reaction risk (e.g., "Latex"), an allergy or intolerance condition (e.g., "Latex allergy"), or a negated/excluded code for a specific substance or class (e.g., "No latex allergy") or a general or categorical negated statement (e.g.,  "No known allergy", "No known drug allergies").  Note: the substance for a specific reaction may be different from the substance identified as the cause of the risk, but it must be consistent with it. For instance, it may be a more specific substance (e.g. a brand medication) or a composite product that includes the identified substance. It must be clinically safe to only process the 'code' and ignore the 'reaction.substance'.  If a receiving system is unable to confirm that AllergyIntolerance.reaction.substance falls within the semantic scope of AllergyIntolerance.code, then the receiving system should ignore AllergyIntolerance.reaction.substance.)
1617     */
1618    public AllergyIntolerance setCode(CodeableConcept value) { 
1619      this.code = value;
1620      return this;
1621    }
1622
1623    /**
1624     * @return {@link #patient} (The patient who has the allergy or intolerance.)
1625     */
1626    public Reference getPatient() { 
1627      if (this.patient == null)
1628        if (Configuration.errorOnAutoCreate())
1629          throw new Error("Attempt to auto-create AllergyIntolerance.patient");
1630        else if (Configuration.doAutoCreate())
1631          this.patient = new Reference(); // cc
1632      return this.patient;
1633    }
1634
1635    public boolean hasPatient() { 
1636      return this.patient != null && !this.patient.isEmpty();
1637    }
1638
1639    /**
1640     * @param value {@link #patient} (The patient who has the allergy or intolerance.)
1641     */
1642    public AllergyIntolerance setPatient(Reference value) { 
1643      this.patient = value;
1644      return this;
1645    }
1646
1647    /**
1648     * @return {@link #encounter} (The encounter when the allergy or intolerance was asserted.)
1649     */
1650    public Reference getEncounter() { 
1651      if (this.encounter == null)
1652        if (Configuration.errorOnAutoCreate())
1653          throw new Error("Attempt to auto-create AllergyIntolerance.encounter");
1654        else if (Configuration.doAutoCreate())
1655          this.encounter = new Reference(); // cc
1656      return this.encounter;
1657    }
1658
1659    public boolean hasEncounter() { 
1660      return this.encounter != null && !this.encounter.isEmpty();
1661    }
1662
1663    /**
1664     * @param value {@link #encounter} (The encounter when the allergy or intolerance was asserted.)
1665     */
1666    public AllergyIntolerance setEncounter(Reference value) { 
1667      this.encounter = value;
1668      return this;
1669    }
1670
1671    /**
1672     * @return {@link #onset} (Estimated or actual date,  date-time, or age when allergy or intolerance was identified.)
1673     */
1674    public DataType getOnset() { 
1675      return this.onset;
1676    }
1677
1678    /**
1679     * @return {@link #onset} (Estimated or actual date,  date-time, or age when allergy or intolerance was identified.)
1680     */
1681    public DateTimeType getOnsetDateTimeType() throws FHIRException { 
1682      if (this.onset == null)
1683        this.onset = new DateTimeType();
1684      if (!(this.onset instanceof DateTimeType))
1685        throw new FHIRException("Type mismatch: the type DateTimeType was expected, but "+this.onset.getClass().getName()+" was encountered");
1686      return (DateTimeType) this.onset;
1687    }
1688
1689    public boolean hasOnsetDateTimeType() { 
1690      return this != null && this.onset instanceof DateTimeType;
1691    }
1692
1693    /**
1694     * @return {@link #onset} (Estimated or actual date,  date-time, or age when allergy or intolerance was identified.)
1695     */
1696    public Age getOnsetAge() throws FHIRException { 
1697      if (this.onset == null)
1698        this.onset = new Age();
1699      if (!(this.onset instanceof Age))
1700        throw new FHIRException("Type mismatch: the type Age was expected, but "+this.onset.getClass().getName()+" was encountered");
1701      return (Age) this.onset;
1702    }
1703
1704    public boolean hasOnsetAge() { 
1705      return this != null && this.onset instanceof Age;
1706    }
1707
1708    /**
1709     * @return {@link #onset} (Estimated or actual date,  date-time, or age when allergy or intolerance was identified.)
1710     */
1711    public Period getOnsetPeriod() throws FHIRException { 
1712      if (this.onset == null)
1713        this.onset = new Period();
1714      if (!(this.onset instanceof Period))
1715        throw new FHIRException("Type mismatch: the type Period was expected, but "+this.onset.getClass().getName()+" was encountered");
1716      return (Period) this.onset;
1717    }
1718
1719    public boolean hasOnsetPeriod() { 
1720      return this != null && this.onset instanceof Period;
1721    }
1722
1723    /**
1724     * @return {@link #onset} (Estimated or actual date,  date-time, or age when allergy or intolerance was identified.)
1725     */
1726    public Range getOnsetRange() throws FHIRException { 
1727      if (this.onset == null)
1728        this.onset = new Range();
1729      if (!(this.onset instanceof Range))
1730        throw new FHIRException("Type mismatch: the type Range was expected, but "+this.onset.getClass().getName()+" was encountered");
1731      return (Range) this.onset;
1732    }
1733
1734    public boolean hasOnsetRange() { 
1735      return this != null && this.onset instanceof Range;
1736    }
1737
1738    /**
1739     * @return {@link #onset} (Estimated or actual date,  date-time, or age when allergy or intolerance was identified.)
1740     */
1741    public StringType getOnsetStringType() throws FHIRException { 
1742      if (this.onset == null)
1743        this.onset = new StringType();
1744      if (!(this.onset instanceof StringType))
1745        throw new FHIRException("Type mismatch: the type StringType was expected, but "+this.onset.getClass().getName()+" was encountered");
1746      return (StringType) this.onset;
1747    }
1748
1749    public boolean hasOnsetStringType() { 
1750      return this != null && this.onset instanceof StringType;
1751    }
1752
1753    public boolean hasOnset() { 
1754      return this.onset != null && !this.onset.isEmpty();
1755    }
1756
1757    /**
1758     * @param value {@link #onset} (Estimated or actual date,  date-time, or age when allergy or intolerance was identified.)
1759     */
1760    public AllergyIntolerance setOnset(DataType value) { 
1761      if (value != null && !(value instanceof DateTimeType || value instanceof Age || value instanceof Period || value instanceof Range || value instanceof StringType))
1762        throw new FHIRException("Not the right type for AllergyIntolerance.onset[x]: "+value.fhirType());
1763      this.onset = value;
1764      return this;
1765    }
1766
1767    /**
1768     * @return {@link #recordedDate} (The recordedDate represents when this particular AllergyIntolerance 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
1769     */
1770    public DateTimeType getRecordedDateElement() { 
1771      if (this.recordedDate == null)
1772        if (Configuration.errorOnAutoCreate())
1773          throw new Error("Attempt to auto-create AllergyIntolerance.recordedDate");
1774        else if (Configuration.doAutoCreate())
1775          this.recordedDate = new DateTimeType(); // bb
1776      return this.recordedDate;
1777    }
1778
1779    public boolean hasRecordedDateElement() { 
1780      return this.recordedDate != null && !this.recordedDate.isEmpty();
1781    }
1782
1783    public boolean hasRecordedDate() { 
1784      return this.recordedDate != null && !this.recordedDate.isEmpty();
1785    }
1786
1787    /**
1788     * @param value {@link #recordedDate} (The recordedDate represents when this particular AllergyIntolerance 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
1789     */
1790    public AllergyIntolerance setRecordedDateElement(DateTimeType value) { 
1791      this.recordedDate = value;
1792      return this;
1793    }
1794
1795    /**
1796     * @return The recordedDate represents when this particular AllergyIntolerance record was created in the system, which is often a system-generated date.
1797     */
1798    public Date getRecordedDate() { 
1799      return this.recordedDate == null ? null : this.recordedDate.getValue();
1800    }
1801
1802    /**
1803     * @param value The recordedDate represents when this particular AllergyIntolerance record was created in the system, which is often a system-generated date.
1804     */
1805    public AllergyIntolerance setRecordedDate(Date value) { 
1806      if (value == null)
1807        this.recordedDate = null;
1808      else {
1809        if (this.recordedDate == null)
1810          this.recordedDate = new DateTimeType();
1811        this.recordedDate.setValue(value);
1812      }
1813      return this;
1814    }
1815
1816    /**
1817     * @return {@link #participant} (Indicates who or what participated in the activities related to the allergy or intolerance and how they were involved.)
1818     */
1819    public List<AllergyIntoleranceParticipantComponent> getParticipant() { 
1820      if (this.participant == null)
1821        this.participant = new ArrayList<AllergyIntoleranceParticipantComponent>();
1822      return this.participant;
1823    }
1824
1825    /**
1826     * @return Returns a reference to <code>this</code> for easy method chaining
1827     */
1828    public AllergyIntolerance setParticipant(List<AllergyIntoleranceParticipantComponent> theParticipant) { 
1829      this.participant = theParticipant;
1830      return this;
1831    }
1832
1833    public boolean hasParticipant() { 
1834      if (this.participant == null)
1835        return false;
1836      for (AllergyIntoleranceParticipantComponent item : this.participant)
1837        if (!item.isEmpty())
1838          return true;
1839      return false;
1840    }
1841
1842    public AllergyIntoleranceParticipantComponent addParticipant() { //3
1843      AllergyIntoleranceParticipantComponent t = new AllergyIntoleranceParticipantComponent();
1844      if (this.participant == null)
1845        this.participant = new ArrayList<AllergyIntoleranceParticipantComponent>();
1846      this.participant.add(t);
1847      return t;
1848    }
1849
1850    public AllergyIntolerance addParticipant(AllergyIntoleranceParticipantComponent t) { //3
1851      if (t == null)
1852        return this;
1853      if (this.participant == null)
1854        this.participant = new ArrayList<AllergyIntoleranceParticipantComponent>();
1855      this.participant.add(t);
1856      return this;
1857    }
1858
1859    /**
1860     * @return The first repetition of repeating field {@link #participant}, creating it if it does not already exist {3}
1861     */
1862    public AllergyIntoleranceParticipantComponent getParticipantFirstRep() { 
1863      if (getParticipant().isEmpty()) {
1864        addParticipant();
1865      }
1866      return getParticipant().get(0);
1867    }
1868
1869    /**
1870     * @return {@link #lastOccurrence} (Represents the date and/or time of the last known occurrence of a reaction event.). This is the underlying object with id, value and extensions. The accessor "getLastOccurrence" gives direct access to the value
1871     */
1872    public DateTimeType getLastOccurrenceElement() { 
1873      if (this.lastOccurrence == null)
1874        if (Configuration.errorOnAutoCreate())
1875          throw new Error("Attempt to auto-create AllergyIntolerance.lastOccurrence");
1876        else if (Configuration.doAutoCreate())
1877          this.lastOccurrence = new DateTimeType(); // bb
1878      return this.lastOccurrence;
1879    }
1880
1881    public boolean hasLastOccurrenceElement() { 
1882      return this.lastOccurrence != null && !this.lastOccurrence.isEmpty();
1883    }
1884
1885    public boolean hasLastOccurrence() { 
1886      return this.lastOccurrence != null && !this.lastOccurrence.isEmpty();
1887    }
1888
1889    /**
1890     * @param value {@link #lastOccurrence} (Represents the date and/or time of the last known occurrence of a reaction event.). This is the underlying object with id, value and extensions. The accessor "getLastOccurrence" gives direct access to the value
1891     */
1892    public AllergyIntolerance setLastOccurrenceElement(DateTimeType value) { 
1893      this.lastOccurrence = value;
1894      return this;
1895    }
1896
1897    /**
1898     * @return Represents the date and/or time of the last known occurrence of a reaction event.
1899     */
1900    public Date getLastOccurrence() { 
1901      return this.lastOccurrence == null ? null : this.lastOccurrence.getValue();
1902    }
1903
1904    /**
1905     * @param value Represents the date and/or time of the last known occurrence of a reaction event.
1906     */
1907    public AllergyIntolerance setLastOccurrence(Date value) { 
1908      if (value == null)
1909        this.lastOccurrence = null;
1910      else {
1911        if (this.lastOccurrence == null)
1912          this.lastOccurrence = new DateTimeType();
1913        this.lastOccurrence.setValue(value);
1914      }
1915      return this;
1916    }
1917
1918    /**
1919     * @return {@link #note} (Additional narrative about the propensity for the Adverse Reaction, not captured in other fields.)
1920     */
1921    public List<Annotation> getNote() { 
1922      if (this.note == null)
1923        this.note = new ArrayList<Annotation>();
1924      return this.note;
1925    }
1926
1927    /**
1928     * @return Returns a reference to <code>this</code> for easy method chaining
1929     */
1930    public AllergyIntolerance setNote(List<Annotation> theNote) { 
1931      this.note = theNote;
1932      return this;
1933    }
1934
1935    public boolean hasNote() { 
1936      if (this.note == null)
1937        return false;
1938      for (Annotation item : this.note)
1939        if (!item.isEmpty())
1940          return true;
1941      return false;
1942    }
1943
1944    public Annotation addNote() { //3
1945      Annotation t = new Annotation();
1946      if (this.note == null)
1947        this.note = new ArrayList<Annotation>();
1948      this.note.add(t);
1949      return t;
1950    }
1951
1952    public AllergyIntolerance addNote(Annotation t) { //3
1953      if (t == null)
1954        return this;
1955      if (this.note == null)
1956        this.note = new ArrayList<Annotation>();
1957      this.note.add(t);
1958      return this;
1959    }
1960
1961    /**
1962     * @return The first repetition of repeating field {@link #note}, creating it if it does not already exist {3}
1963     */
1964    public Annotation getNoteFirstRep() { 
1965      if (getNote().isEmpty()) {
1966        addNote();
1967      }
1968      return getNote().get(0);
1969    }
1970
1971    /**
1972     * @return {@link #reaction} (Details about each adverse reaction event linked to exposure to the identified substance.)
1973     */
1974    public List<AllergyIntoleranceReactionComponent> getReaction() { 
1975      if (this.reaction == null)
1976        this.reaction = new ArrayList<AllergyIntoleranceReactionComponent>();
1977      return this.reaction;
1978    }
1979
1980    /**
1981     * @return Returns a reference to <code>this</code> for easy method chaining
1982     */
1983    public AllergyIntolerance setReaction(List<AllergyIntoleranceReactionComponent> theReaction) { 
1984      this.reaction = theReaction;
1985      return this;
1986    }
1987
1988    public boolean hasReaction() { 
1989      if (this.reaction == null)
1990        return false;
1991      for (AllergyIntoleranceReactionComponent item : this.reaction)
1992        if (!item.isEmpty())
1993          return true;
1994      return false;
1995    }
1996
1997    public AllergyIntoleranceReactionComponent addReaction() { //3
1998      AllergyIntoleranceReactionComponent t = new AllergyIntoleranceReactionComponent();
1999      if (this.reaction == null)
2000        this.reaction = new ArrayList<AllergyIntoleranceReactionComponent>();
2001      this.reaction.add(t);
2002      return t;
2003    }
2004
2005    public AllergyIntolerance addReaction(AllergyIntoleranceReactionComponent t) { //3
2006      if (t == null)
2007        return this;
2008      if (this.reaction == null)
2009        this.reaction = new ArrayList<AllergyIntoleranceReactionComponent>();
2010      this.reaction.add(t);
2011      return this;
2012    }
2013
2014    /**
2015     * @return The first repetition of repeating field {@link #reaction}, creating it if it does not already exist {3}
2016     */
2017    public AllergyIntoleranceReactionComponent getReactionFirstRep() { 
2018      if (getReaction().isEmpty()) {
2019        addReaction();
2020      }
2021      return getReaction().get(0);
2022    }
2023
2024      protected void listChildren(List<Property> children) {
2025        super.listChildren(children);
2026        children.add(new Property("identifier", "Identifier", "Business identifiers assigned to this AllergyIntolerance 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));
2027        children.add(new Property("clinicalStatus", "CodeableConcept", "The clinical status of the allergy or intolerance.", 0, 1, clinicalStatus));
2028        children.add(new Property("verificationStatus", "CodeableConcept", "Assertion about certainty associated with the propensity, or potential risk, of a reaction to the identified substance (including pharmaceutical product).  The verification status pertains to the allergy or intolerance, itself, not to any specific AllergyIntolerance attribute.", 0, 1, verificationStatus));
2029        children.add(new Property("type", "CodeableConcept", "Identification of the underlying physiological mechanism for the reaction risk.", 0, 1, type));
2030        children.add(new Property("category", "code", "Category of the identified substance.", 0, java.lang.Integer.MAX_VALUE, category));
2031        children.add(new Property("criticality", "code", "Estimate of the potential clinical harm, or seriousness, of the reaction to the identified substance.", 0, 1, criticality));
2032        children.add(new Property("code", "CodeableConcept", "Code for an allergy or intolerance statement (either a positive or a negated/excluded statement).  This may be a code for a substance or pharmaceutical product that is considered to be responsible for the adverse reaction risk (e.g., \"Latex\"), an allergy or intolerance condition (e.g., \"Latex allergy\"), or a negated/excluded code for a specific substance or class (e.g., \"No latex allergy\") or a general or categorical negated statement (e.g.,  \"No known allergy\", \"No known drug allergies\").  Note: the substance for a specific reaction may be different from the substance identified as the cause of the risk, but it must be consistent with it. For instance, it may be a more specific substance (e.g. a brand medication) or a composite product that includes the identified substance. It must be clinically safe to only process the 'code' and ignore the 'reaction.substance'.  If a receiving system is unable to confirm that AllergyIntolerance.reaction.substance falls within the semantic scope of AllergyIntolerance.code, then the receiving system should ignore AllergyIntolerance.reaction.substance.", 0, 1, code));
2033        children.add(new Property("patient", "Reference(Patient)", "The patient who has the allergy or intolerance.", 0, 1, patient));
2034        children.add(new Property("encounter", "Reference(Encounter)", "The encounter when the allergy or intolerance was asserted.", 0, 1, encounter));
2035        children.add(new Property("onset[x]", "dateTime|Age|Period|Range|string", "Estimated or actual date,  date-time, or age when allergy or intolerance was identified.", 0, 1, onset));
2036        children.add(new Property("recordedDate", "dateTime", "The recordedDate represents when this particular AllergyIntolerance record was created in the system, which is often a system-generated date.", 0, 1, recordedDate));
2037        children.add(new Property("participant", "", "Indicates who or what participated in the activities related to the allergy or intolerance and how they were involved.", 0, java.lang.Integer.MAX_VALUE, participant));
2038        children.add(new Property("lastOccurrence", "dateTime", "Represents the date and/or time of the last known occurrence of a reaction event.", 0, 1, lastOccurrence));
2039        children.add(new Property("note", "Annotation", "Additional narrative about the propensity for the Adverse Reaction, not captured in other fields.", 0, java.lang.Integer.MAX_VALUE, note));
2040        children.add(new Property("reaction", "", "Details about each adverse reaction event linked to exposure to the identified substance.", 0, java.lang.Integer.MAX_VALUE, reaction));
2041      }
2042
2043      @Override
2044      public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
2045        switch (_hash) {
2046        case -1618432855: /*identifier*/  return new Property("identifier", "Identifier", "Business identifiers assigned to this AllergyIntolerance 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);
2047        case -462853915: /*clinicalStatus*/  return new Property("clinicalStatus", "CodeableConcept", "The clinical status of the allergy or intolerance.", 0, 1, clinicalStatus);
2048        case -842509843: /*verificationStatus*/  return new Property("verificationStatus", "CodeableConcept", "Assertion about certainty associated with the propensity, or potential risk, of a reaction to the identified substance (including pharmaceutical product).  The verification status pertains to the allergy or intolerance, itself, not to any specific AllergyIntolerance attribute.", 0, 1, verificationStatus);
2049        case 3575610: /*type*/  return new Property("type", "CodeableConcept", "Identification of the underlying physiological mechanism for the reaction risk.", 0, 1, type);
2050        case 50511102: /*category*/  return new Property("category", "code", "Category of the identified substance.", 0, java.lang.Integer.MAX_VALUE, category);
2051        case -1608054609: /*criticality*/  return new Property("criticality", "code", "Estimate of the potential clinical harm, or seriousness, of the reaction to the identified substance.", 0, 1, criticality);
2052        case 3059181: /*code*/  return new Property("code", "CodeableConcept", "Code for an allergy or intolerance statement (either a positive or a negated/excluded statement).  This may be a code for a substance or pharmaceutical product that is considered to be responsible for the adverse reaction risk (e.g., \"Latex\"), an allergy or intolerance condition (e.g., \"Latex allergy\"), or a negated/excluded code for a specific substance or class (e.g., \"No latex allergy\") or a general or categorical negated statement (e.g.,  \"No known allergy\", \"No known drug allergies\").  Note: the substance for a specific reaction may be different from the substance identified as the cause of the risk, but it must be consistent with it. For instance, it may be a more specific substance (e.g. a brand medication) or a composite product that includes the identified substance. It must be clinically safe to only process the 'code' and ignore the 'reaction.substance'.  If a receiving system is unable to confirm that AllergyIntolerance.reaction.substance falls within the semantic scope of AllergyIntolerance.code, then the receiving system should ignore AllergyIntolerance.reaction.substance.", 0, 1, code);
2053        case -791418107: /*patient*/  return new Property("patient", "Reference(Patient)", "The patient who has the allergy or intolerance.", 0, 1, patient);
2054        case 1524132147: /*encounter*/  return new Property("encounter", "Reference(Encounter)", "The encounter when the allergy or intolerance was asserted.", 0, 1, encounter);
2055        case -1886216323: /*onset[x]*/  return new Property("onset[x]", "dateTime|Age|Period|Range|string", "Estimated or actual date,  date-time, or age when allergy or intolerance was identified.", 0, 1, onset);
2056        case 105901603: /*onset*/  return new Property("onset[x]", "dateTime|Age|Period|Range|string", "Estimated or actual date,  date-time, or age when allergy or intolerance was identified.", 0, 1, onset);
2057        case -1701663010: /*onsetDateTime*/  return new Property("onset[x]", "dateTime", "Estimated or actual date,  date-time, or age when allergy or intolerance was identified.", 0, 1, onset);
2058        case -1886241828: /*onsetAge*/  return new Property("onset[x]", "Age", "Estimated or actual date,  date-time, or age when allergy or intolerance was identified.", 0, 1, onset);
2059        case -1545082428: /*onsetPeriod*/  return new Property("onset[x]", "Period", "Estimated or actual date,  date-time, or age when allergy or intolerance was identified.", 0, 1, onset);
2060        case -186664742: /*onsetRange*/  return new Property("onset[x]", "Range", "Estimated or actual date,  date-time, or age when allergy or intolerance was identified.", 0, 1, onset);
2061        case -1445342188: /*onsetString*/  return new Property("onset[x]", "string", "Estimated or actual date,  date-time, or age when allergy or intolerance was identified.", 0, 1, onset);
2062        case -1952893826: /*recordedDate*/  return new Property("recordedDate", "dateTime", "The recordedDate represents when this particular AllergyIntolerance record was created in the system, which is often a system-generated date.", 0, 1, recordedDate);
2063        case 767422259: /*participant*/  return new Property("participant", "", "Indicates who or what participated in the activities related to the allergy or intolerance and how they were involved.", 0, java.lang.Integer.MAX_VALUE, participant);
2064        case 1896977671: /*lastOccurrence*/  return new Property("lastOccurrence", "dateTime", "Represents the date and/or time of the last known occurrence of a reaction event.", 0, 1, lastOccurrence);
2065        case 3387378: /*note*/  return new Property("note", "Annotation", "Additional narrative about the propensity for the Adverse Reaction, not captured in other fields.", 0, java.lang.Integer.MAX_VALUE, note);
2066        case -867509719: /*reaction*/  return new Property("reaction", "", "Details about each adverse reaction event linked to exposure to the identified substance.", 0, java.lang.Integer.MAX_VALUE, reaction);
2067        default: return super.getNamedProperty(_hash, _name, _checkValid);
2068        }
2069
2070      }
2071
2072      @Override
2073      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
2074        switch (hash) {
2075        case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier
2076        case -462853915: /*clinicalStatus*/ return this.clinicalStatus == null ? new Base[0] : new Base[] {this.clinicalStatus}; // CodeableConcept
2077        case -842509843: /*verificationStatus*/ return this.verificationStatus == null ? new Base[0] : new Base[] {this.verificationStatus}; // CodeableConcept
2078        case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // CodeableConcept
2079        case 50511102: /*category*/ return this.category == null ? new Base[0] : this.category.toArray(new Base[this.category.size()]); // Enumeration<AllergyIntoleranceCategory>
2080        case -1608054609: /*criticality*/ return this.criticality == null ? new Base[0] : new Base[] {this.criticality}; // Enumeration<AllergyIntoleranceCriticality>
2081        case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept
2082        case -791418107: /*patient*/ return this.patient == null ? new Base[0] : new Base[] {this.patient}; // Reference
2083        case 1524132147: /*encounter*/ return this.encounter == null ? new Base[0] : new Base[] {this.encounter}; // Reference
2084        case 105901603: /*onset*/ return this.onset == null ? new Base[0] : new Base[] {this.onset}; // DataType
2085        case -1952893826: /*recordedDate*/ return this.recordedDate == null ? new Base[0] : new Base[] {this.recordedDate}; // DateTimeType
2086        case 767422259: /*participant*/ return this.participant == null ? new Base[0] : this.participant.toArray(new Base[this.participant.size()]); // AllergyIntoleranceParticipantComponent
2087        case 1896977671: /*lastOccurrence*/ return this.lastOccurrence == null ? new Base[0] : new Base[] {this.lastOccurrence}; // DateTimeType
2088        case 3387378: /*note*/ return this.note == null ? new Base[0] : this.note.toArray(new Base[this.note.size()]); // Annotation
2089        case -867509719: /*reaction*/ return this.reaction == null ? new Base[0] : this.reaction.toArray(new Base[this.reaction.size()]); // AllergyIntoleranceReactionComponent
2090        default: return super.getProperty(hash, name, checkValid);
2091        }
2092
2093      }
2094
2095      @Override
2096      public Base setProperty(int hash, String name, Base value) throws FHIRException {
2097        switch (hash) {
2098        case -1618432855: // identifier
2099          this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier
2100          return value;
2101        case -462853915: // clinicalStatus
2102          this.clinicalStatus = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
2103          return value;
2104        case -842509843: // verificationStatus
2105          this.verificationStatus = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
2106          return value;
2107        case 3575610: // type
2108          this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
2109          return value;
2110        case 50511102: // category
2111          value = new AllergyIntoleranceCategoryEnumFactory().fromType(TypeConvertor.castToCode(value));
2112          this.getCategory().add((Enumeration) value); // Enumeration<AllergyIntoleranceCategory>
2113          return value;
2114        case -1608054609: // criticality
2115          value = new AllergyIntoleranceCriticalityEnumFactory().fromType(TypeConvertor.castToCode(value));
2116          this.criticality = (Enumeration) value; // Enumeration<AllergyIntoleranceCriticality>
2117          return value;
2118        case 3059181: // code
2119          this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
2120          return value;
2121        case -791418107: // patient
2122          this.patient = TypeConvertor.castToReference(value); // Reference
2123          return value;
2124        case 1524132147: // encounter
2125          this.encounter = TypeConvertor.castToReference(value); // Reference
2126          return value;
2127        case 105901603: // onset
2128          this.onset = TypeConvertor.castToType(value); // DataType
2129          return value;
2130        case -1952893826: // recordedDate
2131          this.recordedDate = TypeConvertor.castToDateTime(value); // DateTimeType
2132          return value;
2133        case 767422259: // participant
2134          this.getParticipant().add((AllergyIntoleranceParticipantComponent) value); // AllergyIntoleranceParticipantComponent
2135          return value;
2136        case 1896977671: // lastOccurrence
2137          this.lastOccurrence = TypeConvertor.castToDateTime(value); // DateTimeType
2138          return value;
2139        case 3387378: // note
2140          this.getNote().add(TypeConvertor.castToAnnotation(value)); // Annotation
2141          return value;
2142        case -867509719: // reaction
2143          this.getReaction().add((AllergyIntoleranceReactionComponent) value); // AllergyIntoleranceReactionComponent
2144          return value;
2145        default: return super.setProperty(hash, name, value);
2146        }
2147
2148      }
2149
2150      @Override
2151      public Base setProperty(String name, Base value) throws FHIRException {
2152        if (name.equals("identifier")) {
2153          this.getIdentifier().add(TypeConvertor.castToIdentifier(value));
2154        } else if (name.equals("clinicalStatus")) {
2155          this.clinicalStatus = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
2156        } else if (name.equals("verificationStatus")) {
2157          this.verificationStatus = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
2158        } else if (name.equals("type")) {
2159          this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
2160        } else if (name.equals("category")) {
2161          value = new AllergyIntoleranceCategoryEnumFactory().fromType(TypeConvertor.castToCode(value));
2162          this.getCategory().add((Enumeration) value);
2163        } else if (name.equals("criticality")) {
2164          value = new AllergyIntoleranceCriticalityEnumFactory().fromType(TypeConvertor.castToCode(value));
2165          this.criticality = (Enumeration) value; // Enumeration<AllergyIntoleranceCriticality>
2166        } else if (name.equals("code")) {
2167          this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
2168        } else if (name.equals("patient")) {
2169          this.patient = TypeConvertor.castToReference(value); // Reference
2170        } else if (name.equals("encounter")) {
2171          this.encounter = TypeConvertor.castToReference(value); // Reference
2172        } else if (name.equals("onset[x]")) {
2173          this.onset = TypeConvertor.castToType(value); // DataType
2174        } else if (name.equals("recordedDate")) {
2175          this.recordedDate = TypeConvertor.castToDateTime(value); // DateTimeType
2176        } else if (name.equals("participant")) {
2177          this.getParticipant().add((AllergyIntoleranceParticipantComponent) value);
2178        } else if (name.equals("lastOccurrence")) {
2179          this.lastOccurrence = TypeConvertor.castToDateTime(value); // DateTimeType
2180        } else if (name.equals("note")) {
2181          this.getNote().add(TypeConvertor.castToAnnotation(value));
2182        } else if (name.equals("reaction")) {
2183          this.getReaction().add((AllergyIntoleranceReactionComponent) value);
2184        } else
2185          return super.setProperty(name, value);
2186        return value;
2187      }
2188
2189  @Override
2190  public void removeChild(String name, Base value) throws FHIRException {
2191        if (name.equals("identifier")) {
2192          this.getIdentifier().remove(value);
2193        } else if (name.equals("clinicalStatus")) {
2194          this.clinicalStatus = null;
2195        } else if (name.equals("verificationStatus")) {
2196          this.verificationStatus = null;
2197        } else if (name.equals("type")) {
2198          this.type = null;
2199        } else if (name.equals("category")) {
2200          value = new AllergyIntoleranceCategoryEnumFactory().fromType(TypeConvertor.castToCode(value));
2201          this.getCategory().remove((Enumeration) value);
2202        } else if (name.equals("criticality")) {
2203          value = new AllergyIntoleranceCriticalityEnumFactory().fromType(TypeConvertor.castToCode(value));
2204          this.criticality = (Enumeration) value; // Enumeration<AllergyIntoleranceCriticality>
2205        } else if (name.equals("code")) {
2206          this.code = null;
2207        } else if (name.equals("patient")) {
2208          this.patient = null;
2209        } else if (name.equals("encounter")) {
2210          this.encounter = null;
2211        } else if (name.equals("onset[x]")) {
2212          this.onset = null;
2213        } else if (name.equals("recordedDate")) {
2214          this.recordedDate = null;
2215        } else if (name.equals("participant")) {
2216          this.getParticipant().remove((AllergyIntoleranceParticipantComponent) value);
2217        } else if (name.equals("lastOccurrence")) {
2218          this.lastOccurrence = null;
2219        } else if (name.equals("note")) {
2220          this.getNote().remove(value);
2221        } else if (name.equals("reaction")) {
2222          this.getReaction().remove((AllergyIntoleranceReactionComponent) value);
2223        } else
2224          super.removeChild(name, value);
2225        
2226      }
2227
2228      @Override
2229      public Base makeProperty(int hash, String name) throws FHIRException {
2230        switch (hash) {
2231        case -1618432855:  return addIdentifier(); 
2232        case -462853915:  return getClinicalStatus();
2233        case -842509843:  return getVerificationStatus();
2234        case 3575610:  return getType();
2235        case 50511102:  return addCategoryElement();
2236        case -1608054609:  return getCriticalityElement();
2237        case 3059181:  return getCode();
2238        case -791418107:  return getPatient();
2239        case 1524132147:  return getEncounter();
2240        case -1886216323:  return getOnset();
2241        case 105901603:  return getOnset();
2242        case -1952893826:  return getRecordedDateElement();
2243        case 767422259:  return addParticipant(); 
2244        case 1896977671:  return getLastOccurrenceElement();
2245        case 3387378:  return addNote(); 
2246        case -867509719:  return addReaction(); 
2247        default: return super.makeProperty(hash, name);
2248        }
2249
2250      }
2251
2252      @Override
2253      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
2254        switch (hash) {
2255        case -1618432855: /*identifier*/ return new String[] {"Identifier"};
2256        case -462853915: /*clinicalStatus*/ return new String[] {"CodeableConcept"};
2257        case -842509843: /*verificationStatus*/ return new String[] {"CodeableConcept"};
2258        case 3575610: /*type*/ return new String[] {"CodeableConcept"};
2259        case 50511102: /*category*/ return new String[] {"code"};
2260        case -1608054609: /*criticality*/ return new String[] {"code"};
2261        case 3059181: /*code*/ return new String[] {"CodeableConcept"};
2262        case -791418107: /*patient*/ return new String[] {"Reference"};
2263        case 1524132147: /*encounter*/ return new String[] {"Reference"};
2264        case 105901603: /*onset*/ return new String[] {"dateTime", "Age", "Period", "Range", "string"};
2265        case -1952893826: /*recordedDate*/ return new String[] {"dateTime"};
2266        case 767422259: /*participant*/ return new String[] {};
2267        case 1896977671: /*lastOccurrence*/ return new String[] {"dateTime"};
2268        case 3387378: /*note*/ return new String[] {"Annotation"};
2269        case -867509719: /*reaction*/ return new String[] {};
2270        default: return super.getTypesForProperty(hash, name);
2271        }
2272
2273      }
2274
2275      @Override
2276      public Base addChild(String name) throws FHIRException {
2277        if (name.equals("identifier")) {
2278          return addIdentifier();
2279        }
2280        else if (name.equals("clinicalStatus")) {
2281          this.clinicalStatus = new CodeableConcept();
2282          return this.clinicalStatus;
2283        }
2284        else if (name.equals("verificationStatus")) {
2285          this.verificationStatus = new CodeableConcept();
2286          return this.verificationStatus;
2287        }
2288        else if (name.equals("type")) {
2289          this.type = new CodeableConcept();
2290          return this.type;
2291        }
2292        else if (name.equals("category")) {
2293          throw new FHIRException("Cannot call addChild on a singleton property AllergyIntolerance.category");
2294        }
2295        else if (name.equals("criticality")) {
2296          throw new FHIRException("Cannot call addChild on a singleton property AllergyIntolerance.criticality");
2297        }
2298        else if (name.equals("code")) {
2299          this.code = new CodeableConcept();
2300          return this.code;
2301        }
2302        else if (name.equals("patient")) {
2303          this.patient = new Reference();
2304          return this.patient;
2305        }
2306        else if (name.equals("encounter")) {
2307          this.encounter = new Reference();
2308          return this.encounter;
2309        }
2310        else if (name.equals("onsetDateTime")) {
2311          this.onset = new DateTimeType();
2312          return this.onset;
2313        }
2314        else if (name.equals("onsetAge")) {
2315          this.onset = new Age();
2316          return this.onset;
2317        }
2318        else if (name.equals("onsetPeriod")) {
2319          this.onset = new Period();
2320          return this.onset;
2321        }
2322        else if (name.equals("onsetRange")) {
2323          this.onset = new Range();
2324          return this.onset;
2325        }
2326        else if (name.equals("onsetString")) {
2327          this.onset = new StringType();
2328          return this.onset;
2329        }
2330        else if (name.equals("recordedDate")) {
2331          throw new FHIRException("Cannot call addChild on a singleton property AllergyIntolerance.recordedDate");
2332        }
2333        else if (name.equals("participant")) {
2334          return addParticipant();
2335        }
2336        else if (name.equals("lastOccurrence")) {
2337          throw new FHIRException("Cannot call addChild on a singleton property AllergyIntolerance.lastOccurrence");
2338        }
2339        else if (name.equals("note")) {
2340          return addNote();
2341        }
2342        else if (name.equals("reaction")) {
2343          return addReaction();
2344        }
2345        else
2346          return super.addChild(name);
2347      }
2348
2349  public String fhirType() {
2350    return "AllergyIntolerance";
2351
2352  }
2353
2354      public AllergyIntolerance copy() {
2355        AllergyIntolerance dst = new AllergyIntolerance();
2356        copyValues(dst);
2357        return dst;
2358      }
2359
2360      public void copyValues(AllergyIntolerance dst) {
2361        super.copyValues(dst);
2362        if (identifier != null) {
2363          dst.identifier = new ArrayList<Identifier>();
2364          for (Identifier i : identifier)
2365            dst.identifier.add(i.copy());
2366        };
2367        dst.clinicalStatus = clinicalStatus == null ? null : clinicalStatus.copy();
2368        dst.verificationStatus = verificationStatus == null ? null : verificationStatus.copy();
2369        dst.type = type == null ? null : type.copy();
2370        if (category != null) {
2371          dst.category = new ArrayList<Enumeration<AllergyIntoleranceCategory>>();
2372          for (Enumeration<AllergyIntoleranceCategory> i : category)
2373            dst.category.add(i.copy());
2374        };
2375        dst.criticality = criticality == null ? null : criticality.copy();
2376        dst.code = code == null ? null : code.copy();
2377        dst.patient = patient == null ? null : patient.copy();
2378        dst.encounter = encounter == null ? null : encounter.copy();
2379        dst.onset = onset == null ? null : onset.copy();
2380        dst.recordedDate = recordedDate == null ? null : recordedDate.copy();
2381        if (participant != null) {
2382          dst.participant = new ArrayList<AllergyIntoleranceParticipantComponent>();
2383          for (AllergyIntoleranceParticipantComponent i : participant)
2384            dst.participant.add(i.copy());
2385        };
2386        dst.lastOccurrence = lastOccurrence == null ? null : lastOccurrence.copy();
2387        if (note != null) {
2388          dst.note = new ArrayList<Annotation>();
2389          for (Annotation i : note)
2390            dst.note.add(i.copy());
2391        };
2392        if (reaction != null) {
2393          dst.reaction = new ArrayList<AllergyIntoleranceReactionComponent>();
2394          for (AllergyIntoleranceReactionComponent i : reaction)
2395            dst.reaction.add(i.copy());
2396        };
2397      }
2398
2399      protected AllergyIntolerance typedCopy() {
2400        return copy();
2401      }
2402
2403      @Override
2404      public boolean equalsDeep(Base other_) {
2405        if (!super.equalsDeep(other_))
2406          return false;
2407        if (!(other_ instanceof AllergyIntolerance))
2408          return false;
2409        AllergyIntolerance o = (AllergyIntolerance) other_;
2410        return compareDeep(identifier, o.identifier, true) && compareDeep(clinicalStatus, o.clinicalStatus, true)
2411           && compareDeep(verificationStatus, o.verificationStatus, true) && compareDeep(type, o.type, true)
2412           && compareDeep(category, o.category, true) && compareDeep(criticality, o.criticality, true) && compareDeep(code, o.code, true)
2413           && compareDeep(patient, o.patient, true) && compareDeep(encounter, o.encounter, true) && compareDeep(onset, o.onset, true)
2414           && compareDeep(recordedDate, o.recordedDate, true) && compareDeep(participant, o.participant, true)
2415           && compareDeep(lastOccurrence, o.lastOccurrence, true) && compareDeep(note, o.note, true) && compareDeep(reaction, o.reaction, true)
2416          ;
2417      }
2418
2419      @Override
2420      public boolean equalsShallow(Base other_) {
2421        if (!super.equalsShallow(other_))
2422          return false;
2423        if (!(other_ instanceof AllergyIntolerance))
2424          return false;
2425        AllergyIntolerance o = (AllergyIntolerance) other_;
2426        return compareValues(category, o.category, true) && compareValues(criticality, o.criticality, true)
2427           && compareValues(recordedDate, o.recordedDate, true) && compareValues(lastOccurrence, o.lastOccurrence, true)
2428          ;
2429      }
2430
2431      public boolean isEmpty() {
2432        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, clinicalStatus
2433          , verificationStatus, type, category, criticality, code, patient, encounter, onset
2434          , recordedDate, participant, lastOccurrence, note, reaction);
2435      }
2436
2437  @Override
2438  public ResourceType getResourceType() {
2439    return ResourceType.AllergyIntolerance;
2440   }
2441
2442 /**
2443   * Search parameter: <b>category</b>
2444   * <p>
2445   * Description: <b>food | medication | environment | biologic</b><br>
2446   * Type: <b>token</b><br>
2447   * Path: <b>AllergyIntolerance.category</b><br>
2448   * </p>
2449   */
2450  @SearchParamDefinition(name="category", path="AllergyIntolerance.category", description="food | medication | environment | biologic", type="token" )
2451  public static final String SP_CATEGORY = "category";
2452 /**
2453   * <b>Fluent Client</b> search parameter constant for <b>category</b>
2454   * <p>
2455   * Description: <b>food | medication | environment | biologic</b><br>
2456   * Type: <b>token</b><br>
2457   * Path: <b>AllergyIntolerance.category</b><br>
2458   * </p>
2459   */
2460  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CATEGORY = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CATEGORY);
2461
2462 /**
2463   * Search parameter: <b>clinical-status</b>
2464   * <p>
2465   * Description: <b>active | inactive | resolved</b><br>
2466   * Type: <b>token</b><br>
2467   * Path: <b>AllergyIntolerance.clinicalStatus</b><br>
2468   * </p>
2469   */
2470  @SearchParamDefinition(name="clinical-status", path="AllergyIntolerance.clinicalStatus", description="active | inactive | resolved", type="token" )
2471  public static final String SP_CLINICAL_STATUS = "clinical-status";
2472 /**
2473   * <b>Fluent Client</b> search parameter constant for <b>clinical-status</b>
2474   * <p>
2475   * Description: <b>active | inactive | resolved</b><br>
2476   * Type: <b>token</b><br>
2477   * Path: <b>AllergyIntolerance.clinicalStatus</b><br>
2478   * </p>
2479   */
2480  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CLINICAL_STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CLINICAL_STATUS);
2481
2482 /**
2483   * Search parameter: <b>criticality</b>
2484   * <p>
2485   * Description: <b>low | high | unable-to-assess</b><br>
2486   * Type: <b>token</b><br>
2487   * Path: <b>AllergyIntolerance.criticality</b><br>
2488   * </p>
2489   */
2490  @SearchParamDefinition(name="criticality", path="AllergyIntolerance.criticality", description="low | high | unable-to-assess", type="token" )
2491  public static final String SP_CRITICALITY = "criticality";
2492 /**
2493   * <b>Fluent Client</b> search parameter constant for <b>criticality</b>
2494   * <p>
2495   * Description: <b>low | high | unable-to-assess</b><br>
2496   * Type: <b>token</b><br>
2497   * Path: <b>AllergyIntolerance.criticality</b><br>
2498   * </p>
2499   */
2500  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CRITICALITY = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CRITICALITY);
2501
2502 /**
2503   * Search parameter: <b>last-date</b>
2504   * <p>
2505   * Description: <b>Date(/time) of last known occurrence of a reaction</b><br>
2506   * Type: <b>date</b><br>
2507   * Path: <b>AllergyIntolerance.lastOccurrence</b><br>
2508   * </p>
2509   */
2510  @SearchParamDefinition(name="last-date", path="AllergyIntolerance.lastOccurrence", description="Date(/time) of last known occurrence of a reaction", type="date" )
2511  public static final String SP_LAST_DATE = "last-date";
2512 /**
2513   * <b>Fluent Client</b> search parameter constant for <b>last-date</b>
2514   * <p>
2515   * Description: <b>Date(/time) of last known occurrence of a reaction</b><br>
2516   * Type: <b>date</b><br>
2517   * Path: <b>AllergyIntolerance.lastOccurrence</b><br>
2518   * </p>
2519   */
2520  public static final ca.uhn.fhir.rest.gclient.DateClientParam LAST_DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_LAST_DATE);
2521
2522 /**
2523   * Search parameter: <b>manifestation-code</b>
2524   * <p>
2525   * Description: <b>Clinical symptoms/signs associated with the Event</b><br>
2526   * Type: <b>token</b><br>
2527   * Path: <b>AllergyIntolerance.reaction.manifestation.concept</b><br>
2528   * </p>
2529   */
2530  @SearchParamDefinition(name="manifestation-code", path="AllergyIntolerance.reaction.manifestation.concept", description="Clinical symptoms/signs associated with the Event", type="token" )
2531  public static final String SP_MANIFESTATION_CODE = "manifestation-code";
2532 /**
2533   * <b>Fluent Client</b> search parameter constant for <b>manifestation-code</b>
2534   * <p>
2535   * Description: <b>Clinical symptoms/signs associated with the Event</b><br>
2536   * Type: <b>token</b><br>
2537   * Path: <b>AllergyIntolerance.reaction.manifestation.concept</b><br>
2538   * </p>
2539   */
2540  public static final ca.uhn.fhir.rest.gclient.TokenClientParam MANIFESTATION_CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_MANIFESTATION_CODE);
2541
2542 /**
2543   * Search parameter: <b>manifestation-reference</b>
2544   * <p>
2545   * Description: <b>Clinical symptoms/signs associated with the Event</b><br>
2546   * Type: <b>reference</b><br>
2547   * Path: <b>AllergyIntolerance.reaction.manifestation.reference</b><br>
2548   * </p>
2549   */
2550  @SearchParamDefinition(name="manifestation-reference", path="AllergyIntolerance.reaction.manifestation.reference", description="Clinical symptoms/signs associated with the Event", type="reference", target={Observation.class } )
2551  public static final String SP_MANIFESTATION_REFERENCE = "manifestation-reference";
2552 /**
2553   * <b>Fluent Client</b> search parameter constant for <b>manifestation-reference</b>
2554   * <p>
2555   * Description: <b>Clinical symptoms/signs associated with the Event</b><br>
2556   * Type: <b>reference</b><br>
2557   * Path: <b>AllergyIntolerance.reaction.manifestation.reference</b><br>
2558   * </p>
2559   */
2560  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam MANIFESTATION_REFERENCE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_MANIFESTATION_REFERENCE);
2561
2562/**
2563   * Constant for fluent queries to be used to add include statements. Specifies
2564   * the path value of "<b>AllergyIntolerance:manifestation-reference</b>".
2565   */
2566  public static final ca.uhn.fhir.model.api.Include INCLUDE_MANIFESTATION_REFERENCE = new ca.uhn.fhir.model.api.Include("AllergyIntolerance:manifestation-reference").toLocked();
2567
2568 /**
2569   * Search parameter: <b>participant</b>
2570   * <p>
2571   * Description: <b>Who or what participated in the activities related to the allergy or intolerance</b><br>
2572   * Type: <b>reference</b><br>
2573   * Path: <b>AllergyIntolerance.participant.actor</b><br>
2574   * </p>
2575   */
2576  @SearchParamDefinition(name="participant", path="AllergyIntolerance.participant.actor", description="Who or what participated in the activities related to the allergy or intolerance", 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 } )
2577  public static final String SP_PARTICIPANT = "participant";
2578 /**
2579   * <b>Fluent Client</b> search parameter constant for <b>participant</b>
2580   * <p>
2581   * Description: <b>Who or what participated in the activities related to the allergy or intolerance</b><br>
2582   * Type: <b>reference</b><br>
2583   * Path: <b>AllergyIntolerance.participant.actor</b><br>
2584   * </p>
2585   */
2586  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PARTICIPANT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PARTICIPANT);
2587
2588/**
2589   * Constant for fluent queries to be used to add include statements. Specifies
2590   * the path value of "<b>AllergyIntolerance:participant</b>".
2591   */
2592  public static final ca.uhn.fhir.model.api.Include INCLUDE_PARTICIPANT = new ca.uhn.fhir.model.api.Include("AllergyIntolerance:participant").toLocked();
2593
2594 /**
2595   * Search parameter: <b>route</b>
2596   * <p>
2597   * Description: <b>How the subject was exposed to the substance</b><br>
2598   * Type: <b>token</b><br>
2599   * Path: <b>AllergyIntolerance.reaction.exposureRoute</b><br>
2600   * </p>
2601   */
2602  @SearchParamDefinition(name="route", path="AllergyIntolerance.reaction.exposureRoute", description="How the subject was exposed to the substance", type="token" )
2603  public static final String SP_ROUTE = "route";
2604 /**
2605   * <b>Fluent Client</b> search parameter constant for <b>route</b>
2606   * <p>
2607   * Description: <b>How the subject was exposed to the substance</b><br>
2608   * Type: <b>token</b><br>
2609   * Path: <b>AllergyIntolerance.reaction.exposureRoute</b><br>
2610   * </p>
2611   */
2612  public static final ca.uhn.fhir.rest.gclient.TokenClientParam ROUTE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_ROUTE);
2613
2614 /**
2615   * Search parameter: <b>severity</b>
2616   * <p>
2617   * Description: <b>mild | moderate | severe (of event as a whole)</b><br>
2618   * Type: <b>token</b><br>
2619   * Path: <b>AllergyIntolerance.reaction.severity</b><br>
2620   * </p>
2621   */
2622  @SearchParamDefinition(name="severity", path="AllergyIntolerance.reaction.severity", description="mild | moderate | severe (of event as a whole)", type="token" )
2623  public static final String SP_SEVERITY = "severity";
2624 /**
2625   * <b>Fluent Client</b> search parameter constant for <b>severity</b>
2626   * <p>
2627   * Description: <b>mild | moderate | severe (of event as a whole)</b><br>
2628   * Type: <b>token</b><br>
2629   * Path: <b>AllergyIntolerance.reaction.severity</b><br>
2630   * </p>
2631   */
2632  public static final ca.uhn.fhir.rest.gclient.TokenClientParam SEVERITY = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_SEVERITY);
2633
2634 /**
2635   * Search parameter: <b>verification-status</b>
2636   * <p>
2637   * Description: <b>unconfirmed | presumed | confirmed | refuted | entered-in-error</b><br>
2638   * Type: <b>token</b><br>
2639   * Path: <b>AllergyIntolerance.verificationStatus</b><br>
2640   * </p>
2641   */
2642  @SearchParamDefinition(name="verification-status", path="AllergyIntolerance.verificationStatus", description="unconfirmed | presumed | confirmed | refuted | entered-in-error", type="token" )
2643  public static final String SP_VERIFICATION_STATUS = "verification-status";
2644 /**
2645   * <b>Fluent Client</b> search parameter constant for <b>verification-status</b>
2646   * <p>
2647   * Description: <b>unconfirmed | presumed | confirmed | refuted | entered-in-error</b><br>
2648   * Type: <b>token</b><br>
2649   * Path: <b>AllergyIntolerance.verificationStatus</b><br>
2650   * </p>
2651   */
2652  public static final ca.uhn.fhir.rest.gclient.TokenClientParam VERIFICATION_STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_VERIFICATION_STATUS);
2653
2654 /**
2655   * Search parameter: <b>code</b>
2656   * <p>
2657   * Description: <b>Multiple Resources: 
2658
2659* [AdverseEvent](adverseevent.html): Event or incident that occurred or was averted
2660* [AllergyIntolerance](allergyintolerance.html): Code that identifies the allergy or intolerance
2661* [AuditEvent](auditevent.html): More specific code for the event
2662* [Basic](basic.html): Kind of Resource
2663* [ChargeItem](chargeitem.html): A code that identifies the charge, like a billing code
2664* [Condition](condition.html): Code for the condition
2665* [DetectedIssue](detectedissue.html): Issue Type, e.g. drug-drug, duplicate therapy, etc.
2666* [DeviceRequest](devicerequest.html): Code for what is being requested/ordered
2667* [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
2668* [FamilyMemberHistory](familymemberhistory.html): A search by a condition code
2669* [ImagingSelection](imagingselection.html): The imaging selection status
2670* [List](list.html): What the purpose of this list is
2671* [Medication](medication.html): Returns medications for a specific code
2672* [MedicationAdministration](medicationadministration.html): Return administrations of this medication code
2673* [MedicationDispense](medicationdispense.html): Returns dispenses of this medicine code
2674* [MedicationRequest](medicationrequest.html): Return prescriptions of this medication code
2675* [MedicationStatement](medicationstatement.html): Return statements of this medication code
2676* [NutritionIntake](nutritionintake.html): Returns statements of this code of NutritionIntake
2677* [Observation](observation.html): The code of the observation type
2678* [Procedure](procedure.html): A code to identify a  procedure
2679* [RequestOrchestration](requestorchestration.html): The code of the request orchestration
2680* [Task](task.html): Search by task code
2681</b><br>
2682   * Type: <b>token</b><br>
2683   * 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>
2684   * </p>
2685   */
2686  @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" )
2687  public static final String SP_CODE = "code";
2688 /**
2689   * <b>Fluent Client</b> search parameter constant for <b>code</b>
2690   * <p>
2691   * Description: <b>Multiple Resources: 
2692
2693* [AdverseEvent](adverseevent.html): Event or incident that occurred or was averted
2694* [AllergyIntolerance](allergyintolerance.html): Code that identifies the allergy or intolerance
2695* [AuditEvent](auditevent.html): More specific code for the event
2696* [Basic](basic.html): Kind of Resource
2697* [ChargeItem](chargeitem.html): A code that identifies the charge, like a billing code
2698* [Condition](condition.html): Code for the condition
2699* [DetectedIssue](detectedissue.html): Issue Type, e.g. drug-drug, duplicate therapy, etc.
2700* [DeviceRequest](devicerequest.html): Code for what is being requested/ordered
2701* [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
2702* [FamilyMemberHistory](familymemberhistory.html): A search by a condition code
2703* [ImagingSelection](imagingselection.html): The imaging selection status
2704* [List](list.html): What the purpose of this list is
2705* [Medication](medication.html): Returns medications for a specific code
2706* [MedicationAdministration](medicationadministration.html): Return administrations of this medication code
2707* [MedicationDispense](medicationdispense.html): Returns dispenses of this medicine code
2708* [MedicationRequest](medicationrequest.html): Return prescriptions of this medication code
2709* [MedicationStatement](medicationstatement.html): Return statements of this medication code
2710* [NutritionIntake](nutritionintake.html): Returns statements of this code of NutritionIntake
2711* [Observation](observation.html): The code of the observation type
2712* [Procedure](procedure.html): A code to identify a  procedure
2713* [RequestOrchestration](requestorchestration.html): The code of the request orchestration
2714* [Task](task.html): Search by task code
2715</b><br>
2716   * Type: <b>token</b><br>
2717   * 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>
2718   * </p>
2719   */
2720  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CODE);
2721
2722 /**
2723   * Search parameter: <b>date</b>
2724   * <p>
2725   * Description: <b>Multiple Resources: 
2726
2727* [AdverseEvent](adverseevent.html): When the event occurred
2728* [AllergyIntolerance](allergyintolerance.html): Date first version of the resource instance was recorded
2729* [Appointment](appointment.html): Appointment date/time.
2730* [AuditEvent](auditevent.html): Time when the event was recorded
2731* [CarePlan](careplan.html): Time period plan covers
2732* [CareTeam](careteam.html): A date within the coverage time period.
2733* [ClinicalImpression](clinicalimpression.html): When the assessment was documented
2734* [Composition](composition.html): Composition editing time
2735* [Consent](consent.html): When consent was agreed to
2736* [DiagnosticReport](diagnosticreport.html): The clinically relevant time of the report
2737* [DocumentReference](documentreference.html): When this document reference was created
2738* [Encounter](encounter.html): A date within the actualPeriod the Encounter lasted
2739* [EpisodeOfCare](episodeofcare.html): The provided date search value falls within the episode of care's period
2740* [FamilyMemberHistory](familymemberhistory.html): When history was recorded or last updated
2741* [Flag](flag.html): Time period when flag is active
2742* [Immunization](immunization.html): Vaccination  (non)-Administration Date
2743* [ImmunizationEvaluation](immunizationevaluation.html): Date the evaluation was generated
2744* [ImmunizationRecommendation](immunizationrecommendation.html): Date recommendation(s) created
2745* [Invoice](invoice.html): Invoice date / posting date
2746* [List](list.html): When the list was prepared
2747* [MeasureReport](measurereport.html): The date of the measure report
2748* [NutritionIntake](nutritionintake.html): Date when patient was taking (or not taking) the medication
2749* [Observation](observation.html): Clinically relevant time/time-period for observation
2750* [Procedure](procedure.html): When the procedure occurred or is occurring
2751* [ResearchSubject](researchsubject.html): Start and end of participation
2752* [RiskAssessment](riskassessment.html): When was assessment made?
2753* [SupplyRequest](supplyrequest.html): When the request was made
2754</b><br>
2755   * Type: <b>date</b><br>
2756   * Path: <b>AdverseEvent.occurrence.ofType(dateTime) | AdverseEvent.occurrence.ofType(Period) | AdverseEvent.occurrence.ofType(Timing) | AllergyIntolerance.recordedDate | (start | requestedPeriod.start).first() | AuditEvent.recorded | CarePlan.period | ClinicalImpression.date | Composition.date | Consent.date | DiagnosticReport.effective.ofType(dateTime) | DiagnosticReport.effective.ofType(Period) | DocumentReference.date | Encounter.actualPeriod | EpisodeOfCare.period | FamilyMemberHistory.date | Flag.period | (Immunization.occurrence.ofType(dateTime)) | ImmunizationEvaluation.date | ImmunizationRecommendation.date | Invoice.date | List.date | MeasureReport.date | NutritionIntake.occurrence.ofType(dateTime) | NutritionIntake.occurrence.ofType(Period) | Observation.effective.ofType(dateTime) | Observation.effective.ofType(Period) | Observation.effective.ofType(Timing) | Observation.effective.ofType(instant) | Procedure.occurrence.ofType(dateTime) | Procedure.occurrence.ofType(Period) | Procedure.occurrence.ofType(Timing) | ResearchSubject.period | (RiskAssessment.occurrence.ofType(dateTime)) | SupplyRequest.authoredOn</b><br>
2757   * </p>
2758   */
2759  @SearchParamDefinition(name="date", path="AdverseEvent.occurrence.ofType(dateTime) | AdverseEvent.occurrence.ofType(Period) | AdverseEvent.occurrence.ofType(Timing) | AllergyIntolerance.recordedDate | (start | requestedPeriod.start).first() | AuditEvent.recorded | CarePlan.period | ClinicalImpression.date | Composition.date | Consent.date | DiagnosticReport.effective.ofType(dateTime) | DiagnosticReport.effective.ofType(Period) | DocumentReference.date | Encounter.actualPeriod | EpisodeOfCare.period | FamilyMemberHistory.date | Flag.period | (Immunization.occurrence.ofType(dateTime)) | ImmunizationEvaluation.date | ImmunizationRecommendation.date | Invoice.date | List.date | MeasureReport.date | NutritionIntake.occurrence.ofType(dateTime) | NutritionIntake.occurrence.ofType(Period) | Observation.effective.ofType(dateTime) | Observation.effective.ofType(Period) | Observation.effective.ofType(Timing) | Observation.effective.ofType(instant) | Procedure.occurrence.ofType(dateTime) | Procedure.occurrence.ofType(Period) | Procedure.occurrence.ofType(Timing) | ResearchSubject.period | (RiskAssessment.occurrence.ofType(dateTime)) | SupplyRequest.authoredOn", description="Multiple Resources: \r\n\r\n* [AdverseEvent](adverseevent.html): When the event occurred\r\n* [AllergyIntolerance](allergyintolerance.html): Date first version of the resource instance was recorded\r\n* [Appointment](appointment.html): Appointment date/time.\r\n* [AuditEvent](auditevent.html): Time when the event was recorded\r\n* [CarePlan](careplan.html): Time period plan covers\r\n* [CareTeam](careteam.html): A date within the coverage time period.\r\n* [ClinicalImpression](clinicalimpression.html): When the assessment was documented\r\n* [Composition](composition.html): Composition editing time\r\n* [Consent](consent.html): When consent was agreed to\r\n* [DiagnosticReport](diagnosticreport.html): The clinically relevant time of the report\r\n* [DocumentReference](documentreference.html): When this document reference was created\r\n* [Encounter](encounter.html): A date within the actualPeriod the Encounter lasted\r\n* [EpisodeOfCare](episodeofcare.html): The provided date search value falls within the episode of care's period\r\n* [FamilyMemberHistory](familymemberhistory.html): When history was recorded or last updated\r\n* [Flag](flag.html): Time period when flag is active\r\n* [Immunization](immunization.html): Vaccination  (non)-Administration Date\r\n* [ImmunizationEvaluation](immunizationevaluation.html): Date the evaluation was generated\r\n* [ImmunizationRecommendation](immunizationrecommendation.html): Date recommendation(s) created\r\n* [Invoice](invoice.html): Invoice date / posting date\r\n* [List](list.html): When the list was prepared\r\n* [MeasureReport](measurereport.html): The date of the measure report\r\n* [NutritionIntake](nutritionintake.html): Date when patient was taking (or not taking) the medication\r\n* [Observation](observation.html): Clinically relevant time/time-period for observation\r\n* [Procedure](procedure.html): When the procedure occurred or is occurring\r\n* [ResearchSubject](researchsubject.html): Start and end of participation\r\n* [RiskAssessment](riskassessment.html): When was assessment made?\r\n* [SupplyRequest](supplyrequest.html): When the request was made\r\n", type="date" )
2760  public static final String SP_DATE = "date";
2761 /**
2762   * <b>Fluent Client</b> search parameter constant for <b>date</b>
2763   * <p>
2764   * Description: <b>Multiple Resources: 
2765
2766* [AdverseEvent](adverseevent.html): When the event occurred
2767* [AllergyIntolerance](allergyintolerance.html): Date first version of the resource instance was recorded
2768* [Appointment](appointment.html): Appointment date/time.
2769* [AuditEvent](auditevent.html): Time when the event was recorded
2770* [CarePlan](careplan.html): Time period plan covers
2771* [CareTeam](careteam.html): A date within the coverage time period.
2772* [ClinicalImpression](clinicalimpression.html): When the assessment was documented
2773* [Composition](composition.html): Composition editing time
2774* [Consent](consent.html): When consent was agreed to
2775* [DiagnosticReport](diagnosticreport.html): The clinically relevant time of the report
2776* [DocumentReference](documentreference.html): When this document reference was created
2777* [Encounter](encounter.html): A date within the actualPeriod the Encounter lasted
2778* [EpisodeOfCare](episodeofcare.html): The provided date search value falls within the episode of care's period
2779* [FamilyMemberHistory](familymemberhistory.html): When history was recorded or last updated
2780* [Flag](flag.html): Time period when flag is active
2781* [Immunization](immunization.html): Vaccination  (non)-Administration Date
2782* [ImmunizationEvaluation](immunizationevaluation.html): Date the evaluation was generated
2783* [ImmunizationRecommendation](immunizationrecommendation.html): Date recommendation(s) created
2784* [Invoice](invoice.html): Invoice date / posting date
2785* [List](list.html): When the list was prepared
2786* [MeasureReport](measurereport.html): The date of the measure report
2787* [NutritionIntake](nutritionintake.html): Date when patient was taking (or not taking) the medication
2788* [Observation](observation.html): Clinically relevant time/time-period for observation
2789* [Procedure](procedure.html): When the procedure occurred or is occurring
2790* [ResearchSubject](researchsubject.html): Start and end of participation
2791* [RiskAssessment](riskassessment.html): When was assessment made?
2792* [SupplyRequest](supplyrequest.html): When the request was made
2793</b><br>
2794   * Type: <b>date</b><br>
2795   * Path: <b>AdverseEvent.occurrence.ofType(dateTime) | AdverseEvent.occurrence.ofType(Period) | AdverseEvent.occurrence.ofType(Timing) | AllergyIntolerance.recordedDate | (start | requestedPeriod.start).first() | AuditEvent.recorded | CarePlan.period | ClinicalImpression.date | Composition.date | Consent.date | DiagnosticReport.effective.ofType(dateTime) | DiagnosticReport.effective.ofType(Period) | DocumentReference.date | Encounter.actualPeriod | EpisodeOfCare.period | FamilyMemberHistory.date | Flag.period | (Immunization.occurrence.ofType(dateTime)) | ImmunizationEvaluation.date | ImmunizationRecommendation.date | Invoice.date | List.date | MeasureReport.date | NutritionIntake.occurrence.ofType(dateTime) | NutritionIntake.occurrence.ofType(Period) | Observation.effective.ofType(dateTime) | Observation.effective.ofType(Period) | Observation.effective.ofType(Timing) | Observation.effective.ofType(instant) | Procedure.occurrence.ofType(dateTime) | Procedure.occurrence.ofType(Period) | Procedure.occurrence.ofType(Timing) | ResearchSubject.period | (RiskAssessment.occurrence.ofType(dateTime)) | SupplyRequest.authoredOn</b><br>
2796   * </p>
2797   */
2798  public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE);
2799
2800 /**
2801   * Search parameter: <b>identifier</b>
2802   * <p>
2803   * Description: <b>Multiple Resources: 
2804
2805* [Account](account.html): Account number
2806* [AdverseEvent](adverseevent.html): Business identifier for the event
2807* [AllergyIntolerance](allergyintolerance.html): External ids for this item
2808* [Appointment](appointment.html): An Identifier of the Appointment
2809* [AppointmentResponse](appointmentresponse.html): An Identifier in this appointment response
2810* [Basic](basic.html): Business identifier
2811* [BodyStructure](bodystructure.html): Bodystructure identifier
2812* [CarePlan](careplan.html): External Ids for this plan
2813* [CareTeam](careteam.html): External Ids for this team
2814* [ChargeItem](chargeitem.html): Business Identifier for item
2815* [Claim](claim.html): The primary identifier of the financial resource
2816* [ClaimResponse](claimresponse.html): The identity of the ClaimResponse
2817* [ClinicalImpression](clinicalimpression.html): Business identifier
2818* [Communication](communication.html): Unique identifier
2819* [CommunicationRequest](communicationrequest.html): Unique identifier
2820* [Composition](composition.html): Version-independent identifier for the Composition
2821* [Condition](condition.html): A unique identifier of the condition record
2822* [Consent](consent.html): Identifier for this record (external references)
2823* [Contract](contract.html): The identity of the contract
2824* [Coverage](coverage.html): The primary identifier of the insured and the coverage
2825* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The business identifier of the Eligibility
2826* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The business identifier
2827* [DetectedIssue](detectedissue.html): Unique id for the detected issue
2828* [DeviceRequest](devicerequest.html): Business identifier for request/order
2829* [DeviceUsage](deviceusage.html): Search by identifier
2830* [DiagnosticReport](diagnosticreport.html): An identifier for the report
2831* [DocumentReference](documentreference.html): Identifier of the attachment binary
2832* [Encounter](encounter.html): Identifier(s) by which this encounter is known
2833* [EnrollmentRequest](enrollmentrequest.html): The business identifier of the Enrollment
2834* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare
2835* [ExplanationOfBenefit](explanationofbenefit.html): The business identifier of the Explanation of Benefit
2836* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier
2837* [Flag](flag.html): Business identifier
2838* [Goal](goal.html): External Ids for this goal
2839* [GuidanceResponse](guidanceresponse.html): The identifier of the guidance response
2840* [ImagingSelection](imagingselection.html): Identifiers for the imaging selection
2841* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID
2842* [Immunization](immunization.html): Business identifier
2843* [ImmunizationEvaluation](immunizationevaluation.html): ID of the evaluation
2844* [ImmunizationRecommendation](immunizationrecommendation.html): Business identifier
2845* [Invoice](invoice.html): Business Identifier for item
2846* [List](list.html): Business identifier
2847* [MeasureReport](measurereport.html): External identifier of the measure report to be returned
2848* [Medication](medication.html): Returns medications with this external identifier
2849* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier
2850* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier
2851* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier
2852* [MedicationStatement](medicationstatement.html): Return statements with this external identifier
2853* [MolecularSequence](molecularsequence.html): The unique identity for a particular sequence
2854* [NutritionIntake](nutritionintake.html): Return statements with this external identifier
2855* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier
2856* [Observation](observation.html): The unique id for a particular observation
2857* [Person](person.html): A person Identifier
2858* [Procedure](procedure.html): A unique identifier for a procedure
2859* [QuestionnaireResponse](questionnaireresponse.html): The unique identifier for the questionnaire response
2860* [RelatedPerson](relatedperson.html): An Identifier of the RelatedPerson
2861* [RequestOrchestration](requestorchestration.html): External identifiers for the request orchestration
2862* [ResearchSubject](researchsubject.html): Business Identifier for research subject in a study
2863* [RiskAssessment](riskassessment.html): Unique identifier for the assessment
2864* [ServiceRequest](servicerequest.html): Identifiers assigned to this order
2865* [Specimen](specimen.html): The unique identifier associated with the specimen
2866* [SupplyDelivery](supplydelivery.html): External identifier
2867* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest
2868* [Task](task.html): Search for a task instance by its business identifier
2869* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier
2870</b><br>
2871   * Type: <b>token</b><br>
2872   * 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>
2873   * </p>
2874   */
2875  @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" )
2876  public static final String SP_IDENTIFIER = "identifier";
2877 /**
2878   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
2879   * <p>
2880   * Description: <b>Multiple Resources: 
2881
2882* [Account](account.html): Account number
2883* [AdverseEvent](adverseevent.html): Business identifier for the event
2884* [AllergyIntolerance](allergyintolerance.html): External ids for this item
2885* [Appointment](appointment.html): An Identifier of the Appointment
2886* [AppointmentResponse](appointmentresponse.html): An Identifier in this appointment response
2887* [Basic](basic.html): Business identifier
2888* [BodyStructure](bodystructure.html): Bodystructure identifier
2889* [CarePlan](careplan.html): External Ids for this plan
2890* [CareTeam](careteam.html): External Ids for this team
2891* [ChargeItem](chargeitem.html): Business Identifier for item
2892* [Claim](claim.html): The primary identifier of the financial resource
2893* [ClaimResponse](claimresponse.html): The identity of the ClaimResponse
2894* [ClinicalImpression](clinicalimpression.html): Business identifier
2895* [Communication](communication.html): Unique identifier
2896* [CommunicationRequest](communicationrequest.html): Unique identifier
2897* [Composition](composition.html): Version-independent identifier for the Composition
2898* [Condition](condition.html): A unique identifier of the condition record
2899* [Consent](consent.html): Identifier for this record (external references)
2900* [Contract](contract.html): The identity of the contract
2901* [Coverage](coverage.html): The primary identifier of the insured and the coverage
2902* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The business identifier of the Eligibility
2903* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The business identifier
2904* [DetectedIssue](detectedissue.html): Unique id for the detected issue
2905* [DeviceRequest](devicerequest.html): Business identifier for request/order
2906* [DeviceUsage](deviceusage.html): Search by identifier
2907* [DiagnosticReport](diagnosticreport.html): An identifier for the report
2908* [DocumentReference](documentreference.html): Identifier of the attachment binary
2909* [Encounter](encounter.html): Identifier(s) by which this encounter is known
2910* [EnrollmentRequest](enrollmentrequest.html): The business identifier of the Enrollment
2911* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare
2912* [ExplanationOfBenefit](explanationofbenefit.html): The business identifier of the Explanation of Benefit
2913* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier
2914* [Flag](flag.html): Business identifier
2915* [Goal](goal.html): External Ids for this goal
2916* [GuidanceResponse](guidanceresponse.html): The identifier of the guidance response
2917* [ImagingSelection](imagingselection.html): Identifiers for the imaging selection
2918* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID
2919* [Immunization](immunization.html): Business identifier
2920* [ImmunizationEvaluation](immunizationevaluation.html): ID of the evaluation
2921* [ImmunizationRecommendation](immunizationrecommendation.html): Business identifier
2922* [Invoice](invoice.html): Business Identifier for item
2923* [List](list.html): Business identifier
2924* [MeasureReport](measurereport.html): External identifier of the measure report to be returned
2925* [Medication](medication.html): Returns medications with this external identifier
2926* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier
2927* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier
2928* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier
2929* [MedicationStatement](medicationstatement.html): Return statements with this external identifier
2930* [MolecularSequence](molecularsequence.html): The unique identity for a particular sequence
2931* [NutritionIntake](nutritionintake.html): Return statements with this external identifier
2932* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier
2933* [Observation](observation.html): The unique id for a particular observation
2934* [Person](person.html): A person Identifier
2935* [Procedure](procedure.html): A unique identifier for a procedure
2936* [QuestionnaireResponse](questionnaireresponse.html): The unique identifier for the questionnaire response
2937* [RelatedPerson](relatedperson.html): An Identifier of the RelatedPerson
2938* [RequestOrchestration](requestorchestration.html): External identifiers for the request orchestration
2939* [ResearchSubject](researchsubject.html): Business Identifier for research subject in a study
2940* [RiskAssessment](riskassessment.html): Unique identifier for the assessment
2941* [ServiceRequest](servicerequest.html): Identifiers assigned to this order
2942* [Specimen](specimen.html): The unique identifier associated with the specimen
2943* [SupplyDelivery](supplydelivery.html): External identifier
2944* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest
2945* [Task](task.html): Search for a task instance by its business identifier
2946* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier
2947</b><br>
2948   * Type: <b>token</b><br>
2949   * 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>
2950   * </p>
2951   */
2952  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
2953
2954 /**
2955   * Search parameter: <b>patient</b>
2956   * <p>
2957   * Description: <b>Multiple Resources: 
2958
2959* [Account](account.html): The entity that caused the expenses
2960* [AdverseEvent](adverseevent.html): Subject impacted by event
2961* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for
2962* [Appointment](appointment.html): One of the individuals of the appointment is this patient
2963* [AppointmentResponse](appointmentresponse.html): This Response is for this Patient
2964* [AuditEvent](auditevent.html): Where the activity involved patient data
2965* [Basic](basic.html): Identifies the focus of this resource
2966* [BodyStructure](bodystructure.html): Who this is about
2967* [CarePlan](careplan.html): Who the care plan is for
2968* [CareTeam](careteam.html): Who care team is for
2969* [ChargeItem](chargeitem.html): Individual service was done for/to
2970* [Claim](claim.html): Patient receiving the products or services
2971* [ClaimResponse](claimresponse.html): The subject of care
2972* [ClinicalImpression](clinicalimpression.html): Patient assessed
2973* [Communication](communication.html): Focus of message
2974* [CommunicationRequest](communicationrequest.html): Focus of message
2975* [Composition](composition.html): Who and/or what the composition is about
2976* [Condition](condition.html): Who has the condition?
2977* [Consent](consent.html): Who the consent applies to
2978* [Contract](contract.html): The identity of the subject of the contract (if a patient)
2979* [Coverage](coverage.html): Retrieve coverages for a patient
2980* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The reference to the patient
2981* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The reference to the patient
2982* [DetectedIssue](detectedissue.html): Associated patient
2983* [DeviceRequest](devicerequest.html): Individual the service is ordered for
2984* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device
2985* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient
2986* [DocumentReference](documentreference.html): Who/what is the subject of the document
2987* [Encounter](encounter.html): The patient present at the encounter
2988* [EnrollmentRequest](enrollmentrequest.html): The party to be enrolled
2989* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care
2990* [ExplanationOfBenefit](explanationofbenefit.html): The reference to the patient
2991* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for
2992* [Flag](flag.html): The identity of a subject to list flags for
2993* [Goal](goal.html): Who this goal is intended for
2994* [GuidanceResponse](guidanceresponse.html): The identity of a patient to search for guidance response results
2995* [ImagingSelection](imagingselection.html): Who the study is about
2996* [ImagingStudy](imagingstudy.html): Who the study is about
2997* [Immunization](immunization.html): The patient for the vaccination record
2998* [ImmunizationEvaluation](immunizationevaluation.html): The patient being evaluated
2999* [ImmunizationRecommendation](immunizationrecommendation.html): Who this profile is for
3000* [Invoice](invoice.html): Recipient(s) of goods and services
3001* [List](list.html): If all resources have the same subject
3002* [MeasureReport](measurereport.html): The identity of a patient to search for individual measure report results for
3003* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations  for
3004* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses  for
3005* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient
3006* [MedicationStatement](medicationstatement.html): Returns statements for a specific patient.
3007* [MolecularSequence](molecularsequence.html): The subject that the sequence is about
3008* [NutritionIntake](nutritionintake.html): Returns statements for a specific patient.
3009* [NutritionOrder](nutritionorder.html): The identity of the individual or set of individuals who requires the diet, formula or nutritional supplement
3010* [Observation](observation.html): The subject that the observation is about (if patient)
3011* [Person](person.html): The Person links to this Patient
3012* [Procedure](procedure.html): Search by subject - a patient
3013* [Provenance](provenance.html): Where the activity involved patient data
3014* [QuestionnaireResponse](questionnaireresponse.html): The patient that is the subject of the questionnaire response
3015* [RelatedPerson](relatedperson.html): The patient this related person is related to
3016* [RequestOrchestration](requestorchestration.html): The identity of a patient to search for request orchestrations
3017* [ResearchSubject](researchsubject.html): Who or what is part of study
3018* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?
3019* [ServiceRequest](servicerequest.html): Search by subject - a patient
3020* [Specimen](specimen.html): The patient the specimen comes from
3021* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied
3022* [SupplyRequest](supplyrequest.html): The patient or subject for whom the supply is destined
3023* [Task](task.html): Search by patient
3024* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for
3025</b><br>
3026   * Type: <b>reference</b><br>
3027   * 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>
3028   * </p>
3029   */
3030  @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 } )
3031  public static final String SP_PATIENT = "patient";
3032 /**
3033   * <b>Fluent Client</b> search parameter constant for <b>patient</b>
3034   * <p>
3035   * Description: <b>Multiple Resources: 
3036
3037* [Account](account.html): The entity that caused the expenses
3038* [AdverseEvent](adverseevent.html): Subject impacted by event
3039* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for
3040* [Appointment](appointment.html): One of the individuals of the appointment is this patient
3041* [AppointmentResponse](appointmentresponse.html): This Response is for this Patient
3042* [AuditEvent](auditevent.html): Where the activity involved patient data
3043* [Basic](basic.html): Identifies the focus of this resource
3044* [BodyStructure](bodystructure.html): Who this is about
3045* [CarePlan](careplan.html): Who the care plan is for
3046* [CareTeam](careteam.html): Who care team is for
3047* [ChargeItem](chargeitem.html): Individual service was done for/to
3048* [Claim](claim.html): Patient receiving the products or services
3049* [ClaimResponse](claimresponse.html): The subject of care
3050* [ClinicalImpression](clinicalimpression.html): Patient assessed
3051* [Communication](communication.html): Focus of message
3052* [CommunicationRequest](communicationrequest.html): Focus of message
3053* [Composition](composition.html): Who and/or what the composition is about
3054* [Condition](condition.html): Who has the condition?
3055* [Consent](consent.html): Who the consent applies to
3056* [Contract](contract.html): The identity of the subject of the contract (if a patient)
3057* [Coverage](coverage.html): Retrieve coverages for a patient
3058* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The reference to the patient
3059* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The reference to the patient
3060* [DetectedIssue](detectedissue.html): Associated patient
3061* [DeviceRequest](devicerequest.html): Individual the service is ordered for
3062* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device
3063* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient
3064* [DocumentReference](documentreference.html): Who/what is the subject of the document
3065* [Encounter](encounter.html): The patient present at the encounter
3066* [EnrollmentRequest](enrollmentrequest.html): The party to be enrolled
3067* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care
3068* [ExplanationOfBenefit](explanationofbenefit.html): The reference to the patient
3069* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for
3070* [Flag](flag.html): The identity of a subject to list flags for
3071* [Goal](goal.html): Who this goal is intended for
3072* [GuidanceResponse](guidanceresponse.html): The identity of a patient to search for guidance response results
3073* [ImagingSelection](imagingselection.html): Who the study is about
3074* [ImagingStudy](imagingstudy.html): Who the study is about
3075* [Immunization](immunization.html): The patient for the vaccination record
3076* [ImmunizationEvaluation](immunizationevaluation.html): The patient being evaluated
3077* [ImmunizationRecommendation](immunizationrecommendation.html): Who this profile is for
3078* [Invoice](invoice.html): Recipient(s) of goods and services
3079* [List](list.html): If all resources have the same subject
3080* [MeasureReport](measurereport.html): The identity of a patient to search for individual measure report results for
3081* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations  for
3082* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses  for
3083* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient
3084* [MedicationStatement](medicationstatement.html): Returns statements for a specific patient.
3085* [MolecularSequence](molecularsequence.html): The subject that the sequence is about
3086* [NutritionIntake](nutritionintake.html): Returns statements for a specific patient.
3087* [NutritionOrder](nutritionorder.html): The identity of the individual or set of individuals who requires the diet, formula or nutritional supplement
3088* [Observation](observation.html): The subject that the observation is about (if patient)
3089* [Person](person.html): The Person links to this Patient
3090* [Procedure](procedure.html): Search by subject - a patient
3091* [Provenance](provenance.html): Where the activity involved patient data
3092* [QuestionnaireResponse](questionnaireresponse.html): The patient that is the subject of the questionnaire response
3093* [RelatedPerson](relatedperson.html): The patient this related person is related to
3094* [RequestOrchestration](requestorchestration.html): The identity of a patient to search for request orchestrations
3095* [ResearchSubject](researchsubject.html): Who or what is part of study
3096* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?
3097* [ServiceRequest](servicerequest.html): Search by subject - a patient
3098* [Specimen](specimen.html): The patient the specimen comes from
3099* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied
3100* [SupplyRequest](supplyrequest.html): The patient or subject for whom the supply is destined
3101* [Task](task.html): Search by patient
3102* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for
3103</b><br>
3104   * Type: <b>reference</b><br>
3105   * 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>
3106   * </p>
3107   */
3108  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PATIENT);
3109
3110/**
3111   * Constant for fluent queries to be used to add include statements. Specifies
3112   * the path value of "<b>AllergyIntolerance:patient</b>".
3113   */
3114  public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("AllergyIntolerance:patient").toLocked();
3115
3116 /**
3117   * Search parameter: <b>type</b>
3118   * <p>
3119   * Description: <b>Multiple Resources: 
3120
3121* [Account](account.html): E.g. patient, expense, depreciation
3122* [AllergyIntolerance](allergyintolerance.html): allergy | intolerance - Underlying mechanism (if known)
3123* [Composition](composition.html): Kind of composition (LOINC if possible)
3124* [Coverage](coverage.html): The kind of coverage (health plan, auto, Workers Compensation)
3125* [DocumentReference](documentreference.html): Kind of document (LOINC if possible)
3126* [Encounter](encounter.html): Specific type of encounter
3127* [EpisodeOfCare](episodeofcare.html): Type/class  - e.g. specialist referral, disease management
3128* [Invoice](invoice.html): Type of Invoice
3129* [MedicationDispense](medicationdispense.html): Returns dispenses of a specific type
3130* [MolecularSequence](molecularsequence.html): Amino Acid Sequence/ DNA Sequence / RNA Sequence
3131* [Specimen](specimen.html): The specimen type
3132</b><br>
3133   * Type: <b>token</b><br>
3134   * Path: <b>Account.type | AllergyIntolerance.type | Composition.type | Coverage.type | DocumentReference.type | Encounter.type | EpisodeOfCare.type | Invoice.type | MedicationDispense.type | MolecularSequence.type | Specimen.type</b><br>
3135   * </p>
3136   */
3137  @SearchParamDefinition(name="type", path="Account.type | AllergyIntolerance.type | Composition.type | Coverage.type | DocumentReference.type | Encounter.type | EpisodeOfCare.type | Invoice.type | MedicationDispense.type | MolecularSequence.type | Specimen.type", description="Multiple Resources: \r\n\r\n* [Account](account.html): E.g. patient, expense, depreciation\r\n* [AllergyIntolerance](allergyintolerance.html): allergy | intolerance - Underlying mechanism (if known)\r\n* [Composition](composition.html): Kind of composition (LOINC if possible)\r\n* [Coverage](coverage.html): The kind of coverage (health plan, auto, Workers Compensation)\r\n* [DocumentReference](documentreference.html): Kind of document (LOINC if possible)\r\n* [Encounter](encounter.html): Specific type of encounter\r\n* [EpisodeOfCare](episodeofcare.html): Type/class  - e.g. specialist referral, disease management\r\n* [Invoice](invoice.html): Type of Invoice\r\n* [MedicationDispense](medicationdispense.html): Returns dispenses of a specific type\r\n* [MolecularSequence](molecularsequence.html): Amino Acid Sequence/ DNA Sequence / RNA Sequence\r\n* [Specimen](specimen.html): The specimen type\r\n", type="token" )
3138  public static final String SP_TYPE = "type";
3139 /**
3140   * <b>Fluent Client</b> search parameter constant for <b>type</b>
3141   * <p>
3142   * Description: <b>Multiple Resources: 
3143
3144* [Account](account.html): E.g. patient, expense, depreciation
3145* [AllergyIntolerance](allergyintolerance.html): allergy | intolerance - Underlying mechanism (if known)
3146* [Composition](composition.html): Kind of composition (LOINC if possible)
3147* [Coverage](coverage.html): The kind of coverage (health plan, auto, Workers Compensation)
3148* [DocumentReference](documentreference.html): Kind of document (LOINC if possible)
3149* [Encounter](encounter.html): Specific type of encounter
3150* [EpisodeOfCare](episodeofcare.html): Type/class  - e.g. specialist referral, disease management
3151* [Invoice](invoice.html): Type of Invoice
3152* [MedicationDispense](medicationdispense.html): Returns dispenses of a specific type
3153* [MolecularSequence](molecularsequence.html): Amino Acid Sequence/ DNA Sequence / RNA Sequence
3154* [Specimen](specimen.html): The specimen type
3155</b><br>
3156   * Type: <b>token</b><br>
3157   * Path: <b>Account.type | AllergyIntolerance.type | Composition.type | Coverage.type | DocumentReference.type | Encounter.type | EpisodeOfCare.type | Invoice.type | MedicationDispense.type | MolecularSequence.type | Specimen.type</b><br>
3158   * </p>
3159   */
3160  public static final ca.uhn.fhir.rest.gclient.TokenClientParam TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TYPE);
3161
3162
3163}
3164