001package org.hl7.fhir.r5.model;
002
003
004/*
005  Copyright (c) 2011+, HL7, Inc.
006  All rights reserved.
007  
008  Redistribution and use in source and binary forms, with or without modification, \
009  are permitted provided that the following conditions are met:
010  
011   * Redistributions of source code must retain the above copyright notice, this \
012     list of conditions and the following disclaimer.
013   * Redistributions in binary form must reproduce the above copyright notice, \
014     this list of conditions and the following disclaimer in the documentation \
015     and/or other materials provided with the distribution.
016   * Neither the name of HL7 nor the names of its contributors may be used to 
017     endorse or promote products derived from this software without specific 
018     prior written permission.
019  
020  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \
021  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \
022  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \
023  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \
024  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT \
025  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR \
026  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, \
027  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) \
028  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE \
029  POSSIBILITY OF SUCH DAMAGE.
030  */
031
032// Generated on Fri, Jul 15, 2022 11:20+1000 for FHIR v5.0.0-snapshot2
033
034import java.util.ArrayList;
035import java.util.Date;
036import java.util.List;
037import org.hl7.fhir.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 * A list is a curated collection of resources.
052 */
053@ResourceDef(name="List", profile="http://hl7.org/fhir/StructureDefinition/List")
054public class ListResource extends DomainResource {
055
056    public enum ListStatus {
057        /**
058         * The list is considered to be an active part of the patient's record.
059         */
060        CURRENT, 
061        /**
062         * The list is \"old\" and should no longer be considered accurate or relevant.
063         */
064        RETIRED, 
065        /**
066         * The list was never accurate.  It is retained for medico-legal purposes only.
067         */
068        ENTEREDINERROR, 
069        /**
070         * added to help the parsers with the generic types
071         */
072        NULL;
073        public static ListStatus fromCode(String codeString) throws FHIRException {
074            if (codeString == null || "".equals(codeString))
075                return null;
076        if ("current".equals(codeString))
077          return CURRENT;
078        if ("retired".equals(codeString))
079          return RETIRED;
080        if ("entered-in-error".equals(codeString))
081          return ENTEREDINERROR;
082        if (Configuration.isAcceptInvalidEnums())
083          return null;
084        else
085          throw new FHIRException("Unknown ListStatus code '"+codeString+"'");
086        }
087        public String toCode() {
088          switch (this) {
089            case CURRENT: return "current";
090            case RETIRED: return "retired";
091            case ENTEREDINERROR: return "entered-in-error";
092            case NULL: return null;
093            default: return "?";
094          }
095        }
096        public String getSystem() {
097          switch (this) {
098            case CURRENT: return "http://hl7.org/fhir/list-status";
099            case RETIRED: return "http://hl7.org/fhir/list-status";
100            case ENTEREDINERROR: return "http://hl7.org/fhir/list-status";
101            case NULL: return null;
102            default: return "?";
103          }
104        }
105        public String getDefinition() {
106          switch (this) {
107            case CURRENT: return "The list is considered to be an active part of the patient's record.";
108            case RETIRED: return "The list is \"old\" and should no longer be considered accurate or relevant.";
109            case ENTEREDINERROR: return "The list was never accurate.  It is retained for medico-legal purposes only.";
110            case NULL: return null;
111            default: return "?";
112          }
113        }
114        public String getDisplay() {
115          switch (this) {
116            case CURRENT: return "Current";
117            case RETIRED: return "Retired";
118            case ENTEREDINERROR: return "Entered In Error";
119            case NULL: return null;
120            default: return "?";
121          }
122        }
123    }
124
125  public static class ListStatusEnumFactory implements EnumFactory<ListStatus> {
126    public ListStatus fromCode(String codeString) throws IllegalArgumentException {
127      if (codeString == null || "".equals(codeString))
128            if (codeString == null || "".equals(codeString))
129                return null;
130        if ("current".equals(codeString))
131          return ListStatus.CURRENT;
132        if ("retired".equals(codeString))
133          return ListStatus.RETIRED;
134        if ("entered-in-error".equals(codeString))
135          return ListStatus.ENTEREDINERROR;
136        throw new IllegalArgumentException("Unknown ListStatus code '"+codeString+"'");
137        }
138        public Enumeration<ListStatus> fromType(Base code) throws FHIRException {
139          if (code == null)
140            return null;
141          if (code.isEmpty())
142            return new Enumeration<ListStatus>(this);
143          String codeString = ((PrimitiveType) code).asStringValue();
144          if (codeString == null || "".equals(codeString))
145            return null;
146        if ("current".equals(codeString))
147          return new Enumeration<ListStatus>(this, ListStatus.CURRENT);
148        if ("retired".equals(codeString))
149          return new Enumeration<ListStatus>(this, ListStatus.RETIRED);
150        if ("entered-in-error".equals(codeString))
151          return new Enumeration<ListStatus>(this, ListStatus.ENTEREDINERROR);
152        throw new FHIRException("Unknown ListStatus code '"+codeString+"'");
153        }
154    public String toCode(ListStatus code) {
155      if (code == ListStatus.CURRENT)
156        return "current";
157      if (code == ListStatus.RETIRED)
158        return "retired";
159      if (code == ListStatus.ENTEREDINERROR)
160        return "entered-in-error";
161      return "?";
162      }
163    public String toSystem(ListStatus code) {
164      return code.getSystem();
165      }
166    }
167
168    @Block()
169    public static class ListResourceEntryComponent extends BackboneElement implements IBaseBackboneElement {
170        /**
171         * The flag allows the system constructing the list to indicate the role and significance of the item in the list.
172         */
173        @Child(name = "flag", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=false, summary=false)
174        @Description(shortDefinition="Status/Workflow information about this item", formalDefinition="The flag allows the system constructing the list to indicate the role and significance of the item in the list." )
175        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/list-item-flag")
176        protected CodeableConcept flag;
177
178        /**
179         * True if this item is marked as deleted in the list.
180         */
181        @Child(name = "deleted", type = {BooleanType.class}, order=2, min=0, max=1, modifier=true, summary=false)
182        @Description(shortDefinition="If this item is actually marked as deleted", formalDefinition="True if this item is marked as deleted in the list." )
183        protected BooleanType deleted;
184
185        /**
186         * When this item was added to the list.
187         */
188        @Child(name = "date", type = {DateTimeType.class}, order=3, min=0, max=1, modifier=false, summary=false)
189        @Description(shortDefinition="When item added to list", formalDefinition="When this item was added to the list." )
190        protected DateTimeType date;
191
192        /**
193         * A reference to the actual resource from which data was derived.
194         */
195        @Child(name = "item", type = {Reference.class}, order=4, min=1, max=1, modifier=false, summary=false)
196        @Description(shortDefinition="Actual entry", formalDefinition="A reference to the actual resource from which data was derived." )
197        protected Reference item;
198
199        private static final long serialVersionUID = -872672029L;
200
201    /**
202     * Constructor
203     */
204      public ListResourceEntryComponent() {
205        super();
206      }
207
208    /**
209     * Constructor
210     */
211      public ListResourceEntryComponent(Reference item) {
212        super();
213        this.setItem(item);
214      }
215
216        /**
217         * @return {@link #flag} (The flag allows the system constructing the list to indicate the role and significance of the item in the list.)
218         */
219        public CodeableConcept getFlag() { 
220          if (this.flag == null)
221            if (Configuration.errorOnAutoCreate())
222              throw new Error("Attempt to auto-create ListResourceEntryComponent.flag");
223            else if (Configuration.doAutoCreate())
224              this.flag = new CodeableConcept(); // cc
225          return this.flag;
226        }
227
228        public boolean hasFlag() { 
229          return this.flag != null && !this.flag.isEmpty();
230        }
231
232        /**
233         * @param value {@link #flag} (The flag allows the system constructing the list to indicate the role and significance of the item in the list.)
234         */
235        public ListResourceEntryComponent setFlag(CodeableConcept value) { 
236          this.flag = value;
237          return this;
238        }
239
240        /**
241         * @return {@link #deleted} (True if this item is marked as deleted in the list.). This is the underlying object with id, value and extensions. The accessor "getDeleted" gives direct access to the value
242         */
243        public BooleanType getDeletedElement() { 
244          if (this.deleted == null)
245            if (Configuration.errorOnAutoCreate())
246              throw new Error("Attempt to auto-create ListResourceEntryComponent.deleted");
247            else if (Configuration.doAutoCreate())
248              this.deleted = new BooleanType(); // bb
249          return this.deleted;
250        }
251
252        public boolean hasDeletedElement() { 
253          return this.deleted != null && !this.deleted.isEmpty();
254        }
255
256        public boolean hasDeleted() { 
257          return this.deleted != null && !this.deleted.isEmpty();
258        }
259
260        /**
261         * @param value {@link #deleted} (True if this item is marked as deleted in the list.). This is the underlying object with id, value and extensions. The accessor "getDeleted" gives direct access to the value
262         */
263        public ListResourceEntryComponent setDeletedElement(BooleanType value) { 
264          this.deleted = value;
265          return this;
266        }
267
268        /**
269         * @return True if this item is marked as deleted in the list.
270         */
271        public boolean getDeleted() { 
272          return this.deleted == null || this.deleted.isEmpty() ? false : this.deleted.getValue();
273        }
274
275        /**
276         * @param value True if this item is marked as deleted in the list.
277         */
278        public ListResourceEntryComponent setDeleted(boolean value) { 
279            if (this.deleted == null)
280              this.deleted = new BooleanType();
281            this.deleted.setValue(value);
282          return this;
283        }
284
285        /**
286         * @return {@link #date} (When this item was added to the list.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value
287         */
288        public DateTimeType getDateElement() { 
289          if (this.date == null)
290            if (Configuration.errorOnAutoCreate())
291              throw new Error("Attempt to auto-create ListResourceEntryComponent.date");
292            else if (Configuration.doAutoCreate())
293              this.date = new DateTimeType(); // bb
294          return this.date;
295        }
296
297        public boolean hasDateElement() { 
298          return this.date != null && !this.date.isEmpty();
299        }
300
301        public boolean hasDate() { 
302          return this.date != null && !this.date.isEmpty();
303        }
304
305        /**
306         * @param value {@link #date} (When this item was added to the list.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value
307         */
308        public ListResourceEntryComponent setDateElement(DateTimeType value) { 
309          this.date = value;
310          return this;
311        }
312
313        /**
314         * @return When this item was added to the list.
315         */
316        public Date getDate() { 
317          return this.date == null ? null : this.date.getValue();
318        }
319
320        /**
321         * @param value When this item was added to the list.
322         */
323        public ListResourceEntryComponent setDate(Date value) { 
324          if (value == null)
325            this.date = null;
326          else {
327            if (this.date == null)
328              this.date = new DateTimeType();
329            this.date.setValue(value);
330          }
331          return this;
332        }
333
334        /**
335         * @return {@link #item} (A reference to the actual resource from which data was derived.)
336         */
337        public Reference getItem() { 
338          if (this.item == null)
339            if (Configuration.errorOnAutoCreate())
340              throw new Error("Attempt to auto-create ListResourceEntryComponent.item");
341            else if (Configuration.doAutoCreate())
342              this.item = new Reference(); // cc
343          return this.item;
344        }
345
346        public boolean hasItem() { 
347          return this.item != null && !this.item.isEmpty();
348        }
349
350        /**
351         * @param value {@link #item} (A reference to the actual resource from which data was derived.)
352         */
353        public ListResourceEntryComponent setItem(Reference value) { 
354          this.item = value;
355          return this;
356        }
357
358        protected void listChildren(List<Property> children) {
359          super.listChildren(children);
360          children.add(new Property("flag", "CodeableConcept", "The flag allows the system constructing the list to indicate the role and significance of the item in the list.", 0, 1, flag));
361          children.add(new Property("deleted", "boolean", "True if this item is marked as deleted in the list.", 0, 1, deleted));
362          children.add(new Property("date", "dateTime", "When this item was added to the list.", 0, 1, date));
363          children.add(new Property("item", "Reference(Any)", "A reference to the actual resource from which data was derived.", 0, 1, item));
364        }
365
366        @Override
367        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
368          switch (_hash) {
369          case 3145580: /*flag*/  return new Property("flag", "CodeableConcept", "The flag allows the system constructing the list to indicate the role and significance of the item in the list.", 0, 1, flag);
370          case 1550463001: /*deleted*/  return new Property("deleted", "boolean", "True if this item is marked as deleted in the list.", 0, 1, deleted);
371          case 3076014: /*date*/  return new Property("date", "dateTime", "When this item was added to the list.", 0, 1, date);
372          case 3242771: /*item*/  return new Property("item", "Reference(Any)", "A reference to the actual resource from which data was derived.", 0, 1, item);
373          default: return super.getNamedProperty(_hash, _name, _checkValid);
374          }
375
376        }
377
378      @Override
379      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
380        switch (hash) {
381        case 3145580: /*flag*/ return this.flag == null ? new Base[0] : new Base[] {this.flag}; // CodeableConcept
382        case 1550463001: /*deleted*/ return this.deleted == null ? new Base[0] : new Base[] {this.deleted}; // BooleanType
383        case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType
384        case 3242771: /*item*/ return this.item == null ? new Base[0] : new Base[] {this.item}; // Reference
385        default: return super.getProperty(hash, name, checkValid);
386        }
387
388      }
389
390      @Override
391      public Base setProperty(int hash, String name, Base value) throws FHIRException {
392        switch (hash) {
393        case 3145580: // flag
394          this.flag = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
395          return value;
396        case 1550463001: // deleted
397          this.deleted = TypeConvertor.castToBoolean(value); // BooleanType
398          return value;
399        case 3076014: // date
400          this.date = TypeConvertor.castToDateTime(value); // DateTimeType
401          return value;
402        case 3242771: // item
403          this.item = TypeConvertor.castToReference(value); // Reference
404          return value;
405        default: return super.setProperty(hash, name, value);
406        }
407
408      }
409
410      @Override
411      public Base setProperty(String name, Base value) throws FHIRException {
412        if (name.equals("flag")) {
413          this.flag = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
414        } else if (name.equals("deleted")) {
415          this.deleted = TypeConvertor.castToBoolean(value); // BooleanType
416        } else if (name.equals("date")) {
417          this.date = TypeConvertor.castToDateTime(value); // DateTimeType
418        } else if (name.equals("item")) {
419          this.item = TypeConvertor.castToReference(value); // Reference
420        } else
421          return super.setProperty(name, value);
422        return value;
423      }
424
425      @Override
426      public Base makeProperty(int hash, String name) throws FHIRException {
427        switch (hash) {
428        case 3145580:  return getFlag();
429        case 1550463001:  return getDeletedElement();
430        case 3076014:  return getDateElement();
431        case 3242771:  return getItem();
432        default: return super.makeProperty(hash, name);
433        }
434
435      }
436
437      @Override
438      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
439        switch (hash) {
440        case 3145580: /*flag*/ return new String[] {"CodeableConcept"};
441        case 1550463001: /*deleted*/ return new String[] {"boolean"};
442        case 3076014: /*date*/ return new String[] {"dateTime"};
443        case 3242771: /*item*/ return new String[] {"Reference"};
444        default: return super.getTypesForProperty(hash, name);
445        }
446
447      }
448
449      @Override
450      public Base addChild(String name) throws FHIRException {
451        if (name.equals("flag")) {
452          this.flag = new CodeableConcept();
453          return this.flag;
454        }
455        else if (name.equals("deleted")) {
456          throw new FHIRException("Cannot call addChild on a primitive type List.entry.deleted");
457        }
458        else if (name.equals("date")) {
459          throw new FHIRException("Cannot call addChild on a primitive type List.entry.date");
460        }
461        else if (name.equals("item")) {
462          this.item = new Reference();
463          return this.item;
464        }
465        else
466          return super.addChild(name);
467      }
468
469      public ListResourceEntryComponent copy() {
470        ListResourceEntryComponent dst = new ListResourceEntryComponent();
471        copyValues(dst);
472        return dst;
473      }
474
475      public void copyValues(ListResourceEntryComponent dst) {
476        super.copyValues(dst);
477        dst.flag = flag == null ? null : flag.copy();
478        dst.deleted = deleted == null ? null : deleted.copy();
479        dst.date = date == null ? null : date.copy();
480        dst.item = item == null ? null : item.copy();
481      }
482
483      @Override
484      public boolean equalsDeep(Base other_) {
485        if (!super.equalsDeep(other_))
486          return false;
487        if (!(other_ instanceof ListResourceEntryComponent))
488          return false;
489        ListResourceEntryComponent o = (ListResourceEntryComponent) other_;
490        return compareDeep(flag, o.flag, true) && compareDeep(deleted, o.deleted, true) && compareDeep(date, o.date, true)
491           && compareDeep(item, o.item, true);
492      }
493
494      @Override
495      public boolean equalsShallow(Base other_) {
496        if (!super.equalsShallow(other_))
497          return false;
498        if (!(other_ instanceof ListResourceEntryComponent))
499          return false;
500        ListResourceEntryComponent o = (ListResourceEntryComponent) other_;
501        return compareValues(deleted, o.deleted, true) && compareValues(date, o.date, true);
502      }
503
504      public boolean isEmpty() {
505        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(flag, deleted, date, item
506          );
507      }
508
509  public String fhirType() {
510    return "List.entry";
511
512  }
513
514  }
515
516    /**
517     * Identifier for the List assigned for business purposes outside the context of FHIR.
518     */
519    @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
520    @Description(shortDefinition="Business identifier", formalDefinition="Identifier for the List assigned for business purposes outside the context of FHIR." )
521    protected List<Identifier> identifier;
522
523    /**
524     * Indicates the current state of this list.
525     */
526    @Child(name = "status", type = {CodeType.class}, order=1, min=1, max=1, modifier=true, summary=true)
527    @Description(shortDefinition="current | retired | entered-in-error", formalDefinition="Indicates the current state of this list." )
528    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/list-status")
529    protected Enumeration<ListStatus> status;
530
531    /**
532     * How this list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted.
533     */
534    @Child(name = "mode", type = {CodeType.class}, order=2, min=1, max=1, modifier=true, summary=true)
535    @Description(shortDefinition="working | snapshot | changes", formalDefinition="How this list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted." )
536    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/list-mode")
537    protected Enumeration<ListMode> mode;
538
539    /**
540     * A label for the list assigned by the author.
541     */
542    @Child(name = "title", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=true)
543    @Description(shortDefinition="Descriptive name for the list", formalDefinition="A label for the list assigned by the author." )
544    protected StringType title;
545
546    /**
547     * This code defines the purpose of the list - why it was created.
548     */
549    @Child(name = "code", type = {CodeableConcept.class}, order=4, min=0, max=1, modifier=false, summary=true)
550    @Description(shortDefinition="What the purpose of this list is", formalDefinition="This code defines the purpose of the list - why it was created." )
551    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/list-example-codes")
552    protected CodeableConcept code;
553
554    /**
555     * The common subject (or patient) of the resources that are in the list if there is one.
556     */
557    @Child(name = "subject", type = {Patient.class, Group.class, Device.class, Location.class}, order=5, min=0, max=1, modifier=false, summary=true)
558    @Description(shortDefinition="If all resources have the same subject", formalDefinition="The common subject (or patient) of the resources that are in the list if there is one." )
559    protected Reference subject;
560
561    /**
562     * The encounter that is the context in which this list was created.
563     */
564    @Child(name = "encounter", type = {Encounter.class}, order=6, min=0, max=1, modifier=false, summary=false)
565    @Description(shortDefinition="Context in which list created", formalDefinition="The encounter that is the context in which this list was created." )
566    protected Reference encounter;
567
568    /**
569     * The date that the list was prepared.
570     */
571    @Child(name = "date", type = {DateTimeType.class}, order=7, min=0, max=1, modifier=false, summary=true)
572    @Description(shortDefinition="When the list was prepared", formalDefinition="The date that the list was prepared." )
573    protected DateTimeType date;
574
575    /**
576     * The entity responsible for deciding what the contents of the list were. Where the list was created by a human, this is the same as the author of the list.
577     */
578    @Child(name = "source", type = {Practitioner.class, PractitionerRole.class, Patient.class, Device.class, Organization.class, RelatedPerson.class, CareTeam.class}, order=8, min=0, max=1, modifier=false, summary=true)
579    @Description(shortDefinition="Who and/or what defined the list contents (aka Author)", formalDefinition="The entity responsible for deciding what the contents of the list were. Where the list was created by a human, this is the same as the author of the list." )
580    protected Reference source;
581
582    /**
583     * What order applies to the items in the list.
584     */
585    @Child(name = "orderedBy", type = {CodeableConcept.class}, order=9, min=0, max=1, modifier=false, summary=false)
586    @Description(shortDefinition="What order the list has", formalDefinition="What order applies to the items in the list." )
587    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/list-order")
588    protected CodeableConcept orderedBy;
589
590    /**
591     * Comments that apply to the overall list.
592     */
593    @Child(name = "note", type = {Annotation.class}, order=10, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
594    @Description(shortDefinition="Comments about the list", formalDefinition="Comments that apply to the overall list." )
595    protected List<Annotation> note;
596
597    /**
598     * Entries in this list.
599     */
600    @Child(name = "entry", type = {}, order=11, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
601    @Description(shortDefinition="Entries in the list", formalDefinition="Entries in this list." )
602    protected List<ListResourceEntryComponent> entry;
603
604    /**
605     * If the list is empty, why the list is empty.
606     */
607    @Child(name = "emptyReason", type = {CodeableConcept.class}, order=12, min=0, max=1, modifier=false, summary=false)
608    @Description(shortDefinition="Why list is empty", formalDefinition="If the list is empty, why the list is empty." )
609    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/list-empty-reason")
610    protected CodeableConcept emptyReason;
611
612    private static final long serialVersionUID = 1429954620L;
613
614  /**
615   * Constructor
616   */
617    public ListResource() {
618      super();
619    }
620
621  /**
622   * Constructor
623   */
624    public ListResource(ListStatus status, ListMode mode) {
625      super();
626      this.setStatus(status);
627      this.setMode(mode);
628    }
629
630    /**
631     * @return {@link #identifier} (Identifier for the List assigned for business purposes outside the context of FHIR.)
632     */
633    public List<Identifier> getIdentifier() { 
634      if (this.identifier == null)
635        this.identifier = new ArrayList<Identifier>();
636      return this.identifier;
637    }
638
639    /**
640     * @return Returns a reference to <code>this</code> for easy method chaining
641     */
642    public ListResource setIdentifier(List<Identifier> theIdentifier) { 
643      this.identifier = theIdentifier;
644      return this;
645    }
646
647    public boolean hasIdentifier() { 
648      if (this.identifier == null)
649        return false;
650      for (Identifier item : this.identifier)
651        if (!item.isEmpty())
652          return true;
653      return false;
654    }
655
656    public Identifier addIdentifier() { //3
657      Identifier t = new Identifier();
658      if (this.identifier == null)
659        this.identifier = new ArrayList<Identifier>();
660      this.identifier.add(t);
661      return t;
662    }
663
664    public ListResource addIdentifier(Identifier t) { //3
665      if (t == null)
666        return this;
667      if (this.identifier == null)
668        this.identifier = new ArrayList<Identifier>();
669      this.identifier.add(t);
670      return this;
671    }
672
673    /**
674     * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3}
675     */
676    public Identifier getIdentifierFirstRep() { 
677      if (getIdentifier().isEmpty()) {
678        addIdentifier();
679      }
680      return getIdentifier().get(0);
681    }
682
683    /**
684     * @return {@link #status} (Indicates the current state of this list.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
685     */
686    public Enumeration<ListStatus> getStatusElement() { 
687      if (this.status == null)
688        if (Configuration.errorOnAutoCreate())
689          throw new Error("Attempt to auto-create ListResource.status");
690        else if (Configuration.doAutoCreate())
691          this.status = new Enumeration<ListStatus>(new ListStatusEnumFactory()); // bb
692      return this.status;
693    }
694
695    public boolean hasStatusElement() { 
696      return this.status != null && !this.status.isEmpty();
697    }
698
699    public boolean hasStatus() { 
700      return this.status != null && !this.status.isEmpty();
701    }
702
703    /**
704     * @param value {@link #status} (Indicates the current state of this list.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
705     */
706    public ListResource setStatusElement(Enumeration<ListStatus> value) { 
707      this.status = value;
708      return this;
709    }
710
711    /**
712     * @return Indicates the current state of this list.
713     */
714    public ListStatus getStatus() { 
715      return this.status == null ? null : this.status.getValue();
716    }
717
718    /**
719     * @param value Indicates the current state of this list.
720     */
721    public ListResource setStatus(ListStatus value) { 
722        if (this.status == null)
723          this.status = new Enumeration<ListStatus>(new ListStatusEnumFactory());
724        this.status.setValue(value);
725      return this;
726    }
727
728    /**
729     * @return {@link #mode} (How this list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted.). This is the underlying object with id, value and extensions. The accessor "getMode" gives direct access to the value
730     */
731    public Enumeration<ListMode> getModeElement() { 
732      if (this.mode == null)
733        if (Configuration.errorOnAutoCreate())
734          throw new Error("Attempt to auto-create ListResource.mode");
735        else if (Configuration.doAutoCreate())
736          this.mode = new Enumeration<ListMode>(new ListModeEnumFactory()); // bb
737      return this.mode;
738    }
739
740    public boolean hasModeElement() { 
741      return this.mode != null && !this.mode.isEmpty();
742    }
743
744    public boolean hasMode() { 
745      return this.mode != null && !this.mode.isEmpty();
746    }
747
748    /**
749     * @param value {@link #mode} (How this list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted.). This is the underlying object with id, value and extensions. The accessor "getMode" gives direct access to the value
750     */
751    public ListResource setModeElement(Enumeration<ListMode> value) { 
752      this.mode = value;
753      return this;
754    }
755
756    /**
757     * @return How this list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted.
758     */
759    public ListMode getMode() { 
760      return this.mode == null ? null : this.mode.getValue();
761    }
762
763    /**
764     * @param value How this list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted.
765     */
766    public ListResource setMode(ListMode value) { 
767        if (this.mode == null)
768          this.mode = new Enumeration<ListMode>(new ListModeEnumFactory());
769        this.mode.setValue(value);
770      return this;
771    }
772
773    /**
774     * @return {@link #title} (A label for the list assigned by the author.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
775     */
776    public StringType getTitleElement() { 
777      if (this.title == null)
778        if (Configuration.errorOnAutoCreate())
779          throw new Error("Attempt to auto-create ListResource.title");
780        else if (Configuration.doAutoCreate())
781          this.title = new StringType(); // bb
782      return this.title;
783    }
784
785    public boolean hasTitleElement() { 
786      return this.title != null && !this.title.isEmpty();
787    }
788
789    public boolean hasTitle() { 
790      return this.title != null && !this.title.isEmpty();
791    }
792
793    /**
794     * @param value {@link #title} (A label for the list assigned by the author.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
795     */
796    public ListResource setTitleElement(StringType value) { 
797      this.title = value;
798      return this;
799    }
800
801    /**
802     * @return A label for the list assigned by the author.
803     */
804    public String getTitle() { 
805      return this.title == null ? null : this.title.getValue();
806    }
807
808    /**
809     * @param value A label for the list assigned by the author.
810     */
811    public ListResource setTitle(String value) { 
812      if (Utilities.noString(value))
813        this.title = null;
814      else {
815        if (this.title == null)
816          this.title = new StringType();
817        this.title.setValue(value);
818      }
819      return this;
820    }
821
822    /**
823     * @return {@link #code} (This code defines the purpose of the list - why it was created.)
824     */
825    public CodeableConcept getCode() { 
826      if (this.code == null)
827        if (Configuration.errorOnAutoCreate())
828          throw new Error("Attempt to auto-create ListResource.code");
829        else if (Configuration.doAutoCreate())
830          this.code = new CodeableConcept(); // cc
831      return this.code;
832    }
833
834    public boolean hasCode() { 
835      return this.code != null && !this.code.isEmpty();
836    }
837
838    /**
839     * @param value {@link #code} (This code defines the purpose of the list - why it was created.)
840     */
841    public ListResource setCode(CodeableConcept value) { 
842      this.code = value;
843      return this;
844    }
845
846    /**
847     * @return {@link #subject} (The common subject (or patient) of the resources that are in the list if there is one.)
848     */
849    public Reference getSubject() { 
850      if (this.subject == null)
851        if (Configuration.errorOnAutoCreate())
852          throw new Error("Attempt to auto-create ListResource.subject");
853        else if (Configuration.doAutoCreate())
854          this.subject = new Reference(); // cc
855      return this.subject;
856    }
857
858    public boolean hasSubject() { 
859      return this.subject != null && !this.subject.isEmpty();
860    }
861
862    /**
863     * @param value {@link #subject} (The common subject (or patient) of the resources that are in the list if there is one.)
864     */
865    public ListResource setSubject(Reference value) { 
866      this.subject = value;
867      return this;
868    }
869
870    /**
871     * @return {@link #encounter} (The encounter that is the context in which this list was created.)
872     */
873    public Reference getEncounter() { 
874      if (this.encounter == null)
875        if (Configuration.errorOnAutoCreate())
876          throw new Error("Attempt to auto-create ListResource.encounter");
877        else if (Configuration.doAutoCreate())
878          this.encounter = new Reference(); // cc
879      return this.encounter;
880    }
881
882    public boolean hasEncounter() { 
883      return this.encounter != null && !this.encounter.isEmpty();
884    }
885
886    /**
887     * @param value {@link #encounter} (The encounter that is the context in which this list was created.)
888     */
889    public ListResource setEncounter(Reference value) { 
890      this.encounter = value;
891      return this;
892    }
893
894    /**
895     * @return {@link #date} (The date that the list was prepared.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value
896     */
897    public DateTimeType getDateElement() { 
898      if (this.date == null)
899        if (Configuration.errorOnAutoCreate())
900          throw new Error("Attempt to auto-create ListResource.date");
901        else if (Configuration.doAutoCreate())
902          this.date = new DateTimeType(); // bb
903      return this.date;
904    }
905
906    public boolean hasDateElement() { 
907      return this.date != null && !this.date.isEmpty();
908    }
909
910    public boolean hasDate() { 
911      return this.date != null && !this.date.isEmpty();
912    }
913
914    /**
915     * @param value {@link #date} (The date that the list was prepared.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value
916     */
917    public ListResource setDateElement(DateTimeType value) { 
918      this.date = value;
919      return this;
920    }
921
922    /**
923     * @return The date that the list was prepared.
924     */
925    public Date getDate() { 
926      return this.date == null ? null : this.date.getValue();
927    }
928
929    /**
930     * @param value The date that the list was prepared.
931     */
932    public ListResource setDate(Date value) { 
933      if (value == null)
934        this.date = null;
935      else {
936        if (this.date == null)
937          this.date = new DateTimeType();
938        this.date.setValue(value);
939      }
940      return this;
941    }
942
943    /**
944     * @return {@link #source} (The entity responsible for deciding what the contents of the list were. Where the list was created by a human, this is the same as the author of the list.)
945     */
946    public Reference getSource() { 
947      if (this.source == null)
948        if (Configuration.errorOnAutoCreate())
949          throw new Error("Attempt to auto-create ListResource.source");
950        else if (Configuration.doAutoCreate())
951          this.source = new Reference(); // cc
952      return this.source;
953    }
954
955    public boolean hasSource() { 
956      return this.source != null && !this.source.isEmpty();
957    }
958
959    /**
960     * @param value {@link #source} (The entity responsible for deciding what the contents of the list were. Where the list was created by a human, this is the same as the author of the list.)
961     */
962    public ListResource setSource(Reference value) { 
963      this.source = value;
964      return this;
965    }
966
967    /**
968     * @return {@link #orderedBy} (What order applies to the items in the list.)
969     */
970    public CodeableConcept getOrderedBy() { 
971      if (this.orderedBy == null)
972        if (Configuration.errorOnAutoCreate())
973          throw new Error("Attempt to auto-create ListResource.orderedBy");
974        else if (Configuration.doAutoCreate())
975          this.orderedBy = new CodeableConcept(); // cc
976      return this.orderedBy;
977    }
978
979    public boolean hasOrderedBy() { 
980      return this.orderedBy != null && !this.orderedBy.isEmpty();
981    }
982
983    /**
984     * @param value {@link #orderedBy} (What order applies to the items in the list.)
985     */
986    public ListResource setOrderedBy(CodeableConcept value) { 
987      this.orderedBy = value;
988      return this;
989    }
990
991    /**
992     * @return {@link #note} (Comments that apply to the overall list.)
993     */
994    public List<Annotation> getNote() { 
995      if (this.note == null)
996        this.note = new ArrayList<Annotation>();
997      return this.note;
998    }
999
1000    /**
1001     * @return Returns a reference to <code>this</code> for easy method chaining
1002     */
1003    public ListResource setNote(List<Annotation> theNote) { 
1004      this.note = theNote;
1005      return this;
1006    }
1007
1008    public boolean hasNote() { 
1009      if (this.note == null)
1010        return false;
1011      for (Annotation item : this.note)
1012        if (!item.isEmpty())
1013          return true;
1014      return false;
1015    }
1016
1017    public Annotation addNote() { //3
1018      Annotation t = new Annotation();
1019      if (this.note == null)
1020        this.note = new ArrayList<Annotation>();
1021      this.note.add(t);
1022      return t;
1023    }
1024
1025    public ListResource addNote(Annotation t) { //3
1026      if (t == null)
1027        return this;
1028      if (this.note == null)
1029        this.note = new ArrayList<Annotation>();
1030      this.note.add(t);
1031      return this;
1032    }
1033
1034    /**
1035     * @return The first repetition of repeating field {@link #note}, creating it if it does not already exist {3}
1036     */
1037    public Annotation getNoteFirstRep() { 
1038      if (getNote().isEmpty()) {
1039        addNote();
1040      }
1041      return getNote().get(0);
1042    }
1043
1044    /**
1045     * @return {@link #entry} (Entries in this list.)
1046     */
1047    public List<ListResourceEntryComponent> getEntry() { 
1048      if (this.entry == null)
1049        this.entry = new ArrayList<ListResourceEntryComponent>();
1050      return this.entry;
1051    }
1052
1053    /**
1054     * @return Returns a reference to <code>this</code> for easy method chaining
1055     */
1056    public ListResource setEntry(List<ListResourceEntryComponent> theEntry) { 
1057      this.entry = theEntry;
1058      return this;
1059    }
1060
1061    public boolean hasEntry() { 
1062      if (this.entry == null)
1063        return false;
1064      for (ListResourceEntryComponent item : this.entry)
1065        if (!item.isEmpty())
1066          return true;
1067      return false;
1068    }
1069
1070    public ListResourceEntryComponent addEntry() { //3
1071      ListResourceEntryComponent t = new ListResourceEntryComponent();
1072      if (this.entry == null)
1073        this.entry = new ArrayList<ListResourceEntryComponent>();
1074      this.entry.add(t);
1075      return t;
1076    }
1077
1078    public ListResource addEntry(ListResourceEntryComponent t) { //3
1079      if (t == null)
1080        return this;
1081      if (this.entry == null)
1082        this.entry = new ArrayList<ListResourceEntryComponent>();
1083      this.entry.add(t);
1084      return this;
1085    }
1086
1087    /**
1088     * @return The first repetition of repeating field {@link #entry}, creating it if it does not already exist {3}
1089     */
1090    public ListResourceEntryComponent getEntryFirstRep() { 
1091      if (getEntry().isEmpty()) {
1092        addEntry();
1093      }
1094      return getEntry().get(0);
1095    }
1096
1097    /**
1098     * @return {@link #emptyReason} (If the list is empty, why the list is empty.)
1099     */
1100    public CodeableConcept getEmptyReason() { 
1101      if (this.emptyReason == null)
1102        if (Configuration.errorOnAutoCreate())
1103          throw new Error("Attempt to auto-create ListResource.emptyReason");
1104        else if (Configuration.doAutoCreate())
1105          this.emptyReason = new CodeableConcept(); // cc
1106      return this.emptyReason;
1107    }
1108
1109    public boolean hasEmptyReason() { 
1110      return this.emptyReason != null && !this.emptyReason.isEmpty();
1111    }
1112
1113    /**
1114     * @param value {@link #emptyReason} (If the list is empty, why the list is empty.)
1115     */
1116    public ListResource setEmptyReason(CodeableConcept value) { 
1117      this.emptyReason = value;
1118      return this;
1119    }
1120
1121      protected void listChildren(List<Property> children) {
1122        super.listChildren(children);
1123        children.add(new Property("identifier", "Identifier", "Identifier for the List assigned for business purposes outside the context of FHIR.", 0, java.lang.Integer.MAX_VALUE, identifier));
1124        children.add(new Property("status", "code", "Indicates the current state of this list.", 0, 1, status));
1125        children.add(new Property("mode", "code", "How this list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted.", 0, 1, mode));
1126        children.add(new Property("title", "string", "A label for the list assigned by the author.", 0, 1, title));
1127        children.add(new Property("code", "CodeableConcept", "This code defines the purpose of the list - why it was created.", 0, 1, code));
1128        children.add(new Property("subject", "Reference(Patient|Group|Device|Location)", "The common subject (or patient) of the resources that are in the list if there is one.", 0, 1, subject));
1129        children.add(new Property("encounter", "Reference(Encounter)", "The encounter that is the context in which this list was created.", 0, 1, encounter));
1130        children.add(new Property("date", "dateTime", "The date that the list was prepared.", 0, 1, date));
1131        children.add(new Property("source", "Reference(Practitioner|PractitionerRole|Patient|Device|Organization|RelatedPerson|CareTeam)", "The entity responsible for deciding what the contents of the list were. Where the list was created by a human, this is the same as the author of the list.", 0, 1, source));
1132        children.add(new Property("orderedBy", "CodeableConcept", "What order applies to the items in the list.", 0, 1, orderedBy));
1133        children.add(new Property("note", "Annotation", "Comments that apply to the overall list.", 0, java.lang.Integer.MAX_VALUE, note));
1134        children.add(new Property("entry", "", "Entries in this list.", 0, java.lang.Integer.MAX_VALUE, entry));
1135        children.add(new Property("emptyReason", "CodeableConcept", "If the list is empty, why the list is empty.", 0, 1, emptyReason));
1136      }
1137
1138      @Override
1139      public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
1140        switch (_hash) {
1141        case -1618432855: /*identifier*/  return new Property("identifier", "Identifier", "Identifier for the List assigned for business purposes outside the context of FHIR.", 0, java.lang.Integer.MAX_VALUE, identifier);
1142        case -892481550: /*status*/  return new Property("status", "code", "Indicates the current state of this list.", 0, 1, status);
1143        case 3357091: /*mode*/  return new Property("mode", "code", "How this list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted.", 0, 1, mode);
1144        case 110371416: /*title*/  return new Property("title", "string", "A label for the list assigned by the author.", 0, 1, title);
1145        case 3059181: /*code*/  return new Property("code", "CodeableConcept", "This code defines the purpose of the list - why it was created.", 0, 1, code);
1146        case -1867885268: /*subject*/  return new Property("subject", "Reference(Patient|Group|Device|Location)", "The common subject (or patient) of the resources that are in the list if there is one.", 0, 1, subject);
1147        case 1524132147: /*encounter*/  return new Property("encounter", "Reference(Encounter)", "The encounter that is the context in which this list was created.", 0, 1, encounter);
1148        case 3076014: /*date*/  return new Property("date", "dateTime", "The date that the list was prepared.", 0, 1, date);
1149        case -896505829: /*source*/  return new Property("source", "Reference(Practitioner|PractitionerRole|Patient|Device|Organization|RelatedPerson|CareTeam)", "The entity responsible for deciding what the contents of the list were. Where the list was created by a human, this is the same as the author of the list.", 0, 1, source);
1150        case -391079516: /*orderedBy*/  return new Property("orderedBy", "CodeableConcept", "What order applies to the items in the list.", 0, 1, orderedBy);
1151        case 3387378: /*note*/  return new Property("note", "Annotation", "Comments that apply to the overall list.", 0, java.lang.Integer.MAX_VALUE, note);
1152        case 96667762: /*entry*/  return new Property("entry", "", "Entries in this list.", 0, java.lang.Integer.MAX_VALUE, entry);
1153        case 1140135409: /*emptyReason*/  return new Property("emptyReason", "CodeableConcept", "If the list is empty, why the list is empty.", 0, 1, emptyReason);
1154        default: return super.getNamedProperty(_hash, _name, _checkValid);
1155        }
1156
1157      }
1158
1159      @Override
1160      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
1161        switch (hash) {
1162        case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier
1163        case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<ListStatus>
1164        case 3357091: /*mode*/ return this.mode == null ? new Base[0] : new Base[] {this.mode}; // Enumeration<ListMode>
1165        case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType
1166        case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept
1167        case -1867885268: /*subject*/ return this.subject == null ? new Base[0] : new Base[] {this.subject}; // Reference
1168        case 1524132147: /*encounter*/ return this.encounter == null ? new Base[0] : new Base[] {this.encounter}; // Reference
1169        case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType
1170        case -896505829: /*source*/ return this.source == null ? new Base[0] : new Base[] {this.source}; // Reference
1171        case -391079516: /*orderedBy*/ return this.orderedBy == null ? new Base[0] : new Base[] {this.orderedBy}; // CodeableConcept
1172        case 3387378: /*note*/ return this.note == null ? new Base[0] : this.note.toArray(new Base[this.note.size()]); // Annotation
1173        case 96667762: /*entry*/ return this.entry == null ? new Base[0] : this.entry.toArray(new Base[this.entry.size()]); // ListResourceEntryComponent
1174        case 1140135409: /*emptyReason*/ return this.emptyReason == null ? new Base[0] : new Base[] {this.emptyReason}; // CodeableConcept
1175        default: return super.getProperty(hash, name, checkValid);
1176        }
1177
1178      }
1179
1180      @Override
1181      public Base setProperty(int hash, String name, Base value) throws FHIRException {
1182        switch (hash) {
1183        case -1618432855: // identifier
1184          this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier
1185          return value;
1186        case -892481550: // status
1187          value = new ListStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
1188          this.status = (Enumeration) value; // Enumeration<ListStatus>
1189          return value;
1190        case 3357091: // mode
1191          value = new ListModeEnumFactory().fromType(TypeConvertor.castToCode(value));
1192          this.mode = (Enumeration) value; // Enumeration<ListMode>
1193          return value;
1194        case 110371416: // title
1195          this.title = TypeConvertor.castToString(value); // StringType
1196          return value;
1197        case 3059181: // code
1198          this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1199          return value;
1200        case -1867885268: // subject
1201          this.subject = TypeConvertor.castToReference(value); // Reference
1202          return value;
1203        case 1524132147: // encounter
1204          this.encounter = TypeConvertor.castToReference(value); // Reference
1205          return value;
1206        case 3076014: // date
1207          this.date = TypeConvertor.castToDateTime(value); // DateTimeType
1208          return value;
1209        case -896505829: // source
1210          this.source = TypeConvertor.castToReference(value); // Reference
1211          return value;
1212        case -391079516: // orderedBy
1213          this.orderedBy = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1214          return value;
1215        case 3387378: // note
1216          this.getNote().add(TypeConvertor.castToAnnotation(value)); // Annotation
1217          return value;
1218        case 96667762: // entry
1219          this.getEntry().add((ListResourceEntryComponent) value); // ListResourceEntryComponent
1220          return value;
1221        case 1140135409: // emptyReason
1222          this.emptyReason = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1223          return value;
1224        default: return super.setProperty(hash, name, value);
1225        }
1226
1227      }
1228
1229      @Override
1230      public Base setProperty(String name, Base value) throws FHIRException {
1231        if (name.equals("identifier")) {
1232          this.getIdentifier().add(TypeConvertor.castToIdentifier(value));
1233        } else if (name.equals("status")) {
1234          value = new ListStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
1235          this.status = (Enumeration) value; // Enumeration<ListStatus>
1236        } else if (name.equals("mode")) {
1237          value = new ListModeEnumFactory().fromType(TypeConvertor.castToCode(value));
1238          this.mode = (Enumeration) value; // Enumeration<ListMode>
1239        } else if (name.equals("title")) {
1240          this.title = TypeConvertor.castToString(value); // StringType
1241        } else if (name.equals("code")) {
1242          this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1243        } else if (name.equals("subject")) {
1244          this.subject = TypeConvertor.castToReference(value); // Reference
1245        } else if (name.equals("encounter")) {
1246          this.encounter = TypeConvertor.castToReference(value); // Reference
1247        } else if (name.equals("date")) {
1248          this.date = TypeConvertor.castToDateTime(value); // DateTimeType
1249        } else if (name.equals("source")) {
1250          this.source = TypeConvertor.castToReference(value); // Reference
1251        } else if (name.equals("orderedBy")) {
1252          this.orderedBy = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1253        } else if (name.equals("note")) {
1254          this.getNote().add(TypeConvertor.castToAnnotation(value));
1255        } else if (name.equals("entry")) {
1256          this.getEntry().add((ListResourceEntryComponent) value);
1257        } else if (name.equals("emptyReason")) {
1258          this.emptyReason = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1259        } else
1260          return super.setProperty(name, value);
1261        return value;
1262      }
1263
1264      @Override
1265      public Base makeProperty(int hash, String name) throws FHIRException {
1266        switch (hash) {
1267        case -1618432855:  return addIdentifier(); 
1268        case -892481550:  return getStatusElement();
1269        case 3357091:  return getModeElement();
1270        case 110371416:  return getTitleElement();
1271        case 3059181:  return getCode();
1272        case -1867885268:  return getSubject();
1273        case 1524132147:  return getEncounter();
1274        case 3076014:  return getDateElement();
1275        case -896505829:  return getSource();
1276        case -391079516:  return getOrderedBy();
1277        case 3387378:  return addNote(); 
1278        case 96667762:  return addEntry(); 
1279        case 1140135409:  return getEmptyReason();
1280        default: return super.makeProperty(hash, name);
1281        }
1282
1283      }
1284
1285      @Override
1286      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
1287        switch (hash) {
1288        case -1618432855: /*identifier*/ return new String[] {"Identifier"};
1289        case -892481550: /*status*/ return new String[] {"code"};
1290        case 3357091: /*mode*/ return new String[] {"code"};
1291        case 110371416: /*title*/ return new String[] {"string"};
1292        case 3059181: /*code*/ return new String[] {"CodeableConcept"};
1293        case -1867885268: /*subject*/ return new String[] {"Reference"};
1294        case 1524132147: /*encounter*/ return new String[] {"Reference"};
1295        case 3076014: /*date*/ return new String[] {"dateTime"};
1296        case -896505829: /*source*/ return new String[] {"Reference"};
1297        case -391079516: /*orderedBy*/ return new String[] {"CodeableConcept"};
1298        case 3387378: /*note*/ return new String[] {"Annotation"};
1299        case 96667762: /*entry*/ return new String[] {};
1300        case 1140135409: /*emptyReason*/ return new String[] {"CodeableConcept"};
1301        default: return super.getTypesForProperty(hash, name);
1302        }
1303
1304      }
1305
1306      @Override
1307      public Base addChild(String name) throws FHIRException {
1308        if (name.equals("identifier")) {
1309          return addIdentifier();
1310        }
1311        else if (name.equals("status")) {
1312          throw new FHIRException("Cannot call addChild on a primitive type List.status");
1313        }
1314        else if (name.equals("mode")) {
1315          throw new FHIRException("Cannot call addChild on a primitive type List.mode");
1316        }
1317        else if (name.equals("title")) {
1318          throw new FHIRException("Cannot call addChild on a primitive type List.title");
1319        }
1320        else if (name.equals("code")) {
1321          this.code = new CodeableConcept();
1322          return this.code;
1323        }
1324        else if (name.equals("subject")) {
1325          this.subject = new Reference();
1326          return this.subject;
1327        }
1328        else if (name.equals("encounter")) {
1329          this.encounter = new Reference();
1330          return this.encounter;
1331        }
1332        else if (name.equals("date")) {
1333          throw new FHIRException("Cannot call addChild on a primitive type List.date");
1334        }
1335        else if (name.equals("source")) {
1336          this.source = new Reference();
1337          return this.source;
1338        }
1339        else if (name.equals("orderedBy")) {
1340          this.orderedBy = new CodeableConcept();
1341          return this.orderedBy;
1342        }
1343        else if (name.equals("note")) {
1344          return addNote();
1345        }
1346        else if (name.equals("entry")) {
1347          return addEntry();
1348        }
1349        else if (name.equals("emptyReason")) {
1350          this.emptyReason = new CodeableConcept();
1351          return this.emptyReason;
1352        }
1353        else
1354          return super.addChild(name);
1355      }
1356
1357  public String fhirType() {
1358    return "List";
1359
1360  }
1361
1362      public ListResource copy() {
1363        ListResource dst = new ListResource();
1364        copyValues(dst);
1365        return dst;
1366      }
1367
1368      public void copyValues(ListResource dst) {
1369        super.copyValues(dst);
1370        if (identifier != null) {
1371          dst.identifier = new ArrayList<Identifier>();
1372          for (Identifier i : identifier)
1373            dst.identifier.add(i.copy());
1374        };
1375        dst.status = status == null ? null : status.copy();
1376        dst.mode = mode == null ? null : mode.copy();
1377        dst.title = title == null ? null : title.copy();
1378        dst.code = code == null ? null : code.copy();
1379        dst.subject = subject == null ? null : subject.copy();
1380        dst.encounter = encounter == null ? null : encounter.copy();
1381        dst.date = date == null ? null : date.copy();
1382        dst.source = source == null ? null : source.copy();
1383        dst.orderedBy = orderedBy == null ? null : orderedBy.copy();
1384        if (note != null) {
1385          dst.note = new ArrayList<Annotation>();
1386          for (Annotation i : note)
1387            dst.note.add(i.copy());
1388        };
1389        if (entry != null) {
1390          dst.entry = new ArrayList<ListResourceEntryComponent>();
1391          for (ListResourceEntryComponent i : entry)
1392            dst.entry.add(i.copy());
1393        };
1394        dst.emptyReason = emptyReason == null ? null : emptyReason.copy();
1395      }
1396
1397      protected ListResource typedCopy() {
1398        return copy();
1399      }
1400
1401      @Override
1402      public boolean equalsDeep(Base other_) {
1403        if (!super.equalsDeep(other_))
1404          return false;
1405        if (!(other_ instanceof ListResource))
1406          return false;
1407        ListResource o = (ListResource) other_;
1408        return compareDeep(identifier, o.identifier, true) && compareDeep(status, o.status, true) && compareDeep(mode, o.mode, true)
1409           && compareDeep(title, o.title, true) && compareDeep(code, o.code, true) && compareDeep(subject, o.subject, true)
1410           && compareDeep(encounter, o.encounter, true) && compareDeep(date, o.date, true) && compareDeep(source, o.source, true)
1411           && compareDeep(orderedBy, o.orderedBy, true) && compareDeep(note, o.note, true) && compareDeep(entry, o.entry, true)
1412           && compareDeep(emptyReason, o.emptyReason, true);
1413      }
1414
1415      @Override
1416      public boolean equalsShallow(Base other_) {
1417        if (!super.equalsShallow(other_))
1418          return false;
1419        if (!(other_ instanceof ListResource))
1420          return false;
1421        ListResource o = (ListResource) other_;
1422        return compareValues(status, o.status, true) && compareValues(mode, o.mode, true) && compareValues(title, o.title, true)
1423           && compareValues(date, o.date, true);
1424      }
1425
1426      public boolean isEmpty() {
1427        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, status, mode
1428          , title, code, subject, encounter, date, source, orderedBy, note, entry, emptyReason
1429          );
1430      }
1431
1432  @Override
1433  public ResourceType getResourceType() {
1434    return ResourceType.List;
1435   }
1436
1437 /**
1438   * Search parameter: <b>empty-reason</b>
1439   * <p>
1440   * Description: <b>Why list is empty</b><br>
1441   * Type: <b>token</b><br>
1442   * Path: <b>List.emptyReason</b><br>
1443   * </p>
1444   */
1445  @SearchParamDefinition(name="empty-reason", path="List.emptyReason", description="Why list is empty", type="token" )
1446  public static final String SP_EMPTY_REASON = "empty-reason";
1447 /**
1448   * <b>Fluent Client</b> search parameter constant for <b>empty-reason</b>
1449   * <p>
1450   * Description: <b>Why list is empty</b><br>
1451   * Type: <b>token</b><br>
1452   * Path: <b>List.emptyReason</b><br>
1453   * </p>
1454   */
1455  public static final ca.uhn.fhir.rest.gclient.TokenClientParam EMPTY_REASON = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_EMPTY_REASON);
1456
1457 /**
1458   * Search parameter: <b>item</b>
1459   * <p>
1460   * Description: <b>Actual entry</b><br>
1461   * Type: <b>reference</b><br>
1462   * Path: <b>List.entry.item</b><br>
1463   * </p>
1464   */
1465  @SearchParamDefinition(name="item", path="List.entry.item", description="Actual entry", type="reference", target={Account.class, ActivityDefinition.class, AdministrableProductDefinition.class, AdverseEvent.class, AllergyIntolerance.class, Appointment.class, AppointmentResponse.class, ArtifactAssessment.class, AuditEvent.class, Basic.class, Binary.class, BiologicallyDerivedProduct.class, BodyStructure.class, Bundle.class, CapabilityStatement.class, CapabilityStatement2.class, CarePlan.class, CareTeam.class, ChargeItem.class, ChargeItemDefinition.class, Citation.class, Claim.class, ClaimResponse.class, ClinicalImpression.class, ClinicalUseDefinition.class, CodeSystem.class, Communication.class, CommunicationRequest.class, CompartmentDefinition.class, Composition.class, ConceptMap.class, Condition.class, ConditionDefinition.class, Consent.class, Contract.class, Coverage.class, CoverageEligibilityRequest.class, CoverageEligibilityResponse.class, DetectedIssue.class, Device.class, DeviceDefinition.class, DeviceDispense.class, DeviceMetric.class, DeviceRequest.class, DeviceUsage.class, DiagnosticReport.class, DocumentManifest.class, DocumentReference.class, Encounter.class, Endpoint.class, EnrollmentRequest.class, EnrollmentResponse.class, EpisodeOfCare.class, EventDefinition.class, Evidence.class, EvidenceReport.class, EvidenceVariable.class, ExampleScenario.class, ExplanationOfBenefit.class, FamilyMemberHistory.class, Flag.class, FormularyItem.class, Goal.class, GraphDefinition.class, Group.class, GuidanceResponse.class, HealthcareService.class, ImagingSelection.class, ImagingStudy.class, Immunization.class, ImmunizationEvaluation.class, ImmunizationRecommendation.class, ImplementationGuide.class, Ingredient.class, InsurancePlan.class, InventoryReport.class, Invoice.class, Library.class, Linkage.class, ListResource.class, Location.class, ManufacturedItemDefinition.class, Measure.class, MeasureReport.class, Medication.class, MedicationAdministration.class, MedicationDispense.class, MedicationKnowledge.class, MedicationRequest.class, MedicationUsage.class, MedicinalProductDefinition.class, MessageDefinition.class, MessageHeader.class, MolecularSequence.class, NamingSystem.class, NutritionIntake.class, NutritionOrder.class, NutritionProduct.class, Observation.class, ObservationDefinition.class, OperationDefinition.class, OperationOutcome.class, Organization.class, OrganizationAffiliation.class, PackagedProductDefinition.class, Patient.class, PaymentNotice.class, PaymentReconciliation.class, Permission.class, Person.class, PlanDefinition.class, Practitioner.class, PractitionerRole.class, Procedure.class, Provenance.class, Questionnaire.class, QuestionnaireResponse.class, RegulatedAuthorization.class, RelatedPerson.class, RequestGroup.class, ResearchStudy.class, ResearchSubject.class, RiskAssessment.class, Schedule.class, SearchParameter.class, ServiceRequest.class, Slot.class, Specimen.class, SpecimenDefinition.class, StructureDefinition.class, StructureMap.class, Subscription.class, SubscriptionStatus.class, SubscriptionTopic.class, Substance.class, SubstanceDefinition.class, SubstanceNucleicAcid.class, SubstancePolymer.class, SubstanceProtein.class, SubstanceReferenceInformation.class, SubstanceSourceMaterial.class, SupplyDelivery.class, SupplyRequest.class, Task.class, TerminologyCapabilities.class, TestReport.class, TestScript.class, Transport.class, ValueSet.class, VerificationResult.class, VisionPrescription.class } )
1466  public static final String SP_ITEM = "item";
1467 /**
1468   * <b>Fluent Client</b> search parameter constant for <b>item</b>
1469   * <p>
1470   * Description: <b>Actual entry</b><br>
1471   * Type: <b>reference</b><br>
1472   * Path: <b>List.entry.item</b><br>
1473   * </p>
1474   */
1475  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ITEM = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ITEM);
1476
1477/**
1478   * Constant for fluent queries to be used to add include statements. Specifies
1479   * the path value of "<b>List:item</b>".
1480   */
1481  public static final ca.uhn.fhir.model.api.Include INCLUDE_ITEM = new ca.uhn.fhir.model.api.Include("List:item").toLocked();
1482
1483 /**
1484   * Search parameter: <b>notes</b>
1485   * <p>
1486   * Description: <b>The annotation  - text content (as markdown)</b><br>
1487   * Type: <b>string</b><br>
1488   * Path: <b>List.note.text</b><br>
1489   * </p>
1490   */
1491  @SearchParamDefinition(name="notes", path="List.note.text", description="The annotation  - text content (as markdown)", type="string" )
1492  public static final String SP_NOTES = "notes";
1493 /**
1494   * <b>Fluent Client</b> search parameter constant for <b>notes</b>
1495   * <p>
1496   * Description: <b>The annotation  - text content (as markdown)</b><br>
1497   * Type: <b>string</b><br>
1498   * Path: <b>List.note.text</b><br>
1499   * </p>
1500   */
1501  public static final ca.uhn.fhir.rest.gclient.StringClientParam NOTES = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_NOTES);
1502
1503 /**
1504   * Search parameter: <b>source</b>
1505   * <p>
1506   * Description: <b>Who and/or what defined the list contents (aka Author)</b><br>
1507   * Type: <b>reference</b><br>
1508   * Path: <b>List.source</b><br>
1509   * </p>
1510   */
1511  @SearchParamDefinition(name="source", path="List.source", description="Who and/or what defined the list contents (aka Author)", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Device"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Patient"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Practitioner") }, target={CareTeam.class, Device.class, Organization.class, Patient.class, Practitioner.class, PractitionerRole.class, RelatedPerson.class } )
1512  public static final String SP_SOURCE = "source";
1513 /**
1514   * <b>Fluent Client</b> search parameter constant for <b>source</b>
1515   * <p>
1516   * Description: <b>Who and/or what defined the list contents (aka Author)</b><br>
1517   * Type: <b>reference</b><br>
1518   * Path: <b>List.source</b><br>
1519   * </p>
1520   */
1521  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SOURCE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SOURCE);
1522
1523/**
1524   * Constant for fluent queries to be used to add include statements. Specifies
1525   * the path value of "<b>List:source</b>".
1526   */
1527  public static final ca.uhn.fhir.model.api.Include INCLUDE_SOURCE = new ca.uhn.fhir.model.api.Include("List:source").toLocked();
1528
1529 /**
1530   * Search parameter: <b>status</b>
1531   * <p>
1532   * Description: <b>current | retired | entered-in-error</b><br>
1533   * Type: <b>token</b><br>
1534   * Path: <b>List.status</b><br>
1535   * </p>
1536   */
1537  @SearchParamDefinition(name="status", path="List.status", description="current | retired | entered-in-error", type="token" )
1538  public static final String SP_STATUS = "status";
1539 /**
1540   * <b>Fluent Client</b> search parameter constant for <b>status</b>
1541   * <p>
1542   * Description: <b>current | retired | entered-in-error</b><br>
1543   * Type: <b>token</b><br>
1544   * Path: <b>List.status</b><br>
1545   * </p>
1546   */
1547  public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS);
1548
1549 /**
1550   * Search parameter: <b>subject</b>
1551   * <p>
1552   * Description: <b>If all resources have the same subject</b><br>
1553   * Type: <b>reference</b><br>
1554   * Path: <b>List.subject</b><br>
1555   * </p>
1556   */
1557  @SearchParamDefinition(name="subject", path="List.subject", description="If all resources have the same subject", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Device"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Patient") }, target={Device.class, Group.class, Location.class, Patient.class } )
1558  public static final String SP_SUBJECT = "subject";
1559 /**
1560   * <b>Fluent Client</b> search parameter constant for <b>subject</b>
1561   * <p>
1562   * Description: <b>If all resources have the same subject</b><br>
1563   * Type: <b>reference</b><br>
1564   * Path: <b>List.subject</b><br>
1565   * </p>
1566   */
1567  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SUBJECT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SUBJECT);
1568
1569/**
1570   * Constant for fluent queries to be used to add include statements. Specifies
1571   * the path value of "<b>List:subject</b>".
1572   */
1573  public static final ca.uhn.fhir.model.api.Include INCLUDE_SUBJECT = new ca.uhn.fhir.model.api.Include("List:subject").toLocked();
1574
1575 /**
1576   * Search parameter: <b>title</b>
1577   * <p>
1578   * Description: <b>Descriptive name for the list</b><br>
1579   * Type: <b>string</b><br>
1580   * Path: <b>List.title</b><br>
1581   * </p>
1582   */
1583  @SearchParamDefinition(name="title", path="List.title", description="Descriptive name for the list", type="string" )
1584  public static final String SP_TITLE = "title";
1585 /**
1586   * <b>Fluent Client</b> search parameter constant for <b>title</b>
1587   * <p>
1588   * Description: <b>Descriptive name for the list</b><br>
1589   * Type: <b>string</b><br>
1590   * Path: <b>List.title</b><br>
1591   * </p>
1592   */
1593  public static final ca.uhn.fhir.rest.gclient.StringClientParam TITLE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_TITLE);
1594
1595 /**
1596   * Search parameter: <b>code</b>
1597   * <p>
1598   * Description: <b>Multiple Resources: 
1599
1600* [AllergyIntolerance](allergyintolerance.html): Code that identifies the allergy or intolerance
1601* [Condition](condition.html): Code for the condition
1602* [DeviceRequest](devicerequest.html): Code for what is being requested/ordered
1603* [DiagnosticReport](diagnosticreport.html): The code for the report, as opposed to codes for the atomic results, which are the names on the observation resource referred to from the result
1604* [FamilyMemberHistory](familymemberhistory.html): A search by a condition code
1605* [List](list.html): What the purpose of this list is
1606* [Medication](medication.html): Returns medications for a specific code
1607* [MedicationAdministration](medicationadministration.html): Return administrations of this medication code
1608* [MedicationDispense](medicationdispense.html): Returns dispenses of this medicine code
1609* [MedicationRequest](medicationrequest.html): Return prescriptions of this medication code
1610* [MedicationUsage](medicationusage.html): Return statements of this medication code
1611* [Observation](observation.html): The code of the observation type
1612* [Procedure](procedure.html): A code to identify a  procedure
1613* [ServiceRequest](servicerequest.html): What is being requested/ordered
1614</b><br>
1615   * Type: <b>token</b><br>
1616   * Path: <b>AllergyIntolerance.code | AllergyIntolerance.reaction.substance | Condition.code | DeviceRequest.code.concept | DiagnosticReport.code | FamilyMemberHistory.condition.code | List.code | Medication.code | MedicationAdministration.medication.concept | MedicationDispense.medication.concept | MedicationRequest.medication.concept | MedicationUsage.medication.concept | Observation.code | Procedure.code | ServiceRequest.code</b><br>
1617   * </p>
1618   */
1619  @SearchParamDefinition(name="code", path="AllergyIntolerance.code | AllergyIntolerance.reaction.substance | Condition.code | DeviceRequest.code.concept | DiagnosticReport.code | FamilyMemberHistory.condition.code | List.code | Medication.code | MedicationAdministration.medication.concept | MedicationDispense.medication.concept | MedicationRequest.medication.concept | MedicationUsage.medication.concept | Observation.code | Procedure.code | ServiceRequest.code", description="Multiple Resources: \r\n\r\n* [AllergyIntolerance](allergyintolerance.html): Code that identifies the allergy or intolerance\r\n* [Condition](condition.html): Code for the condition\r\n* [DeviceRequest](devicerequest.html): Code for what is being requested/ordered\r\n* [DiagnosticReport](diagnosticreport.html): The code for the report, as opposed to codes for the atomic results, which are the names on the observation resource referred to from the result\r\n* [FamilyMemberHistory](familymemberhistory.html): A search by a condition code\r\n* [List](list.html): What the purpose of this list is\r\n* [Medication](medication.html): Returns medications for a specific code\r\n* [MedicationAdministration](medicationadministration.html): Return administrations of this medication code\r\n* [MedicationDispense](medicationdispense.html): Returns dispenses of this medicine code\r\n* [MedicationRequest](medicationrequest.html): Return prescriptions of this medication code\r\n* [MedicationUsage](medicationusage.html): Return statements of this medication code\r\n* [Observation](observation.html): The code of the observation type\r\n* [Procedure](procedure.html): A code to identify a  procedure\r\n* [ServiceRequest](servicerequest.html): What is being requested/ordered\r\n", type="token" )
1620  public static final String SP_CODE = "code";
1621 /**
1622   * <b>Fluent Client</b> search parameter constant for <b>code</b>
1623   * <p>
1624   * Description: <b>Multiple Resources: 
1625
1626* [AllergyIntolerance](allergyintolerance.html): Code that identifies the allergy or intolerance
1627* [Condition](condition.html): Code for the condition
1628* [DeviceRequest](devicerequest.html): Code for what is being requested/ordered
1629* [DiagnosticReport](diagnosticreport.html): The code for the report, as opposed to codes for the atomic results, which are the names on the observation resource referred to from the result
1630* [FamilyMemberHistory](familymemberhistory.html): A search by a condition code
1631* [List](list.html): What the purpose of this list is
1632* [Medication](medication.html): Returns medications for a specific code
1633* [MedicationAdministration](medicationadministration.html): Return administrations of this medication code
1634* [MedicationDispense](medicationdispense.html): Returns dispenses of this medicine code
1635* [MedicationRequest](medicationrequest.html): Return prescriptions of this medication code
1636* [MedicationUsage](medicationusage.html): Return statements of this medication code
1637* [Observation](observation.html): The code of the observation type
1638* [Procedure](procedure.html): A code to identify a  procedure
1639* [ServiceRequest](servicerequest.html): What is being requested/ordered
1640</b><br>
1641   * Type: <b>token</b><br>
1642   * Path: <b>AllergyIntolerance.code | AllergyIntolerance.reaction.substance | Condition.code | DeviceRequest.code.concept | DiagnosticReport.code | FamilyMemberHistory.condition.code | List.code | Medication.code | MedicationAdministration.medication.concept | MedicationDispense.medication.concept | MedicationRequest.medication.concept | MedicationUsage.medication.concept | Observation.code | Procedure.code | ServiceRequest.code</b><br>
1643   * </p>
1644   */
1645  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CODE);
1646
1647 /**
1648   * Search parameter: <b>date</b>
1649   * <p>
1650   * Description: <b>Multiple Resources: 
1651
1652* [AllergyIntolerance](allergyintolerance.html): Date first version of the resource instance was recorded
1653* [CarePlan](careplan.html): Time period plan covers
1654* [CareTeam](careteam.html): A date within the coverage time period.
1655* [ClinicalImpression](clinicalimpression.html): When the assessment was documented
1656* [Composition](composition.html): Composition editing time
1657* [Consent](consent.html): When consent was agreed to
1658* [DiagnosticReport](diagnosticreport.html): The clinically relevant time of the report
1659* [Encounter](encounter.html): A date within the actualPeriod the Encounter lasted
1660* [EpisodeOfCare](episodeofcare.html): The provided date search value falls within the episode of care's period
1661* [FamilyMemberHistory](familymemberhistory.html): When history was recorded or last updated
1662* [Flag](flag.html): Time period when flag is active
1663* [Immunization](immunization.html): Vaccination  (non)-Administration Date
1664* [List](list.html): When the list was prepared
1665* [Observation](observation.html): Obtained date/time. If the obtained element is a period, a date that falls in the period
1666* [Procedure](procedure.html): When the procedure occurred or is occurring
1667* [RiskAssessment](riskassessment.html): When was assessment made?
1668* [SupplyRequest](supplyrequest.html): When the request was made
1669</b><br>
1670   * Type: <b>date</b><br>
1671   * Path: <b>AllergyIntolerance.recordedDate | CarePlan.period | ClinicalImpression.date | Composition.date | Consent.dateTime | DiagnosticReport.effective | Encounter.actualPeriod | EpisodeOfCare.period | FamilyMemberHistory.date | Flag.period | (Immunization.occurrence as dateTime) | List.date | Observation.effective | Procedure.occurrence | (RiskAssessment.occurrence as dateTime) | SupplyRequest.authoredOn</b><br>
1672   * </p>
1673   */
1674  @SearchParamDefinition(name="date", path="AllergyIntolerance.recordedDate | CarePlan.period | ClinicalImpression.date | Composition.date | Consent.dateTime | DiagnosticReport.effective | Encounter.actualPeriod | EpisodeOfCare.period | FamilyMemberHistory.date | Flag.period | (Immunization.occurrence as dateTime) | List.date | Observation.effective | Procedure.occurrence | (RiskAssessment.occurrence as dateTime) | SupplyRequest.authoredOn", description="Multiple Resources: \r\n\r\n* [AllergyIntolerance](allergyintolerance.html): Date first version of the resource instance 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* [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* [List](list.html): When the list was prepared\r\n* [Observation](observation.html): Obtained date/time. If the obtained element is a period, a date that falls in the period\r\n* [Procedure](procedure.html): When the procedure occurred or is occurring\r\n* [RiskAssessment](riskassessment.html): When was assessment made?\r\n* [SupplyRequest](supplyrequest.html): When the request was made\r\n", type="date" )
1675  public static final String SP_DATE = "date";
1676 /**
1677   * <b>Fluent Client</b> search parameter constant for <b>date</b>
1678   * <p>
1679   * Description: <b>Multiple Resources: 
1680
1681* [AllergyIntolerance](allergyintolerance.html): Date first version of the resource instance was recorded
1682* [CarePlan](careplan.html): Time period plan covers
1683* [CareTeam](careteam.html): A date within the coverage time period.
1684* [ClinicalImpression](clinicalimpression.html): When the assessment was documented
1685* [Composition](composition.html): Composition editing time
1686* [Consent](consent.html): When consent was agreed to
1687* [DiagnosticReport](diagnosticreport.html): The clinically relevant time of the report
1688* [Encounter](encounter.html): A date within the actualPeriod the Encounter lasted
1689* [EpisodeOfCare](episodeofcare.html): The provided date search value falls within the episode of care's period
1690* [FamilyMemberHistory](familymemberhistory.html): When history was recorded or last updated
1691* [Flag](flag.html): Time period when flag is active
1692* [Immunization](immunization.html): Vaccination  (non)-Administration Date
1693* [List](list.html): When the list was prepared
1694* [Observation](observation.html): Obtained date/time. If the obtained element is a period, a date that falls in the period
1695* [Procedure](procedure.html): When the procedure occurred or is occurring
1696* [RiskAssessment](riskassessment.html): When was assessment made?
1697* [SupplyRequest](supplyrequest.html): When the request was made
1698</b><br>
1699   * Type: <b>date</b><br>
1700   * Path: <b>AllergyIntolerance.recordedDate | CarePlan.period | ClinicalImpression.date | Composition.date | Consent.dateTime | DiagnosticReport.effective | Encounter.actualPeriod | EpisodeOfCare.period | FamilyMemberHistory.date | Flag.period | (Immunization.occurrence as dateTime) | List.date | Observation.effective | Procedure.occurrence | (RiskAssessment.occurrence as dateTime) | SupplyRequest.authoredOn</b><br>
1701   * </p>
1702   */
1703  public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE);
1704
1705 /**
1706   * Search parameter: <b>encounter</b>
1707   * <p>
1708   * Description: <b>Multiple Resources: 
1709
1710* [Composition](composition.html): Context of the Composition
1711* [DeviceRequest](devicerequest.html): Encounter during which request was created
1712* [DiagnosticReport](diagnosticreport.html): The Encounter when the order was made
1713* [Flag](flag.html): Alert relevant during encounter
1714* [List](list.html): Context in which list created
1715* [NutritionOrder](nutritionorder.html): Return nutrition orders with this encounter identifier
1716* [Observation](observation.html): Encounter related to the observation
1717* [Procedure](procedure.html): The Encounter during which this Procedure was created
1718* [RiskAssessment](riskassessment.html): Where was assessment performed?
1719* [ServiceRequest](servicerequest.html): An encounter in which this request is made
1720* [VisionPrescription](visionprescription.html): Return prescriptions with this encounter identifier
1721</b><br>
1722   * Type: <b>reference</b><br>
1723   * Path: <b>Composition.encounter | DeviceRequest.encounter | DiagnosticReport.encounter | Flag.encounter | List.encounter | NutritionOrder.encounter | Observation.encounter | Procedure.encounter | RiskAssessment.encounter | ServiceRequest.encounter | VisionPrescription.encounter</b><br>
1724   * </p>
1725   */
1726  @SearchParamDefinition(name="encounter", path="Composition.encounter | DeviceRequest.encounter | DiagnosticReport.encounter | Flag.encounter | List.encounter | NutritionOrder.encounter | Observation.encounter | Procedure.encounter | RiskAssessment.encounter | ServiceRequest.encounter | VisionPrescription.encounter", description="Multiple Resources: \r\n\r\n* [Composition](composition.html): Context of the Composition\r\n* [DeviceRequest](devicerequest.html): Encounter during which request was created\r\n* [DiagnosticReport](diagnosticreport.html): The Encounter when the order was made\r\n* [Flag](flag.html): Alert relevant during encounter\r\n* [List](list.html): Context in which list created\r\n* [NutritionOrder](nutritionorder.html): Return nutrition orders with this encounter identifier\r\n* [Observation](observation.html): Encounter related to the observation\r\n* [Procedure](procedure.html): The Encounter during which this Procedure was created\r\n* [RiskAssessment](riskassessment.html): Where was assessment performed?\r\n* [ServiceRequest](servicerequest.html): An encounter in which this request is made\r\n* [VisionPrescription](visionprescription.html): Return prescriptions with this encounter identifier\r\n", type="reference", target={Encounter.class } )
1727  public static final String SP_ENCOUNTER = "encounter";
1728 /**
1729   * <b>Fluent Client</b> search parameter constant for <b>encounter</b>
1730   * <p>
1731   * Description: <b>Multiple Resources: 
1732
1733* [Composition](composition.html): Context of the Composition
1734* [DeviceRequest](devicerequest.html): Encounter during which request was created
1735* [DiagnosticReport](diagnosticreport.html): The Encounter when the order was made
1736* [Flag](flag.html): Alert relevant during encounter
1737* [List](list.html): Context in which list created
1738* [NutritionOrder](nutritionorder.html): Return nutrition orders with this encounter identifier
1739* [Observation](observation.html): Encounter related to the observation
1740* [Procedure](procedure.html): The Encounter during which this Procedure was created
1741* [RiskAssessment](riskassessment.html): Where was assessment performed?
1742* [ServiceRequest](servicerequest.html): An encounter in which this request is made
1743* [VisionPrescription](visionprescription.html): Return prescriptions with this encounter identifier
1744</b><br>
1745   * Type: <b>reference</b><br>
1746   * Path: <b>Composition.encounter | DeviceRequest.encounter | DiagnosticReport.encounter | Flag.encounter | List.encounter | NutritionOrder.encounter | Observation.encounter | Procedure.encounter | RiskAssessment.encounter | ServiceRequest.encounter | VisionPrescription.encounter</b><br>
1747   * </p>
1748   */
1749  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ENCOUNTER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ENCOUNTER);
1750
1751/**
1752   * Constant for fluent queries to be used to add include statements. Specifies
1753   * the path value of "<b>List:encounter</b>".
1754   */
1755  public static final ca.uhn.fhir.model.api.Include INCLUDE_ENCOUNTER = new ca.uhn.fhir.model.api.Include("List:encounter").toLocked();
1756
1757 /**
1758   * Search parameter: <b>identifier</b>
1759   * <p>
1760   * Description: <b>Multiple Resources: 
1761
1762* [AllergyIntolerance](allergyintolerance.html): External ids for this item
1763* [CarePlan](careplan.html): External Ids for this plan
1764* [CareTeam](careteam.html): External Ids for this team
1765* [Composition](composition.html): Version-independent identifier for the Composition
1766* [Condition](condition.html): A unique identifier of the condition record
1767* [Consent](consent.html): Identifier for this record (external references)
1768* [DetectedIssue](detectedissue.html): Unique id for the detected issue
1769* [DeviceRequest](devicerequest.html): Business identifier for request/order
1770* [DiagnosticReport](diagnosticreport.html): An identifier for the report
1771* [DocumentManifest](documentmanifest.html): Unique Identifier for the set of documents
1772* [DocumentReference](documentreference.html): Identifier of the attachment binary
1773* [Encounter](encounter.html): Identifier(s) by which this encounter is known
1774* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare
1775* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier
1776* [Goal](goal.html): External Ids for this goal
1777* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID
1778* [Immunization](immunization.html): Business identifier
1779* [List](list.html): Business identifier
1780* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier
1781* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier
1782* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier
1783* [MedicationUsage](medicationusage.html): Return statements with this external identifier
1784* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier
1785* [Observation](observation.html): The unique id for a particular observation
1786* [Procedure](procedure.html): A unique identifier for a procedure
1787* [RiskAssessment](riskassessment.html): Unique identifier for the assessment
1788* [ServiceRequest](servicerequest.html): Identifiers assigned to this order
1789* [SupplyDelivery](supplydelivery.html): External identifier
1790* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest
1791* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier
1792</b><br>
1793   * Type: <b>token</b><br>
1794   * Path: <b>AllergyIntolerance.identifier | CarePlan.identifier | CareTeam.identifier | Composition.identifier | Condition.identifier | Consent.identifier | DetectedIssue.identifier | DeviceRequest.identifier | DiagnosticReport.identifier | DocumentManifest.masterIdentifier | DocumentManifest.identifier | DocumentReference.identifier | Encounter.identifier | EpisodeOfCare.identifier | FamilyMemberHistory.identifier | Goal.identifier | ImagingStudy.identifier | Immunization.identifier | List.identifier | MedicationAdministration.identifier | MedicationDispense.identifier | MedicationRequest.identifier | MedicationUsage.identifier | NutritionOrder.identifier | Observation.identifier | Procedure.identifier | RiskAssessment.identifier | ServiceRequest.identifier | SupplyDelivery.identifier | SupplyRequest.identifier | VisionPrescription.identifier</b><br>
1795   * </p>
1796   */
1797  @SearchParamDefinition(name="identifier", path="AllergyIntolerance.identifier | CarePlan.identifier | CareTeam.identifier | Composition.identifier | Condition.identifier | Consent.identifier | DetectedIssue.identifier | DeviceRequest.identifier | DiagnosticReport.identifier | DocumentManifest.masterIdentifier | DocumentManifest.identifier | DocumentReference.identifier | Encounter.identifier | EpisodeOfCare.identifier | FamilyMemberHistory.identifier | Goal.identifier | ImagingStudy.identifier | Immunization.identifier | List.identifier | MedicationAdministration.identifier | MedicationDispense.identifier | MedicationRequest.identifier | MedicationUsage.identifier | NutritionOrder.identifier | Observation.identifier | Procedure.identifier | RiskAssessment.identifier | ServiceRequest.identifier | SupplyDelivery.identifier | SupplyRequest.identifier | VisionPrescription.identifier", description="Multiple Resources: \r\n\r\n* [AllergyIntolerance](allergyintolerance.html): External ids for this item\r\n* [CarePlan](careplan.html): External Ids for this plan\r\n* [CareTeam](careteam.html): External Ids for this team\r\n* [Composition](composition.html): Version-independent identifier for the Composition\r\n* [Condition](condition.html): A unique identifier of the condition record\r\n* [Consent](consent.html): Identifier for this record (external references)\r\n* [DetectedIssue](detectedissue.html): Unique id for the detected issue\r\n* [DeviceRequest](devicerequest.html): Business identifier for request/order\r\n* [DiagnosticReport](diagnosticreport.html): An identifier for the report\r\n* [DocumentManifest](documentmanifest.html): Unique Identifier for the set of documents\r\n* [DocumentReference](documentreference.html): Identifier of the attachment binary\r\n* [Encounter](encounter.html): Identifier(s) by which this encounter is known\r\n* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare\r\n* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier\r\n* [Goal](goal.html): External Ids for this goal\r\n* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID\r\n* [Immunization](immunization.html): Business identifier\r\n* [List](list.html): Business identifier\r\n* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier\r\n* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier\r\n* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier\r\n* [MedicationUsage](medicationusage.html): Return statements with this external identifier\r\n* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier\r\n* [Observation](observation.html): The unique id for a particular observation\r\n* [Procedure](procedure.html): A unique identifier for a procedure\r\n* [RiskAssessment](riskassessment.html): Unique identifier for the assessment\r\n* [ServiceRequest](servicerequest.html): Identifiers assigned to this order\r\n* [SupplyDelivery](supplydelivery.html): External identifier\r\n* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest\r\n* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier\r\n", type="token" )
1798  public static final String SP_IDENTIFIER = "identifier";
1799 /**
1800   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
1801   * <p>
1802   * Description: <b>Multiple Resources: 
1803
1804* [AllergyIntolerance](allergyintolerance.html): External ids for this item
1805* [CarePlan](careplan.html): External Ids for this plan
1806* [CareTeam](careteam.html): External Ids for this team
1807* [Composition](composition.html): Version-independent identifier for the Composition
1808* [Condition](condition.html): A unique identifier of the condition record
1809* [Consent](consent.html): Identifier for this record (external references)
1810* [DetectedIssue](detectedissue.html): Unique id for the detected issue
1811* [DeviceRequest](devicerequest.html): Business identifier for request/order
1812* [DiagnosticReport](diagnosticreport.html): An identifier for the report
1813* [DocumentManifest](documentmanifest.html): Unique Identifier for the set of documents
1814* [DocumentReference](documentreference.html): Identifier of the attachment binary
1815* [Encounter](encounter.html): Identifier(s) by which this encounter is known
1816* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare
1817* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier
1818* [Goal](goal.html): External Ids for this goal
1819* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID
1820* [Immunization](immunization.html): Business identifier
1821* [List](list.html): Business identifier
1822* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier
1823* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier
1824* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier
1825* [MedicationUsage](medicationusage.html): Return statements with this external identifier
1826* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier
1827* [Observation](observation.html): The unique id for a particular observation
1828* [Procedure](procedure.html): A unique identifier for a procedure
1829* [RiskAssessment](riskassessment.html): Unique identifier for the assessment
1830* [ServiceRequest](servicerequest.html): Identifiers assigned to this order
1831* [SupplyDelivery](supplydelivery.html): External identifier
1832* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest
1833* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier
1834</b><br>
1835   * Type: <b>token</b><br>
1836   * Path: <b>AllergyIntolerance.identifier | CarePlan.identifier | CareTeam.identifier | Composition.identifier | Condition.identifier | Consent.identifier | DetectedIssue.identifier | DeviceRequest.identifier | DiagnosticReport.identifier | DocumentManifest.masterIdentifier | DocumentManifest.identifier | DocumentReference.identifier | Encounter.identifier | EpisodeOfCare.identifier | FamilyMemberHistory.identifier | Goal.identifier | ImagingStudy.identifier | Immunization.identifier | List.identifier | MedicationAdministration.identifier | MedicationDispense.identifier | MedicationRequest.identifier | MedicationUsage.identifier | NutritionOrder.identifier | Observation.identifier | Procedure.identifier | RiskAssessment.identifier | ServiceRequest.identifier | SupplyDelivery.identifier | SupplyRequest.identifier | VisionPrescription.identifier</b><br>
1837   * </p>
1838   */
1839  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
1840
1841 /**
1842   * Search parameter: <b>patient</b>
1843   * <p>
1844   * Description: <b>Multiple Resources: 
1845
1846* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for
1847* [CarePlan](careplan.html): Who the care plan is for
1848* [CareTeam](careteam.html): Who care team is for
1849* [ClinicalImpression](clinicalimpression.html): Patient assessed
1850* [Composition](composition.html): Who and/or what the composition is about
1851* [Condition](condition.html): Who has the condition?
1852* [Consent](consent.html): Who the consent applies to
1853* [DetectedIssue](detectedissue.html): Associated patient
1854* [DeviceRequest](devicerequest.html): Individual the service is ordered for
1855* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device
1856* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient
1857* [DocumentManifest](documentmanifest.html): The subject of the set of documents
1858* [DocumentReference](documentreference.html): Who/what is the subject of the document
1859* [Encounter](encounter.html): The patient present at the encounter
1860* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care
1861* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for
1862* [Flag](flag.html): The identity of a subject to list flags for
1863* [Goal](goal.html): Who this goal is intended for
1864* [ImagingStudy](imagingstudy.html): Who the study is about
1865* [Immunization](immunization.html): The patient for the vaccination record
1866* [List](list.html): If all resources have the same subject
1867* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations  for
1868* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses  for
1869* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient
1870* [MedicationUsage](medicationusage.html): Returns statements for a specific patient.
1871* [NutritionOrder](nutritionorder.html): The identity of the person who requires the diet, formula or nutritional supplement
1872* [Observation](observation.html): The subject that the observation is about (if patient)
1873* [Procedure](procedure.html): Search by subject - a patient
1874* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?
1875* [ServiceRequest](servicerequest.html): Search by subject - a patient
1876* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied
1877* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for
1878</b><br>
1879   * Type: <b>reference</b><br>
1880   * Path: <b>AllergyIntolerance.patient | CarePlan.subject.where(resolve() is Patient) | CareTeam.subject.where(resolve() is Patient) | ClinicalImpression.subject.where(resolve() is Patient) | Composition.subject.where(resolve() is Patient) | Condition.subject.where(resolve() is Patient) | Consent.subject.where(resolve() is Patient) | DetectedIssue.patient | DeviceRequest.subject.where(resolve() is Patient) | DeviceUsage.patient | DiagnosticReport.subject.where(resolve() is Patient) | DocumentManifest.subject.where(resolve() is Patient) | DocumentReference.subject.where(resolve() is Patient) | Encounter.subject.where(resolve() is Patient) | EpisodeOfCare.patient | FamilyMemberHistory.patient | Flag.subject.where(resolve() is Patient) | Goal.subject.where(resolve() is Patient) | ImagingStudy.subject.where(resolve() is Patient) | Immunization.patient | List.subject.where(resolve() is Patient) | MedicationAdministration.subject.where(resolve() is Patient) | MedicationDispense.subject.where(resolve() is Patient) | MedicationRequest.subject.where(resolve() is Patient) | MedicationUsage.subject.where(resolve() is Patient) | NutritionOrder.patient | Observation.subject.where(resolve() is Patient) | Procedure.subject.where(resolve() is Patient) | RiskAssessment.subject.where(resolve() is Patient) | ServiceRequest.subject.where(resolve() is Patient) | SupplyDelivery.patient | VisionPrescription.patient</b><br>
1881   * </p>
1882   */
1883  @SearchParamDefinition(name="patient", path="AllergyIntolerance.patient | CarePlan.subject.where(resolve() is Patient) | CareTeam.subject.where(resolve() is Patient) | ClinicalImpression.subject.where(resolve() is Patient) | Composition.subject.where(resolve() is Patient) | Condition.subject.where(resolve() is Patient) | Consent.subject.where(resolve() is Patient) | DetectedIssue.patient | DeviceRequest.subject.where(resolve() is Patient) | DeviceUsage.patient | DiagnosticReport.subject.where(resolve() is Patient) | DocumentManifest.subject.where(resolve() is Patient) | DocumentReference.subject.where(resolve() is Patient) | Encounter.subject.where(resolve() is Patient) | EpisodeOfCare.patient | FamilyMemberHistory.patient | Flag.subject.where(resolve() is Patient) | Goal.subject.where(resolve() is Patient) | ImagingStudy.subject.where(resolve() is Patient) | Immunization.patient | List.subject.where(resolve() is Patient) | MedicationAdministration.subject.where(resolve() is Patient) | MedicationDispense.subject.where(resolve() is Patient) | MedicationRequest.subject.where(resolve() is Patient) | MedicationUsage.subject.where(resolve() is Patient) | NutritionOrder.patient | Observation.subject.where(resolve() is Patient) | Procedure.subject.where(resolve() is Patient) | RiskAssessment.subject.where(resolve() is Patient) | ServiceRequest.subject.where(resolve() is Patient) | SupplyDelivery.patient | VisionPrescription.patient", description="Multiple Resources: \r\n\r\n* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for\r\n* [CarePlan](careplan.html): Who the care plan is for\r\n* [CareTeam](careteam.html): Who care team is for\r\n* [ClinicalImpression](clinicalimpression.html): Patient assessed\r\n* [Composition](composition.html): Who and/or what the composition is about\r\n* [Condition](condition.html): Who has the condition?\r\n* [Consent](consent.html): Who the consent applies to\r\n* [DetectedIssue](detectedissue.html): Associated patient\r\n* [DeviceRequest](devicerequest.html): Individual the service is ordered for\r\n* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device\r\n* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient\r\n* [DocumentManifest](documentmanifest.html): The subject of the set of documents\r\n* [DocumentReference](documentreference.html): Who/what is the subject of the document\r\n* [Encounter](encounter.html): The patient present at the encounter\r\n* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care\r\n* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for\r\n* [Flag](flag.html): The identity of a subject to list flags for\r\n* [Goal](goal.html): Who this goal is intended for\r\n* [ImagingStudy](imagingstudy.html): Who the study is about\r\n* [Immunization](immunization.html): The patient for the vaccination record\r\n* [List](list.html): If all resources have the same subject\r\n* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations  for\r\n* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses  for\r\n* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient\r\n* [MedicationUsage](medicationusage.html): Returns statements for a specific patient.\r\n* [NutritionOrder](nutritionorder.html): The identity of the person who requires the diet, formula or nutritional supplement\r\n* [Observation](observation.html): The subject that the observation is about (if patient)\r\n* [Procedure](procedure.html): Search by subject - a patient\r\n* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?\r\n* [ServiceRequest](servicerequest.html): Search by subject - a patient\r\n* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied\r\n* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for\r\n", type="reference", target={Patient.class } )
1884  public static final String SP_PATIENT = "patient";
1885 /**
1886   * <b>Fluent Client</b> search parameter constant for <b>patient</b>
1887   * <p>
1888   * Description: <b>Multiple Resources: 
1889
1890* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for
1891* [CarePlan](careplan.html): Who the care plan is for
1892* [CareTeam](careteam.html): Who care team is for
1893* [ClinicalImpression](clinicalimpression.html): Patient assessed
1894* [Composition](composition.html): Who and/or what the composition is about
1895* [Condition](condition.html): Who has the condition?
1896* [Consent](consent.html): Who the consent applies to
1897* [DetectedIssue](detectedissue.html): Associated patient
1898* [DeviceRequest](devicerequest.html): Individual the service is ordered for
1899* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device
1900* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient
1901* [DocumentManifest](documentmanifest.html): The subject of the set of documents
1902* [DocumentReference](documentreference.html): Who/what is the subject of the document
1903* [Encounter](encounter.html): The patient present at the encounter
1904* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care
1905* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for
1906* [Flag](flag.html): The identity of a subject to list flags for
1907* [Goal](goal.html): Who this goal is intended for
1908* [ImagingStudy](imagingstudy.html): Who the study is about
1909* [Immunization](immunization.html): The patient for the vaccination record
1910* [List](list.html): If all resources have the same subject
1911* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations  for
1912* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses  for
1913* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient
1914* [MedicationUsage](medicationusage.html): Returns statements for a specific patient.
1915* [NutritionOrder](nutritionorder.html): The identity of the person who requires the diet, formula or nutritional supplement
1916* [Observation](observation.html): The subject that the observation is about (if patient)
1917* [Procedure](procedure.html): Search by subject - a patient
1918* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?
1919* [ServiceRequest](servicerequest.html): Search by subject - a patient
1920* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied
1921* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for
1922</b><br>
1923   * Type: <b>reference</b><br>
1924   * Path: <b>AllergyIntolerance.patient | CarePlan.subject.where(resolve() is Patient) | CareTeam.subject.where(resolve() is Patient) | ClinicalImpression.subject.where(resolve() is Patient) | Composition.subject.where(resolve() is Patient) | Condition.subject.where(resolve() is Patient) | Consent.subject.where(resolve() is Patient) | DetectedIssue.patient | DeviceRequest.subject.where(resolve() is Patient) | DeviceUsage.patient | DiagnosticReport.subject.where(resolve() is Patient) | DocumentManifest.subject.where(resolve() is Patient) | DocumentReference.subject.where(resolve() is Patient) | Encounter.subject.where(resolve() is Patient) | EpisodeOfCare.patient | FamilyMemberHistory.patient | Flag.subject.where(resolve() is Patient) | Goal.subject.where(resolve() is Patient) | ImagingStudy.subject.where(resolve() is Patient) | Immunization.patient | List.subject.where(resolve() is Patient) | MedicationAdministration.subject.where(resolve() is Patient) | MedicationDispense.subject.where(resolve() is Patient) | MedicationRequest.subject.where(resolve() is Patient) | MedicationUsage.subject.where(resolve() is Patient) | NutritionOrder.patient | Observation.subject.where(resolve() is Patient) | Procedure.subject.where(resolve() is Patient) | RiskAssessment.subject.where(resolve() is Patient) | ServiceRequest.subject.where(resolve() is Patient) | SupplyDelivery.patient | VisionPrescription.patient</b><br>
1925   * </p>
1926   */
1927  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PATIENT);
1928
1929/**
1930   * Constant for fluent queries to be used to add include statements. Specifies
1931   * the path value of "<b>List:patient</b>".
1932   */
1933  public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("List:patient").toLocked();
1934
1935
1936}
1937