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