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 * Prospective warnings of potential issues when providing care to the patient.
052 */
053@ResourceDef(name="Flag", profile="http://hl7.org/fhir/StructureDefinition/Flag")
054public class Flag extends DomainResource {
055
056    public enum FlagStatus {
057        /**
058         * A current flag that should be displayed to a user. A system may use the category to determine which user roles should view the flag.
059         */
060        ACTIVE, 
061        /**
062         * The flag no longer needs to be displayed.
063         */
064        INACTIVE, 
065        /**
066         * The flag was added in error and should no longer be displayed.
067         */
068        ENTEREDINERROR, 
069        /**
070         * added to help the parsers with the generic types
071         */
072        NULL;
073        public static FlagStatus fromCode(String codeString) throws FHIRException {
074            if (codeString == null || "".equals(codeString))
075                return null;
076        if ("active".equals(codeString))
077          return ACTIVE;
078        if ("inactive".equals(codeString))
079          return INACTIVE;
080        if ("entered-in-error".equals(codeString))
081          return ENTEREDINERROR;
082        if (Configuration.isAcceptInvalidEnums())
083          return null;
084        else
085          throw new FHIRException("Unknown FlagStatus code '"+codeString+"'");
086        }
087        public String toCode() {
088          switch (this) {
089            case ACTIVE: return "active";
090            case INACTIVE: return "inactive";
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 ACTIVE: return "http://hl7.org/fhir/flag-status";
099            case INACTIVE: return "http://hl7.org/fhir/flag-status";
100            case ENTEREDINERROR: return "http://hl7.org/fhir/flag-status";
101            case NULL: return null;
102            default: return "?";
103          }
104        }
105        public String getDefinition() {
106          switch (this) {
107            case ACTIVE: return "A current flag that should be displayed to a user. A system may use the category to determine which user roles should view the flag.";
108            case INACTIVE: return "The flag no longer needs to be displayed.";
109            case ENTEREDINERROR: return "The flag was added in error and should no longer be displayed.";
110            case NULL: return null;
111            default: return "?";
112          }
113        }
114        public String getDisplay() {
115          switch (this) {
116            case ACTIVE: return "Active";
117            case INACTIVE: return "Inactive";
118            case ENTEREDINERROR: return "Entered in Error";
119            case NULL: return null;
120            default: return "?";
121          }
122        }
123    }
124
125  public static class FlagStatusEnumFactory implements EnumFactory<FlagStatus> {
126    public FlagStatus fromCode(String codeString) throws IllegalArgumentException {
127      if (codeString == null || "".equals(codeString))
128            if (codeString == null || "".equals(codeString))
129                return null;
130        if ("active".equals(codeString))
131          return FlagStatus.ACTIVE;
132        if ("inactive".equals(codeString))
133          return FlagStatus.INACTIVE;
134        if ("entered-in-error".equals(codeString))
135          return FlagStatus.ENTEREDINERROR;
136        throw new IllegalArgumentException("Unknown FlagStatus code '"+codeString+"'");
137        }
138        public Enumeration<FlagStatus> fromType(Base code) throws FHIRException {
139          if (code == null)
140            return null;
141          if (code.isEmpty())
142            return new Enumeration<FlagStatus>(this);
143          String codeString = ((PrimitiveType) code).asStringValue();
144          if (codeString == null || "".equals(codeString))
145            return null;
146        if ("active".equals(codeString))
147          return new Enumeration<FlagStatus>(this, FlagStatus.ACTIVE);
148        if ("inactive".equals(codeString))
149          return new Enumeration<FlagStatus>(this, FlagStatus.INACTIVE);
150        if ("entered-in-error".equals(codeString))
151          return new Enumeration<FlagStatus>(this, FlagStatus.ENTEREDINERROR);
152        throw new FHIRException("Unknown FlagStatus code '"+codeString+"'");
153        }
154    public String toCode(FlagStatus code) {
155      if (code == FlagStatus.ACTIVE)
156        return "active";
157      if (code == FlagStatus.INACTIVE)
158        return "inactive";
159      if (code == FlagStatus.ENTEREDINERROR)
160        return "entered-in-error";
161      return "?";
162      }
163    public String toSystem(FlagStatus code) {
164      return code.getSystem();
165      }
166    }
167
168    /**
169     * Business identifiers assigned to this flag by the performer or other systems which remain constant as the resource is updated and propagates from server to server.
170     */
171    @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
172    @Description(shortDefinition="Business identifier", formalDefinition="Business identifiers assigned to this flag by the performer or other systems which remain constant as the resource is updated and propagates from server to server." )
173    protected List<Identifier> identifier;
174
175    /**
176     * Supports basic workflow.
177     */
178    @Child(name = "status", type = {CodeType.class}, order=1, min=1, max=1, modifier=true, summary=true)
179    @Description(shortDefinition="active | inactive | entered-in-error", formalDefinition="Supports basic workflow." )
180    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/flag-status")
181    protected Enumeration<FlagStatus> status;
182
183    /**
184     * Allows a flag to be divided into different categories like clinical, administrative etc. Intended to be used as a means of filtering which flags are displayed to particular user or in a given context.
185     */
186    @Child(name = "category", type = {CodeableConcept.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
187    @Description(shortDefinition="Clinical, administrative, etc.", formalDefinition="Allows a flag to be divided into different categories like clinical, administrative etc. Intended to be used as a means of filtering which flags are displayed to particular user or in a given context." )
188    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/flag-category")
189    protected List<CodeableConcept> category;
190
191    /**
192     * The coded value or textual component of the flag to display to the user.
193     */
194    @Child(name = "code", type = {CodeableConcept.class}, order=3, min=1, max=1, modifier=false, summary=true)
195    @Description(shortDefinition="Coded or textual message to display to user", formalDefinition="The coded value or textual component of the flag to display to the user." )
196    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/flag-code")
197    protected CodeableConcept code;
198
199    /**
200     * The patient, location, group, organization, or practitioner etc. this is about record this flag is associated with.
201     */
202    @Child(name = "subject", type = {Patient.class, Location.class, Group.class, Organization.class, Practitioner.class, PractitionerRole.class, PlanDefinition.class, Medication.class, Procedure.class}, order=4, min=1, max=1, modifier=false, summary=true)
203    @Description(shortDefinition="Who/What is flag about?", formalDefinition="The patient, location, group, organization, or practitioner etc. this is about record this flag is associated with." )
204    protected Reference subject;
205
206    /**
207     * The period of time from the activation of the flag to inactivation of the flag. If the flag is active, the end of the period should be unspecified.
208     */
209    @Child(name = "period", type = {Period.class}, order=5, min=0, max=1, modifier=false, summary=true)
210    @Description(shortDefinition="Time period when flag is active", formalDefinition="The period of time from the activation of the flag to inactivation of the flag. If the flag is active, the end of the period should be unspecified." )
211    protected Period period;
212
213    /**
214     * This alert is only relevant during the encounter.
215     */
216    @Child(name = "encounter", type = {Encounter.class}, order=6, min=0, max=1, modifier=false, summary=true)
217    @Description(shortDefinition="Alert relevant during encounter", formalDefinition="This alert is only relevant during the encounter." )
218    protected Reference encounter;
219
220    /**
221     * The person, organization or device that created the flag.
222     */
223    @Child(name = "author", type = {Device.class, Organization.class, Patient.class, Practitioner.class, PractitionerRole.class}, order=7, min=0, max=1, modifier=false, summary=true)
224    @Description(shortDefinition="Flag creator", formalDefinition="The person, organization or device that created the flag." )
225    protected Reference author;
226
227    private static final long serialVersionUID = -901823137L;
228
229  /**
230   * Constructor
231   */
232    public Flag() {
233      super();
234    }
235
236  /**
237   * Constructor
238   */
239    public Flag(FlagStatus status, CodeableConcept code, Reference subject) {
240      super();
241      this.setStatus(status);
242      this.setCode(code);
243      this.setSubject(subject);
244    }
245
246    /**
247     * @return {@link #identifier} (Business identifiers assigned to this flag by the performer or other systems which remain constant as the resource is updated and propagates from server to server.)
248     */
249    public List<Identifier> getIdentifier() { 
250      if (this.identifier == null)
251        this.identifier = new ArrayList<Identifier>();
252      return this.identifier;
253    }
254
255    /**
256     * @return Returns a reference to <code>this</code> for easy method chaining
257     */
258    public Flag setIdentifier(List<Identifier> theIdentifier) { 
259      this.identifier = theIdentifier;
260      return this;
261    }
262
263    public boolean hasIdentifier() { 
264      if (this.identifier == null)
265        return false;
266      for (Identifier item : this.identifier)
267        if (!item.isEmpty())
268          return true;
269      return false;
270    }
271
272    public Identifier addIdentifier() { //3
273      Identifier t = new Identifier();
274      if (this.identifier == null)
275        this.identifier = new ArrayList<Identifier>();
276      this.identifier.add(t);
277      return t;
278    }
279
280    public Flag addIdentifier(Identifier t) { //3
281      if (t == null)
282        return this;
283      if (this.identifier == null)
284        this.identifier = new ArrayList<Identifier>();
285      this.identifier.add(t);
286      return this;
287    }
288
289    /**
290     * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3}
291     */
292    public Identifier getIdentifierFirstRep() { 
293      if (getIdentifier().isEmpty()) {
294        addIdentifier();
295      }
296      return getIdentifier().get(0);
297    }
298
299    /**
300     * @return {@link #status} (Supports basic workflow.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
301     */
302    public Enumeration<FlagStatus> getStatusElement() { 
303      if (this.status == null)
304        if (Configuration.errorOnAutoCreate())
305          throw new Error("Attempt to auto-create Flag.status");
306        else if (Configuration.doAutoCreate())
307          this.status = new Enumeration<FlagStatus>(new FlagStatusEnumFactory()); // bb
308      return this.status;
309    }
310
311    public boolean hasStatusElement() { 
312      return this.status != null && !this.status.isEmpty();
313    }
314
315    public boolean hasStatus() { 
316      return this.status != null && !this.status.isEmpty();
317    }
318
319    /**
320     * @param value {@link #status} (Supports basic workflow.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
321     */
322    public Flag setStatusElement(Enumeration<FlagStatus> value) { 
323      this.status = value;
324      return this;
325    }
326
327    /**
328     * @return Supports basic workflow.
329     */
330    public FlagStatus getStatus() { 
331      return this.status == null ? null : this.status.getValue();
332    }
333
334    /**
335     * @param value Supports basic workflow.
336     */
337    public Flag setStatus(FlagStatus value) { 
338        if (this.status == null)
339          this.status = new Enumeration<FlagStatus>(new FlagStatusEnumFactory());
340        this.status.setValue(value);
341      return this;
342    }
343
344    /**
345     * @return {@link #category} (Allows a flag to be divided into different categories like clinical, administrative etc. Intended to be used as a means of filtering which flags are displayed to particular user or in a given context.)
346     */
347    public List<CodeableConcept> getCategory() { 
348      if (this.category == null)
349        this.category = new ArrayList<CodeableConcept>();
350      return this.category;
351    }
352
353    /**
354     * @return Returns a reference to <code>this</code> for easy method chaining
355     */
356    public Flag setCategory(List<CodeableConcept> theCategory) { 
357      this.category = theCategory;
358      return this;
359    }
360
361    public boolean hasCategory() { 
362      if (this.category == null)
363        return false;
364      for (CodeableConcept item : this.category)
365        if (!item.isEmpty())
366          return true;
367      return false;
368    }
369
370    public CodeableConcept addCategory() { //3
371      CodeableConcept t = new CodeableConcept();
372      if (this.category == null)
373        this.category = new ArrayList<CodeableConcept>();
374      this.category.add(t);
375      return t;
376    }
377
378    public Flag addCategory(CodeableConcept t) { //3
379      if (t == null)
380        return this;
381      if (this.category == null)
382        this.category = new ArrayList<CodeableConcept>();
383      this.category.add(t);
384      return this;
385    }
386
387    /**
388     * @return The first repetition of repeating field {@link #category}, creating it if it does not already exist {3}
389     */
390    public CodeableConcept getCategoryFirstRep() { 
391      if (getCategory().isEmpty()) {
392        addCategory();
393      }
394      return getCategory().get(0);
395    }
396
397    /**
398     * @return {@link #code} (The coded value or textual component of the flag to display to the user.)
399     */
400    public CodeableConcept getCode() { 
401      if (this.code == null)
402        if (Configuration.errorOnAutoCreate())
403          throw new Error("Attempt to auto-create Flag.code");
404        else if (Configuration.doAutoCreate())
405          this.code = new CodeableConcept(); // cc
406      return this.code;
407    }
408
409    public boolean hasCode() { 
410      return this.code != null && !this.code.isEmpty();
411    }
412
413    /**
414     * @param value {@link #code} (The coded value or textual component of the flag to display to the user.)
415     */
416    public Flag setCode(CodeableConcept value) { 
417      this.code = value;
418      return this;
419    }
420
421    /**
422     * @return {@link #subject} (The patient, location, group, organization, or practitioner etc. this is about record this flag is associated with.)
423     */
424    public Reference getSubject() { 
425      if (this.subject == null)
426        if (Configuration.errorOnAutoCreate())
427          throw new Error("Attempt to auto-create Flag.subject");
428        else if (Configuration.doAutoCreate())
429          this.subject = new Reference(); // cc
430      return this.subject;
431    }
432
433    public boolean hasSubject() { 
434      return this.subject != null && !this.subject.isEmpty();
435    }
436
437    /**
438     * @param value {@link #subject} (The patient, location, group, organization, or practitioner etc. this is about record this flag is associated with.)
439     */
440    public Flag setSubject(Reference value) { 
441      this.subject = value;
442      return this;
443    }
444
445    /**
446     * @return {@link #period} (The period of time from the activation of the flag to inactivation of the flag. If the flag is active, the end of the period should be unspecified.)
447     */
448    public Period getPeriod() { 
449      if (this.period == null)
450        if (Configuration.errorOnAutoCreate())
451          throw new Error("Attempt to auto-create Flag.period");
452        else if (Configuration.doAutoCreate())
453          this.period = new Period(); // cc
454      return this.period;
455    }
456
457    public boolean hasPeriod() { 
458      return this.period != null && !this.period.isEmpty();
459    }
460
461    /**
462     * @param value {@link #period} (The period of time from the activation of the flag to inactivation of the flag. If the flag is active, the end of the period should be unspecified.)
463     */
464    public Flag setPeriod(Period value) { 
465      this.period = value;
466      return this;
467    }
468
469    /**
470     * @return {@link #encounter} (This alert is only relevant during the encounter.)
471     */
472    public Reference getEncounter() { 
473      if (this.encounter == null)
474        if (Configuration.errorOnAutoCreate())
475          throw new Error("Attempt to auto-create Flag.encounter");
476        else if (Configuration.doAutoCreate())
477          this.encounter = new Reference(); // cc
478      return this.encounter;
479    }
480
481    public boolean hasEncounter() { 
482      return this.encounter != null && !this.encounter.isEmpty();
483    }
484
485    /**
486     * @param value {@link #encounter} (This alert is only relevant during the encounter.)
487     */
488    public Flag setEncounter(Reference value) { 
489      this.encounter = value;
490      return this;
491    }
492
493    /**
494     * @return {@link #author} (The person, organization or device that created the flag.)
495     */
496    public Reference getAuthor() { 
497      if (this.author == null)
498        if (Configuration.errorOnAutoCreate())
499          throw new Error("Attempt to auto-create Flag.author");
500        else if (Configuration.doAutoCreate())
501          this.author = new Reference(); // cc
502      return this.author;
503    }
504
505    public boolean hasAuthor() { 
506      return this.author != null && !this.author.isEmpty();
507    }
508
509    /**
510     * @param value {@link #author} (The person, organization or device that created the flag.)
511     */
512    public Flag setAuthor(Reference value) { 
513      this.author = value;
514      return this;
515    }
516
517      protected void listChildren(List<Property> children) {
518        super.listChildren(children);
519        children.add(new Property("identifier", "Identifier", "Business identifiers assigned to this flag by the performer or other systems which remain constant as the resource is updated and propagates from server to server.", 0, java.lang.Integer.MAX_VALUE, identifier));
520        children.add(new Property("status", "code", "Supports basic workflow.", 0, 1, status));
521        children.add(new Property("category", "CodeableConcept", "Allows a flag to be divided into different categories like clinical, administrative etc. Intended to be used as a means of filtering which flags are displayed to particular user or in a given context.", 0, java.lang.Integer.MAX_VALUE, category));
522        children.add(new Property("code", "CodeableConcept", "The coded value or textual component of the flag to display to the user.", 0, 1, code));
523        children.add(new Property("subject", "Reference(Patient|Location|Group|Organization|Practitioner|PractitionerRole|PlanDefinition|Medication|Procedure)", "The patient, location, group, organization, or practitioner etc. this is about record this flag is associated with.", 0, 1, subject));
524        children.add(new Property("period", "Period", "The period of time from the activation of the flag to inactivation of the flag. If the flag is active, the end of the period should be unspecified.", 0, 1, period));
525        children.add(new Property("encounter", "Reference(Encounter)", "This alert is only relevant during the encounter.", 0, 1, encounter));
526        children.add(new Property("author", "Reference(Device|Organization|Patient|Practitioner|PractitionerRole)", "The person, organization or device that created the flag.", 0, 1, author));
527      }
528
529      @Override
530      public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
531        switch (_hash) {
532        case -1618432855: /*identifier*/  return new Property("identifier", "Identifier", "Business identifiers assigned to this flag by the performer or other systems which remain constant as the resource is updated and propagates from server to server.", 0, java.lang.Integer.MAX_VALUE, identifier);
533        case -892481550: /*status*/  return new Property("status", "code", "Supports basic workflow.", 0, 1, status);
534        case 50511102: /*category*/  return new Property("category", "CodeableConcept", "Allows a flag to be divided into different categories like clinical, administrative etc. Intended to be used as a means of filtering which flags are displayed to particular user or in a given context.", 0, java.lang.Integer.MAX_VALUE, category);
535        case 3059181: /*code*/  return new Property("code", "CodeableConcept", "The coded value or textual component of the flag to display to the user.", 0, 1, code);
536        case -1867885268: /*subject*/  return new Property("subject", "Reference(Patient|Location|Group|Organization|Practitioner|PractitionerRole|PlanDefinition|Medication|Procedure)", "The patient, location, group, organization, or practitioner etc. this is about record this flag is associated with.", 0, 1, subject);
537        case -991726143: /*period*/  return new Property("period", "Period", "The period of time from the activation of the flag to inactivation of the flag. If the flag is active, the end of the period should be unspecified.", 0, 1, period);
538        case 1524132147: /*encounter*/  return new Property("encounter", "Reference(Encounter)", "This alert is only relevant during the encounter.", 0, 1, encounter);
539        case -1406328437: /*author*/  return new Property("author", "Reference(Device|Organization|Patient|Practitioner|PractitionerRole)", "The person, organization or device that created the flag.", 0, 1, author);
540        default: return super.getNamedProperty(_hash, _name, _checkValid);
541        }
542
543      }
544
545      @Override
546      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
547        switch (hash) {
548        case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier
549        case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<FlagStatus>
550        case 50511102: /*category*/ return this.category == null ? new Base[0] : this.category.toArray(new Base[this.category.size()]); // CodeableConcept
551        case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept
552        case -1867885268: /*subject*/ return this.subject == null ? new Base[0] : new Base[] {this.subject}; // Reference
553        case -991726143: /*period*/ return this.period == null ? new Base[0] : new Base[] {this.period}; // Period
554        case 1524132147: /*encounter*/ return this.encounter == null ? new Base[0] : new Base[] {this.encounter}; // Reference
555        case -1406328437: /*author*/ return this.author == null ? new Base[0] : new Base[] {this.author}; // Reference
556        default: return super.getProperty(hash, name, checkValid);
557        }
558
559      }
560
561      @Override
562      public Base setProperty(int hash, String name, Base value) throws FHIRException {
563        switch (hash) {
564        case -1618432855: // identifier
565          this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier
566          return value;
567        case -892481550: // status
568          value = new FlagStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
569          this.status = (Enumeration) value; // Enumeration<FlagStatus>
570          return value;
571        case 50511102: // category
572          this.getCategory().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept
573          return value;
574        case 3059181: // code
575          this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
576          return value;
577        case -1867885268: // subject
578          this.subject = TypeConvertor.castToReference(value); // Reference
579          return value;
580        case -991726143: // period
581          this.period = TypeConvertor.castToPeriod(value); // Period
582          return value;
583        case 1524132147: // encounter
584          this.encounter = TypeConvertor.castToReference(value); // Reference
585          return value;
586        case -1406328437: // author
587          this.author = TypeConvertor.castToReference(value); // Reference
588          return value;
589        default: return super.setProperty(hash, name, value);
590        }
591
592      }
593
594      @Override
595      public Base setProperty(String name, Base value) throws FHIRException {
596        if (name.equals("identifier")) {
597          this.getIdentifier().add(TypeConvertor.castToIdentifier(value));
598        } else if (name.equals("status")) {
599          value = new FlagStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
600          this.status = (Enumeration) value; // Enumeration<FlagStatus>
601        } else if (name.equals("category")) {
602          this.getCategory().add(TypeConvertor.castToCodeableConcept(value));
603        } else if (name.equals("code")) {
604          this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
605        } else if (name.equals("subject")) {
606          this.subject = TypeConvertor.castToReference(value); // Reference
607        } else if (name.equals("period")) {
608          this.period = TypeConvertor.castToPeriod(value); // Period
609        } else if (name.equals("encounter")) {
610          this.encounter = TypeConvertor.castToReference(value); // Reference
611        } else if (name.equals("author")) {
612          this.author = TypeConvertor.castToReference(value); // Reference
613        } else
614          return super.setProperty(name, value);
615        return value;
616      }
617
618      @Override
619      public Base makeProperty(int hash, String name) throws FHIRException {
620        switch (hash) {
621        case -1618432855:  return addIdentifier(); 
622        case -892481550:  return getStatusElement();
623        case 50511102:  return addCategory(); 
624        case 3059181:  return getCode();
625        case -1867885268:  return getSubject();
626        case -991726143:  return getPeriod();
627        case 1524132147:  return getEncounter();
628        case -1406328437:  return getAuthor();
629        default: return super.makeProperty(hash, name);
630        }
631
632      }
633
634      @Override
635      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
636        switch (hash) {
637        case -1618432855: /*identifier*/ return new String[] {"Identifier"};
638        case -892481550: /*status*/ return new String[] {"code"};
639        case 50511102: /*category*/ return new String[] {"CodeableConcept"};
640        case 3059181: /*code*/ return new String[] {"CodeableConcept"};
641        case -1867885268: /*subject*/ return new String[] {"Reference"};
642        case -991726143: /*period*/ return new String[] {"Period"};
643        case 1524132147: /*encounter*/ return new String[] {"Reference"};
644        case -1406328437: /*author*/ return new String[] {"Reference"};
645        default: return super.getTypesForProperty(hash, name);
646        }
647
648      }
649
650      @Override
651      public Base addChild(String name) throws FHIRException {
652        if (name.equals("identifier")) {
653          return addIdentifier();
654        }
655        else if (name.equals("status")) {
656          throw new FHIRException("Cannot call addChild on a primitive type Flag.status");
657        }
658        else if (name.equals("category")) {
659          return addCategory();
660        }
661        else if (name.equals("code")) {
662          this.code = new CodeableConcept();
663          return this.code;
664        }
665        else if (name.equals("subject")) {
666          this.subject = new Reference();
667          return this.subject;
668        }
669        else if (name.equals("period")) {
670          this.period = new Period();
671          return this.period;
672        }
673        else if (name.equals("encounter")) {
674          this.encounter = new Reference();
675          return this.encounter;
676        }
677        else if (name.equals("author")) {
678          this.author = new Reference();
679          return this.author;
680        }
681        else
682          return super.addChild(name);
683      }
684
685  public String fhirType() {
686    return "Flag";
687
688  }
689
690      public Flag copy() {
691        Flag dst = new Flag();
692        copyValues(dst);
693        return dst;
694      }
695
696      public void copyValues(Flag dst) {
697        super.copyValues(dst);
698        if (identifier != null) {
699          dst.identifier = new ArrayList<Identifier>();
700          for (Identifier i : identifier)
701            dst.identifier.add(i.copy());
702        };
703        dst.status = status == null ? null : status.copy();
704        if (category != null) {
705          dst.category = new ArrayList<CodeableConcept>();
706          for (CodeableConcept i : category)
707            dst.category.add(i.copy());
708        };
709        dst.code = code == null ? null : code.copy();
710        dst.subject = subject == null ? null : subject.copy();
711        dst.period = period == null ? null : period.copy();
712        dst.encounter = encounter == null ? null : encounter.copy();
713        dst.author = author == null ? null : author.copy();
714      }
715
716      protected Flag typedCopy() {
717        return copy();
718      }
719
720      @Override
721      public boolean equalsDeep(Base other_) {
722        if (!super.equalsDeep(other_))
723          return false;
724        if (!(other_ instanceof Flag))
725          return false;
726        Flag o = (Flag) other_;
727        return compareDeep(identifier, o.identifier, true) && compareDeep(status, o.status, true) && compareDeep(category, o.category, true)
728           && compareDeep(code, o.code, true) && compareDeep(subject, o.subject, true) && compareDeep(period, o.period, true)
729           && compareDeep(encounter, o.encounter, true) && compareDeep(author, o.author, true);
730      }
731
732      @Override
733      public boolean equalsShallow(Base other_) {
734        if (!super.equalsShallow(other_))
735          return false;
736        if (!(other_ instanceof Flag))
737          return false;
738        Flag o = (Flag) other_;
739        return compareValues(status, o.status, true);
740      }
741
742      public boolean isEmpty() {
743        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, status, category
744          , code, subject, period, encounter, author);
745      }
746
747  @Override
748  public ResourceType getResourceType() {
749    return ResourceType.Flag;
750   }
751
752 /**
753   * Search parameter: <b>author</b>
754   * <p>
755   * Description: <b>Flag creator</b><br>
756   * Type: <b>reference</b><br>
757   * Path: <b>Flag.author</b><br>
758   * </p>
759   */
760  @SearchParamDefinition(name="author", path="Flag.author", description="Flag creator", 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 Practitioner") }, target={Device.class, Organization.class, Patient.class, Practitioner.class, PractitionerRole.class } )
761  public static final String SP_AUTHOR = "author";
762 /**
763   * <b>Fluent Client</b> search parameter constant for <b>author</b>
764   * <p>
765   * Description: <b>Flag creator</b><br>
766   * Type: <b>reference</b><br>
767   * Path: <b>Flag.author</b><br>
768   * </p>
769   */
770  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam AUTHOR = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_AUTHOR);
771
772/**
773   * Constant for fluent queries to be used to add include statements. Specifies
774   * the path value of "<b>Flag:author</b>".
775   */
776  public static final ca.uhn.fhir.model.api.Include INCLUDE_AUTHOR = new ca.uhn.fhir.model.api.Include("Flag:author").toLocked();
777
778 /**
779   * Search parameter: <b>identifier</b>
780   * <p>
781   * Description: <b>Business identifier</b><br>
782   * Type: <b>token</b><br>
783   * Path: <b>Flag.identifier</b><br>
784   * </p>
785   */
786  @SearchParamDefinition(name="identifier", path="Flag.identifier", description="Business identifier", type="token" )
787  public static final String SP_IDENTIFIER = "identifier";
788 /**
789   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
790   * <p>
791   * Description: <b>Business identifier</b><br>
792   * Type: <b>token</b><br>
793   * Path: <b>Flag.identifier</b><br>
794   * </p>
795   */
796  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
797
798 /**
799   * Search parameter: <b>status</b>
800   * <p>
801   * Description: <b>active | inactive | entered-in-error</b><br>
802   * Type: <b>token</b><br>
803   * Path: <b>Flag.status</b><br>
804   * </p>
805   */
806  @SearchParamDefinition(name="status", path="Flag.status", description="active | inactive | entered-in-error", type="token" )
807  public static final String SP_STATUS = "status";
808 /**
809   * <b>Fluent Client</b> search parameter constant for <b>status</b>
810   * <p>
811   * Description: <b>active | inactive | entered-in-error</b><br>
812   * Type: <b>token</b><br>
813   * Path: <b>Flag.status</b><br>
814   * </p>
815   */
816  public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS);
817
818 /**
819   * Search parameter: <b>subject</b>
820   * <p>
821   * Description: <b>The identity of a subject to list flags for</b><br>
822   * Type: <b>reference</b><br>
823   * Path: <b>Flag.subject</b><br>
824   * </p>
825   */
826  @SearchParamDefinition(name="subject", path="Flag.subject", description="The identity of a subject to list flags for", type="reference", target={Group.class, Location.class, Medication.class, Organization.class, Patient.class, PlanDefinition.class, Practitioner.class, PractitionerRole.class, Procedure.class } )
827  public static final String SP_SUBJECT = "subject";
828 /**
829   * <b>Fluent Client</b> search parameter constant for <b>subject</b>
830   * <p>
831   * Description: <b>The identity of a subject to list flags for</b><br>
832   * Type: <b>reference</b><br>
833   * Path: <b>Flag.subject</b><br>
834   * </p>
835   */
836  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SUBJECT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SUBJECT);
837
838/**
839   * Constant for fluent queries to be used to add include statements. Specifies
840   * the path value of "<b>Flag:subject</b>".
841   */
842  public static final ca.uhn.fhir.model.api.Include INCLUDE_SUBJECT = new ca.uhn.fhir.model.api.Include("Flag:subject").toLocked();
843
844 /**
845   * Search parameter: <b>date</b>
846   * <p>
847   * Description: <b>Multiple Resources: 
848
849* [AllergyIntolerance](allergyintolerance.html): Date first version of the resource instance was recorded
850* [CarePlan](careplan.html): Time period plan covers
851* [CareTeam](careteam.html): A date within the coverage time period.
852* [ClinicalImpression](clinicalimpression.html): When the assessment was documented
853* [Composition](composition.html): Composition editing time
854* [Consent](consent.html): When consent was agreed to
855* [DiagnosticReport](diagnosticreport.html): The clinically relevant time of the report
856* [Encounter](encounter.html): A date within the actualPeriod the Encounter lasted
857* [EpisodeOfCare](episodeofcare.html): The provided date search value falls within the episode of care's period
858* [FamilyMemberHistory](familymemberhistory.html): When history was recorded or last updated
859* [Flag](flag.html): Time period when flag is active
860* [Immunization](immunization.html): Vaccination  (non)-Administration Date
861* [List](list.html): When the list was prepared
862* [Observation](observation.html): Obtained date/time. If the obtained element is a period, a date that falls in the period
863* [Procedure](procedure.html): When the procedure occurred or is occurring
864* [RiskAssessment](riskassessment.html): When was assessment made?
865* [SupplyRequest](supplyrequest.html): When the request was made
866</b><br>
867   * Type: <b>date</b><br>
868   * 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>
869   * </p>
870   */
871  @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" )
872  public static final String SP_DATE = "date";
873 /**
874   * <b>Fluent Client</b> search parameter constant for <b>date</b>
875   * <p>
876   * Description: <b>Multiple Resources: 
877
878* [AllergyIntolerance](allergyintolerance.html): Date first version of the resource instance was recorded
879* [CarePlan](careplan.html): Time period plan covers
880* [CareTeam](careteam.html): A date within the coverage time period.
881* [ClinicalImpression](clinicalimpression.html): When the assessment was documented
882* [Composition](composition.html): Composition editing time
883* [Consent](consent.html): When consent was agreed to
884* [DiagnosticReport](diagnosticreport.html): The clinically relevant time of the report
885* [Encounter](encounter.html): A date within the actualPeriod the Encounter lasted
886* [EpisodeOfCare](episodeofcare.html): The provided date search value falls within the episode of care's period
887* [FamilyMemberHistory](familymemberhistory.html): When history was recorded or last updated
888* [Flag](flag.html): Time period when flag is active
889* [Immunization](immunization.html): Vaccination  (non)-Administration Date
890* [List](list.html): When the list was prepared
891* [Observation](observation.html): Obtained date/time. If the obtained element is a period, a date that falls in the period
892* [Procedure](procedure.html): When the procedure occurred or is occurring
893* [RiskAssessment](riskassessment.html): When was assessment made?
894* [SupplyRequest](supplyrequest.html): When the request was made
895</b><br>
896   * Type: <b>date</b><br>
897   * 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>
898   * </p>
899   */
900  public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE);
901
902 /**
903   * Search parameter: <b>encounter</b>
904   * <p>
905   * Description: <b>Multiple Resources: 
906
907* [Composition](composition.html): Context of the Composition
908* [DeviceRequest](devicerequest.html): Encounter during which request was created
909* [DiagnosticReport](diagnosticreport.html): The Encounter when the order was made
910* [Flag](flag.html): Alert relevant during encounter
911* [List](list.html): Context in which list created
912* [NutritionOrder](nutritionorder.html): Return nutrition orders with this encounter identifier
913* [Observation](observation.html): Encounter related to the observation
914* [Procedure](procedure.html): The Encounter during which this Procedure was created
915* [RiskAssessment](riskassessment.html): Where was assessment performed?
916* [ServiceRequest](servicerequest.html): An encounter in which this request is made
917* [VisionPrescription](visionprescription.html): Return prescriptions with this encounter identifier
918</b><br>
919   * Type: <b>reference</b><br>
920   * 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>
921   * </p>
922   */
923  @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 } )
924  public static final String SP_ENCOUNTER = "encounter";
925 /**
926   * <b>Fluent Client</b> search parameter constant for <b>encounter</b>
927   * <p>
928   * Description: <b>Multiple Resources: 
929
930* [Composition](composition.html): Context of the Composition
931* [DeviceRequest](devicerequest.html): Encounter during which request was created
932* [DiagnosticReport](diagnosticreport.html): The Encounter when the order was made
933* [Flag](flag.html): Alert relevant during encounter
934* [List](list.html): Context in which list created
935* [NutritionOrder](nutritionorder.html): Return nutrition orders with this encounter identifier
936* [Observation](observation.html): Encounter related to the observation
937* [Procedure](procedure.html): The Encounter during which this Procedure was created
938* [RiskAssessment](riskassessment.html): Where was assessment performed?
939* [ServiceRequest](servicerequest.html): An encounter in which this request is made
940* [VisionPrescription](visionprescription.html): Return prescriptions with this encounter identifier
941</b><br>
942   * Type: <b>reference</b><br>
943   * 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>
944   * </p>
945   */
946  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ENCOUNTER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ENCOUNTER);
947
948/**
949   * Constant for fluent queries to be used to add include statements. Specifies
950   * the path value of "<b>Flag:encounter</b>".
951   */
952  public static final ca.uhn.fhir.model.api.Include INCLUDE_ENCOUNTER = new ca.uhn.fhir.model.api.Include("Flag:encounter").toLocked();
953
954 /**
955   * Search parameter: <b>patient</b>
956   * <p>
957   * Description: <b>Multiple Resources: 
958
959* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for
960* [CarePlan](careplan.html): Who the care plan is for
961* [CareTeam](careteam.html): Who care team is for
962* [ClinicalImpression](clinicalimpression.html): Patient assessed
963* [Composition](composition.html): Who and/or what the composition is about
964* [Condition](condition.html): Who has the condition?
965* [Consent](consent.html): Who the consent applies to
966* [DetectedIssue](detectedissue.html): Associated patient
967* [DeviceRequest](devicerequest.html): Individual the service is ordered for
968* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device
969* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient
970* [DocumentManifest](documentmanifest.html): The subject of the set of documents
971* [DocumentReference](documentreference.html): Who/what is the subject of the document
972* [Encounter](encounter.html): The patient present at the encounter
973* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care
974* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for
975* [Flag](flag.html): The identity of a subject to list flags for
976* [Goal](goal.html): Who this goal is intended for
977* [ImagingStudy](imagingstudy.html): Who the study is about
978* [Immunization](immunization.html): The patient for the vaccination record
979* [List](list.html): If all resources have the same subject
980* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations  for
981* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses  for
982* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient
983* [MedicationUsage](medicationusage.html): Returns statements for a specific patient.
984* [NutritionOrder](nutritionorder.html): The identity of the person who requires the diet, formula or nutritional supplement
985* [Observation](observation.html): The subject that the observation is about (if patient)
986* [Procedure](procedure.html): Search by subject - a patient
987* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?
988* [ServiceRequest](servicerequest.html): Search by subject - a patient
989* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied
990* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for
991</b><br>
992   * Type: <b>reference</b><br>
993   * 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>
994   * </p>
995   */
996  @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", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Patient") }, target={Patient.class } )
997  public static final String SP_PATIENT = "patient";
998 /**
999   * <b>Fluent Client</b> search parameter constant for <b>patient</b>
1000   * <p>
1001   * Description: <b>Multiple Resources: 
1002
1003* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for
1004* [CarePlan](careplan.html): Who the care plan is for
1005* [CareTeam](careteam.html): Who care team is for
1006* [ClinicalImpression](clinicalimpression.html): Patient assessed
1007* [Composition](composition.html): Who and/or what the composition is about
1008* [Condition](condition.html): Who has the condition?
1009* [Consent](consent.html): Who the consent applies to
1010* [DetectedIssue](detectedissue.html): Associated patient
1011* [DeviceRequest](devicerequest.html): Individual the service is ordered for
1012* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device
1013* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient
1014* [DocumentManifest](documentmanifest.html): The subject of the set of documents
1015* [DocumentReference](documentreference.html): Who/what is the subject of the document
1016* [Encounter](encounter.html): The patient present at the encounter
1017* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care
1018* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for
1019* [Flag](flag.html): The identity of a subject to list flags for
1020* [Goal](goal.html): Who this goal is intended for
1021* [ImagingStudy](imagingstudy.html): Who the study is about
1022* [Immunization](immunization.html): The patient for the vaccination record
1023* [List](list.html): If all resources have the same subject
1024* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations  for
1025* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses  for
1026* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient
1027* [MedicationUsage](medicationusage.html): Returns statements for a specific patient.
1028* [NutritionOrder](nutritionorder.html): The identity of the person who requires the diet, formula or nutritional supplement
1029* [Observation](observation.html): The subject that the observation is about (if patient)
1030* [Procedure](procedure.html): Search by subject - a patient
1031* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?
1032* [ServiceRequest](servicerequest.html): Search by subject - a patient
1033* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied
1034* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for
1035</b><br>
1036   * Type: <b>reference</b><br>
1037   * 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>
1038   * </p>
1039   */
1040  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PATIENT);
1041
1042/**
1043   * Constant for fluent queries to be used to add include statements. Specifies
1044   * the path value of "<b>Flag:patient</b>".
1045   */
1046  public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("Flag:patient").toLocked();
1047
1048
1049}
1050