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 * An association between a patient and an organization / healthcare provider(s) during which time encounters may occur. The managing organization assumes a level of responsibility for the patient during this time.
052 */
053@ResourceDef(name="EpisodeOfCare", profile="http://hl7.org/fhir/StructureDefinition/EpisodeOfCare")
054public class EpisodeOfCare extends DomainResource {
055
056    public enum EpisodeOfCareStatus {
057        /**
058         * This episode of care is planned to start at the date specified in the period.start. During this status, an organization may perform assessments to determine if the patient is eligible to receive services, or be organizing to make resources available to provide care services.
059         */
060        PLANNED, 
061        /**
062         * This episode has been placed on a waitlist, pending the episode being made active (or cancelled).
063         */
064        WAITLIST, 
065        /**
066         * This episode of care is current.
067         */
068        ACTIVE, 
069        /**
070         * This episode of care is on hold; the organization has limited responsibility for the patient (such as while on respite).
071         */
072        ONHOLD, 
073        /**
074         * This episode of care is finished and the organization is not expecting to be providing further care to the patient. Can also be known as \"closed\", \"completed\" or other similar terms.
075         */
076        FINISHED, 
077        /**
078         * The episode of care was cancelled, or withdrawn from service, often selected during the planned stage as the patient may have gone elsewhere, or the circumstances have changed and the organization is unable to provide the care. It indicates that services terminated outside the planned/expected workflow.
079         */
080        CANCELLED, 
081        /**
082         * This instance should not have been part of this patient's medical record.
083         */
084        ENTEREDINERROR, 
085        /**
086         * added to help the parsers with the generic types
087         */
088        NULL;
089        public static EpisodeOfCareStatus fromCode(String codeString) throws FHIRException {
090            if (codeString == null || "".equals(codeString))
091                return null;
092        if ("planned".equals(codeString))
093          return PLANNED;
094        if ("waitlist".equals(codeString))
095          return WAITLIST;
096        if ("active".equals(codeString))
097          return ACTIVE;
098        if ("onhold".equals(codeString))
099          return ONHOLD;
100        if ("finished".equals(codeString))
101          return FINISHED;
102        if ("cancelled".equals(codeString))
103          return CANCELLED;
104        if ("entered-in-error".equals(codeString))
105          return ENTEREDINERROR;
106        if (Configuration.isAcceptInvalidEnums())
107          return null;
108        else
109          throw new FHIRException("Unknown EpisodeOfCareStatus code '"+codeString+"'");
110        }
111        public String toCode() {
112          switch (this) {
113            case PLANNED: return "planned";
114            case WAITLIST: return "waitlist";
115            case ACTIVE: return "active";
116            case ONHOLD: return "onhold";
117            case FINISHED: return "finished";
118            case CANCELLED: return "cancelled";
119            case ENTEREDINERROR: return "entered-in-error";
120            case NULL: return null;
121            default: return "?";
122          }
123        }
124        public String getSystem() {
125          switch (this) {
126            case PLANNED: return "http://hl7.org/fhir/episode-of-care-status";
127            case WAITLIST: return "http://hl7.org/fhir/episode-of-care-status";
128            case ACTIVE: return "http://hl7.org/fhir/episode-of-care-status";
129            case ONHOLD: return "http://hl7.org/fhir/episode-of-care-status";
130            case FINISHED: return "http://hl7.org/fhir/episode-of-care-status";
131            case CANCELLED: return "http://hl7.org/fhir/episode-of-care-status";
132            case ENTEREDINERROR: return "http://hl7.org/fhir/episode-of-care-status";
133            case NULL: return null;
134            default: return "?";
135          }
136        }
137        public String getDefinition() {
138          switch (this) {
139            case PLANNED: return "This episode of care is planned to start at the date specified in the period.start. During this status, an organization may perform assessments to determine if the patient is eligible to receive services, or be organizing to make resources available to provide care services.";
140            case WAITLIST: return "This episode has been placed on a waitlist, pending the episode being made active (or cancelled).";
141            case ACTIVE: return "This episode of care is current.";
142            case ONHOLD: return "This episode of care is on hold; the organization has limited responsibility for the patient (such as while on respite).";
143            case FINISHED: return "This episode of care is finished and the organization is not expecting to be providing further care to the patient. Can also be known as \"closed\", \"completed\" or other similar terms.";
144            case CANCELLED: return "The episode of care was cancelled, or withdrawn from service, often selected during the planned stage as the patient may have gone elsewhere, or the circumstances have changed and the organization is unable to provide the care. It indicates that services terminated outside the planned/expected workflow.";
145            case ENTEREDINERROR: return "This instance should not have been part of this patient's medical record.";
146            case NULL: return null;
147            default: return "?";
148          }
149        }
150        public String getDisplay() {
151          switch (this) {
152            case PLANNED: return "Planned";
153            case WAITLIST: return "Waitlist";
154            case ACTIVE: return "Active";
155            case ONHOLD: return "On Hold";
156            case FINISHED: return "Finished";
157            case CANCELLED: return "Cancelled";
158            case ENTEREDINERROR: return "Entered in Error";
159            case NULL: return null;
160            default: return "?";
161          }
162        }
163    }
164
165  public static class EpisodeOfCareStatusEnumFactory implements EnumFactory<EpisodeOfCareStatus> {
166    public EpisodeOfCareStatus fromCode(String codeString) throws IllegalArgumentException {
167      if (codeString == null || "".equals(codeString))
168            if (codeString == null || "".equals(codeString))
169                return null;
170        if ("planned".equals(codeString))
171          return EpisodeOfCareStatus.PLANNED;
172        if ("waitlist".equals(codeString))
173          return EpisodeOfCareStatus.WAITLIST;
174        if ("active".equals(codeString))
175          return EpisodeOfCareStatus.ACTIVE;
176        if ("onhold".equals(codeString))
177          return EpisodeOfCareStatus.ONHOLD;
178        if ("finished".equals(codeString))
179          return EpisodeOfCareStatus.FINISHED;
180        if ("cancelled".equals(codeString))
181          return EpisodeOfCareStatus.CANCELLED;
182        if ("entered-in-error".equals(codeString))
183          return EpisodeOfCareStatus.ENTEREDINERROR;
184        throw new IllegalArgumentException("Unknown EpisodeOfCareStatus code '"+codeString+"'");
185        }
186        public Enumeration<EpisodeOfCareStatus> fromType(PrimitiveType<?> code) throws FHIRException {
187          if (code == null)
188            return null;
189          if (code.isEmpty())
190            return new Enumeration<EpisodeOfCareStatus>(this, EpisodeOfCareStatus.NULL, code);
191          String codeString = ((PrimitiveType) code).asStringValue();
192          if (codeString == null || "".equals(codeString))
193            return new Enumeration<EpisodeOfCareStatus>(this, EpisodeOfCareStatus.NULL, code);
194        if ("planned".equals(codeString))
195          return new Enumeration<EpisodeOfCareStatus>(this, EpisodeOfCareStatus.PLANNED, code);
196        if ("waitlist".equals(codeString))
197          return new Enumeration<EpisodeOfCareStatus>(this, EpisodeOfCareStatus.WAITLIST, code);
198        if ("active".equals(codeString))
199          return new Enumeration<EpisodeOfCareStatus>(this, EpisodeOfCareStatus.ACTIVE, code);
200        if ("onhold".equals(codeString))
201          return new Enumeration<EpisodeOfCareStatus>(this, EpisodeOfCareStatus.ONHOLD, code);
202        if ("finished".equals(codeString))
203          return new Enumeration<EpisodeOfCareStatus>(this, EpisodeOfCareStatus.FINISHED, code);
204        if ("cancelled".equals(codeString))
205          return new Enumeration<EpisodeOfCareStatus>(this, EpisodeOfCareStatus.CANCELLED, code);
206        if ("entered-in-error".equals(codeString))
207          return new Enumeration<EpisodeOfCareStatus>(this, EpisodeOfCareStatus.ENTEREDINERROR, code);
208        throw new FHIRException("Unknown EpisodeOfCareStatus code '"+codeString+"'");
209        }
210    public String toCode(EpisodeOfCareStatus code) {
211      if (code == EpisodeOfCareStatus.PLANNED)
212        return "planned";
213      if (code == EpisodeOfCareStatus.WAITLIST)
214        return "waitlist";
215      if (code == EpisodeOfCareStatus.ACTIVE)
216        return "active";
217      if (code == EpisodeOfCareStatus.ONHOLD)
218        return "onhold";
219      if (code == EpisodeOfCareStatus.FINISHED)
220        return "finished";
221      if (code == EpisodeOfCareStatus.CANCELLED)
222        return "cancelled";
223      if (code == EpisodeOfCareStatus.ENTEREDINERROR)
224        return "entered-in-error";
225      return "?";
226      }
227    public String toSystem(EpisodeOfCareStatus code) {
228      return code.getSystem();
229      }
230    }
231
232    @Block()
233    public static class EpisodeOfCareStatusHistoryComponent extends BackboneElement implements IBaseBackboneElement {
234        /**
235         * planned | waitlist | active | onhold | finished | cancelled.
236         */
237        @Child(name = "status", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=false)
238        @Description(shortDefinition="planned | waitlist | active | onhold | finished | cancelled | entered-in-error", formalDefinition="planned | waitlist | active | onhold | finished | cancelled." )
239        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/episode-of-care-status")
240        protected Enumeration<EpisodeOfCareStatus> status;
241
242        /**
243         * The period during this EpisodeOfCare that the specific status applied.
244         */
245        @Child(name = "period", type = {Period.class}, order=2, min=1, max=1, modifier=false, summary=false)
246        @Description(shortDefinition="Duration the EpisodeOfCare was in the specified status", formalDefinition="The period during this EpisodeOfCare that the specific status applied." )
247        protected Period period;
248
249        private static final long serialVersionUID = -1192432864L;
250
251    /**
252     * Constructor
253     */
254      public EpisodeOfCareStatusHistoryComponent() {
255        super();
256      }
257
258    /**
259     * Constructor
260     */
261      public EpisodeOfCareStatusHistoryComponent(EpisodeOfCareStatus status, Period period) {
262        super();
263        this.setStatus(status);
264        this.setPeriod(period);
265      }
266
267        /**
268         * @return {@link #status} (planned | waitlist | active | onhold | finished | cancelled.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
269         */
270        public Enumeration<EpisodeOfCareStatus> getStatusElement() { 
271          if (this.status == null)
272            if (Configuration.errorOnAutoCreate())
273              throw new Error("Attempt to auto-create EpisodeOfCareStatusHistoryComponent.status");
274            else if (Configuration.doAutoCreate())
275              this.status = new Enumeration<EpisodeOfCareStatus>(new EpisodeOfCareStatusEnumFactory()); // bb
276          return this.status;
277        }
278
279        public boolean hasStatusElement() { 
280          return this.status != null && !this.status.isEmpty();
281        }
282
283        public boolean hasStatus() { 
284          return this.status != null && !this.status.isEmpty();
285        }
286
287        /**
288         * @param value {@link #status} (planned | waitlist | active | onhold | finished | cancelled.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
289         */
290        public EpisodeOfCareStatusHistoryComponent setStatusElement(Enumeration<EpisodeOfCareStatus> value) { 
291          this.status = value;
292          return this;
293        }
294
295        /**
296         * @return planned | waitlist | active | onhold | finished | cancelled.
297         */
298        public EpisodeOfCareStatus getStatus() { 
299          return this.status == null ? null : this.status.getValue();
300        }
301
302        /**
303         * @param value planned | waitlist | active | onhold | finished | cancelled.
304         */
305        public EpisodeOfCareStatusHistoryComponent setStatus(EpisodeOfCareStatus value) { 
306            if (this.status == null)
307              this.status = new Enumeration<EpisodeOfCareStatus>(new EpisodeOfCareStatusEnumFactory());
308            this.status.setValue(value);
309          return this;
310        }
311
312        /**
313         * @return {@link #period} (The period during this EpisodeOfCare that the specific status applied.)
314         */
315        public Period getPeriod() { 
316          if (this.period == null)
317            if (Configuration.errorOnAutoCreate())
318              throw new Error("Attempt to auto-create EpisodeOfCareStatusHistoryComponent.period");
319            else if (Configuration.doAutoCreate())
320              this.period = new Period(); // cc
321          return this.period;
322        }
323
324        public boolean hasPeriod() { 
325          return this.period != null && !this.period.isEmpty();
326        }
327
328        /**
329         * @param value {@link #period} (The period during this EpisodeOfCare that the specific status applied.)
330         */
331        public EpisodeOfCareStatusHistoryComponent setPeriod(Period value) { 
332          this.period = value;
333          return this;
334        }
335
336        protected void listChildren(List<Property> children) {
337          super.listChildren(children);
338          children.add(new Property("status", "code", "planned | waitlist | active | onhold | finished | cancelled.", 0, 1, status));
339          children.add(new Property("period", "Period", "The period during this EpisodeOfCare that the specific status applied.", 0, 1, period));
340        }
341
342        @Override
343        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
344          switch (_hash) {
345          case -892481550: /*status*/  return new Property("status", "code", "planned | waitlist | active | onhold | finished | cancelled.", 0, 1, status);
346          case -991726143: /*period*/  return new Property("period", "Period", "The period during this EpisodeOfCare that the specific status applied.", 0, 1, period);
347          default: return super.getNamedProperty(_hash, _name, _checkValid);
348          }
349
350        }
351
352      @Override
353      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
354        switch (hash) {
355        case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<EpisodeOfCareStatus>
356        case -991726143: /*period*/ return this.period == null ? new Base[0] : new Base[] {this.period}; // Period
357        default: return super.getProperty(hash, name, checkValid);
358        }
359
360      }
361
362      @Override
363      public Base setProperty(int hash, String name, Base value) throws FHIRException {
364        switch (hash) {
365        case -892481550: // status
366          value = new EpisodeOfCareStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
367          this.status = (Enumeration) value; // Enumeration<EpisodeOfCareStatus>
368          return value;
369        case -991726143: // period
370          this.period = TypeConvertor.castToPeriod(value); // Period
371          return value;
372        default: return super.setProperty(hash, name, value);
373        }
374
375      }
376
377      @Override
378      public Base setProperty(String name, Base value) throws FHIRException {
379        if (name.equals("status")) {
380          value = new EpisodeOfCareStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
381          this.status = (Enumeration) value; // Enumeration<EpisodeOfCareStatus>
382        } else if (name.equals("period")) {
383          this.period = TypeConvertor.castToPeriod(value); // Period
384        } else
385          return super.setProperty(name, value);
386        return value;
387      }
388
389      @Override
390      public Base makeProperty(int hash, String name) throws FHIRException {
391        switch (hash) {
392        case -892481550:  return getStatusElement();
393        case -991726143:  return getPeriod();
394        default: return super.makeProperty(hash, name);
395        }
396
397      }
398
399      @Override
400      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
401        switch (hash) {
402        case -892481550: /*status*/ return new String[] {"code"};
403        case -991726143: /*period*/ return new String[] {"Period"};
404        default: return super.getTypesForProperty(hash, name);
405        }
406
407      }
408
409      @Override
410      public Base addChild(String name) throws FHIRException {
411        if (name.equals("status")) {
412          throw new FHIRException("Cannot call addChild on a singleton property EpisodeOfCare.statusHistory.status");
413        }
414        else if (name.equals("period")) {
415          this.period = new Period();
416          return this.period;
417        }
418        else
419          return super.addChild(name);
420      }
421
422      public EpisodeOfCareStatusHistoryComponent copy() {
423        EpisodeOfCareStatusHistoryComponent dst = new EpisodeOfCareStatusHistoryComponent();
424        copyValues(dst);
425        return dst;
426      }
427
428      public void copyValues(EpisodeOfCareStatusHistoryComponent dst) {
429        super.copyValues(dst);
430        dst.status = status == null ? null : status.copy();
431        dst.period = period == null ? null : period.copy();
432      }
433
434      @Override
435      public boolean equalsDeep(Base other_) {
436        if (!super.equalsDeep(other_))
437          return false;
438        if (!(other_ instanceof EpisodeOfCareStatusHistoryComponent))
439          return false;
440        EpisodeOfCareStatusHistoryComponent o = (EpisodeOfCareStatusHistoryComponent) other_;
441        return compareDeep(status, o.status, true) && compareDeep(period, o.period, true);
442      }
443
444      @Override
445      public boolean equalsShallow(Base other_) {
446        if (!super.equalsShallow(other_))
447          return false;
448        if (!(other_ instanceof EpisodeOfCareStatusHistoryComponent))
449          return false;
450        EpisodeOfCareStatusHistoryComponent o = (EpisodeOfCareStatusHistoryComponent) other_;
451        return compareValues(status, o.status, true);
452      }
453
454      public boolean isEmpty() {
455        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(status, period);
456      }
457
458  public String fhirType() {
459    return "EpisodeOfCare.statusHistory";
460
461  }
462
463  }
464
465    @Block()
466    public static class ReasonComponent extends BackboneElement implements IBaseBackboneElement {
467        /**
468         * What the reason value should be used as e.g. Chief Complaint, Health Concern, Health Maintenance (including screening).
469         */
470        @Child(name = "use", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=false, summary=true)
471        @Description(shortDefinition="What the reason value should be used for/as", formalDefinition="What the reason value should be used as e.g. Chief Complaint, Health Concern, Health Maintenance (including screening)." )
472        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/encounter-reason-use")
473        protected CodeableConcept use;
474
475        /**
476         * The medical reason that is expected to be addressed during the episode of care, expressed as a text, code or a reference to another resource.
477         */
478        @Child(name = "value", type = {CodeableReference.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
479        @Description(shortDefinition="Medical reason to be addressed", formalDefinition="The medical reason that is expected to be addressed during the episode of care, expressed as a text, code or a reference to another resource." )
480        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/encounter-reason")
481        protected List<CodeableReference> value;
482
483        private static final long serialVersionUID = 322767075L;
484
485    /**
486     * Constructor
487     */
488      public ReasonComponent() {
489        super();
490      }
491
492        /**
493         * @return {@link #use} (What the reason value should be used as e.g. Chief Complaint, Health Concern, Health Maintenance (including screening).)
494         */
495        public CodeableConcept getUse() { 
496          if (this.use == null)
497            if (Configuration.errorOnAutoCreate())
498              throw new Error("Attempt to auto-create ReasonComponent.use");
499            else if (Configuration.doAutoCreate())
500              this.use = new CodeableConcept(); // cc
501          return this.use;
502        }
503
504        public boolean hasUse() { 
505          return this.use != null && !this.use.isEmpty();
506        }
507
508        /**
509         * @param value {@link #use} (What the reason value should be used as e.g. Chief Complaint, Health Concern, Health Maintenance (including screening).)
510         */
511        public ReasonComponent setUse(CodeableConcept value) { 
512          this.use = value;
513          return this;
514        }
515
516        /**
517         * @return {@link #value} (The medical reason that is expected to be addressed during the episode of care, expressed as a text, code or a reference to another resource.)
518         */
519        public List<CodeableReference> getValue() { 
520          if (this.value == null)
521            this.value = new ArrayList<CodeableReference>();
522          return this.value;
523        }
524
525        /**
526         * @return Returns a reference to <code>this</code> for easy method chaining
527         */
528        public ReasonComponent setValue(List<CodeableReference> theValue) { 
529          this.value = theValue;
530          return this;
531        }
532
533        public boolean hasValue() { 
534          if (this.value == null)
535            return false;
536          for (CodeableReference item : this.value)
537            if (!item.isEmpty())
538              return true;
539          return false;
540        }
541
542        public CodeableReference addValue() { //3
543          CodeableReference t = new CodeableReference();
544          if (this.value == null)
545            this.value = new ArrayList<CodeableReference>();
546          this.value.add(t);
547          return t;
548        }
549
550        public ReasonComponent addValue(CodeableReference t) { //3
551          if (t == null)
552            return this;
553          if (this.value == null)
554            this.value = new ArrayList<CodeableReference>();
555          this.value.add(t);
556          return this;
557        }
558
559        /**
560         * @return The first repetition of repeating field {@link #value}, creating it if it does not already exist {3}
561         */
562        public CodeableReference getValueFirstRep() { 
563          if (getValue().isEmpty()) {
564            addValue();
565          }
566          return getValue().get(0);
567        }
568
569        protected void listChildren(List<Property> children) {
570          super.listChildren(children);
571          children.add(new Property("use", "CodeableConcept", "What the reason value should be used as e.g. Chief Complaint, Health Concern, Health Maintenance (including screening).", 0, 1, use));
572          children.add(new Property("value", "CodeableReference(Condition|Procedure|Observation|HealthcareService)", "The medical reason that is expected to be addressed during the episode of care, expressed as a text, code or a reference to another resource.", 0, java.lang.Integer.MAX_VALUE, value));
573        }
574
575        @Override
576        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
577          switch (_hash) {
578          case 116103: /*use*/  return new Property("use", "CodeableConcept", "What the reason value should be used as e.g. Chief Complaint, Health Concern, Health Maintenance (including screening).", 0, 1, use);
579          case 111972721: /*value*/  return new Property("value", "CodeableReference(Condition|Procedure|Observation|HealthcareService)", "The medical reason that is expected to be addressed during the episode of care, expressed as a text, code or a reference to another resource.", 0, java.lang.Integer.MAX_VALUE, value);
580          default: return super.getNamedProperty(_hash, _name, _checkValid);
581          }
582
583        }
584
585      @Override
586      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
587        switch (hash) {
588        case 116103: /*use*/ return this.use == null ? new Base[0] : new Base[] {this.use}; // CodeableConcept
589        case 111972721: /*value*/ return this.value == null ? new Base[0] : this.value.toArray(new Base[this.value.size()]); // CodeableReference
590        default: return super.getProperty(hash, name, checkValid);
591        }
592
593      }
594
595      @Override
596      public Base setProperty(int hash, String name, Base value) throws FHIRException {
597        switch (hash) {
598        case 116103: // use
599          this.use = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
600          return value;
601        case 111972721: // value
602          this.getValue().add(TypeConvertor.castToCodeableReference(value)); // CodeableReference
603          return value;
604        default: return super.setProperty(hash, name, value);
605        }
606
607      }
608
609      @Override
610      public Base setProperty(String name, Base value) throws FHIRException {
611        if (name.equals("use")) {
612          this.use = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
613        } else if (name.equals("value")) {
614          this.getValue().add(TypeConvertor.castToCodeableReference(value));
615        } else
616          return super.setProperty(name, value);
617        return value;
618      }
619
620      @Override
621      public Base makeProperty(int hash, String name) throws FHIRException {
622        switch (hash) {
623        case 116103:  return getUse();
624        case 111972721:  return addValue(); 
625        default: return super.makeProperty(hash, name);
626        }
627
628      }
629
630      @Override
631      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
632        switch (hash) {
633        case 116103: /*use*/ return new String[] {"CodeableConcept"};
634        case 111972721: /*value*/ return new String[] {"CodeableReference"};
635        default: return super.getTypesForProperty(hash, name);
636        }
637
638      }
639
640      @Override
641      public Base addChild(String name) throws FHIRException {
642        if (name.equals("use")) {
643          this.use = new CodeableConcept();
644          return this.use;
645        }
646        else if (name.equals("value")) {
647          return addValue();
648        }
649        else
650          return super.addChild(name);
651      }
652
653      public ReasonComponent copy() {
654        ReasonComponent dst = new ReasonComponent();
655        copyValues(dst);
656        return dst;
657      }
658
659      public void copyValues(ReasonComponent dst) {
660        super.copyValues(dst);
661        dst.use = use == null ? null : use.copy();
662        if (value != null) {
663          dst.value = new ArrayList<CodeableReference>();
664          for (CodeableReference i : value)
665            dst.value.add(i.copy());
666        };
667      }
668
669      @Override
670      public boolean equalsDeep(Base other_) {
671        if (!super.equalsDeep(other_))
672          return false;
673        if (!(other_ instanceof ReasonComponent))
674          return false;
675        ReasonComponent o = (ReasonComponent) other_;
676        return compareDeep(use, o.use, true) && compareDeep(value, o.value, true);
677      }
678
679      @Override
680      public boolean equalsShallow(Base other_) {
681        if (!super.equalsShallow(other_))
682          return false;
683        if (!(other_ instanceof ReasonComponent))
684          return false;
685        ReasonComponent o = (ReasonComponent) other_;
686        return true;
687      }
688
689      public boolean isEmpty() {
690        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(use, value);
691      }
692
693  public String fhirType() {
694    return "EpisodeOfCare.reason";
695
696  }
697
698  }
699
700    @Block()
701    public static class DiagnosisComponent extends BackboneElement implements IBaseBackboneElement {
702        /**
703         * The medical condition that was addressed during the episode of care, expressed as a text, code or a reference to another resource.
704         */
705        @Child(name = "condition", type = {CodeableReference.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
706        @Description(shortDefinition="The medical condition that was addressed during the episode of care", formalDefinition="The medical condition that was addressed during the episode of care, expressed as a text, code or a reference to another resource." )
707        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/condition-code")
708        protected List<CodeableReference> condition;
709
710        /**
711         * Role that this diagnosis has within the episode of care (e.g. admission, billing, discharge ?).
712         */
713        @Child(name = "use", type = {CodeableConcept.class}, order=2, min=0, max=1, modifier=false, summary=true)
714        @Description(shortDefinition="Role that this diagnosis has within the episode of care (e.g. admission, billing, discharge ?)", formalDefinition="Role that this diagnosis has within the episode of care (e.g. admission, billing, discharge ?)." )
715        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/encounter-diagnosis-use")
716        protected CodeableConcept use;
717
718        private static final long serialVersionUID = -1997962887L;
719
720    /**
721     * Constructor
722     */
723      public DiagnosisComponent() {
724        super();
725      }
726
727        /**
728         * @return {@link #condition} (The medical condition that was addressed during the episode of care, expressed as a text, code or a reference to another resource.)
729         */
730        public List<CodeableReference> getCondition() { 
731          if (this.condition == null)
732            this.condition = new ArrayList<CodeableReference>();
733          return this.condition;
734        }
735
736        /**
737         * @return Returns a reference to <code>this</code> for easy method chaining
738         */
739        public DiagnosisComponent setCondition(List<CodeableReference> theCondition) { 
740          this.condition = theCondition;
741          return this;
742        }
743
744        public boolean hasCondition() { 
745          if (this.condition == null)
746            return false;
747          for (CodeableReference item : this.condition)
748            if (!item.isEmpty())
749              return true;
750          return false;
751        }
752
753        public CodeableReference addCondition() { //3
754          CodeableReference t = new CodeableReference();
755          if (this.condition == null)
756            this.condition = new ArrayList<CodeableReference>();
757          this.condition.add(t);
758          return t;
759        }
760
761        public DiagnosisComponent addCondition(CodeableReference t) { //3
762          if (t == null)
763            return this;
764          if (this.condition == null)
765            this.condition = new ArrayList<CodeableReference>();
766          this.condition.add(t);
767          return this;
768        }
769
770        /**
771         * @return The first repetition of repeating field {@link #condition}, creating it if it does not already exist {3}
772         */
773        public CodeableReference getConditionFirstRep() { 
774          if (getCondition().isEmpty()) {
775            addCondition();
776          }
777          return getCondition().get(0);
778        }
779
780        /**
781         * @return {@link #use} (Role that this diagnosis has within the episode of care (e.g. admission, billing, discharge ?).)
782         */
783        public CodeableConcept getUse() { 
784          if (this.use == null)
785            if (Configuration.errorOnAutoCreate())
786              throw new Error("Attempt to auto-create DiagnosisComponent.use");
787            else if (Configuration.doAutoCreate())
788              this.use = new CodeableConcept(); // cc
789          return this.use;
790        }
791
792        public boolean hasUse() { 
793          return this.use != null && !this.use.isEmpty();
794        }
795
796        /**
797         * @param value {@link #use} (Role that this diagnosis has within the episode of care (e.g. admission, billing, discharge ?).)
798         */
799        public DiagnosisComponent setUse(CodeableConcept value) { 
800          this.use = value;
801          return this;
802        }
803
804        protected void listChildren(List<Property> children) {
805          super.listChildren(children);
806          children.add(new Property("condition", "CodeableReference(Condition)", "The medical condition that was addressed during the episode of care, expressed as a text, code or a reference to another resource.", 0, java.lang.Integer.MAX_VALUE, condition));
807          children.add(new Property("use", "CodeableConcept", "Role that this diagnosis has within the episode of care (e.g. admission, billing, discharge ?).", 0, 1, use));
808        }
809
810        @Override
811        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
812          switch (_hash) {
813          case -861311717: /*condition*/  return new Property("condition", "CodeableReference(Condition)", "The medical condition that was addressed during the episode of care, expressed as a text, code or a reference to another resource.", 0, java.lang.Integer.MAX_VALUE, condition);
814          case 116103: /*use*/  return new Property("use", "CodeableConcept", "Role that this diagnosis has within the episode of care (e.g. admission, billing, discharge ?).", 0, 1, use);
815          default: return super.getNamedProperty(_hash, _name, _checkValid);
816          }
817
818        }
819
820      @Override
821      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
822        switch (hash) {
823        case -861311717: /*condition*/ return this.condition == null ? new Base[0] : this.condition.toArray(new Base[this.condition.size()]); // CodeableReference
824        case 116103: /*use*/ return this.use == null ? new Base[0] : new Base[] {this.use}; // CodeableConcept
825        default: return super.getProperty(hash, name, checkValid);
826        }
827
828      }
829
830      @Override
831      public Base setProperty(int hash, String name, Base value) throws FHIRException {
832        switch (hash) {
833        case -861311717: // condition
834          this.getCondition().add(TypeConvertor.castToCodeableReference(value)); // CodeableReference
835          return value;
836        case 116103: // use
837          this.use = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
838          return value;
839        default: return super.setProperty(hash, name, value);
840        }
841
842      }
843
844      @Override
845      public Base setProperty(String name, Base value) throws FHIRException {
846        if (name.equals("condition")) {
847          this.getCondition().add(TypeConvertor.castToCodeableReference(value));
848        } else if (name.equals("use")) {
849          this.use = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
850        } else
851          return super.setProperty(name, value);
852        return value;
853      }
854
855      @Override
856      public Base makeProperty(int hash, String name) throws FHIRException {
857        switch (hash) {
858        case -861311717:  return addCondition(); 
859        case 116103:  return getUse();
860        default: return super.makeProperty(hash, name);
861        }
862
863      }
864
865      @Override
866      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
867        switch (hash) {
868        case -861311717: /*condition*/ return new String[] {"CodeableReference"};
869        case 116103: /*use*/ return new String[] {"CodeableConcept"};
870        default: return super.getTypesForProperty(hash, name);
871        }
872
873      }
874
875      @Override
876      public Base addChild(String name) throws FHIRException {
877        if (name.equals("condition")) {
878          return addCondition();
879        }
880        else if (name.equals("use")) {
881          this.use = new CodeableConcept();
882          return this.use;
883        }
884        else
885          return super.addChild(name);
886      }
887
888      public DiagnosisComponent copy() {
889        DiagnosisComponent dst = new DiagnosisComponent();
890        copyValues(dst);
891        return dst;
892      }
893
894      public void copyValues(DiagnosisComponent dst) {
895        super.copyValues(dst);
896        if (condition != null) {
897          dst.condition = new ArrayList<CodeableReference>();
898          for (CodeableReference i : condition)
899            dst.condition.add(i.copy());
900        };
901        dst.use = use == null ? null : use.copy();
902      }
903
904      @Override
905      public boolean equalsDeep(Base other_) {
906        if (!super.equalsDeep(other_))
907          return false;
908        if (!(other_ instanceof DiagnosisComponent))
909          return false;
910        DiagnosisComponent o = (DiagnosisComponent) other_;
911        return compareDeep(condition, o.condition, true) && compareDeep(use, o.use, true);
912      }
913
914      @Override
915      public boolean equalsShallow(Base other_) {
916        if (!super.equalsShallow(other_))
917          return false;
918        if (!(other_ instanceof DiagnosisComponent))
919          return false;
920        DiagnosisComponent o = (DiagnosisComponent) other_;
921        return true;
922      }
923
924      public boolean isEmpty() {
925        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(condition, use);
926      }
927
928  public String fhirType() {
929    return "EpisodeOfCare.diagnosis";
930
931  }
932
933  }
934
935    /**
936     * The EpisodeOfCare may be known by different identifiers for different contexts of use, such as when an external agency is tracking the Episode for funding purposes.
937     */
938    @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
939    @Description(shortDefinition="Business Identifier(s) relevant for this EpisodeOfCare", formalDefinition="The EpisodeOfCare may be known by different identifiers for different contexts of use, such as when an external agency is tracking the Episode for funding purposes." )
940    protected List<Identifier> identifier;
941
942    /**
943     * planned | waitlist | active | onhold | finished | cancelled.
944     */
945    @Child(name = "status", type = {CodeType.class}, order=1, min=1, max=1, modifier=true, summary=true)
946    @Description(shortDefinition="planned | waitlist | active | onhold | finished | cancelled | entered-in-error", formalDefinition="planned | waitlist | active | onhold | finished | cancelled." )
947    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/episode-of-care-status")
948    protected Enumeration<EpisodeOfCareStatus> status;
949
950    /**
951     * The history of statuses that the EpisodeOfCare has been through (without requiring processing the history of the resource).
952     */
953    @Child(name = "statusHistory", type = {}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
954    @Description(shortDefinition="Past list of status codes (the current status may be included to cover the start date of the status)", formalDefinition="The history of statuses that the EpisodeOfCare has been through (without requiring processing the history of the resource)." )
955    protected List<EpisodeOfCareStatusHistoryComponent> statusHistory;
956
957    /**
958     * A classification of the type of episode of care; e.g. specialist referral, disease management, type of funded care.
959     */
960    @Child(name = "type", type = {CodeableConcept.class}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
961    @Description(shortDefinition="Type/class  - e.g. specialist referral, disease management", formalDefinition="A classification of the type of episode of care; e.g. specialist referral, disease management, type of funded care." )
962    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/episodeofcare-type")
963    protected List<CodeableConcept> type;
964
965    /**
966     * The list of medical reasons that are expected to be addressed during the episode of care.
967     */
968    @Child(name = "reason", type = {}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
969    @Description(shortDefinition="The list of medical reasons that are expected to be addressed during the episode of care", formalDefinition="The list of medical reasons that are expected to be addressed during the episode of care." )
970    protected List<ReasonComponent> reason;
971
972    /**
973     * The list of medical conditions that were addressed during the episode of care.
974     */
975    @Child(name = "diagnosis", type = {}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
976    @Description(shortDefinition="The list of medical conditions that were addressed during the episode of care", formalDefinition="The list of medical conditions that were addressed during the episode of care." )
977    protected List<DiagnosisComponent> diagnosis;
978
979    /**
980     * The patient who is the focus of this episode of care.
981     */
982    @Child(name = "patient", type = {Patient.class}, order=6, min=1, max=1, modifier=false, summary=true)
983    @Description(shortDefinition="The patient who is the focus of this episode of care", formalDefinition="The patient who is the focus of this episode of care." )
984    protected Reference patient;
985
986    /**
987     * The organization that has assumed the specific responsibilities for care coordination, care delivery, or other services for the specified duration.
988     */
989    @Child(name = "managingOrganization", type = {Organization.class}, order=7, min=0, max=1, modifier=false, summary=true)
990    @Description(shortDefinition="Organization that assumes responsibility for care coordination", formalDefinition="The organization that has assumed the specific responsibilities for care coordination, care delivery, or other services for the specified duration." )
991    protected Reference managingOrganization;
992
993    /**
994     * The interval during which the managing organization assumes the defined responsibility.
995     */
996    @Child(name = "period", type = {Period.class}, order=8, min=0, max=1, modifier=false, summary=true)
997    @Description(shortDefinition="Interval during responsibility is assumed", formalDefinition="The interval during which the managing organization assumes the defined responsibility." )
998    protected Period period;
999
1000    /**
1001     * Referral Request(s) that are fulfilled by this EpisodeOfCare, incoming referrals.
1002     */
1003    @Child(name = "referralRequest", type = {ServiceRequest.class}, order=9, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
1004    @Description(shortDefinition="Originating Referral Request(s)", formalDefinition="Referral Request(s) that are fulfilled by this EpisodeOfCare, incoming referrals." )
1005    protected List<Reference> referralRequest;
1006
1007    /**
1008     * The practitioner that is the care manager/care coordinator for this patient.
1009     */
1010    @Child(name = "careManager", type = {Practitioner.class, PractitionerRole.class}, order=10, min=0, max=1, modifier=false, summary=false)
1011    @Description(shortDefinition="Care manager/care coordinator for the patient", formalDefinition="The practitioner that is the care manager/care coordinator for this patient." )
1012    protected Reference careManager;
1013
1014    /**
1015     * The list of practitioners that may be facilitating this episode of care for specific purposes.
1016     */
1017    @Child(name = "careTeam", type = {CareTeam.class}, order=11, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
1018    @Description(shortDefinition="Other practitioners facilitating this episode of care", formalDefinition="The list of practitioners that may be facilitating this episode of care for specific purposes." )
1019    protected List<Reference> careTeam;
1020
1021    /**
1022     * The set of accounts that may be used for billing for this EpisodeOfCare.
1023     */
1024    @Child(name = "account", type = {Account.class}, order=12, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
1025    @Description(shortDefinition="The set of accounts that may be used for billing for this EpisodeOfCare", formalDefinition="The set of accounts that may be used for billing for this EpisodeOfCare." )
1026    protected List<Reference> account;
1027
1028    private static final long serialVersionUID = 678200746L;
1029
1030  /**
1031   * Constructor
1032   */
1033    public EpisodeOfCare() {
1034      super();
1035    }
1036
1037  /**
1038   * Constructor
1039   */
1040    public EpisodeOfCare(EpisodeOfCareStatus status, Reference patient) {
1041      super();
1042      this.setStatus(status);
1043      this.setPatient(patient);
1044    }
1045
1046    /**
1047     * @return {@link #identifier} (The EpisodeOfCare may be known by different identifiers for different contexts of use, such as when an external agency is tracking the Episode for funding purposes.)
1048     */
1049    public List<Identifier> getIdentifier() { 
1050      if (this.identifier == null)
1051        this.identifier = new ArrayList<Identifier>();
1052      return this.identifier;
1053    }
1054
1055    /**
1056     * @return Returns a reference to <code>this</code> for easy method chaining
1057     */
1058    public EpisodeOfCare setIdentifier(List<Identifier> theIdentifier) { 
1059      this.identifier = theIdentifier;
1060      return this;
1061    }
1062
1063    public boolean hasIdentifier() { 
1064      if (this.identifier == null)
1065        return false;
1066      for (Identifier item : this.identifier)
1067        if (!item.isEmpty())
1068          return true;
1069      return false;
1070    }
1071
1072    public Identifier addIdentifier() { //3
1073      Identifier t = new Identifier();
1074      if (this.identifier == null)
1075        this.identifier = new ArrayList<Identifier>();
1076      this.identifier.add(t);
1077      return t;
1078    }
1079
1080    public EpisodeOfCare addIdentifier(Identifier t) { //3
1081      if (t == null)
1082        return this;
1083      if (this.identifier == null)
1084        this.identifier = new ArrayList<Identifier>();
1085      this.identifier.add(t);
1086      return this;
1087    }
1088
1089    /**
1090     * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3}
1091     */
1092    public Identifier getIdentifierFirstRep() { 
1093      if (getIdentifier().isEmpty()) {
1094        addIdentifier();
1095      }
1096      return getIdentifier().get(0);
1097    }
1098
1099    /**
1100     * @return {@link #status} (planned | waitlist | active | onhold | finished | cancelled.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
1101     */
1102    public Enumeration<EpisodeOfCareStatus> getStatusElement() { 
1103      if (this.status == null)
1104        if (Configuration.errorOnAutoCreate())
1105          throw new Error("Attempt to auto-create EpisodeOfCare.status");
1106        else if (Configuration.doAutoCreate())
1107          this.status = new Enumeration<EpisodeOfCareStatus>(new EpisodeOfCareStatusEnumFactory()); // bb
1108      return this.status;
1109    }
1110
1111    public boolean hasStatusElement() { 
1112      return this.status != null && !this.status.isEmpty();
1113    }
1114
1115    public boolean hasStatus() { 
1116      return this.status != null && !this.status.isEmpty();
1117    }
1118
1119    /**
1120     * @param value {@link #status} (planned | waitlist | active | onhold | finished | cancelled.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
1121     */
1122    public EpisodeOfCare setStatusElement(Enumeration<EpisodeOfCareStatus> value) { 
1123      this.status = value;
1124      return this;
1125    }
1126
1127    /**
1128     * @return planned | waitlist | active | onhold | finished | cancelled.
1129     */
1130    public EpisodeOfCareStatus getStatus() { 
1131      return this.status == null ? null : this.status.getValue();
1132    }
1133
1134    /**
1135     * @param value planned | waitlist | active | onhold | finished | cancelled.
1136     */
1137    public EpisodeOfCare setStatus(EpisodeOfCareStatus value) { 
1138        if (this.status == null)
1139          this.status = new Enumeration<EpisodeOfCareStatus>(new EpisodeOfCareStatusEnumFactory());
1140        this.status.setValue(value);
1141      return this;
1142    }
1143
1144    /**
1145     * @return {@link #statusHistory} (The history of statuses that the EpisodeOfCare has been through (without requiring processing the history of the resource).)
1146     */
1147    public List<EpisodeOfCareStatusHistoryComponent> getStatusHistory() { 
1148      if (this.statusHistory == null)
1149        this.statusHistory = new ArrayList<EpisodeOfCareStatusHistoryComponent>();
1150      return this.statusHistory;
1151    }
1152
1153    /**
1154     * @return Returns a reference to <code>this</code> for easy method chaining
1155     */
1156    public EpisodeOfCare setStatusHistory(List<EpisodeOfCareStatusHistoryComponent> theStatusHistory) { 
1157      this.statusHistory = theStatusHistory;
1158      return this;
1159    }
1160
1161    public boolean hasStatusHistory() { 
1162      if (this.statusHistory == null)
1163        return false;
1164      for (EpisodeOfCareStatusHistoryComponent item : this.statusHistory)
1165        if (!item.isEmpty())
1166          return true;
1167      return false;
1168    }
1169
1170    public EpisodeOfCareStatusHistoryComponent addStatusHistory() { //3
1171      EpisodeOfCareStatusHistoryComponent t = new EpisodeOfCareStatusHistoryComponent();
1172      if (this.statusHistory == null)
1173        this.statusHistory = new ArrayList<EpisodeOfCareStatusHistoryComponent>();
1174      this.statusHistory.add(t);
1175      return t;
1176    }
1177
1178    public EpisodeOfCare addStatusHistory(EpisodeOfCareStatusHistoryComponent t) { //3
1179      if (t == null)
1180        return this;
1181      if (this.statusHistory == null)
1182        this.statusHistory = new ArrayList<EpisodeOfCareStatusHistoryComponent>();
1183      this.statusHistory.add(t);
1184      return this;
1185    }
1186
1187    /**
1188     * @return The first repetition of repeating field {@link #statusHistory}, creating it if it does not already exist {3}
1189     */
1190    public EpisodeOfCareStatusHistoryComponent getStatusHistoryFirstRep() { 
1191      if (getStatusHistory().isEmpty()) {
1192        addStatusHistory();
1193      }
1194      return getStatusHistory().get(0);
1195    }
1196
1197    /**
1198     * @return {@link #type} (A classification of the type of episode of care; e.g. specialist referral, disease management, type of funded care.)
1199     */
1200    public List<CodeableConcept> getType() { 
1201      if (this.type == null)
1202        this.type = new ArrayList<CodeableConcept>();
1203      return this.type;
1204    }
1205
1206    /**
1207     * @return Returns a reference to <code>this</code> for easy method chaining
1208     */
1209    public EpisodeOfCare setType(List<CodeableConcept> theType) { 
1210      this.type = theType;
1211      return this;
1212    }
1213
1214    public boolean hasType() { 
1215      if (this.type == null)
1216        return false;
1217      for (CodeableConcept item : this.type)
1218        if (!item.isEmpty())
1219          return true;
1220      return false;
1221    }
1222
1223    public CodeableConcept addType() { //3
1224      CodeableConcept t = new CodeableConcept();
1225      if (this.type == null)
1226        this.type = new ArrayList<CodeableConcept>();
1227      this.type.add(t);
1228      return t;
1229    }
1230
1231    public EpisodeOfCare addType(CodeableConcept t) { //3
1232      if (t == null)
1233        return this;
1234      if (this.type == null)
1235        this.type = new ArrayList<CodeableConcept>();
1236      this.type.add(t);
1237      return this;
1238    }
1239
1240    /**
1241     * @return The first repetition of repeating field {@link #type}, creating it if it does not already exist {3}
1242     */
1243    public CodeableConcept getTypeFirstRep() { 
1244      if (getType().isEmpty()) {
1245        addType();
1246      }
1247      return getType().get(0);
1248    }
1249
1250    /**
1251     * @return {@link #reason} (The list of medical reasons that are expected to be addressed during the episode of care.)
1252     */
1253    public List<ReasonComponent> getReason() { 
1254      if (this.reason == null)
1255        this.reason = new ArrayList<ReasonComponent>();
1256      return this.reason;
1257    }
1258
1259    /**
1260     * @return Returns a reference to <code>this</code> for easy method chaining
1261     */
1262    public EpisodeOfCare setReason(List<ReasonComponent> theReason) { 
1263      this.reason = theReason;
1264      return this;
1265    }
1266
1267    public boolean hasReason() { 
1268      if (this.reason == null)
1269        return false;
1270      for (ReasonComponent item : this.reason)
1271        if (!item.isEmpty())
1272          return true;
1273      return false;
1274    }
1275
1276    public ReasonComponent addReason() { //3
1277      ReasonComponent t = new ReasonComponent();
1278      if (this.reason == null)
1279        this.reason = new ArrayList<ReasonComponent>();
1280      this.reason.add(t);
1281      return t;
1282    }
1283
1284    public EpisodeOfCare addReason(ReasonComponent t) { //3
1285      if (t == null)
1286        return this;
1287      if (this.reason == null)
1288        this.reason = new ArrayList<ReasonComponent>();
1289      this.reason.add(t);
1290      return this;
1291    }
1292
1293    /**
1294     * @return The first repetition of repeating field {@link #reason}, creating it if it does not already exist {3}
1295     */
1296    public ReasonComponent getReasonFirstRep() { 
1297      if (getReason().isEmpty()) {
1298        addReason();
1299      }
1300      return getReason().get(0);
1301    }
1302
1303    /**
1304     * @return {@link #diagnosis} (The list of medical conditions that were addressed during the episode of care.)
1305     */
1306    public List<DiagnosisComponent> getDiagnosis() { 
1307      if (this.diagnosis == null)
1308        this.diagnosis = new ArrayList<DiagnosisComponent>();
1309      return this.diagnosis;
1310    }
1311
1312    /**
1313     * @return Returns a reference to <code>this</code> for easy method chaining
1314     */
1315    public EpisodeOfCare setDiagnosis(List<DiagnosisComponent> theDiagnosis) { 
1316      this.diagnosis = theDiagnosis;
1317      return this;
1318    }
1319
1320    public boolean hasDiagnosis() { 
1321      if (this.diagnosis == null)
1322        return false;
1323      for (DiagnosisComponent item : this.diagnosis)
1324        if (!item.isEmpty())
1325          return true;
1326      return false;
1327    }
1328
1329    public DiagnosisComponent addDiagnosis() { //3
1330      DiagnosisComponent t = new DiagnosisComponent();
1331      if (this.diagnosis == null)
1332        this.diagnosis = new ArrayList<DiagnosisComponent>();
1333      this.diagnosis.add(t);
1334      return t;
1335    }
1336
1337    public EpisodeOfCare addDiagnosis(DiagnosisComponent t) { //3
1338      if (t == null)
1339        return this;
1340      if (this.diagnosis == null)
1341        this.diagnosis = new ArrayList<DiagnosisComponent>();
1342      this.diagnosis.add(t);
1343      return this;
1344    }
1345
1346    /**
1347     * @return The first repetition of repeating field {@link #diagnosis}, creating it if it does not already exist {3}
1348     */
1349    public DiagnosisComponent getDiagnosisFirstRep() { 
1350      if (getDiagnosis().isEmpty()) {
1351        addDiagnosis();
1352      }
1353      return getDiagnosis().get(0);
1354    }
1355
1356    /**
1357     * @return {@link #patient} (The patient who is the focus of this episode of care.)
1358     */
1359    public Reference getPatient() { 
1360      if (this.patient == null)
1361        if (Configuration.errorOnAutoCreate())
1362          throw new Error("Attempt to auto-create EpisodeOfCare.patient");
1363        else if (Configuration.doAutoCreate())
1364          this.patient = new Reference(); // cc
1365      return this.patient;
1366    }
1367
1368    public boolean hasPatient() { 
1369      return this.patient != null && !this.patient.isEmpty();
1370    }
1371
1372    /**
1373     * @param value {@link #patient} (The patient who is the focus of this episode of care.)
1374     */
1375    public EpisodeOfCare setPatient(Reference value) { 
1376      this.patient = value;
1377      return this;
1378    }
1379
1380    /**
1381     * @return {@link #managingOrganization} (The organization that has assumed the specific responsibilities for care coordination, care delivery, or other services for the specified duration.)
1382     */
1383    public Reference getManagingOrganization() { 
1384      if (this.managingOrganization == null)
1385        if (Configuration.errorOnAutoCreate())
1386          throw new Error("Attempt to auto-create EpisodeOfCare.managingOrganization");
1387        else if (Configuration.doAutoCreate())
1388          this.managingOrganization = new Reference(); // cc
1389      return this.managingOrganization;
1390    }
1391
1392    public boolean hasManagingOrganization() { 
1393      return this.managingOrganization != null && !this.managingOrganization.isEmpty();
1394    }
1395
1396    /**
1397     * @param value {@link #managingOrganization} (The organization that has assumed the specific responsibilities for care coordination, care delivery, or other services for the specified duration.)
1398     */
1399    public EpisodeOfCare setManagingOrganization(Reference value) { 
1400      this.managingOrganization = value;
1401      return this;
1402    }
1403
1404    /**
1405     * @return {@link #period} (The interval during which the managing organization assumes the defined responsibility.)
1406     */
1407    public Period getPeriod() { 
1408      if (this.period == null)
1409        if (Configuration.errorOnAutoCreate())
1410          throw new Error("Attempt to auto-create EpisodeOfCare.period");
1411        else if (Configuration.doAutoCreate())
1412          this.period = new Period(); // cc
1413      return this.period;
1414    }
1415
1416    public boolean hasPeriod() { 
1417      return this.period != null && !this.period.isEmpty();
1418    }
1419
1420    /**
1421     * @param value {@link #period} (The interval during which the managing organization assumes the defined responsibility.)
1422     */
1423    public EpisodeOfCare setPeriod(Period value) { 
1424      this.period = value;
1425      return this;
1426    }
1427
1428    /**
1429     * @return {@link #referralRequest} (Referral Request(s) that are fulfilled by this EpisodeOfCare, incoming referrals.)
1430     */
1431    public List<Reference> getReferralRequest() { 
1432      if (this.referralRequest == null)
1433        this.referralRequest = new ArrayList<Reference>();
1434      return this.referralRequest;
1435    }
1436
1437    /**
1438     * @return Returns a reference to <code>this</code> for easy method chaining
1439     */
1440    public EpisodeOfCare setReferralRequest(List<Reference> theReferralRequest) { 
1441      this.referralRequest = theReferralRequest;
1442      return this;
1443    }
1444
1445    public boolean hasReferralRequest() { 
1446      if (this.referralRequest == null)
1447        return false;
1448      for (Reference item : this.referralRequest)
1449        if (!item.isEmpty())
1450          return true;
1451      return false;
1452    }
1453
1454    public Reference addReferralRequest() { //3
1455      Reference t = new Reference();
1456      if (this.referralRequest == null)
1457        this.referralRequest = new ArrayList<Reference>();
1458      this.referralRequest.add(t);
1459      return t;
1460    }
1461
1462    public EpisodeOfCare addReferralRequest(Reference t) { //3
1463      if (t == null)
1464        return this;
1465      if (this.referralRequest == null)
1466        this.referralRequest = new ArrayList<Reference>();
1467      this.referralRequest.add(t);
1468      return this;
1469    }
1470
1471    /**
1472     * @return The first repetition of repeating field {@link #referralRequest}, creating it if it does not already exist {3}
1473     */
1474    public Reference getReferralRequestFirstRep() { 
1475      if (getReferralRequest().isEmpty()) {
1476        addReferralRequest();
1477      }
1478      return getReferralRequest().get(0);
1479    }
1480
1481    /**
1482     * @return {@link #careManager} (The practitioner that is the care manager/care coordinator for this patient.)
1483     */
1484    public Reference getCareManager() { 
1485      if (this.careManager == null)
1486        if (Configuration.errorOnAutoCreate())
1487          throw new Error("Attempt to auto-create EpisodeOfCare.careManager");
1488        else if (Configuration.doAutoCreate())
1489          this.careManager = new Reference(); // cc
1490      return this.careManager;
1491    }
1492
1493    public boolean hasCareManager() { 
1494      return this.careManager != null && !this.careManager.isEmpty();
1495    }
1496
1497    /**
1498     * @param value {@link #careManager} (The practitioner that is the care manager/care coordinator for this patient.)
1499     */
1500    public EpisodeOfCare setCareManager(Reference value) { 
1501      this.careManager = value;
1502      return this;
1503    }
1504
1505    /**
1506     * @return {@link #careTeam} (The list of practitioners that may be facilitating this episode of care for specific purposes.)
1507     */
1508    public List<Reference> getCareTeam() { 
1509      if (this.careTeam == null)
1510        this.careTeam = new ArrayList<Reference>();
1511      return this.careTeam;
1512    }
1513
1514    /**
1515     * @return Returns a reference to <code>this</code> for easy method chaining
1516     */
1517    public EpisodeOfCare setCareTeam(List<Reference> theCareTeam) { 
1518      this.careTeam = theCareTeam;
1519      return this;
1520    }
1521
1522    public boolean hasCareTeam() { 
1523      if (this.careTeam == null)
1524        return false;
1525      for (Reference item : this.careTeam)
1526        if (!item.isEmpty())
1527          return true;
1528      return false;
1529    }
1530
1531    public Reference addCareTeam() { //3
1532      Reference t = new Reference();
1533      if (this.careTeam == null)
1534        this.careTeam = new ArrayList<Reference>();
1535      this.careTeam.add(t);
1536      return t;
1537    }
1538
1539    public EpisodeOfCare addCareTeam(Reference t) { //3
1540      if (t == null)
1541        return this;
1542      if (this.careTeam == null)
1543        this.careTeam = new ArrayList<Reference>();
1544      this.careTeam.add(t);
1545      return this;
1546    }
1547
1548    /**
1549     * @return The first repetition of repeating field {@link #careTeam}, creating it if it does not already exist {3}
1550     */
1551    public Reference getCareTeamFirstRep() { 
1552      if (getCareTeam().isEmpty()) {
1553        addCareTeam();
1554      }
1555      return getCareTeam().get(0);
1556    }
1557
1558    /**
1559     * @return {@link #account} (The set of accounts that may be used for billing for this EpisodeOfCare.)
1560     */
1561    public List<Reference> getAccount() { 
1562      if (this.account == null)
1563        this.account = new ArrayList<Reference>();
1564      return this.account;
1565    }
1566
1567    /**
1568     * @return Returns a reference to <code>this</code> for easy method chaining
1569     */
1570    public EpisodeOfCare setAccount(List<Reference> theAccount) { 
1571      this.account = theAccount;
1572      return this;
1573    }
1574
1575    public boolean hasAccount() { 
1576      if (this.account == null)
1577        return false;
1578      for (Reference item : this.account)
1579        if (!item.isEmpty())
1580          return true;
1581      return false;
1582    }
1583
1584    public Reference addAccount() { //3
1585      Reference t = new Reference();
1586      if (this.account == null)
1587        this.account = new ArrayList<Reference>();
1588      this.account.add(t);
1589      return t;
1590    }
1591
1592    public EpisodeOfCare addAccount(Reference t) { //3
1593      if (t == null)
1594        return this;
1595      if (this.account == null)
1596        this.account = new ArrayList<Reference>();
1597      this.account.add(t);
1598      return this;
1599    }
1600
1601    /**
1602     * @return The first repetition of repeating field {@link #account}, creating it if it does not already exist {3}
1603     */
1604    public Reference getAccountFirstRep() { 
1605      if (getAccount().isEmpty()) {
1606        addAccount();
1607      }
1608      return getAccount().get(0);
1609    }
1610
1611      protected void listChildren(List<Property> children) {
1612        super.listChildren(children);
1613        children.add(new Property("identifier", "Identifier", "The EpisodeOfCare may be known by different identifiers for different contexts of use, such as when an external agency is tracking the Episode for funding purposes.", 0, java.lang.Integer.MAX_VALUE, identifier));
1614        children.add(new Property("status", "code", "planned | waitlist | active | onhold | finished | cancelled.", 0, 1, status));
1615        children.add(new Property("statusHistory", "", "The history of statuses that the EpisodeOfCare has been through (without requiring processing the history of the resource).", 0, java.lang.Integer.MAX_VALUE, statusHistory));
1616        children.add(new Property("type", "CodeableConcept", "A classification of the type of episode of care; e.g. specialist referral, disease management, type of funded care.", 0, java.lang.Integer.MAX_VALUE, type));
1617        children.add(new Property("reason", "", "The list of medical reasons that are expected to be addressed during the episode of care.", 0, java.lang.Integer.MAX_VALUE, reason));
1618        children.add(new Property("diagnosis", "", "The list of medical conditions that were addressed during the episode of care.", 0, java.lang.Integer.MAX_VALUE, diagnosis));
1619        children.add(new Property("patient", "Reference(Patient)", "The patient who is the focus of this episode of care.", 0, 1, patient));
1620        children.add(new Property("managingOrganization", "Reference(Organization)", "The organization that has assumed the specific responsibilities for care coordination, care delivery, or other services for the specified duration.", 0, 1, managingOrganization));
1621        children.add(new Property("period", "Period", "The interval during which the managing organization assumes the defined responsibility.", 0, 1, period));
1622        children.add(new Property("referralRequest", "Reference(ServiceRequest)", "Referral Request(s) that are fulfilled by this EpisodeOfCare, incoming referrals.", 0, java.lang.Integer.MAX_VALUE, referralRequest));
1623        children.add(new Property("careManager", "Reference(Practitioner|PractitionerRole)", "The practitioner that is the care manager/care coordinator for this patient.", 0, 1, careManager));
1624        children.add(new Property("careTeam", "Reference(CareTeam)", "The list of practitioners that may be facilitating this episode of care for specific purposes.", 0, java.lang.Integer.MAX_VALUE, careTeam));
1625        children.add(new Property("account", "Reference(Account)", "The set of accounts that may be used for billing for this EpisodeOfCare.", 0, java.lang.Integer.MAX_VALUE, account));
1626      }
1627
1628      @Override
1629      public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
1630        switch (_hash) {
1631        case -1618432855: /*identifier*/  return new Property("identifier", "Identifier", "The EpisodeOfCare may be known by different identifiers for different contexts of use, such as when an external agency is tracking the Episode for funding purposes.", 0, java.lang.Integer.MAX_VALUE, identifier);
1632        case -892481550: /*status*/  return new Property("status", "code", "planned | waitlist | active | onhold | finished | cancelled.", 0, 1, status);
1633        case -986695614: /*statusHistory*/  return new Property("statusHistory", "", "The history of statuses that the EpisodeOfCare has been through (without requiring processing the history of the resource).", 0, java.lang.Integer.MAX_VALUE, statusHistory);
1634        case 3575610: /*type*/  return new Property("type", "CodeableConcept", "A classification of the type of episode of care; e.g. specialist referral, disease management, type of funded care.", 0, java.lang.Integer.MAX_VALUE, type);
1635        case -934964668: /*reason*/  return new Property("reason", "", "The list of medical reasons that are expected to be addressed during the episode of care.", 0, java.lang.Integer.MAX_VALUE, reason);
1636        case 1196993265: /*diagnosis*/  return new Property("diagnosis", "", "The list of medical conditions that were addressed during the episode of care.", 0, java.lang.Integer.MAX_VALUE, diagnosis);
1637        case -791418107: /*patient*/  return new Property("patient", "Reference(Patient)", "The patient who is the focus of this episode of care.", 0, 1, patient);
1638        case -2058947787: /*managingOrganization*/  return new Property("managingOrganization", "Reference(Organization)", "The organization that has assumed the specific responsibilities for care coordination, care delivery, or other services for the specified duration.", 0, 1, managingOrganization);
1639        case -991726143: /*period*/  return new Property("period", "Period", "The interval during which the managing organization assumes the defined responsibility.", 0, 1, period);
1640        case -310299598: /*referralRequest*/  return new Property("referralRequest", "Reference(ServiceRequest)", "Referral Request(s) that are fulfilled by this EpisodeOfCare, incoming referrals.", 0, java.lang.Integer.MAX_VALUE, referralRequest);
1641        case -1147746468: /*careManager*/  return new Property("careManager", "Reference(Practitioner|PractitionerRole)", "The practitioner that is the care manager/care coordinator for this patient.", 0, 1, careManager);
1642        case -7323378: /*careTeam*/  return new Property("careTeam", "Reference(CareTeam)", "The list of practitioners that may be facilitating this episode of care for specific purposes.", 0, java.lang.Integer.MAX_VALUE, careTeam);
1643        case -1177318867: /*account*/  return new Property("account", "Reference(Account)", "The set of accounts that may be used for billing for this EpisodeOfCare.", 0, java.lang.Integer.MAX_VALUE, account);
1644        default: return super.getNamedProperty(_hash, _name, _checkValid);
1645        }
1646
1647      }
1648
1649      @Override
1650      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
1651        switch (hash) {
1652        case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier
1653        case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<EpisodeOfCareStatus>
1654        case -986695614: /*statusHistory*/ return this.statusHistory == null ? new Base[0] : this.statusHistory.toArray(new Base[this.statusHistory.size()]); // EpisodeOfCareStatusHistoryComponent
1655        case 3575610: /*type*/ return this.type == null ? new Base[0] : this.type.toArray(new Base[this.type.size()]); // CodeableConcept
1656        case -934964668: /*reason*/ return this.reason == null ? new Base[0] : this.reason.toArray(new Base[this.reason.size()]); // ReasonComponent
1657        case 1196993265: /*diagnosis*/ return this.diagnosis == null ? new Base[0] : this.diagnosis.toArray(new Base[this.diagnosis.size()]); // DiagnosisComponent
1658        case -791418107: /*patient*/ return this.patient == null ? new Base[0] : new Base[] {this.patient}; // Reference
1659        case -2058947787: /*managingOrganization*/ return this.managingOrganization == null ? new Base[0] : new Base[] {this.managingOrganization}; // Reference
1660        case -991726143: /*period*/ return this.period == null ? new Base[0] : new Base[] {this.period}; // Period
1661        case -310299598: /*referralRequest*/ return this.referralRequest == null ? new Base[0] : this.referralRequest.toArray(new Base[this.referralRequest.size()]); // Reference
1662        case -1147746468: /*careManager*/ return this.careManager == null ? new Base[0] : new Base[] {this.careManager}; // Reference
1663        case -7323378: /*careTeam*/ return this.careTeam == null ? new Base[0] : this.careTeam.toArray(new Base[this.careTeam.size()]); // Reference
1664        case -1177318867: /*account*/ return this.account == null ? new Base[0] : this.account.toArray(new Base[this.account.size()]); // Reference
1665        default: return super.getProperty(hash, name, checkValid);
1666        }
1667
1668      }
1669
1670      @Override
1671      public Base setProperty(int hash, String name, Base value) throws FHIRException {
1672        switch (hash) {
1673        case -1618432855: // identifier
1674          this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier
1675          return value;
1676        case -892481550: // status
1677          value = new EpisodeOfCareStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
1678          this.status = (Enumeration) value; // Enumeration<EpisodeOfCareStatus>
1679          return value;
1680        case -986695614: // statusHistory
1681          this.getStatusHistory().add((EpisodeOfCareStatusHistoryComponent) value); // EpisodeOfCareStatusHistoryComponent
1682          return value;
1683        case 3575610: // type
1684          this.getType().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept
1685          return value;
1686        case -934964668: // reason
1687          this.getReason().add((ReasonComponent) value); // ReasonComponent
1688          return value;
1689        case 1196993265: // diagnosis
1690          this.getDiagnosis().add((DiagnosisComponent) value); // DiagnosisComponent
1691          return value;
1692        case -791418107: // patient
1693          this.patient = TypeConvertor.castToReference(value); // Reference
1694          return value;
1695        case -2058947787: // managingOrganization
1696          this.managingOrganization = TypeConvertor.castToReference(value); // Reference
1697          return value;
1698        case -991726143: // period
1699          this.period = TypeConvertor.castToPeriod(value); // Period
1700          return value;
1701        case -310299598: // referralRequest
1702          this.getReferralRequest().add(TypeConvertor.castToReference(value)); // Reference
1703          return value;
1704        case -1147746468: // careManager
1705          this.careManager = TypeConvertor.castToReference(value); // Reference
1706          return value;
1707        case -7323378: // careTeam
1708          this.getCareTeam().add(TypeConvertor.castToReference(value)); // Reference
1709          return value;
1710        case -1177318867: // account
1711          this.getAccount().add(TypeConvertor.castToReference(value)); // Reference
1712          return value;
1713        default: return super.setProperty(hash, name, value);
1714        }
1715
1716      }
1717
1718      @Override
1719      public Base setProperty(String name, Base value) throws FHIRException {
1720        if (name.equals("identifier")) {
1721          this.getIdentifier().add(TypeConvertor.castToIdentifier(value));
1722        } else if (name.equals("status")) {
1723          value = new EpisodeOfCareStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
1724          this.status = (Enumeration) value; // Enumeration<EpisodeOfCareStatus>
1725        } else if (name.equals("statusHistory")) {
1726          this.getStatusHistory().add((EpisodeOfCareStatusHistoryComponent) value);
1727        } else if (name.equals("type")) {
1728          this.getType().add(TypeConvertor.castToCodeableConcept(value));
1729        } else if (name.equals("reason")) {
1730          this.getReason().add((ReasonComponent) value);
1731        } else if (name.equals("diagnosis")) {
1732          this.getDiagnosis().add((DiagnosisComponent) value);
1733        } else if (name.equals("patient")) {
1734          this.patient = TypeConvertor.castToReference(value); // Reference
1735        } else if (name.equals("managingOrganization")) {
1736          this.managingOrganization = TypeConvertor.castToReference(value); // Reference
1737        } else if (name.equals("period")) {
1738          this.period = TypeConvertor.castToPeriod(value); // Period
1739        } else if (name.equals("referralRequest")) {
1740          this.getReferralRequest().add(TypeConvertor.castToReference(value));
1741        } else if (name.equals("careManager")) {
1742          this.careManager = TypeConvertor.castToReference(value); // Reference
1743        } else if (name.equals("careTeam")) {
1744          this.getCareTeam().add(TypeConvertor.castToReference(value));
1745        } else if (name.equals("account")) {
1746          this.getAccount().add(TypeConvertor.castToReference(value));
1747        } else
1748          return super.setProperty(name, value);
1749        return value;
1750      }
1751
1752      @Override
1753      public Base makeProperty(int hash, String name) throws FHIRException {
1754        switch (hash) {
1755        case -1618432855:  return addIdentifier(); 
1756        case -892481550:  return getStatusElement();
1757        case -986695614:  return addStatusHistory(); 
1758        case 3575610:  return addType(); 
1759        case -934964668:  return addReason(); 
1760        case 1196993265:  return addDiagnosis(); 
1761        case -791418107:  return getPatient();
1762        case -2058947787:  return getManagingOrganization();
1763        case -991726143:  return getPeriod();
1764        case -310299598:  return addReferralRequest(); 
1765        case -1147746468:  return getCareManager();
1766        case -7323378:  return addCareTeam(); 
1767        case -1177318867:  return addAccount(); 
1768        default: return super.makeProperty(hash, name);
1769        }
1770
1771      }
1772
1773      @Override
1774      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
1775        switch (hash) {
1776        case -1618432855: /*identifier*/ return new String[] {"Identifier"};
1777        case -892481550: /*status*/ return new String[] {"code"};
1778        case -986695614: /*statusHistory*/ return new String[] {};
1779        case 3575610: /*type*/ return new String[] {"CodeableConcept"};
1780        case -934964668: /*reason*/ return new String[] {};
1781        case 1196993265: /*diagnosis*/ return new String[] {};
1782        case -791418107: /*patient*/ return new String[] {"Reference"};
1783        case -2058947787: /*managingOrganization*/ return new String[] {"Reference"};
1784        case -991726143: /*period*/ return new String[] {"Period"};
1785        case -310299598: /*referralRequest*/ return new String[] {"Reference"};
1786        case -1147746468: /*careManager*/ return new String[] {"Reference"};
1787        case -7323378: /*careTeam*/ return new String[] {"Reference"};
1788        case -1177318867: /*account*/ return new String[] {"Reference"};
1789        default: return super.getTypesForProperty(hash, name);
1790        }
1791
1792      }
1793
1794      @Override
1795      public Base addChild(String name) throws FHIRException {
1796        if (name.equals("identifier")) {
1797          return addIdentifier();
1798        }
1799        else if (name.equals("status")) {
1800          throw new FHIRException("Cannot call addChild on a singleton property EpisodeOfCare.status");
1801        }
1802        else if (name.equals("statusHistory")) {
1803          return addStatusHistory();
1804        }
1805        else if (name.equals("type")) {
1806          return addType();
1807        }
1808        else if (name.equals("reason")) {
1809          return addReason();
1810        }
1811        else if (name.equals("diagnosis")) {
1812          return addDiagnosis();
1813        }
1814        else if (name.equals("patient")) {
1815          this.patient = new Reference();
1816          return this.patient;
1817        }
1818        else if (name.equals("managingOrganization")) {
1819          this.managingOrganization = new Reference();
1820          return this.managingOrganization;
1821        }
1822        else if (name.equals("period")) {
1823          this.period = new Period();
1824          return this.period;
1825        }
1826        else if (name.equals("referralRequest")) {
1827          return addReferralRequest();
1828        }
1829        else if (name.equals("careManager")) {
1830          this.careManager = new Reference();
1831          return this.careManager;
1832        }
1833        else if (name.equals("careTeam")) {
1834          return addCareTeam();
1835        }
1836        else if (name.equals("account")) {
1837          return addAccount();
1838        }
1839        else
1840          return super.addChild(name);
1841      }
1842
1843  public String fhirType() {
1844    return "EpisodeOfCare";
1845
1846  }
1847
1848      public EpisodeOfCare copy() {
1849        EpisodeOfCare dst = new EpisodeOfCare();
1850        copyValues(dst);
1851        return dst;
1852      }
1853
1854      public void copyValues(EpisodeOfCare dst) {
1855        super.copyValues(dst);
1856        if (identifier != null) {
1857          dst.identifier = new ArrayList<Identifier>();
1858          for (Identifier i : identifier)
1859            dst.identifier.add(i.copy());
1860        };
1861        dst.status = status == null ? null : status.copy();
1862        if (statusHistory != null) {
1863          dst.statusHistory = new ArrayList<EpisodeOfCareStatusHistoryComponent>();
1864          for (EpisodeOfCareStatusHistoryComponent i : statusHistory)
1865            dst.statusHistory.add(i.copy());
1866        };
1867        if (type != null) {
1868          dst.type = new ArrayList<CodeableConcept>();
1869          for (CodeableConcept i : type)
1870            dst.type.add(i.copy());
1871        };
1872        if (reason != null) {
1873          dst.reason = new ArrayList<ReasonComponent>();
1874          for (ReasonComponent i : reason)
1875            dst.reason.add(i.copy());
1876        };
1877        if (diagnosis != null) {
1878          dst.diagnosis = new ArrayList<DiagnosisComponent>();
1879          for (DiagnosisComponent i : diagnosis)
1880            dst.diagnosis.add(i.copy());
1881        };
1882        dst.patient = patient == null ? null : patient.copy();
1883        dst.managingOrganization = managingOrganization == null ? null : managingOrganization.copy();
1884        dst.period = period == null ? null : period.copy();
1885        if (referralRequest != null) {
1886          dst.referralRequest = new ArrayList<Reference>();
1887          for (Reference i : referralRequest)
1888            dst.referralRequest.add(i.copy());
1889        };
1890        dst.careManager = careManager == null ? null : careManager.copy();
1891        if (careTeam != null) {
1892          dst.careTeam = new ArrayList<Reference>();
1893          for (Reference i : careTeam)
1894            dst.careTeam.add(i.copy());
1895        };
1896        if (account != null) {
1897          dst.account = new ArrayList<Reference>();
1898          for (Reference i : account)
1899            dst.account.add(i.copy());
1900        };
1901      }
1902
1903      protected EpisodeOfCare typedCopy() {
1904        return copy();
1905      }
1906
1907      @Override
1908      public boolean equalsDeep(Base other_) {
1909        if (!super.equalsDeep(other_))
1910          return false;
1911        if (!(other_ instanceof EpisodeOfCare))
1912          return false;
1913        EpisodeOfCare o = (EpisodeOfCare) other_;
1914        return compareDeep(identifier, o.identifier, true) && compareDeep(status, o.status, true) && compareDeep(statusHistory, o.statusHistory, true)
1915           && compareDeep(type, o.type, true) && compareDeep(reason, o.reason, true) && compareDeep(diagnosis, o.diagnosis, true)
1916           && compareDeep(patient, o.patient, true) && compareDeep(managingOrganization, o.managingOrganization, true)
1917           && compareDeep(period, o.period, true) && compareDeep(referralRequest, o.referralRequest, true)
1918           && compareDeep(careManager, o.careManager, true) && compareDeep(careTeam, o.careTeam, true) && compareDeep(account, o.account, true)
1919          ;
1920      }
1921
1922      @Override
1923      public boolean equalsShallow(Base other_) {
1924        if (!super.equalsShallow(other_))
1925          return false;
1926        if (!(other_ instanceof EpisodeOfCare))
1927          return false;
1928        EpisodeOfCare o = (EpisodeOfCare) other_;
1929        return compareValues(status, o.status, true);
1930      }
1931
1932      public boolean isEmpty() {
1933        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, status, statusHistory
1934          , type, reason, diagnosis, patient, managingOrganization, period, referralRequest
1935          , careManager, careTeam, account);
1936      }
1937
1938  @Override
1939  public ResourceType getResourceType() {
1940    return ResourceType.EpisodeOfCare;
1941   }
1942
1943 /**
1944   * Search parameter: <b>care-manager</b>
1945   * <p>
1946   * Description: <b>Care manager/care coordinator for the patient</b><br>
1947   * Type: <b>reference</b><br>
1948   * Path: <b>EpisodeOfCare.careManager.where(resolve() is Practitioner)</b><br>
1949   * </p>
1950   */
1951  @SearchParamDefinition(name="care-manager", path="EpisodeOfCare.careManager.where(resolve() is Practitioner)", description="Care manager/care coordinator for the patient", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Practitioner") }, target={Practitioner.class } )
1952  public static final String SP_CARE_MANAGER = "care-manager";
1953 /**
1954   * <b>Fluent Client</b> search parameter constant for <b>care-manager</b>
1955   * <p>
1956   * Description: <b>Care manager/care coordinator for the patient</b><br>
1957   * Type: <b>reference</b><br>
1958   * Path: <b>EpisodeOfCare.careManager.where(resolve() is Practitioner)</b><br>
1959   * </p>
1960   */
1961  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam CARE_MANAGER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_CARE_MANAGER);
1962
1963/**
1964   * Constant for fluent queries to be used to add include statements. Specifies
1965   * the path value of "<b>EpisodeOfCare:care-manager</b>".
1966   */
1967  public static final ca.uhn.fhir.model.api.Include INCLUDE_CARE_MANAGER = new ca.uhn.fhir.model.api.Include("EpisodeOfCare:care-manager").toLocked();
1968
1969 /**
1970   * Search parameter: <b>diagnosis-code</b>
1971   * <p>
1972   * Description: <b>Conditions/problems/diagnoses this episode of care is for (coded)</b><br>
1973   * Type: <b>token</b><br>
1974   * Path: <b>EpisodeOfCare.diagnosis.condition.concept</b><br>
1975   * </p>
1976   */
1977  @SearchParamDefinition(name="diagnosis-code", path="EpisodeOfCare.diagnosis.condition.concept", description="Conditions/problems/diagnoses this episode of care is for (coded)", type="token" )
1978  public static final String SP_DIAGNOSIS_CODE = "diagnosis-code";
1979 /**
1980   * <b>Fluent Client</b> search parameter constant for <b>diagnosis-code</b>
1981   * <p>
1982   * Description: <b>Conditions/problems/diagnoses this episode of care is for (coded)</b><br>
1983   * Type: <b>token</b><br>
1984   * Path: <b>EpisodeOfCare.diagnosis.condition.concept</b><br>
1985   * </p>
1986   */
1987  public static final ca.uhn.fhir.rest.gclient.TokenClientParam DIAGNOSIS_CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_DIAGNOSIS_CODE);
1988
1989 /**
1990   * Search parameter: <b>diagnosis-reference</b>
1991   * <p>
1992   * Description: <b>Conditions/problems/diagnoses this episode of care is for (resource reference)</b><br>
1993   * Type: <b>reference</b><br>
1994   * Path: <b>EpisodeOfCare.diagnosis.condition.reference</b><br>
1995   * </p>
1996   */
1997  @SearchParamDefinition(name="diagnosis-reference", path="EpisodeOfCare.diagnosis.condition.reference", description="Conditions/problems/diagnoses this episode of care is for (resource reference)", type="reference", target={Condition.class } )
1998  public static final String SP_DIAGNOSIS_REFERENCE = "diagnosis-reference";
1999 /**
2000   * <b>Fluent Client</b> search parameter constant for <b>diagnosis-reference</b>
2001   * <p>
2002   * Description: <b>Conditions/problems/diagnoses this episode of care is for (resource reference)</b><br>
2003   * Type: <b>reference</b><br>
2004   * Path: <b>EpisodeOfCare.diagnosis.condition.reference</b><br>
2005   * </p>
2006   */
2007  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam DIAGNOSIS_REFERENCE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_DIAGNOSIS_REFERENCE);
2008
2009/**
2010   * Constant for fluent queries to be used to add include statements. Specifies
2011   * the path value of "<b>EpisodeOfCare:diagnosis-reference</b>".
2012   */
2013  public static final ca.uhn.fhir.model.api.Include INCLUDE_DIAGNOSIS_REFERENCE = new ca.uhn.fhir.model.api.Include("EpisodeOfCare:diagnosis-reference").toLocked();
2014
2015 /**
2016   * Search parameter: <b>incoming-referral</b>
2017   * <p>
2018   * Description: <b>Incoming Referral Request</b><br>
2019   * Type: <b>reference</b><br>
2020   * Path: <b>EpisodeOfCare.referralRequest</b><br>
2021   * </p>
2022   */
2023  @SearchParamDefinition(name="incoming-referral", path="EpisodeOfCare.referralRequest", description="Incoming Referral Request", type="reference", target={ServiceRequest.class } )
2024  public static final String SP_INCOMING_REFERRAL = "incoming-referral";
2025 /**
2026   * <b>Fluent Client</b> search parameter constant for <b>incoming-referral</b>
2027   * <p>
2028   * Description: <b>Incoming Referral Request</b><br>
2029   * Type: <b>reference</b><br>
2030   * Path: <b>EpisodeOfCare.referralRequest</b><br>
2031   * </p>
2032   */
2033  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam INCOMING_REFERRAL = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_INCOMING_REFERRAL);
2034
2035/**
2036   * Constant for fluent queries to be used to add include statements. Specifies
2037   * the path value of "<b>EpisodeOfCare:incoming-referral</b>".
2038   */
2039  public static final ca.uhn.fhir.model.api.Include INCLUDE_INCOMING_REFERRAL = new ca.uhn.fhir.model.api.Include("EpisodeOfCare:incoming-referral").toLocked();
2040
2041 /**
2042   * Search parameter: <b>organization</b>
2043   * <p>
2044   * Description: <b>The organization that has assumed the specific responsibilities of this EpisodeOfCare</b><br>
2045   * Type: <b>reference</b><br>
2046   * Path: <b>EpisodeOfCare.managingOrganization</b><br>
2047   * </p>
2048   */
2049  @SearchParamDefinition(name="organization", path="EpisodeOfCare.managingOrganization", description="The organization that has assumed the specific responsibilities of this EpisodeOfCare", type="reference", target={Organization.class } )
2050  public static final String SP_ORGANIZATION = "organization";
2051 /**
2052   * <b>Fluent Client</b> search parameter constant for <b>organization</b>
2053   * <p>
2054   * Description: <b>The organization that has assumed the specific responsibilities of this EpisodeOfCare</b><br>
2055   * Type: <b>reference</b><br>
2056   * Path: <b>EpisodeOfCare.managingOrganization</b><br>
2057   * </p>
2058   */
2059  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ORGANIZATION = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ORGANIZATION);
2060
2061/**
2062   * Constant for fluent queries to be used to add include statements. Specifies
2063   * the path value of "<b>EpisodeOfCare:organization</b>".
2064   */
2065  public static final ca.uhn.fhir.model.api.Include INCLUDE_ORGANIZATION = new ca.uhn.fhir.model.api.Include("EpisodeOfCare:organization").toLocked();
2066
2067 /**
2068   * Search parameter: <b>reason-code</b>
2069   * <p>
2070   * Description: <b>Reference to a concept (coded)</b><br>
2071   * Type: <b>token</b><br>
2072   * Path: <b>EpisodeOfCare.reason.value.concept</b><br>
2073   * </p>
2074   */
2075  @SearchParamDefinition(name="reason-code", path="EpisodeOfCare.reason.value.concept", description="Reference to a concept (coded)", type="token" )
2076  public static final String SP_REASON_CODE = "reason-code";
2077 /**
2078   * <b>Fluent Client</b> search parameter constant for <b>reason-code</b>
2079   * <p>
2080   * Description: <b>Reference to a concept (coded)</b><br>
2081   * Type: <b>token</b><br>
2082   * Path: <b>EpisodeOfCare.reason.value.concept</b><br>
2083   * </p>
2084   */
2085  public static final ca.uhn.fhir.rest.gclient.TokenClientParam REASON_CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_REASON_CODE);
2086
2087 /**
2088   * Search parameter: <b>reason-reference</b>
2089   * <p>
2090   * Description: <b>Reference to a resource (resource reference)</b><br>
2091   * Type: <b>reference</b><br>
2092   * Path: <b>EpisodeOfCare.reason.value.reference</b><br>
2093   * </p>
2094   */
2095  @SearchParamDefinition(name="reason-reference", path="EpisodeOfCare.reason.value.reference", description="Reference to a resource (resource reference)", type="reference", target={Condition.class, HealthcareService.class, Observation.class, Procedure.class } )
2096  public static final String SP_REASON_REFERENCE = "reason-reference";
2097 /**
2098   * <b>Fluent Client</b> search parameter constant for <b>reason-reference</b>
2099   * <p>
2100   * Description: <b>Reference to a resource (resource reference)</b><br>
2101   * Type: <b>reference</b><br>
2102   * Path: <b>EpisodeOfCare.reason.value.reference</b><br>
2103   * </p>
2104   */
2105  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam REASON_REFERENCE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_REASON_REFERENCE);
2106
2107/**
2108   * Constant for fluent queries to be used to add include statements. Specifies
2109   * the path value of "<b>EpisodeOfCare:reason-reference</b>".
2110   */
2111  public static final ca.uhn.fhir.model.api.Include INCLUDE_REASON_REFERENCE = new ca.uhn.fhir.model.api.Include("EpisodeOfCare:reason-reference").toLocked();
2112
2113 /**
2114   * Search parameter: <b>status</b>
2115   * <p>
2116   * Description: <b>The current status of the Episode of Care as provided (does not check the status history collection)</b><br>
2117   * Type: <b>token</b><br>
2118   * Path: <b>EpisodeOfCare.status</b><br>
2119   * </p>
2120   */
2121  @SearchParamDefinition(name="status", path="EpisodeOfCare.status", description="The current status of the Episode of Care as provided (does not check the status history collection)", type="token" )
2122  public static final String SP_STATUS = "status";
2123 /**
2124   * <b>Fluent Client</b> search parameter constant for <b>status</b>
2125   * <p>
2126   * Description: <b>The current status of the Episode of Care as provided (does not check the status history collection)</b><br>
2127   * Type: <b>token</b><br>
2128   * Path: <b>EpisodeOfCare.status</b><br>
2129   * </p>
2130   */
2131  public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS);
2132
2133 /**
2134   * Search parameter: <b>date</b>
2135   * <p>
2136   * Description: <b>Multiple Resources: 
2137
2138* [AdverseEvent](adverseevent.html): When the event occurred
2139* [AllergyIntolerance](allergyintolerance.html): Date first version of the resource instance was recorded
2140* [Appointment](appointment.html): Appointment date/time.
2141* [AuditEvent](auditevent.html): Time when the event was recorded
2142* [CarePlan](careplan.html): Time period plan covers
2143* [CareTeam](careteam.html): A date within the coverage time period.
2144* [ClinicalImpression](clinicalimpression.html): When the assessment was documented
2145* [Composition](composition.html): Composition editing time
2146* [Consent](consent.html): When consent was agreed to
2147* [DiagnosticReport](diagnosticreport.html): The clinically relevant time of the report
2148* [DocumentReference](documentreference.html): When this document reference was created
2149* [Encounter](encounter.html): A date within the actualPeriod the Encounter lasted
2150* [EpisodeOfCare](episodeofcare.html): The provided date search value falls within the episode of care's period
2151* [FamilyMemberHistory](familymemberhistory.html): When history was recorded or last updated
2152* [Flag](flag.html): Time period when flag is active
2153* [Immunization](immunization.html): Vaccination  (non)-Administration Date
2154* [ImmunizationEvaluation](immunizationevaluation.html): Date the evaluation was generated
2155* [ImmunizationRecommendation](immunizationrecommendation.html): Date recommendation(s) created
2156* [Invoice](invoice.html): Invoice date / posting date
2157* [List](list.html): When the list was prepared
2158* [MeasureReport](measurereport.html): The date of the measure report
2159* [NutritionIntake](nutritionintake.html): Date when patient was taking (or not taking) the medication
2160* [Observation](observation.html): Clinically relevant time/time-period for observation
2161* [Procedure](procedure.html): When the procedure occurred or is occurring
2162* [ResearchSubject](researchsubject.html): Start and end of participation
2163* [RiskAssessment](riskassessment.html): When was assessment made?
2164* [SupplyRequest](supplyrequest.html): When the request was made
2165</b><br>
2166   * Type: <b>date</b><br>
2167   * 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>
2168   * </p>
2169   */
2170  @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" )
2171  public static final String SP_DATE = "date";
2172 /**
2173   * <b>Fluent Client</b> search parameter constant for <b>date</b>
2174   * <p>
2175   * Description: <b>Multiple Resources: 
2176
2177* [AdverseEvent](adverseevent.html): When the event occurred
2178* [AllergyIntolerance](allergyintolerance.html): Date first version of the resource instance was recorded
2179* [Appointment](appointment.html): Appointment date/time.
2180* [AuditEvent](auditevent.html): Time when the event was recorded
2181* [CarePlan](careplan.html): Time period plan covers
2182* [CareTeam](careteam.html): A date within the coverage time period.
2183* [ClinicalImpression](clinicalimpression.html): When the assessment was documented
2184* [Composition](composition.html): Composition editing time
2185* [Consent](consent.html): When consent was agreed to
2186* [DiagnosticReport](diagnosticreport.html): The clinically relevant time of the report
2187* [DocumentReference](documentreference.html): When this document reference was created
2188* [Encounter](encounter.html): A date within the actualPeriod the Encounter lasted
2189* [EpisodeOfCare](episodeofcare.html): The provided date search value falls within the episode of care's period
2190* [FamilyMemberHistory](familymemberhistory.html): When history was recorded or last updated
2191* [Flag](flag.html): Time period when flag is active
2192* [Immunization](immunization.html): Vaccination  (non)-Administration Date
2193* [ImmunizationEvaluation](immunizationevaluation.html): Date the evaluation was generated
2194* [ImmunizationRecommendation](immunizationrecommendation.html): Date recommendation(s) created
2195* [Invoice](invoice.html): Invoice date / posting date
2196* [List](list.html): When the list was prepared
2197* [MeasureReport](measurereport.html): The date of the measure report
2198* [NutritionIntake](nutritionintake.html): Date when patient was taking (or not taking) the medication
2199* [Observation](observation.html): Clinically relevant time/time-period for observation
2200* [Procedure](procedure.html): When the procedure occurred or is occurring
2201* [ResearchSubject](researchsubject.html): Start and end of participation
2202* [RiskAssessment](riskassessment.html): When was assessment made?
2203* [SupplyRequest](supplyrequest.html): When the request was made
2204</b><br>
2205   * Type: <b>date</b><br>
2206   * 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>
2207   * </p>
2208   */
2209  public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE);
2210
2211 /**
2212   * Search parameter: <b>identifier</b>
2213   * <p>
2214   * Description: <b>Multiple Resources: 
2215
2216* [Account](account.html): Account number
2217* [AdverseEvent](adverseevent.html): Business identifier for the event
2218* [AllergyIntolerance](allergyintolerance.html): External ids for this item
2219* [Appointment](appointment.html): An Identifier of the Appointment
2220* [AppointmentResponse](appointmentresponse.html): An Identifier in this appointment response
2221* [Basic](basic.html): Business identifier
2222* [BodyStructure](bodystructure.html): Bodystructure identifier
2223* [CarePlan](careplan.html): External Ids for this plan
2224* [CareTeam](careteam.html): External Ids for this team
2225* [ChargeItem](chargeitem.html): Business Identifier for item
2226* [Claim](claim.html): The primary identifier of the financial resource
2227* [ClaimResponse](claimresponse.html): The identity of the ClaimResponse
2228* [ClinicalImpression](clinicalimpression.html): Business identifier
2229* [Communication](communication.html): Unique identifier
2230* [CommunicationRequest](communicationrequest.html): Unique identifier
2231* [Composition](composition.html): Version-independent identifier for the Composition
2232* [Condition](condition.html): A unique identifier of the condition record
2233* [Consent](consent.html): Identifier for this record (external references)
2234* [Contract](contract.html): The identity of the contract
2235* [Coverage](coverage.html): The primary identifier of the insured and the coverage
2236* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The business identifier of the Eligibility
2237* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The business identifier
2238* [DetectedIssue](detectedissue.html): Unique id for the detected issue
2239* [DeviceRequest](devicerequest.html): Business identifier for request/order
2240* [DeviceUsage](deviceusage.html): Search by identifier
2241* [DiagnosticReport](diagnosticreport.html): An identifier for the report
2242* [DocumentReference](documentreference.html): Identifier of the attachment binary
2243* [Encounter](encounter.html): Identifier(s) by which this encounter is known
2244* [EnrollmentRequest](enrollmentrequest.html): The business identifier of the Enrollment
2245* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare
2246* [ExplanationOfBenefit](explanationofbenefit.html): The business identifier of the Explanation of Benefit
2247* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier
2248* [Flag](flag.html): Business identifier
2249* [Goal](goal.html): External Ids for this goal
2250* [GuidanceResponse](guidanceresponse.html): The identifier of the guidance response
2251* [ImagingSelection](imagingselection.html): Identifiers for the imaging selection
2252* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID
2253* [Immunization](immunization.html): Business identifier
2254* [ImmunizationEvaluation](immunizationevaluation.html): ID of the evaluation
2255* [ImmunizationRecommendation](immunizationrecommendation.html): Business identifier
2256* [Invoice](invoice.html): Business Identifier for item
2257* [List](list.html): Business identifier
2258* [MeasureReport](measurereport.html): External identifier of the measure report to be returned
2259* [Medication](medication.html): Returns medications with this external identifier
2260* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier
2261* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier
2262* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier
2263* [MedicationStatement](medicationstatement.html): Return statements with this external identifier
2264* [MolecularSequence](molecularsequence.html): The unique identity for a particular sequence
2265* [NutritionIntake](nutritionintake.html): Return statements with this external identifier
2266* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier
2267* [Observation](observation.html): The unique id for a particular observation
2268* [Person](person.html): A person Identifier
2269* [Procedure](procedure.html): A unique identifier for a procedure
2270* [QuestionnaireResponse](questionnaireresponse.html): The unique identifier for the questionnaire response
2271* [RelatedPerson](relatedperson.html): An Identifier of the RelatedPerson
2272* [RequestOrchestration](requestorchestration.html): External identifiers for the request orchestration
2273* [ResearchSubject](researchsubject.html): Business Identifier for research subject in a study
2274* [RiskAssessment](riskassessment.html): Unique identifier for the assessment
2275* [ServiceRequest](servicerequest.html): Identifiers assigned to this order
2276* [Specimen](specimen.html): The unique identifier associated with the specimen
2277* [SupplyDelivery](supplydelivery.html): External identifier
2278* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest
2279* [Task](task.html): Search for a task instance by its business identifier
2280* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier
2281</b><br>
2282   * Type: <b>token</b><br>
2283   * 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>
2284   * </p>
2285   */
2286  @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" )
2287  public static final String SP_IDENTIFIER = "identifier";
2288 /**
2289   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
2290   * <p>
2291   * Description: <b>Multiple Resources: 
2292
2293* [Account](account.html): Account number
2294* [AdverseEvent](adverseevent.html): Business identifier for the event
2295* [AllergyIntolerance](allergyintolerance.html): External ids for this item
2296* [Appointment](appointment.html): An Identifier of the Appointment
2297* [AppointmentResponse](appointmentresponse.html): An Identifier in this appointment response
2298* [Basic](basic.html): Business identifier
2299* [BodyStructure](bodystructure.html): Bodystructure identifier
2300* [CarePlan](careplan.html): External Ids for this plan
2301* [CareTeam](careteam.html): External Ids for this team
2302* [ChargeItem](chargeitem.html): Business Identifier for item
2303* [Claim](claim.html): The primary identifier of the financial resource
2304* [ClaimResponse](claimresponse.html): The identity of the ClaimResponse
2305* [ClinicalImpression](clinicalimpression.html): Business identifier
2306* [Communication](communication.html): Unique identifier
2307* [CommunicationRequest](communicationrequest.html): Unique identifier
2308* [Composition](composition.html): Version-independent identifier for the Composition
2309* [Condition](condition.html): A unique identifier of the condition record
2310* [Consent](consent.html): Identifier for this record (external references)
2311* [Contract](contract.html): The identity of the contract
2312* [Coverage](coverage.html): The primary identifier of the insured and the coverage
2313* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The business identifier of the Eligibility
2314* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The business identifier
2315* [DetectedIssue](detectedissue.html): Unique id for the detected issue
2316* [DeviceRequest](devicerequest.html): Business identifier for request/order
2317* [DeviceUsage](deviceusage.html): Search by identifier
2318* [DiagnosticReport](diagnosticreport.html): An identifier for the report
2319* [DocumentReference](documentreference.html): Identifier of the attachment binary
2320* [Encounter](encounter.html): Identifier(s) by which this encounter is known
2321* [EnrollmentRequest](enrollmentrequest.html): The business identifier of the Enrollment
2322* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare
2323* [ExplanationOfBenefit](explanationofbenefit.html): The business identifier of the Explanation of Benefit
2324* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier
2325* [Flag](flag.html): Business identifier
2326* [Goal](goal.html): External Ids for this goal
2327* [GuidanceResponse](guidanceresponse.html): The identifier of the guidance response
2328* [ImagingSelection](imagingselection.html): Identifiers for the imaging selection
2329* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID
2330* [Immunization](immunization.html): Business identifier
2331* [ImmunizationEvaluation](immunizationevaluation.html): ID of the evaluation
2332* [ImmunizationRecommendation](immunizationrecommendation.html): Business identifier
2333* [Invoice](invoice.html): Business Identifier for item
2334* [List](list.html): Business identifier
2335* [MeasureReport](measurereport.html): External identifier of the measure report to be returned
2336* [Medication](medication.html): Returns medications with this external identifier
2337* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier
2338* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier
2339* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier
2340* [MedicationStatement](medicationstatement.html): Return statements with this external identifier
2341* [MolecularSequence](molecularsequence.html): The unique identity for a particular sequence
2342* [NutritionIntake](nutritionintake.html): Return statements with this external identifier
2343* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier
2344* [Observation](observation.html): The unique id for a particular observation
2345* [Person](person.html): A person Identifier
2346* [Procedure](procedure.html): A unique identifier for a procedure
2347* [QuestionnaireResponse](questionnaireresponse.html): The unique identifier for the questionnaire response
2348* [RelatedPerson](relatedperson.html): An Identifier of the RelatedPerson
2349* [RequestOrchestration](requestorchestration.html): External identifiers for the request orchestration
2350* [ResearchSubject](researchsubject.html): Business Identifier for research subject in a study
2351* [RiskAssessment](riskassessment.html): Unique identifier for the assessment
2352* [ServiceRequest](servicerequest.html): Identifiers assigned to this order
2353* [Specimen](specimen.html): The unique identifier associated with the specimen
2354* [SupplyDelivery](supplydelivery.html): External identifier
2355* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest
2356* [Task](task.html): Search for a task instance by its business identifier
2357* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier
2358</b><br>
2359   * Type: <b>token</b><br>
2360   * 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>
2361   * </p>
2362   */
2363  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
2364
2365 /**
2366   * Search parameter: <b>patient</b>
2367   * <p>
2368   * Description: <b>Multiple Resources: 
2369
2370* [Account](account.html): The entity that caused the expenses
2371* [AdverseEvent](adverseevent.html): Subject impacted by event
2372* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for
2373* [Appointment](appointment.html): One of the individuals of the appointment is this patient
2374* [AppointmentResponse](appointmentresponse.html): This Response is for this Patient
2375* [AuditEvent](auditevent.html): Where the activity involved patient data
2376* [Basic](basic.html): Identifies the focus of this resource
2377* [BodyStructure](bodystructure.html): Who this is about
2378* [CarePlan](careplan.html): Who the care plan is for
2379* [CareTeam](careteam.html): Who care team is for
2380* [ChargeItem](chargeitem.html): Individual service was done for/to
2381* [Claim](claim.html): Patient receiving the products or services
2382* [ClaimResponse](claimresponse.html): The subject of care
2383* [ClinicalImpression](clinicalimpression.html): Patient assessed
2384* [Communication](communication.html): Focus of message
2385* [CommunicationRequest](communicationrequest.html): Focus of message
2386* [Composition](composition.html): Who and/or what the composition is about
2387* [Condition](condition.html): Who has the condition?
2388* [Consent](consent.html): Who the consent applies to
2389* [Contract](contract.html): The identity of the subject of the contract (if a patient)
2390* [Coverage](coverage.html): Retrieve coverages for a patient
2391* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The reference to the patient
2392* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The reference to the patient
2393* [DetectedIssue](detectedissue.html): Associated patient
2394* [DeviceRequest](devicerequest.html): Individual the service is ordered for
2395* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device
2396* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient
2397* [DocumentReference](documentreference.html): Who/what is the subject of the document
2398* [Encounter](encounter.html): The patient present at the encounter
2399* [EnrollmentRequest](enrollmentrequest.html): The party to be enrolled
2400* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care
2401* [ExplanationOfBenefit](explanationofbenefit.html): The reference to the patient
2402* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for
2403* [Flag](flag.html): The identity of a subject to list flags for
2404* [Goal](goal.html): Who this goal is intended for
2405* [GuidanceResponse](guidanceresponse.html): The identity of a patient to search for guidance response results
2406* [ImagingSelection](imagingselection.html): Who the study is about
2407* [ImagingStudy](imagingstudy.html): Who the study is about
2408* [Immunization](immunization.html): The patient for the vaccination record
2409* [ImmunizationEvaluation](immunizationevaluation.html): The patient being evaluated
2410* [ImmunizationRecommendation](immunizationrecommendation.html): Who this profile is for
2411* [Invoice](invoice.html): Recipient(s) of goods and services
2412* [List](list.html): If all resources have the same subject
2413* [MeasureReport](measurereport.html): The identity of a patient to search for individual measure report results for
2414* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations  for
2415* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses  for
2416* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient
2417* [MedicationStatement](medicationstatement.html): Returns statements for a specific patient.
2418* [MolecularSequence](molecularsequence.html): The subject that the sequence is about
2419* [NutritionIntake](nutritionintake.html): Returns statements for a specific patient.
2420* [NutritionOrder](nutritionorder.html): The identity of the individual or set of individuals who requires the diet, formula or nutritional supplement
2421* [Observation](observation.html): The subject that the observation is about (if patient)
2422* [Person](person.html): The Person links to this Patient
2423* [Procedure](procedure.html): Search by subject - a patient
2424* [Provenance](provenance.html): Where the activity involved patient data
2425* [QuestionnaireResponse](questionnaireresponse.html): The patient that is the subject of the questionnaire response
2426* [RelatedPerson](relatedperson.html): The patient this related person is related to
2427* [RequestOrchestration](requestorchestration.html): The identity of a patient to search for request orchestrations
2428* [ResearchSubject](researchsubject.html): Who or what is part of study
2429* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?
2430* [ServiceRequest](servicerequest.html): Search by subject - a patient
2431* [Specimen](specimen.html): The patient the specimen comes from
2432* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied
2433* [SupplyRequest](supplyrequest.html): The patient or subject for whom the supply is destined
2434* [Task](task.html): Search by patient
2435* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for
2436</b><br>
2437   * Type: <b>reference</b><br>
2438   * 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>
2439   * </p>
2440   */
2441  @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 } )
2442  public static final String SP_PATIENT = "patient";
2443 /**
2444   * <b>Fluent Client</b> search parameter constant for <b>patient</b>
2445   * <p>
2446   * Description: <b>Multiple Resources: 
2447
2448* [Account](account.html): The entity that caused the expenses
2449* [AdverseEvent](adverseevent.html): Subject impacted by event
2450* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for
2451* [Appointment](appointment.html): One of the individuals of the appointment is this patient
2452* [AppointmentResponse](appointmentresponse.html): This Response is for this Patient
2453* [AuditEvent](auditevent.html): Where the activity involved patient data
2454* [Basic](basic.html): Identifies the focus of this resource
2455* [BodyStructure](bodystructure.html): Who this is about
2456* [CarePlan](careplan.html): Who the care plan is for
2457* [CareTeam](careteam.html): Who care team is for
2458* [ChargeItem](chargeitem.html): Individual service was done for/to
2459* [Claim](claim.html): Patient receiving the products or services
2460* [ClaimResponse](claimresponse.html): The subject of care
2461* [ClinicalImpression](clinicalimpression.html): Patient assessed
2462* [Communication](communication.html): Focus of message
2463* [CommunicationRequest](communicationrequest.html): Focus of message
2464* [Composition](composition.html): Who and/or what the composition is about
2465* [Condition](condition.html): Who has the condition?
2466* [Consent](consent.html): Who the consent applies to
2467* [Contract](contract.html): The identity of the subject of the contract (if a patient)
2468* [Coverage](coverage.html): Retrieve coverages for a patient
2469* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The reference to the patient
2470* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The reference to the patient
2471* [DetectedIssue](detectedissue.html): Associated patient
2472* [DeviceRequest](devicerequest.html): Individual the service is ordered for
2473* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device
2474* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient
2475* [DocumentReference](documentreference.html): Who/what is the subject of the document
2476* [Encounter](encounter.html): The patient present at the encounter
2477* [EnrollmentRequest](enrollmentrequest.html): The party to be enrolled
2478* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care
2479* [ExplanationOfBenefit](explanationofbenefit.html): The reference to the patient
2480* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for
2481* [Flag](flag.html): The identity of a subject to list flags for
2482* [Goal](goal.html): Who this goal is intended for
2483* [GuidanceResponse](guidanceresponse.html): The identity of a patient to search for guidance response results
2484* [ImagingSelection](imagingselection.html): Who the study is about
2485* [ImagingStudy](imagingstudy.html): Who the study is about
2486* [Immunization](immunization.html): The patient for the vaccination record
2487* [ImmunizationEvaluation](immunizationevaluation.html): The patient being evaluated
2488* [ImmunizationRecommendation](immunizationrecommendation.html): Who this profile is for
2489* [Invoice](invoice.html): Recipient(s) of goods and services
2490* [List](list.html): If all resources have the same subject
2491* [MeasureReport](measurereport.html): The identity of a patient to search for individual measure report results for
2492* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations  for
2493* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses  for
2494* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient
2495* [MedicationStatement](medicationstatement.html): Returns statements for a specific patient.
2496* [MolecularSequence](molecularsequence.html): The subject that the sequence is about
2497* [NutritionIntake](nutritionintake.html): Returns statements for a specific patient.
2498* [NutritionOrder](nutritionorder.html): The identity of the individual or set of individuals who requires the diet, formula or nutritional supplement
2499* [Observation](observation.html): The subject that the observation is about (if patient)
2500* [Person](person.html): The Person links to this Patient
2501* [Procedure](procedure.html): Search by subject - a patient
2502* [Provenance](provenance.html): Where the activity involved patient data
2503* [QuestionnaireResponse](questionnaireresponse.html): The patient that is the subject of the questionnaire response
2504* [RelatedPerson](relatedperson.html): The patient this related person is related to
2505* [RequestOrchestration](requestorchestration.html): The identity of a patient to search for request orchestrations
2506* [ResearchSubject](researchsubject.html): Who or what is part of study
2507* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?
2508* [ServiceRequest](servicerequest.html): Search by subject - a patient
2509* [Specimen](specimen.html): The patient the specimen comes from
2510* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied
2511* [SupplyRequest](supplyrequest.html): The patient or subject for whom the supply is destined
2512* [Task](task.html): Search by patient
2513* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for
2514</b><br>
2515   * Type: <b>reference</b><br>
2516   * 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>
2517   * </p>
2518   */
2519  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PATIENT);
2520
2521/**
2522   * Constant for fluent queries to be used to add include statements. Specifies
2523   * the path value of "<b>EpisodeOfCare:patient</b>".
2524   */
2525  public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("EpisodeOfCare:patient").toLocked();
2526
2527 /**
2528   * Search parameter: <b>type</b>
2529   * <p>
2530   * Description: <b>Multiple Resources: 
2531
2532* [Account](account.html): E.g. patient, expense, depreciation
2533* [AllergyIntolerance](allergyintolerance.html): allergy | intolerance - Underlying mechanism (if known)
2534* [Composition](composition.html): Kind of composition (LOINC if possible)
2535* [Coverage](coverage.html): The kind of coverage (health plan, auto, Workers Compensation)
2536* [DocumentReference](documentreference.html): Kind of document (LOINC if possible)
2537* [Encounter](encounter.html): Specific type of encounter
2538* [EpisodeOfCare](episodeofcare.html): Type/class  - e.g. specialist referral, disease management
2539* [Invoice](invoice.html): Type of Invoice
2540* [MedicationDispense](medicationdispense.html): Returns dispenses of a specific type
2541* [MolecularSequence](molecularsequence.html): Amino Acid Sequence/ DNA Sequence / RNA Sequence
2542* [Specimen](specimen.html): The specimen type
2543</b><br>
2544   * Type: <b>token</b><br>
2545   * 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>
2546   * </p>
2547   */
2548  @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" )
2549  public static final String SP_TYPE = "type";
2550 /**
2551   * <b>Fluent Client</b> search parameter constant for <b>type</b>
2552   * <p>
2553   * Description: <b>Multiple Resources: 
2554
2555* [Account](account.html): E.g. patient, expense, depreciation
2556* [AllergyIntolerance](allergyintolerance.html): allergy | intolerance - Underlying mechanism (if known)
2557* [Composition](composition.html): Kind of composition (LOINC if possible)
2558* [Coverage](coverage.html): The kind of coverage (health plan, auto, Workers Compensation)
2559* [DocumentReference](documentreference.html): Kind of document (LOINC if possible)
2560* [Encounter](encounter.html): Specific type of encounter
2561* [EpisodeOfCare](episodeofcare.html): Type/class  - e.g. specialist referral, disease management
2562* [Invoice](invoice.html): Type of Invoice
2563* [MedicationDispense](medicationdispense.html): Returns dispenses of a specific type
2564* [MolecularSequence](molecularsequence.html): Amino Acid Sequence/ DNA Sequence / RNA Sequence
2565* [Specimen](specimen.html): The specimen type
2566</b><br>
2567   * Type: <b>token</b><br>
2568   * 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>
2569   * </p>
2570   */
2571  public static final ca.uhn.fhir.rest.gclient.TokenClientParam TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TYPE);
2572
2573
2574}
2575