001package org.hl7.fhir.r5.model;
002
003
004/*
005  Copyright (c) 2011+, HL7, Inc.
006  All rights reserved.
007  
008  Redistribution and use in source and binary forms, with or without modification, \
009  are permitted provided that the following conditions are met:
010  
011   * Redistributions of source code must retain the above copyright notice, this \
012     list of conditions and the following disclaimer.
013   * Redistributions in binary form must reproduce the above copyright notice, \
014     this list of conditions and the following disclaimer in the documentation \
015     and/or other materials provided with the distribution.
016   * Neither the name of HL7 nor the names of its contributors may be used to 
017     endorse or promote products derived from this software without specific 
018     prior written permission.
019  
020  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \
021  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \
022  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \
023  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \
024  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT \
025  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR \
026  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, \
027  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) \
028  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE \
029  POSSIBILITY OF SUCH DAMAGE.
030  */
031
032// Generated on Thu, Mar 23, 2023 19:59+1100 for FHIR v5.0.0
033
034import java.util.ArrayList;
035import java.util.Date;
036import java.util.List;
037import org.hl7.fhir.utilities.Utilities;
038import org.hl7.fhir.r5.model.Enumerations.*;
039import org.hl7.fhir.instance.model.api.IBaseBackboneElement;
040import org.hl7.fhir.exceptions.FHIRException;
041import org.hl7.fhir.instance.model.api.ICompositeType;
042import ca.uhn.fhir.model.api.annotation.ResourceDef;
043import ca.uhn.fhir.model.api.annotation.SearchParamDefinition;
044import org.hl7.fhir.instance.model.api.IBaseBackboneElement;
045import ca.uhn.fhir.model.api.annotation.Child;
046import ca.uhn.fhir.model.api.annotation.ChildOrder;
047import ca.uhn.fhir.model.api.annotation.Description;
048import ca.uhn.fhir.model.api.annotation.Block;
049
050/**
051 * A request to convey information; e.g. the CDS system proposes that an alert be sent to a responsible provider, the CDS system proposes that the public health agency be notified about a reportable condition.
052 */
053@ResourceDef(name="CommunicationRequest", profile="http://hl7.org/fhir/StructureDefinition/CommunicationRequest")
054public class CommunicationRequest extends DomainResource {
055
056    @Block()
057    public static class CommunicationRequestPayloadComponent extends BackboneElement implements IBaseBackboneElement {
058        /**
059         * The communicated content (or for multi-part communications, one portion of the communication).
060         */
061        @Child(name = "content", type = {Attachment.class, Reference.class, CodeableConcept.class}, order=1, min=1, max=1, modifier=false, summary=false)
062        @Description(shortDefinition="Message part content", formalDefinition="The communicated content (or for multi-part communications, one portion of the communication)." )
063        protected DataType content;
064
065        private static final long serialVersionUID = -1954179063L;
066
067    /**
068     * Constructor
069     */
070      public CommunicationRequestPayloadComponent() {
071        super();
072      }
073
074    /**
075     * Constructor
076     */
077      public CommunicationRequestPayloadComponent(DataType content) {
078        super();
079        this.setContent(content);
080      }
081
082        /**
083         * @return {@link #content} (The communicated content (or for multi-part communications, one portion of the communication).)
084         */
085        public DataType getContent() { 
086          return this.content;
087        }
088
089        /**
090         * @return {@link #content} (The communicated content (or for multi-part communications, one portion of the communication).)
091         */
092        public Attachment getContentAttachment() throws FHIRException { 
093          if (this.content == null)
094            this.content = new Attachment();
095          if (!(this.content instanceof Attachment))
096            throw new FHIRException("Type mismatch: the type Attachment was expected, but "+this.content.getClass().getName()+" was encountered");
097          return (Attachment) this.content;
098        }
099
100        public boolean hasContentAttachment() { 
101          return this != null && this.content instanceof Attachment;
102        }
103
104        /**
105         * @return {@link #content} (The communicated content (or for multi-part communications, one portion of the communication).)
106         */
107        public Reference getContentReference() throws FHIRException { 
108          if (this.content == null)
109            this.content = new Reference();
110          if (!(this.content instanceof Reference))
111            throw new FHIRException("Type mismatch: the type Reference was expected, but "+this.content.getClass().getName()+" was encountered");
112          return (Reference) this.content;
113        }
114
115        public boolean hasContentReference() { 
116          return this != null && this.content instanceof Reference;
117        }
118
119        /**
120         * @return {@link #content} (The communicated content (or for multi-part communications, one portion of the communication).)
121         */
122        public CodeableConcept getContentCodeableConcept() throws FHIRException { 
123          if (this.content == null)
124            this.content = new CodeableConcept();
125          if (!(this.content instanceof CodeableConcept))
126            throw new FHIRException("Type mismatch: the type CodeableConcept was expected, but "+this.content.getClass().getName()+" was encountered");
127          return (CodeableConcept) this.content;
128        }
129
130        public boolean hasContentCodeableConcept() { 
131          return this != null && this.content instanceof CodeableConcept;
132        }
133
134        public boolean hasContent() { 
135          return this.content != null && !this.content.isEmpty();
136        }
137
138        /**
139         * @param value {@link #content} (The communicated content (or for multi-part communications, one portion of the communication).)
140         */
141        public CommunicationRequestPayloadComponent setContent(DataType value) { 
142          if (value != null && !(value instanceof Attachment || value instanceof Reference || value instanceof CodeableConcept))
143            throw new FHIRException("Not the right type for CommunicationRequest.payload.content[x]: "+value.fhirType());
144          this.content = value;
145          return this;
146        }
147
148        protected void listChildren(List<Property> children) {
149          super.listChildren(children);
150          children.add(new Property("content[x]", "Attachment|Reference(Any)|CodeableConcept", "The communicated content (or for multi-part communications, one portion of the communication).", 0, 1, content));
151        }
152
153        @Override
154        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
155          switch (_hash) {
156          case 264548711: /*content[x]*/  return new Property("content[x]", "Attachment|Reference(Any)|CodeableConcept", "The communicated content (or for multi-part communications, one portion of the communication).", 0, 1, content);
157          case 951530617: /*content*/  return new Property("content[x]", "Attachment|Reference(Any)|CodeableConcept", "The communicated content (or for multi-part communications, one portion of the communication).", 0, 1, content);
158          case -702028164: /*contentAttachment*/  return new Property("content[x]", "Attachment", "The communicated content (or for multi-part communications, one portion of the communication).", 0, 1, content);
159          case 1193747154: /*contentReference*/  return new Property("content[x]", "Reference(Any)", "The communicated content (or for multi-part communications, one portion of the communication).", 0, 1, content);
160          case 1554698728: /*contentCodeableConcept*/  return new Property("content[x]", "CodeableConcept", "The communicated content (or for multi-part communications, one portion of the communication).", 0, 1, content);
161          default: return super.getNamedProperty(_hash, _name, _checkValid);
162          }
163
164        }
165
166      @Override
167      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
168        switch (hash) {
169        case 951530617: /*content*/ return this.content == null ? new Base[0] : new Base[] {this.content}; // DataType
170        default: return super.getProperty(hash, name, checkValid);
171        }
172
173      }
174
175      @Override
176      public Base setProperty(int hash, String name, Base value) throws FHIRException {
177        switch (hash) {
178        case 951530617: // content
179          this.content = TypeConvertor.castToType(value); // DataType
180          return value;
181        default: return super.setProperty(hash, name, value);
182        }
183
184      }
185
186      @Override
187      public Base setProperty(String name, Base value) throws FHIRException {
188        if (name.equals("content[x]")) {
189          this.content = TypeConvertor.castToType(value); // DataType
190        } else
191          return super.setProperty(name, value);
192        return value;
193      }
194
195  @Override
196  public void removeChild(String name, Base value) throws FHIRException {
197        if (name.equals("content[x]")) {
198          this.content = null;
199        } else
200          super.removeChild(name, value);
201        
202      }
203
204      @Override
205      public Base makeProperty(int hash, String name) throws FHIRException {
206        switch (hash) {
207        case 264548711:  return getContent();
208        case 951530617:  return getContent();
209        default: return super.makeProperty(hash, name);
210        }
211
212      }
213
214      @Override
215      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
216        switch (hash) {
217        case 951530617: /*content*/ return new String[] {"Attachment", "Reference", "CodeableConcept"};
218        default: return super.getTypesForProperty(hash, name);
219        }
220
221      }
222
223      @Override
224      public Base addChild(String name) throws FHIRException {
225        if (name.equals("contentAttachment")) {
226          this.content = new Attachment();
227          return this.content;
228        }
229        else if (name.equals("contentReference")) {
230          this.content = new Reference();
231          return this.content;
232        }
233        else if (name.equals("contentCodeableConcept")) {
234          this.content = new CodeableConcept();
235          return this.content;
236        }
237        else
238          return super.addChild(name);
239      }
240
241      public CommunicationRequestPayloadComponent copy() {
242        CommunicationRequestPayloadComponent dst = new CommunicationRequestPayloadComponent();
243        copyValues(dst);
244        return dst;
245      }
246
247      public void copyValues(CommunicationRequestPayloadComponent dst) {
248        super.copyValues(dst);
249        dst.content = content == null ? null : content.copy();
250      }
251
252      @Override
253      public boolean equalsDeep(Base other_) {
254        if (!super.equalsDeep(other_))
255          return false;
256        if (!(other_ instanceof CommunicationRequestPayloadComponent))
257          return false;
258        CommunicationRequestPayloadComponent o = (CommunicationRequestPayloadComponent) other_;
259        return compareDeep(content, o.content, true);
260      }
261
262      @Override
263      public boolean equalsShallow(Base other_) {
264        if (!super.equalsShallow(other_))
265          return false;
266        if (!(other_ instanceof CommunicationRequestPayloadComponent))
267          return false;
268        CommunicationRequestPayloadComponent o = (CommunicationRequestPayloadComponent) other_;
269        return true;
270      }
271
272      public boolean isEmpty() {
273        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(content);
274      }
275
276  public String fhirType() {
277    return "CommunicationRequest.payload";
278
279  }
280
281  }
282
283    /**
284     * Business identifiers assigned to this communication request by the performer or other systems which remain constant as the resource is updated and propagates from server to server.
285     */
286    @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
287    @Description(shortDefinition="Unique identifier", formalDefinition="Business identifiers assigned to this communication request by the performer or other systems which remain constant as the resource is updated and propagates from server to server." )
288    protected List<Identifier> identifier;
289
290    /**
291     * A plan or proposal that is fulfilled in whole or in part by this request.
292     */
293    @Child(name = "basedOn", type = {Reference.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
294    @Description(shortDefinition="Fulfills plan or proposal", formalDefinition="A plan or proposal that is fulfilled in whole or in part by this request." )
295    protected List<Reference> basedOn;
296
297    /**
298     * Completed or terminated request(s) whose function is taken by this new request.
299     */
300    @Child(name = "replaces", type = {CommunicationRequest.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
301    @Description(shortDefinition="Request(s) replaced by this request", formalDefinition="Completed or terminated request(s) whose function is taken by this new request." )
302    protected List<Reference> replaces;
303
304    /**
305     * A shared identifier common to multiple independent Request instances that were activated/authorized more or less simultaneously by a single author.  The presence of the same identifier on each request ties those requests together and may have business ramifications in terms of reporting of results, billing, etc.  E.g. a requisition number shared by a set of lab tests ordered together, or a prescription number shared by all meds ordered at one time.
306     */
307    @Child(name = "groupIdentifier", type = {Identifier.class}, order=3, min=0, max=1, modifier=false, summary=true)
308    @Description(shortDefinition="Composite request this is part of", formalDefinition="A shared identifier common to multiple independent Request instances that were activated/authorized more or less simultaneously by a single author.  The presence of the same identifier on each request ties those requests together and may have business ramifications in terms of reporting of results, billing, etc.  E.g. a requisition number shared by a set of lab tests ordered together, or a prescription number shared by all meds ordered at one time." )
309    protected Identifier groupIdentifier;
310
311    /**
312     * The status of the proposal or order.
313     */
314    @Child(name = "status", type = {CodeType.class}, order=4, min=1, max=1, modifier=true, summary=true)
315    @Description(shortDefinition="draft | active | on-hold | revoked | completed | entered-in-error | unknown", formalDefinition="The status of the proposal or order." )
316    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/request-status")
317    protected Enumeration<RequestStatus> status;
318
319    /**
320     * Captures the reason for the current state of the CommunicationRequest.
321     */
322    @Child(name = "statusReason", type = {CodeableConcept.class}, order=5, min=0, max=1, modifier=false, summary=false)
323    @Description(shortDefinition="Reason for current status", formalDefinition="Captures the reason for the current state of the CommunicationRequest." )
324    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/communication-request-status-reason")
325    protected CodeableConcept statusReason;
326
327    /**
328     * Indicates the level of authority/intentionality associated with the CommunicationRequest and where the request fits into the workflow chain.
329     */
330    @Child(name = "intent", type = {CodeType.class}, order=6, min=1, max=1, modifier=true, summary=true)
331    @Description(shortDefinition="proposal | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option", formalDefinition="Indicates the level of authority/intentionality associated with the CommunicationRequest and where the request fits into the workflow chain." )
332    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/request-intent")
333    protected Enumeration<RequestIntent> intent;
334
335    /**
336     * The type of message to be sent such as alert, notification, reminder, instruction, etc.
337     */
338    @Child(name = "category", type = {CodeableConcept.class}, order=7, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
339    @Description(shortDefinition="Message category", formalDefinition="The type of message to be sent such as alert, notification, reminder, instruction, etc." )
340    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/communication-category")
341    protected List<CodeableConcept> category;
342
343    /**
344     * Characterizes how quickly the proposed act must be initiated. Includes concepts such as stat, urgent, routine.
345     */
346    @Child(name = "priority", type = {CodeType.class}, order=8, min=0, max=1, modifier=false, summary=true)
347    @Description(shortDefinition="routine | urgent | asap | stat", formalDefinition="Characterizes how quickly the proposed act must be initiated. Includes concepts such as stat, urgent, routine." )
348    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/request-priority")
349    protected Enumeration<RequestPriority> priority;
350
351    /**
352     * If true indicates that the CommunicationRequest is asking for the specified action to *not* occur.
353     */
354    @Child(name = "doNotPerform", type = {BooleanType.class}, order=9, min=0, max=1, modifier=true, summary=true)
355    @Description(shortDefinition="True if request is prohibiting action", formalDefinition="If true indicates that the CommunicationRequest is asking for the specified action to *not* occur." )
356    protected BooleanType doNotPerform;
357
358    /**
359     * A channel that was used for this communication (e.g. email, fax).
360     */
361    @Child(name = "medium", type = {CodeableConcept.class}, order=10, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
362    @Description(shortDefinition="A channel of communication", formalDefinition="A channel that was used for this communication (e.g. email, fax)." )
363    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://terminology.hl7.org/ValueSet/v3-ParticipationMode")
364    protected List<CodeableConcept> medium;
365
366    /**
367     * The patient or group that is the focus of this communication request.
368     */
369    @Child(name = "subject", type = {Patient.class, Group.class}, order=11, min=0, max=1, modifier=false, summary=false)
370    @Description(shortDefinition="Focus of message", formalDefinition="The patient or group that is the focus of this communication request." )
371    protected Reference subject;
372
373    /**
374     * Other resources that pertain to this communication request and to which this communication request should be associated.
375     */
376    @Child(name = "about", type = {Reference.class}, order=12, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
377    @Description(shortDefinition="Resources that pertain to this communication request", formalDefinition="Other resources that pertain to this communication request and to which this communication request should be associated." )
378    protected List<Reference> about;
379
380    /**
381     * The Encounter during which this CommunicationRequest was created or to which the creation of this record is tightly associated.
382     */
383    @Child(name = "encounter", type = {Encounter.class}, order=13, min=0, max=1, modifier=false, summary=true)
384    @Description(shortDefinition="The Encounter during which this CommunicationRequest was created", formalDefinition="The Encounter during which this CommunicationRequest was created or to which the creation of this record is tightly associated." )
385    protected Reference encounter;
386
387    /**
388     * Text, attachment(s), or resource(s) to be communicated to the recipient.
389     */
390    @Child(name = "payload", type = {}, order=14, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
391    @Description(shortDefinition="Message payload", formalDefinition="Text, attachment(s), or resource(s) to be communicated to the recipient." )
392    protected List<CommunicationRequestPayloadComponent> payload;
393
394    /**
395     * The time when this communication is to occur.
396     */
397    @Child(name = "occurrence", type = {DateTimeType.class, Period.class}, order=15, min=0, max=1, modifier=false, summary=true)
398    @Description(shortDefinition="When scheduled", formalDefinition="The time when this communication is to occur." )
399    protected DataType occurrence;
400
401    /**
402     * For draft requests, indicates the date of initial creation.  For requests with other statuses, indicates the date of activation.
403     */
404    @Child(name = "authoredOn", type = {DateTimeType.class}, order=16, min=0, max=1, modifier=false, summary=true)
405    @Description(shortDefinition="When request transitioned to being actionable", formalDefinition="For draft requests, indicates the date of initial creation.  For requests with other statuses, indicates the date of activation." )
406    protected DateTimeType authoredOn;
407
408    /**
409     * The device, individual, or organization who asks for the information to be shared.
410     */
411    @Child(name = "requester", type = {Practitioner.class, PractitionerRole.class, Organization.class, Patient.class, RelatedPerson.class, Device.class}, order=17, min=0, max=1, modifier=false, summary=true)
412    @Description(shortDefinition="Who asks for the information to be shared", formalDefinition="The device, individual, or organization who asks for the information to be shared." )
413    protected Reference requester;
414
415    /**
416     * The entity (e.g. person, organization, clinical information system, device, group, or care team) which is the intended target of the communication.
417     */
418    @Child(name = "recipient", type = {Device.class, Organization.class, Patient.class, Practitioner.class, PractitionerRole.class, RelatedPerson.class, Group.class, CareTeam.class, HealthcareService.class, Endpoint.class}, order=18, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
419    @Description(shortDefinition="Who to share the information with", formalDefinition="The entity (e.g. person, organization, clinical information system, device, group, or care team) which is the intended target of the communication." )
420    protected List<Reference> recipient;
421
422    /**
423     * The entity (e.g. person, organization, clinical information system, or device) which is to be the source of the communication.
424     */
425    @Child(name = "informationProvider", type = {Device.class, Organization.class, Patient.class, Practitioner.class, PractitionerRole.class, RelatedPerson.class, HealthcareService.class, Endpoint.class}, order=19, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
426    @Description(shortDefinition="Who should share the information", formalDefinition="The entity (e.g. person, organization, clinical information system, or device) which is to be the source of the communication." )
427    protected List<Reference> informationProvider;
428
429    /**
430     * Describes why the request is being made in coded or textual form.
431     */
432    @Child(name = "reason", type = {CodeableReference.class}, order=20, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
433    @Description(shortDefinition="Why is communication needed?", formalDefinition="Describes why the request is being made in coded or textual form." )
434    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://terminology.hl7.org/ValueSet/v3-ActReason")
435    protected List<CodeableReference> reason;
436
437    /**
438     * Comments made about the request by the requester, sender, recipient, subject or other participants.
439     */
440    @Child(name = "note", type = {Annotation.class}, order=21, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
441    @Description(shortDefinition="Comments made about communication request", formalDefinition="Comments made about the request by the requester, sender, recipient, subject or other participants." )
442    protected List<Annotation> note;
443
444    private static final long serialVersionUID = -442811807L;
445
446  /**
447   * Constructor
448   */
449    public CommunicationRequest() {
450      super();
451    }
452
453  /**
454   * Constructor
455   */
456    public CommunicationRequest(RequestStatus status, RequestIntent intent) {
457      super();
458      this.setStatus(status);
459      this.setIntent(intent);
460    }
461
462    /**
463     * @return {@link #identifier} (Business identifiers assigned to this communication request by the performer or other systems which remain constant as the resource is updated and propagates from server to server.)
464     */
465    public List<Identifier> getIdentifier() { 
466      if (this.identifier == null)
467        this.identifier = new ArrayList<Identifier>();
468      return this.identifier;
469    }
470
471    /**
472     * @return Returns a reference to <code>this</code> for easy method chaining
473     */
474    public CommunicationRequest setIdentifier(List<Identifier> theIdentifier) { 
475      this.identifier = theIdentifier;
476      return this;
477    }
478
479    public boolean hasIdentifier() { 
480      if (this.identifier == null)
481        return false;
482      for (Identifier item : this.identifier)
483        if (!item.isEmpty())
484          return true;
485      return false;
486    }
487
488    public Identifier addIdentifier() { //3
489      Identifier t = new Identifier();
490      if (this.identifier == null)
491        this.identifier = new ArrayList<Identifier>();
492      this.identifier.add(t);
493      return t;
494    }
495
496    public CommunicationRequest addIdentifier(Identifier t) { //3
497      if (t == null)
498        return this;
499      if (this.identifier == null)
500        this.identifier = new ArrayList<Identifier>();
501      this.identifier.add(t);
502      return this;
503    }
504
505    /**
506     * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3}
507     */
508    public Identifier getIdentifierFirstRep() { 
509      if (getIdentifier().isEmpty()) {
510        addIdentifier();
511      }
512      return getIdentifier().get(0);
513    }
514
515    /**
516     * @return {@link #basedOn} (A plan or proposal that is fulfilled in whole or in part by this request.)
517     */
518    public List<Reference> getBasedOn() { 
519      if (this.basedOn == null)
520        this.basedOn = new ArrayList<Reference>();
521      return this.basedOn;
522    }
523
524    /**
525     * @return Returns a reference to <code>this</code> for easy method chaining
526     */
527    public CommunicationRequest setBasedOn(List<Reference> theBasedOn) { 
528      this.basedOn = theBasedOn;
529      return this;
530    }
531
532    public boolean hasBasedOn() { 
533      if (this.basedOn == null)
534        return false;
535      for (Reference item : this.basedOn)
536        if (!item.isEmpty())
537          return true;
538      return false;
539    }
540
541    public Reference addBasedOn() { //3
542      Reference t = new Reference();
543      if (this.basedOn == null)
544        this.basedOn = new ArrayList<Reference>();
545      this.basedOn.add(t);
546      return t;
547    }
548
549    public CommunicationRequest addBasedOn(Reference t) { //3
550      if (t == null)
551        return this;
552      if (this.basedOn == null)
553        this.basedOn = new ArrayList<Reference>();
554      this.basedOn.add(t);
555      return this;
556    }
557
558    /**
559     * @return The first repetition of repeating field {@link #basedOn}, creating it if it does not already exist {3}
560     */
561    public Reference getBasedOnFirstRep() { 
562      if (getBasedOn().isEmpty()) {
563        addBasedOn();
564      }
565      return getBasedOn().get(0);
566    }
567
568    /**
569     * @return {@link #replaces} (Completed or terminated request(s) whose function is taken by this new request.)
570     */
571    public List<Reference> getReplaces() { 
572      if (this.replaces == null)
573        this.replaces = new ArrayList<Reference>();
574      return this.replaces;
575    }
576
577    /**
578     * @return Returns a reference to <code>this</code> for easy method chaining
579     */
580    public CommunicationRequest setReplaces(List<Reference> theReplaces) { 
581      this.replaces = theReplaces;
582      return this;
583    }
584
585    public boolean hasReplaces() { 
586      if (this.replaces == null)
587        return false;
588      for (Reference item : this.replaces)
589        if (!item.isEmpty())
590          return true;
591      return false;
592    }
593
594    public Reference addReplaces() { //3
595      Reference t = new Reference();
596      if (this.replaces == null)
597        this.replaces = new ArrayList<Reference>();
598      this.replaces.add(t);
599      return t;
600    }
601
602    public CommunicationRequest addReplaces(Reference t) { //3
603      if (t == null)
604        return this;
605      if (this.replaces == null)
606        this.replaces = new ArrayList<Reference>();
607      this.replaces.add(t);
608      return this;
609    }
610
611    /**
612     * @return The first repetition of repeating field {@link #replaces}, creating it if it does not already exist {3}
613     */
614    public Reference getReplacesFirstRep() { 
615      if (getReplaces().isEmpty()) {
616        addReplaces();
617      }
618      return getReplaces().get(0);
619    }
620
621    /**
622     * @return {@link #groupIdentifier} (A shared identifier common to multiple independent Request instances that were activated/authorized more or less simultaneously by a single author.  The presence of the same identifier on each request ties those requests together and may have business ramifications in terms of reporting of results, billing, etc.  E.g. a requisition number shared by a set of lab tests ordered together, or a prescription number shared by all meds ordered at one time.)
623     */
624    public Identifier getGroupIdentifier() { 
625      if (this.groupIdentifier == null)
626        if (Configuration.errorOnAutoCreate())
627          throw new Error("Attempt to auto-create CommunicationRequest.groupIdentifier");
628        else if (Configuration.doAutoCreate())
629          this.groupIdentifier = new Identifier(); // cc
630      return this.groupIdentifier;
631    }
632
633    public boolean hasGroupIdentifier() { 
634      return this.groupIdentifier != null && !this.groupIdentifier.isEmpty();
635    }
636
637    /**
638     * @param value {@link #groupIdentifier} (A shared identifier common to multiple independent Request instances that were activated/authorized more or less simultaneously by a single author.  The presence of the same identifier on each request ties those requests together and may have business ramifications in terms of reporting of results, billing, etc.  E.g. a requisition number shared by a set of lab tests ordered together, or a prescription number shared by all meds ordered at one time.)
639     */
640    public CommunicationRequest setGroupIdentifier(Identifier value) { 
641      this.groupIdentifier = value;
642      return this;
643    }
644
645    /**
646     * @return {@link #status} (The status of the proposal or order.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
647     */
648    public Enumeration<RequestStatus> getStatusElement() { 
649      if (this.status == null)
650        if (Configuration.errorOnAutoCreate())
651          throw new Error("Attempt to auto-create CommunicationRequest.status");
652        else if (Configuration.doAutoCreate())
653          this.status = new Enumeration<RequestStatus>(new RequestStatusEnumFactory()); // bb
654      return this.status;
655    }
656
657    public boolean hasStatusElement() { 
658      return this.status != null && !this.status.isEmpty();
659    }
660
661    public boolean hasStatus() { 
662      return this.status != null && !this.status.isEmpty();
663    }
664
665    /**
666     * @param value {@link #status} (The status of the proposal or order.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
667     */
668    public CommunicationRequest setStatusElement(Enumeration<RequestStatus> value) { 
669      this.status = value;
670      return this;
671    }
672
673    /**
674     * @return The status of the proposal or order.
675     */
676    public RequestStatus getStatus() { 
677      return this.status == null ? null : this.status.getValue();
678    }
679
680    /**
681     * @param value The status of the proposal or order.
682     */
683    public CommunicationRequest setStatus(RequestStatus value) { 
684        if (this.status == null)
685          this.status = new Enumeration<RequestStatus>(new RequestStatusEnumFactory());
686        this.status.setValue(value);
687      return this;
688    }
689
690    /**
691     * @return {@link #statusReason} (Captures the reason for the current state of the CommunicationRequest.)
692     */
693    public CodeableConcept getStatusReason() { 
694      if (this.statusReason == null)
695        if (Configuration.errorOnAutoCreate())
696          throw new Error("Attempt to auto-create CommunicationRequest.statusReason");
697        else if (Configuration.doAutoCreate())
698          this.statusReason = new CodeableConcept(); // cc
699      return this.statusReason;
700    }
701
702    public boolean hasStatusReason() { 
703      return this.statusReason != null && !this.statusReason.isEmpty();
704    }
705
706    /**
707     * @param value {@link #statusReason} (Captures the reason for the current state of the CommunicationRequest.)
708     */
709    public CommunicationRequest setStatusReason(CodeableConcept value) { 
710      this.statusReason = value;
711      return this;
712    }
713
714    /**
715     * @return {@link #intent} (Indicates the level of authority/intentionality associated with the CommunicationRequest and where the request fits into the workflow chain.). This is the underlying object with id, value and extensions. The accessor "getIntent" gives direct access to the value
716     */
717    public Enumeration<RequestIntent> getIntentElement() { 
718      if (this.intent == null)
719        if (Configuration.errorOnAutoCreate())
720          throw new Error("Attempt to auto-create CommunicationRequest.intent");
721        else if (Configuration.doAutoCreate())
722          this.intent = new Enumeration<RequestIntent>(new RequestIntentEnumFactory()); // bb
723      return this.intent;
724    }
725
726    public boolean hasIntentElement() { 
727      return this.intent != null && !this.intent.isEmpty();
728    }
729
730    public boolean hasIntent() { 
731      return this.intent != null && !this.intent.isEmpty();
732    }
733
734    /**
735     * @param value {@link #intent} (Indicates the level of authority/intentionality associated with the CommunicationRequest and where the request fits into the workflow chain.). This is the underlying object with id, value and extensions. The accessor "getIntent" gives direct access to the value
736     */
737    public CommunicationRequest setIntentElement(Enumeration<RequestIntent> value) { 
738      this.intent = value;
739      return this;
740    }
741
742    /**
743     * @return Indicates the level of authority/intentionality associated with the CommunicationRequest and where the request fits into the workflow chain.
744     */
745    public RequestIntent getIntent() { 
746      return this.intent == null ? null : this.intent.getValue();
747    }
748
749    /**
750     * @param value Indicates the level of authority/intentionality associated with the CommunicationRequest and where the request fits into the workflow chain.
751     */
752    public CommunicationRequest setIntent(RequestIntent value) { 
753        if (this.intent == null)
754          this.intent = new Enumeration<RequestIntent>(new RequestIntentEnumFactory());
755        this.intent.setValue(value);
756      return this;
757    }
758
759    /**
760     * @return {@link #category} (The type of message to be sent such as alert, notification, reminder, instruction, etc.)
761     */
762    public List<CodeableConcept> getCategory() { 
763      if (this.category == null)
764        this.category = new ArrayList<CodeableConcept>();
765      return this.category;
766    }
767
768    /**
769     * @return Returns a reference to <code>this</code> for easy method chaining
770     */
771    public CommunicationRequest setCategory(List<CodeableConcept> theCategory) { 
772      this.category = theCategory;
773      return this;
774    }
775
776    public boolean hasCategory() { 
777      if (this.category == null)
778        return false;
779      for (CodeableConcept item : this.category)
780        if (!item.isEmpty())
781          return true;
782      return false;
783    }
784
785    public CodeableConcept addCategory() { //3
786      CodeableConcept t = new CodeableConcept();
787      if (this.category == null)
788        this.category = new ArrayList<CodeableConcept>();
789      this.category.add(t);
790      return t;
791    }
792
793    public CommunicationRequest addCategory(CodeableConcept t) { //3
794      if (t == null)
795        return this;
796      if (this.category == null)
797        this.category = new ArrayList<CodeableConcept>();
798      this.category.add(t);
799      return this;
800    }
801
802    /**
803     * @return The first repetition of repeating field {@link #category}, creating it if it does not already exist {3}
804     */
805    public CodeableConcept getCategoryFirstRep() { 
806      if (getCategory().isEmpty()) {
807        addCategory();
808      }
809      return getCategory().get(0);
810    }
811
812    /**
813     * @return {@link #priority} (Characterizes how quickly the proposed act must be initiated. Includes concepts such as stat, urgent, routine.). This is the underlying object with id, value and extensions. The accessor "getPriority" gives direct access to the value
814     */
815    public Enumeration<RequestPriority> getPriorityElement() { 
816      if (this.priority == null)
817        if (Configuration.errorOnAutoCreate())
818          throw new Error("Attempt to auto-create CommunicationRequest.priority");
819        else if (Configuration.doAutoCreate())
820          this.priority = new Enumeration<RequestPriority>(new RequestPriorityEnumFactory()); // bb
821      return this.priority;
822    }
823
824    public boolean hasPriorityElement() { 
825      return this.priority != null && !this.priority.isEmpty();
826    }
827
828    public boolean hasPriority() { 
829      return this.priority != null && !this.priority.isEmpty();
830    }
831
832    /**
833     * @param value {@link #priority} (Characterizes how quickly the proposed act must be initiated. Includes concepts such as stat, urgent, routine.). This is the underlying object with id, value and extensions. The accessor "getPriority" gives direct access to the value
834     */
835    public CommunicationRequest setPriorityElement(Enumeration<RequestPriority> value) { 
836      this.priority = value;
837      return this;
838    }
839
840    /**
841     * @return Characterizes how quickly the proposed act must be initiated. Includes concepts such as stat, urgent, routine.
842     */
843    public RequestPriority getPriority() { 
844      return this.priority == null ? null : this.priority.getValue();
845    }
846
847    /**
848     * @param value Characterizes how quickly the proposed act must be initiated. Includes concepts such as stat, urgent, routine.
849     */
850    public CommunicationRequest setPriority(RequestPriority value) { 
851      if (value == null)
852        this.priority = null;
853      else {
854        if (this.priority == null)
855          this.priority = new Enumeration<RequestPriority>(new RequestPriorityEnumFactory());
856        this.priority.setValue(value);
857      }
858      return this;
859    }
860
861    /**
862     * @return {@link #doNotPerform} (If true indicates that the CommunicationRequest is asking for the specified action to *not* occur.). This is the underlying object with id, value and extensions. The accessor "getDoNotPerform" gives direct access to the value
863     */
864    public BooleanType getDoNotPerformElement() { 
865      if (this.doNotPerform == null)
866        if (Configuration.errorOnAutoCreate())
867          throw new Error("Attempt to auto-create CommunicationRequest.doNotPerform");
868        else if (Configuration.doAutoCreate())
869          this.doNotPerform = new BooleanType(); // bb
870      return this.doNotPerform;
871    }
872
873    public boolean hasDoNotPerformElement() { 
874      return this.doNotPerform != null && !this.doNotPerform.isEmpty();
875    }
876
877    public boolean hasDoNotPerform() { 
878      return this.doNotPerform != null && !this.doNotPerform.isEmpty();
879    }
880
881    /**
882     * @param value {@link #doNotPerform} (If true indicates that the CommunicationRequest is asking for the specified action to *not* occur.). This is the underlying object with id, value and extensions. The accessor "getDoNotPerform" gives direct access to the value
883     */
884    public CommunicationRequest setDoNotPerformElement(BooleanType value) { 
885      this.doNotPerform = value;
886      return this;
887    }
888
889    /**
890     * @return If true indicates that the CommunicationRequest is asking for the specified action to *not* occur.
891     */
892    public boolean getDoNotPerform() { 
893      return this.doNotPerform == null || this.doNotPerform.isEmpty() ? false : this.doNotPerform.getValue();
894    }
895
896    /**
897     * @param value If true indicates that the CommunicationRequest is asking for the specified action to *not* occur.
898     */
899    public CommunicationRequest setDoNotPerform(boolean value) { 
900        if (this.doNotPerform == null)
901          this.doNotPerform = new BooleanType();
902        this.doNotPerform.setValue(value);
903      return this;
904    }
905
906    /**
907     * @return {@link #medium} (A channel that was used for this communication (e.g. email, fax).)
908     */
909    public List<CodeableConcept> getMedium() { 
910      if (this.medium == null)
911        this.medium = new ArrayList<CodeableConcept>();
912      return this.medium;
913    }
914
915    /**
916     * @return Returns a reference to <code>this</code> for easy method chaining
917     */
918    public CommunicationRequest setMedium(List<CodeableConcept> theMedium) { 
919      this.medium = theMedium;
920      return this;
921    }
922
923    public boolean hasMedium() { 
924      if (this.medium == null)
925        return false;
926      for (CodeableConcept item : this.medium)
927        if (!item.isEmpty())
928          return true;
929      return false;
930    }
931
932    public CodeableConcept addMedium() { //3
933      CodeableConcept t = new CodeableConcept();
934      if (this.medium == null)
935        this.medium = new ArrayList<CodeableConcept>();
936      this.medium.add(t);
937      return t;
938    }
939
940    public CommunicationRequest addMedium(CodeableConcept t) { //3
941      if (t == null)
942        return this;
943      if (this.medium == null)
944        this.medium = new ArrayList<CodeableConcept>();
945      this.medium.add(t);
946      return this;
947    }
948
949    /**
950     * @return The first repetition of repeating field {@link #medium}, creating it if it does not already exist {3}
951     */
952    public CodeableConcept getMediumFirstRep() { 
953      if (getMedium().isEmpty()) {
954        addMedium();
955      }
956      return getMedium().get(0);
957    }
958
959    /**
960     * @return {@link #subject} (The patient or group that is the focus of this communication request.)
961     */
962    public Reference getSubject() { 
963      if (this.subject == null)
964        if (Configuration.errorOnAutoCreate())
965          throw new Error("Attempt to auto-create CommunicationRequest.subject");
966        else if (Configuration.doAutoCreate())
967          this.subject = new Reference(); // cc
968      return this.subject;
969    }
970
971    public boolean hasSubject() { 
972      return this.subject != null && !this.subject.isEmpty();
973    }
974
975    /**
976     * @param value {@link #subject} (The patient or group that is the focus of this communication request.)
977     */
978    public CommunicationRequest setSubject(Reference value) { 
979      this.subject = value;
980      return this;
981    }
982
983    /**
984     * @return {@link #about} (Other resources that pertain to this communication request and to which this communication request should be associated.)
985     */
986    public List<Reference> getAbout() { 
987      if (this.about == null)
988        this.about = new ArrayList<Reference>();
989      return this.about;
990    }
991
992    /**
993     * @return Returns a reference to <code>this</code> for easy method chaining
994     */
995    public CommunicationRequest setAbout(List<Reference> theAbout) { 
996      this.about = theAbout;
997      return this;
998    }
999
1000    public boolean hasAbout() { 
1001      if (this.about == null)
1002        return false;
1003      for (Reference item : this.about)
1004        if (!item.isEmpty())
1005          return true;
1006      return false;
1007    }
1008
1009    public Reference addAbout() { //3
1010      Reference t = new Reference();
1011      if (this.about == null)
1012        this.about = new ArrayList<Reference>();
1013      this.about.add(t);
1014      return t;
1015    }
1016
1017    public CommunicationRequest addAbout(Reference t) { //3
1018      if (t == null)
1019        return this;
1020      if (this.about == null)
1021        this.about = new ArrayList<Reference>();
1022      this.about.add(t);
1023      return this;
1024    }
1025
1026    /**
1027     * @return The first repetition of repeating field {@link #about}, creating it if it does not already exist {3}
1028     */
1029    public Reference getAboutFirstRep() { 
1030      if (getAbout().isEmpty()) {
1031        addAbout();
1032      }
1033      return getAbout().get(0);
1034    }
1035
1036    /**
1037     * @return {@link #encounter} (The Encounter during which this CommunicationRequest was created or to which the creation of this record is tightly associated.)
1038     */
1039    public Reference getEncounter() { 
1040      if (this.encounter == null)
1041        if (Configuration.errorOnAutoCreate())
1042          throw new Error("Attempt to auto-create CommunicationRequest.encounter");
1043        else if (Configuration.doAutoCreate())
1044          this.encounter = new Reference(); // cc
1045      return this.encounter;
1046    }
1047
1048    public boolean hasEncounter() { 
1049      return this.encounter != null && !this.encounter.isEmpty();
1050    }
1051
1052    /**
1053     * @param value {@link #encounter} (The Encounter during which this CommunicationRequest was created or to which the creation of this record is tightly associated.)
1054     */
1055    public CommunicationRequest setEncounter(Reference value) { 
1056      this.encounter = value;
1057      return this;
1058    }
1059
1060    /**
1061     * @return {@link #payload} (Text, attachment(s), or resource(s) to be communicated to the recipient.)
1062     */
1063    public List<CommunicationRequestPayloadComponent> getPayload() { 
1064      if (this.payload == null)
1065        this.payload = new ArrayList<CommunicationRequestPayloadComponent>();
1066      return this.payload;
1067    }
1068
1069    /**
1070     * @return Returns a reference to <code>this</code> for easy method chaining
1071     */
1072    public CommunicationRequest setPayload(List<CommunicationRequestPayloadComponent> thePayload) { 
1073      this.payload = thePayload;
1074      return this;
1075    }
1076
1077    public boolean hasPayload() { 
1078      if (this.payload == null)
1079        return false;
1080      for (CommunicationRequestPayloadComponent item : this.payload)
1081        if (!item.isEmpty())
1082          return true;
1083      return false;
1084    }
1085
1086    public CommunicationRequestPayloadComponent addPayload() { //3
1087      CommunicationRequestPayloadComponent t = new CommunicationRequestPayloadComponent();
1088      if (this.payload == null)
1089        this.payload = new ArrayList<CommunicationRequestPayloadComponent>();
1090      this.payload.add(t);
1091      return t;
1092    }
1093
1094    public CommunicationRequest addPayload(CommunicationRequestPayloadComponent t) { //3
1095      if (t == null)
1096        return this;
1097      if (this.payload == null)
1098        this.payload = new ArrayList<CommunicationRequestPayloadComponent>();
1099      this.payload.add(t);
1100      return this;
1101    }
1102
1103    /**
1104     * @return The first repetition of repeating field {@link #payload}, creating it if it does not already exist {3}
1105     */
1106    public CommunicationRequestPayloadComponent getPayloadFirstRep() { 
1107      if (getPayload().isEmpty()) {
1108        addPayload();
1109      }
1110      return getPayload().get(0);
1111    }
1112
1113    /**
1114     * @return {@link #occurrence} (The time when this communication is to occur.)
1115     */
1116    public DataType getOccurrence() { 
1117      return this.occurrence;
1118    }
1119
1120    /**
1121     * @return {@link #occurrence} (The time when this communication is to occur.)
1122     */
1123    public DateTimeType getOccurrenceDateTimeType() throws FHIRException { 
1124      if (this.occurrence == null)
1125        this.occurrence = new DateTimeType();
1126      if (!(this.occurrence instanceof DateTimeType))
1127        throw new FHIRException("Type mismatch: the type DateTimeType was expected, but "+this.occurrence.getClass().getName()+" was encountered");
1128      return (DateTimeType) this.occurrence;
1129    }
1130
1131    public boolean hasOccurrenceDateTimeType() { 
1132      return this != null && this.occurrence instanceof DateTimeType;
1133    }
1134
1135    /**
1136     * @return {@link #occurrence} (The time when this communication is to occur.)
1137     */
1138    public Period getOccurrencePeriod() throws FHIRException { 
1139      if (this.occurrence == null)
1140        this.occurrence = new Period();
1141      if (!(this.occurrence instanceof Period))
1142        throw new FHIRException("Type mismatch: the type Period was expected, but "+this.occurrence.getClass().getName()+" was encountered");
1143      return (Period) this.occurrence;
1144    }
1145
1146    public boolean hasOccurrencePeriod() { 
1147      return this != null && this.occurrence instanceof Period;
1148    }
1149
1150    public boolean hasOccurrence() { 
1151      return this.occurrence != null && !this.occurrence.isEmpty();
1152    }
1153
1154    /**
1155     * @param value {@link #occurrence} (The time when this communication is to occur.)
1156     */
1157    public CommunicationRequest setOccurrence(DataType value) { 
1158      if (value != null && !(value instanceof DateTimeType || value instanceof Period))
1159        throw new FHIRException("Not the right type for CommunicationRequest.occurrence[x]: "+value.fhirType());
1160      this.occurrence = value;
1161      return this;
1162    }
1163
1164    /**
1165     * @return {@link #authoredOn} (For draft requests, indicates the date of initial creation.  For requests with other statuses, indicates the date of activation.). This is the underlying object with id, value and extensions. The accessor "getAuthoredOn" gives direct access to the value
1166     */
1167    public DateTimeType getAuthoredOnElement() { 
1168      if (this.authoredOn == null)
1169        if (Configuration.errorOnAutoCreate())
1170          throw new Error("Attempt to auto-create CommunicationRequest.authoredOn");
1171        else if (Configuration.doAutoCreate())
1172          this.authoredOn = new DateTimeType(); // bb
1173      return this.authoredOn;
1174    }
1175
1176    public boolean hasAuthoredOnElement() { 
1177      return this.authoredOn != null && !this.authoredOn.isEmpty();
1178    }
1179
1180    public boolean hasAuthoredOn() { 
1181      return this.authoredOn != null && !this.authoredOn.isEmpty();
1182    }
1183
1184    /**
1185     * @param value {@link #authoredOn} (For draft requests, indicates the date of initial creation.  For requests with other statuses, indicates the date of activation.). This is the underlying object with id, value and extensions. The accessor "getAuthoredOn" gives direct access to the value
1186     */
1187    public CommunicationRequest setAuthoredOnElement(DateTimeType value) { 
1188      this.authoredOn = value;
1189      return this;
1190    }
1191
1192    /**
1193     * @return For draft requests, indicates the date of initial creation.  For requests with other statuses, indicates the date of activation.
1194     */
1195    public Date getAuthoredOn() { 
1196      return this.authoredOn == null ? null : this.authoredOn.getValue();
1197    }
1198
1199    /**
1200     * @param value For draft requests, indicates the date of initial creation.  For requests with other statuses, indicates the date of activation.
1201     */
1202    public CommunicationRequest setAuthoredOn(Date value) { 
1203      if (value == null)
1204        this.authoredOn = null;
1205      else {
1206        if (this.authoredOn == null)
1207          this.authoredOn = new DateTimeType();
1208        this.authoredOn.setValue(value);
1209      }
1210      return this;
1211    }
1212
1213    /**
1214     * @return {@link #requester} (The device, individual, or organization who asks for the information to be shared.)
1215     */
1216    public Reference getRequester() { 
1217      if (this.requester == null)
1218        if (Configuration.errorOnAutoCreate())
1219          throw new Error("Attempt to auto-create CommunicationRequest.requester");
1220        else if (Configuration.doAutoCreate())
1221          this.requester = new Reference(); // cc
1222      return this.requester;
1223    }
1224
1225    public boolean hasRequester() { 
1226      return this.requester != null && !this.requester.isEmpty();
1227    }
1228
1229    /**
1230     * @param value {@link #requester} (The device, individual, or organization who asks for the information to be shared.)
1231     */
1232    public CommunicationRequest setRequester(Reference value) { 
1233      this.requester = value;
1234      return this;
1235    }
1236
1237    /**
1238     * @return {@link #recipient} (The entity (e.g. person, organization, clinical information system, device, group, or care team) which is the intended target of the communication.)
1239     */
1240    public List<Reference> getRecipient() { 
1241      if (this.recipient == null)
1242        this.recipient = new ArrayList<Reference>();
1243      return this.recipient;
1244    }
1245
1246    /**
1247     * @return Returns a reference to <code>this</code> for easy method chaining
1248     */
1249    public CommunicationRequest setRecipient(List<Reference> theRecipient) { 
1250      this.recipient = theRecipient;
1251      return this;
1252    }
1253
1254    public boolean hasRecipient() { 
1255      if (this.recipient == null)
1256        return false;
1257      for (Reference item : this.recipient)
1258        if (!item.isEmpty())
1259          return true;
1260      return false;
1261    }
1262
1263    public Reference addRecipient() { //3
1264      Reference t = new Reference();
1265      if (this.recipient == null)
1266        this.recipient = new ArrayList<Reference>();
1267      this.recipient.add(t);
1268      return t;
1269    }
1270
1271    public CommunicationRequest addRecipient(Reference t) { //3
1272      if (t == null)
1273        return this;
1274      if (this.recipient == null)
1275        this.recipient = new ArrayList<Reference>();
1276      this.recipient.add(t);
1277      return this;
1278    }
1279
1280    /**
1281     * @return The first repetition of repeating field {@link #recipient}, creating it if it does not already exist {3}
1282     */
1283    public Reference getRecipientFirstRep() { 
1284      if (getRecipient().isEmpty()) {
1285        addRecipient();
1286      }
1287      return getRecipient().get(0);
1288    }
1289
1290    /**
1291     * @return {@link #informationProvider} (The entity (e.g. person, organization, clinical information system, or device) which is to be the source of the communication.)
1292     */
1293    public List<Reference> getInformationProvider() { 
1294      if (this.informationProvider == null)
1295        this.informationProvider = new ArrayList<Reference>();
1296      return this.informationProvider;
1297    }
1298
1299    /**
1300     * @return Returns a reference to <code>this</code> for easy method chaining
1301     */
1302    public CommunicationRequest setInformationProvider(List<Reference> theInformationProvider) { 
1303      this.informationProvider = theInformationProvider;
1304      return this;
1305    }
1306
1307    public boolean hasInformationProvider() { 
1308      if (this.informationProvider == null)
1309        return false;
1310      for (Reference item : this.informationProvider)
1311        if (!item.isEmpty())
1312          return true;
1313      return false;
1314    }
1315
1316    public Reference addInformationProvider() { //3
1317      Reference t = new Reference();
1318      if (this.informationProvider == null)
1319        this.informationProvider = new ArrayList<Reference>();
1320      this.informationProvider.add(t);
1321      return t;
1322    }
1323
1324    public CommunicationRequest addInformationProvider(Reference t) { //3
1325      if (t == null)
1326        return this;
1327      if (this.informationProvider == null)
1328        this.informationProvider = new ArrayList<Reference>();
1329      this.informationProvider.add(t);
1330      return this;
1331    }
1332
1333    /**
1334     * @return The first repetition of repeating field {@link #informationProvider}, creating it if it does not already exist {3}
1335     */
1336    public Reference getInformationProviderFirstRep() { 
1337      if (getInformationProvider().isEmpty()) {
1338        addInformationProvider();
1339      }
1340      return getInformationProvider().get(0);
1341    }
1342
1343    /**
1344     * @return {@link #reason} (Describes why the request is being made in coded or textual form.)
1345     */
1346    public List<CodeableReference> getReason() { 
1347      if (this.reason == null)
1348        this.reason = new ArrayList<CodeableReference>();
1349      return this.reason;
1350    }
1351
1352    /**
1353     * @return Returns a reference to <code>this</code> for easy method chaining
1354     */
1355    public CommunicationRequest setReason(List<CodeableReference> theReason) { 
1356      this.reason = theReason;
1357      return this;
1358    }
1359
1360    public boolean hasReason() { 
1361      if (this.reason == null)
1362        return false;
1363      for (CodeableReference item : this.reason)
1364        if (!item.isEmpty())
1365          return true;
1366      return false;
1367    }
1368
1369    public CodeableReference addReason() { //3
1370      CodeableReference t = new CodeableReference();
1371      if (this.reason == null)
1372        this.reason = new ArrayList<CodeableReference>();
1373      this.reason.add(t);
1374      return t;
1375    }
1376
1377    public CommunicationRequest addReason(CodeableReference t) { //3
1378      if (t == null)
1379        return this;
1380      if (this.reason == null)
1381        this.reason = new ArrayList<CodeableReference>();
1382      this.reason.add(t);
1383      return this;
1384    }
1385
1386    /**
1387     * @return The first repetition of repeating field {@link #reason}, creating it if it does not already exist {3}
1388     */
1389    public CodeableReference getReasonFirstRep() { 
1390      if (getReason().isEmpty()) {
1391        addReason();
1392      }
1393      return getReason().get(0);
1394    }
1395
1396    /**
1397     * @return {@link #note} (Comments made about the request by the requester, sender, recipient, subject or other participants.)
1398     */
1399    public List<Annotation> getNote() { 
1400      if (this.note == null)
1401        this.note = new ArrayList<Annotation>();
1402      return this.note;
1403    }
1404
1405    /**
1406     * @return Returns a reference to <code>this</code> for easy method chaining
1407     */
1408    public CommunicationRequest setNote(List<Annotation> theNote) { 
1409      this.note = theNote;
1410      return this;
1411    }
1412
1413    public boolean hasNote() { 
1414      if (this.note == null)
1415        return false;
1416      for (Annotation item : this.note)
1417        if (!item.isEmpty())
1418          return true;
1419      return false;
1420    }
1421
1422    public Annotation addNote() { //3
1423      Annotation t = new Annotation();
1424      if (this.note == null)
1425        this.note = new ArrayList<Annotation>();
1426      this.note.add(t);
1427      return t;
1428    }
1429
1430    public CommunicationRequest addNote(Annotation t) { //3
1431      if (t == null)
1432        return this;
1433      if (this.note == null)
1434        this.note = new ArrayList<Annotation>();
1435      this.note.add(t);
1436      return this;
1437    }
1438
1439    /**
1440     * @return The first repetition of repeating field {@link #note}, creating it if it does not already exist {3}
1441     */
1442    public Annotation getNoteFirstRep() { 
1443      if (getNote().isEmpty()) {
1444        addNote();
1445      }
1446      return getNote().get(0);
1447    }
1448
1449      protected void listChildren(List<Property> children) {
1450        super.listChildren(children);
1451        children.add(new Property("identifier", "Identifier", "Business identifiers assigned to this communication request 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));
1452        children.add(new Property("basedOn", "Reference(Any)", "A plan or proposal that is fulfilled in whole or in part by this request.", 0, java.lang.Integer.MAX_VALUE, basedOn));
1453        children.add(new Property("replaces", "Reference(CommunicationRequest)", "Completed or terminated request(s) whose function is taken by this new request.", 0, java.lang.Integer.MAX_VALUE, replaces));
1454        children.add(new Property("groupIdentifier", "Identifier", "A shared identifier common to multiple independent Request instances that were activated/authorized more or less simultaneously by a single author.  The presence of the same identifier on each request ties those requests together and may have business ramifications in terms of reporting of results, billing, etc.  E.g. a requisition number shared by a set of lab tests ordered together, or a prescription number shared by all meds ordered at one time.", 0, 1, groupIdentifier));
1455        children.add(new Property("status", "code", "The status of the proposal or order.", 0, 1, status));
1456        children.add(new Property("statusReason", "CodeableConcept", "Captures the reason for the current state of the CommunicationRequest.", 0, 1, statusReason));
1457        children.add(new Property("intent", "code", "Indicates the level of authority/intentionality associated with the CommunicationRequest and where the request fits into the workflow chain.", 0, 1, intent));
1458        children.add(new Property("category", "CodeableConcept", "The type of message to be sent such as alert, notification, reminder, instruction, etc.", 0, java.lang.Integer.MAX_VALUE, category));
1459        children.add(new Property("priority", "code", "Characterizes how quickly the proposed act must be initiated. Includes concepts such as stat, urgent, routine.", 0, 1, priority));
1460        children.add(new Property("doNotPerform", "boolean", "If true indicates that the CommunicationRequest is asking for the specified action to *not* occur.", 0, 1, doNotPerform));
1461        children.add(new Property("medium", "CodeableConcept", "A channel that was used for this communication (e.g. email, fax).", 0, java.lang.Integer.MAX_VALUE, medium));
1462        children.add(new Property("subject", "Reference(Patient|Group)", "The patient or group that is the focus of this communication request.", 0, 1, subject));
1463        children.add(new Property("about", "Reference(Any)", "Other resources that pertain to this communication request and to which this communication request should be associated.", 0, java.lang.Integer.MAX_VALUE, about));
1464        children.add(new Property("encounter", "Reference(Encounter)", "The Encounter during which this CommunicationRequest was created or to which the creation of this record is tightly associated.", 0, 1, encounter));
1465        children.add(new Property("payload", "", "Text, attachment(s), or resource(s) to be communicated to the recipient.", 0, java.lang.Integer.MAX_VALUE, payload));
1466        children.add(new Property("occurrence[x]", "dateTime|Period", "The time when this communication is to occur.", 0, 1, occurrence));
1467        children.add(new Property("authoredOn", "dateTime", "For draft requests, indicates the date of initial creation.  For requests with other statuses, indicates the date of activation.", 0, 1, authoredOn));
1468        children.add(new Property("requester", "Reference(Practitioner|PractitionerRole|Organization|Patient|RelatedPerson|Device)", "The device, individual, or organization who asks for the information to be shared.", 0, 1, requester));
1469        children.add(new Property("recipient", "Reference(Device|Organization|Patient|Practitioner|PractitionerRole|RelatedPerson|Group|CareTeam|HealthcareService|Endpoint)", "The entity (e.g. person, organization, clinical information system, device, group, or care team) which is the intended target of the communication.", 0, java.lang.Integer.MAX_VALUE, recipient));
1470        children.add(new Property("informationProvider", "Reference(Device|Organization|Patient|Practitioner|PractitionerRole|RelatedPerson|HealthcareService|Endpoint)", "The entity (e.g. person, organization, clinical information system, or device) which is to be the source of the communication.", 0, java.lang.Integer.MAX_VALUE, informationProvider));
1471        children.add(new Property("reason", "CodeableReference(Any)", "Describes why the request is being made in coded or textual form.", 0, java.lang.Integer.MAX_VALUE, reason));
1472        children.add(new Property("note", "Annotation", "Comments made about the request by the requester, sender, recipient, subject or other participants.", 0, java.lang.Integer.MAX_VALUE, note));
1473      }
1474
1475      @Override
1476      public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
1477        switch (_hash) {
1478        case -1618432855: /*identifier*/  return new Property("identifier", "Identifier", "Business identifiers assigned to this communication request 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);
1479        case -332612366: /*basedOn*/  return new Property("basedOn", "Reference(Any)", "A plan or proposal that is fulfilled in whole or in part by this request.", 0, java.lang.Integer.MAX_VALUE, basedOn);
1480        case -430332865: /*replaces*/  return new Property("replaces", "Reference(CommunicationRequest)", "Completed or terminated request(s) whose function is taken by this new request.", 0, java.lang.Integer.MAX_VALUE, replaces);
1481        case -445338488: /*groupIdentifier*/  return new Property("groupIdentifier", "Identifier", "A shared identifier common to multiple independent Request instances that were activated/authorized more or less simultaneously by a single author.  The presence of the same identifier on each request ties those requests together and may have business ramifications in terms of reporting of results, billing, etc.  E.g. a requisition number shared by a set of lab tests ordered together, or a prescription number shared by all meds ordered at one time.", 0, 1, groupIdentifier);
1482        case -892481550: /*status*/  return new Property("status", "code", "The status of the proposal or order.", 0, 1, status);
1483        case 2051346646: /*statusReason*/  return new Property("statusReason", "CodeableConcept", "Captures the reason for the current state of the CommunicationRequest.", 0, 1, statusReason);
1484        case -1183762788: /*intent*/  return new Property("intent", "code", "Indicates the level of authority/intentionality associated with the CommunicationRequest and where the request fits into the workflow chain.", 0, 1, intent);
1485        case 50511102: /*category*/  return new Property("category", "CodeableConcept", "The type of message to be sent such as alert, notification, reminder, instruction, etc.", 0, java.lang.Integer.MAX_VALUE, category);
1486        case -1165461084: /*priority*/  return new Property("priority", "code", "Characterizes how quickly the proposed act must be initiated. Includes concepts such as stat, urgent, routine.", 0, 1, priority);
1487        case -1788508167: /*doNotPerform*/  return new Property("doNotPerform", "boolean", "If true indicates that the CommunicationRequest is asking for the specified action to *not* occur.", 0, 1, doNotPerform);
1488        case -1078030475: /*medium*/  return new Property("medium", "CodeableConcept", "A channel that was used for this communication (e.g. email, fax).", 0, java.lang.Integer.MAX_VALUE, medium);
1489        case -1867885268: /*subject*/  return new Property("subject", "Reference(Patient|Group)", "The patient or group that is the focus of this communication request.", 0, 1, subject);
1490        case 92611469: /*about*/  return new Property("about", "Reference(Any)", "Other resources that pertain to this communication request and to which this communication request should be associated.", 0, java.lang.Integer.MAX_VALUE, about);
1491        case 1524132147: /*encounter*/  return new Property("encounter", "Reference(Encounter)", "The Encounter during which this CommunicationRequest was created or to which the creation of this record is tightly associated.", 0, 1, encounter);
1492        case -786701938: /*payload*/  return new Property("payload", "", "Text, attachment(s), or resource(s) to be communicated to the recipient.", 0, java.lang.Integer.MAX_VALUE, payload);
1493        case -2022646513: /*occurrence[x]*/  return new Property("occurrence[x]", "dateTime|Period", "The time when this communication is to occur.", 0, 1, occurrence);
1494        case 1687874001: /*occurrence*/  return new Property("occurrence[x]", "dateTime|Period", "The time when this communication is to occur.", 0, 1, occurrence);
1495        case -298443636: /*occurrenceDateTime*/  return new Property("occurrence[x]", "dateTime", "The time when this communication is to occur.", 0, 1, occurrence);
1496        case 1397156594: /*occurrencePeriod*/  return new Property("occurrence[x]", "Period", "The time when this communication is to occur.", 0, 1, occurrence);
1497        case -1500852503: /*authoredOn*/  return new Property("authoredOn", "dateTime", "For draft requests, indicates the date of initial creation.  For requests with other statuses, indicates the date of activation.", 0, 1, authoredOn);
1498        case 693933948: /*requester*/  return new Property("requester", "Reference(Practitioner|PractitionerRole|Organization|Patient|RelatedPerson|Device)", "The device, individual, or organization who asks for the information to be shared.", 0, 1, requester);
1499        case 820081177: /*recipient*/  return new Property("recipient", "Reference(Device|Organization|Patient|Practitioner|PractitionerRole|RelatedPerson|Group|CareTeam|HealthcareService|Endpoint)", "The entity (e.g. person, organization, clinical information system, device, group, or care team) which is the intended target of the communication.", 0, java.lang.Integer.MAX_VALUE, recipient);
1500        case 1255338813: /*informationProvider*/  return new Property("informationProvider", "Reference(Device|Organization|Patient|Practitioner|PractitionerRole|RelatedPerson|HealthcareService|Endpoint)", "The entity (e.g. person, organization, clinical information system, or device) which is to be the source of the communication.", 0, java.lang.Integer.MAX_VALUE, informationProvider);
1501        case -934964668: /*reason*/  return new Property("reason", "CodeableReference(Any)", "Describes why the request is being made in coded or textual form.", 0, java.lang.Integer.MAX_VALUE, reason);
1502        case 3387378: /*note*/  return new Property("note", "Annotation", "Comments made about the request by the requester, sender, recipient, subject or other participants.", 0, java.lang.Integer.MAX_VALUE, note);
1503        default: return super.getNamedProperty(_hash, _name, _checkValid);
1504        }
1505
1506      }
1507
1508      @Override
1509      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
1510        switch (hash) {
1511        case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier
1512        case -332612366: /*basedOn*/ return this.basedOn == null ? new Base[0] : this.basedOn.toArray(new Base[this.basedOn.size()]); // Reference
1513        case -430332865: /*replaces*/ return this.replaces == null ? new Base[0] : this.replaces.toArray(new Base[this.replaces.size()]); // Reference
1514        case -445338488: /*groupIdentifier*/ return this.groupIdentifier == null ? new Base[0] : new Base[] {this.groupIdentifier}; // Identifier
1515        case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<RequestStatus>
1516        case 2051346646: /*statusReason*/ return this.statusReason == null ? new Base[0] : new Base[] {this.statusReason}; // CodeableConcept
1517        case -1183762788: /*intent*/ return this.intent == null ? new Base[0] : new Base[] {this.intent}; // Enumeration<RequestIntent>
1518        case 50511102: /*category*/ return this.category == null ? new Base[0] : this.category.toArray(new Base[this.category.size()]); // CodeableConcept
1519        case -1165461084: /*priority*/ return this.priority == null ? new Base[0] : new Base[] {this.priority}; // Enumeration<RequestPriority>
1520        case -1788508167: /*doNotPerform*/ return this.doNotPerform == null ? new Base[0] : new Base[] {this.doNotPerform}; // BooleanType
1521        case -1078030475: /*medium*/ return this.medium == null ? new Base[0] : this.medium.toArray(new Base[this.medium.size()]); // CodeableConcept
1522        case -1867885268: /*subject*/ return this.subject == null ? new Base[0] : new Base[] {this.subject}; // Reference
1523        case 92611469: /*about*/ return this.about == null ? new Base[0] : this.about.toArray(new Base[this.about.size()]); // Reference
1524        case 1524132147: /*encounter*/ return this.encounter == null ? new Base[0] : new Base[] {this.encounter}; // Reference
1525        case -786701938: /*payload*/ return this.payload == null ? new Base[0] : this.payload.toArray(new Base[this.payload.size()]); // CommunicationRequestPayloadComponent
1526        case 1687874001: /*occurrence*/ return this.occurrence == null ? new Base[0] : new Base[] {this.occurrence}; // DataType
1527        case -1500852503: /*authoredOn*/ return this.authoredOn == null ? new Base[0] : new Base[] {this.authoredOn}; // DateTimeType
1528        case 693933948: /*requester*/ return this.requester == null ? new Base[0] : new Base[] {this.requester}; // Reference
1529        case 820081177: /*recipient*/ return this.recipient == null ? new Base[0] : this.recipient.toArray(new Base[this.recipient.size()]); // Reference
1530        case 1255338813: /*informationProvider*/ return this.informationProvider == null ? new Base[0] : this.informationProvider.toArray(new Base[this.informationProvider.size()]); // Reference
1531        case -934964668: /*reason*/ return this.reason == null ? new Base[0] : this.reason.toArray(new Base[this.reason.size()]); // CodeableReference
1532        case 3387378: /*note*/ return this.note == null ? new Base[0] : this.note.toArray(new Base[this.note.size()]); // Annotation
1533        default: return super.getProperty(hash, name, checkValid);
1534        }
1535
1536      }
1537
1538      @Override
1539      public Base setProperty(int hash, String name, Base value) throws FHIRException {
1540        switch (hash) {
1541        case -1618432855: // identifier
1542          this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier
1543          return value;
1544        case -332612366: // basedOn
1545          this.getBasedOn().add(TypeConvertor.castToReference(value)); // Reference
1546          return value;
1547        case -430332865: // replaces
1548          this.getReplaces().add(TypeConvertor.castToReference(value)); // Reference
1549          return value;
1550        case -445338488: // groupIdentifier
1551          this.groupIdentifier = TypeConvertor.castToIdentifier(value); // Identifier
1552          return value;
1553        case -892481550: // status
1554          value = new RequestStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
1555          this.status = (Enumeration) value; // Enumeration<RequestStatus>
1556          return value;
1557        case 2051346646: // statusReason
1558          this.statusReason = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1559          return value;
1560        case -1183762788: // intent
1561          value = new RequestIntentEnumFactory().fromType(TypeConvertor.castToCode(value));
1562          this.intent = (Enumeration) value; // Enumeration<RequestIntent>
1563          return value;
1564        case 50511102: // category
1565          this.getCategory().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept
1566          return value;
1567        case -1165461084: // priority
1568          value = new RequestPriorityEnumFactory().fromType(TypeConvertor.castToCode(value));
1569          this.priority = (Enumeration) value; // Enumeration<RequestPriority>
1570          return value;
1571        case -1788508167: // doNotPerform
1572          this.doNotPerform = TypeConvertor.castToBoolean(value); // BooleanType
1573          return value;
1574        case -1078030475: // medium
1575          this.getMedium().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept
1576          return value;
1577        case -1867885268: // subject
1578          this.subject = TypeConvertor.castToReference(value); // Reference
1579          return value;
1580        case 92611469: // about
1581          this.getAbout().add(TypeConvertor.castToReference(value)); // Reference
1582          return value;
1583        case 1524132147: // encounter
1584          this.encounter = TypeConvertor.castToReference(value); // Reference
1585          return value;
1586        case -786701938: // payload
1587          this.getPayload().add((CommunicationRequestPayloadComponent) value); // CommunicationRequestPayloadComponent
1588          return value;
1589        case 1687874001: // occurrence
1590          this.occurrence = TypeConvertor.castToType(value); // DataType
1591          return value;
1592        case -1500852503: // authoredOn
1593          this.authoredOn = TypeConvertor.castToDateTime(value); // DateTimeType
1594          return value;
1595        case 693933948: // requester
1596          this.requester = TypeConvertor.castToReference(value); // Reference
1597          return value;
1598        case 820081177: // recipient
1599          this.getRecipient().add(TypeConvertor.castToReference(value)); // Reference
1600          return value;
1601        case 1255338813: // informationProvider
1602          this.getInformationProvider().add(TypeConvertor.castToReference(value)); // Reference
1603          return value;
1604        case -934964668: // reason
1605          this.getReason().add(TypeConvertor.castToCodeableReference(value)); // CodeableReference
1606          return value;
1607        case 3387378: // note
1608          this.getNote().add(TypeConvertor.castToAnnotation(value)); // Annotation
1609          return value;
1610        default: return super.setProperty(hash, name, value);
1611        }
1612
1613      }
1614
1615      @Override
1616      public Base setProperty(String name, Base value) throws FHIRException {
1617        if (name.equals("identifier")) {
1618          this.getIdentifier().add(TypeConvertor.castToIdentifier(value));
1619        } else if (name.equals("basedOn")) {
1620          this.getBasedOn().add(TypeConvertor.castToReference(value));
1621        } else if (name.equals("replaces")) {
1622          this.getReplaces().add(TypeConvertor.castToReference(value));
1623        } else if (name.equals("groupIdentifier")) {
1624          this.groupIdentifier = TypeConvertor.castToIdentifier(value); // Identifier
1625        } else if (name.equals("status")) {
1626          value = new RequestStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
1627          this.status = (Enumeration) value; // Enumeration<RequestStatus>
1628        } else if (name.equals("statusReason")) {
1629          this.statusReason = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1630        } else if (name.equals("intent")) {
1631          value = new RequestIntentEnumFactory().fromType(TypeConvertor.castToCode(value));
1632          this.intent = (Enumeration) value; // Enumeration<RequestIntent>
1633        } else if (name.equals("category")) {
1634          this.getCategory().add(TypeConvertor.castToCodeableConcept(value));
1635        } else if (name.equals("priority")) {
1636          value = new RequestPriorityEnumFactory().fromType(TypeConvertor.castToCode(value));
1637          this.priority = (Enumeration) value; // Enumeration<RequestPriority>
1638        } else if (name.equals("doNotPerform")) {
1639          this.doNotPerform = TypeConvertor.castToBoolean(value); // BooleanType
1640        } else if (name.equals("medium")) {
1641          this.getMedium().add(TypeConvertor.castToCodeableConcept(value));
1642        } else if (name.equals("subject")) {
1643          this.subject = TypeConvertor.castToReference(value); // Reference
1644        } else if (name.equals("about")) {
1645          this.getAbout().add(TypeConvertor.castToReference(value));
1646        } else if (name.equals("encounter")) {
1647          this.encounter = TypeConvertor.castToReference(value); // Reference
1648        } else if (name.equals("payload")) {
1649          this.getPayload().add((CommunicationRequestPayloadComponent) value);
1650        } else if (name.equals("occurrence[x]")) {
1651          this.occurrence = TypeConvertor.castToType(value); // DataType
1652        } else if (name.equals("authoredOn")) {
1653          this.authoredOn = TypeConvertor.castToDateTime(value); // DateTimeType
1654        } else if (name.equals("requester")) {
1655          this.requester = TypeConvertor.castToReference(value); // Reference
1656        } else if (name.equals("recipient")) {
1657          this.getRecipient().add(TypeConvertor.castToReference(value));
1658        } else if (name.equals("informationProvider")) {
1659          this.getInformationProvider().add(TypeConvertor.castToReference(value));
1660        } else if (name.equals("reason")) {
1661          this.getReason().add(TypeConvertor.castToCodeableReference(value));
1662        } else if (name.equals("note")) {
1663          this.getNote().add(TypeConvertor.castToAnnotation(value));
1664        } else
1665          return super.setProperty(name, value);
1666        return value;
1667      }
1668
1669  @Override
1670  public void removeChild(String name, Base value) throws FHIRException {
1671        if (name.equals("identifier")) {
1672          this.getIdentifier().remove(value);
1673        } else if (name.equals("basedOn")) {
1674          this.getBasedOn().remove(value);
1675        } else if (name.equals("replaces")) {
1676          this.getReplaces().remove(value);
1677        } else if (name.equals("groupIdentifier")) {
1678          this.groupIdentifier = null;
1679        } else if (name.equals("status")) {
1680          value = new RequestStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
1681          this.status = (Enumeration) value; // Enumeration<RequestStatus>
1682        } else if (name.equals("statusReason")) {
1683          this.statusReason = null;
1684        } else if (name.equals("intent")) {
1685          value = new RequestIntentEnumFactory().fromType(TypeConvertor.castToCode(value));
1686          this.intent = (Enumeration) value; // Enumeration<RequestIntent>
1687        } else if (name.equals("category")) {
1688          this.getCategory().remove(value);
1689        } else if (name.equals("priority")) {
1690          value = new RequestPriorityEnumFactory().fromType(TypeConvertor.castToCode(value));
1691          this.priority = (Enumeration) value; // Enumeration<RequestPriority>
1692        } else if (name.equals("doNotPerform")) {
1693          this.doNotPerform = null;
1694        } else if (name.equals("medium")) {
1695          this.getMedium().remove(value);
1696        } else if (name.equals("subject")) {
1697          this.subject = null;
1698        } else if (name.equals("about")) {
1699          this.getAbout().remove(value);
1700        } else if (name.equals("encounter")) {
1701          this.encounter = null;
1702        } else if (name.equals("payload")) {
1703          this.getPayload().remove((CommunicationRequestPayloadComponent) value);
1704        } else if (name.equals("occurrence[x]")) {
1705          this.occurrence = null;
1706        } else if (name.equals("authoredOn")) {
1707          this.authoredOn = null;
1708        } else if (name.equals("requester")) {
1709          this.requester = null;
1710        } else if (name.equals("recipient")) {
1711          this.getRecipient().remove(value);
1712        } else if (name.equals("informationProvider")) {
1713          this.getInformationProvider().remove(value);
1714        } else if (name.equals("reason")) {
1715          this.getReason().remove(value);
1716        } else if (name.equals("note")) {
1717          this.getNote().remove(value);
1718        } else
1719          super.removeChild(name, value);
1720        
1721      }
1722
1723      @Override
1724      public Base makeProperty(int hash, String name) throws FHIRException {
1725        switch (hash) {
1726        case -1618432855:  return addIdentifier(); 
1727        case -332612366:  return addBasedOn(); 
1728        case -430332865:  return addReplaces(); 
1729        case -445338488:  return getGroupIdentifier();
1730        case -892481550:  return getStatusElement();
1731        case 2051346646:  return getStatusReason();
1732        case -1183762788:  return getIntentElement();
1733        case 50511102:  return addCategory(); 
1734        case -1165461084:  return getPriorityElement();
1735        case -1788508167:  return getDoNotPerformElement();
1736        case -1078030475:  return addMedium(); 
1737        case -1867885268:  return getSubject();
1738        case 92611469:  return addAbout(); 
1739        case 1524132147:  return getEncounter();
1740        case -786701938:  return addPayload(); 
1741        case -2022646513:  return getOccurrence();
1742        case 1687874001:  return getOccurrence();
1743        case -1500852503:  return getAuthoredOnElement();
1744        case 693933948:  return getRequester();
1745        case 820081177:  return addRecipient(); 
1746        case 1255338813:  return addInformationProvider(); 
1747        case -934964668:  return addReason(); 
1748        case 3387378:  return addNote(); 
1749        default: return super.makeProperty(hash, name);
1750        }
1751
1752      }
1753
1754      @Override
1755      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
1756        switch (hash) {
1757        case -1618432855: /*identifier*/ return new String[] {"Identifier"};
1758        case -332612366: /*basedOn*/ return new String[] {"Reference"};
1759        case -430332865: /*replaces*/ return new String[] {"Reference"};
1760        case -445338488: /*groupIdentifier*/ return new String[] {"Identifier"};
1761        case -892481550: /*status*/ return new String[] {"code"};
1762        case 2051346646: /*statusReason*/ return new String[] {"CodeableConcept"};
1763        case -1183762788: /*intent*/ return new String[] {"code"};
1764        case 50511102: /*category*/ return new String[] {"CodeableConcept"};
1765        case -1165461084: /*priority*/ return new String[] {"code"};
1766        case -1788508167: /*doNotPerform*/ return new String[] {"boolean"};
1767        case -1078030475: /*medium*/ return new String[] {"CodeableConcept"};
1768        case -1867885268: /*subject*/ return new String[] {"Reference"};
1769        case 92611469: /*about*/ return new String[] {"Reference"};
1770        case 1524132147: /*encounter*/ return new String[] {"Reference"};
1771        case -786701938: /*payload*/ return new String[] {};
1772        case 1687874001: /*occurrence*/ return new String[] {"dateTime", "Period"};
1773        case -1500852503: /*authoredOn*/ return new String[] {"dateTime"};
1774        case 693933948: /*requester*/ return new String[] {"Reference"};
1775        case 820081177: /*recipient*/ return new String[] {"Reference"};
1776        case 1255338813: /*informationProvider*/ return new String[] {"Reference"};
1777        case -934964668: /*reason*/ return new String[] {"CodeableReference"};
1778        case 3387378: /*note*/ return new String[] {"Annotation"};
1779        default: return super.getTypesForProperty(hash, name);
1780        }
1781
1782      }
1783
1784      @Override
1785      public Base addChild(String name) throws FHIRException {
1786        if (name.equals("identifier")) {
1787          return addIdentifier();
1788        }
1789        else if (name.equals("basedOn")) {
1790          return addBasedOn();
1791        }
1792        else if (name.equals("replaces")) {
1793          return addReplaces();
1794        }
1795        else if (name.equals("groupIdentifier")) {
1796          this.groupIdentifier = new Identifier();
1797          return this.groupIdentifier;
1798        }
1799        else if (name.equals("status")) {
1800          throw new FHIRException("Cannot call addChild on a singleton property CommunicationRequest.status");
1801        }
1802        else if (name.equals("statusReason")) {
1803          this.statusReason = new CodeableConcept();
1804          return this.statusReason;
1805        }
1806        else if (name.equals("intent")) {
1807          throw new FHIRException("Cannot call addChild on a singleton property CommunicationRequest.intent");
1808        }
1809        else if (name.equals("category")) {
1810          return addCategory();
1811        }
1812        else if (name.equals("priority")) {
1813          throw new FHIRException("Cannot call addChild on a singleton property CommunicationRequest.priority");
1814        }
1815        else if (name.equals("doNotPerform")) {
1816          throw new FHIRException("Cannot call addChild on a singleton property CommunicationRequest.doNotPerform");
1817        }
1818        else if (name.equals("medium")) {
1819          return addMedium();
1820        }
1821        else if (name.equals("subject")) {
1822          this.subject = new Reference();
1823          return this.subject;
1824        }
1825        else if (name.equals("about")) {
1826          return addAbout();
1827        }
1828        else if (name.equals("encounter")) {
1829          this.encounter = new Reference();
1830          return this.encounter;
1831        }
1832        else if (name.equals("payload")) {
1833          return addPayload();
1834        }
1835        else if (name.equals("occurrenceDateTime")) {
1836          this.occurrence = new DateTimeType();
1837          return this.occurrence;
1838        }
1839        else if (name.equals("occurrencePeriod")) {
1840          this.occurrence = new Period();
1841          return this.occurrence;
1842        }
1843        else if (name.equals("authoredOn")) {
1844          throw new FHIRException("Cannot call addChild on a singleton property CommunicationRequest.authoredOn");
1845        }
1846        else if (name.equals("requester")) {
1847          this.requester = new Reference();
1848          return this.requester;
1849        }
1850        else if (name.equals("recipient")) {
1851          return addRecipient();
1852        }
1853        else if (name.equals("informationProvider")) {
1854          return addInformationProvider();
1855        }
1856        else if (name.equals("reason")) {
1857          return addReason();
1858        }
1859        else if (name.equals("note")) {
1860          return addNote();
1861        }
1862        else
1863          return super.addChild(name);
1864      }
1865
1866  public String fhirType() {
1867    return "CommunicationRequest";
1868
1869  }
1870
1871      public CommunicationRequest copy() {
1872        CommunicationRequest dst = new CommunicationRequest();
1873        copyValues(dst);
1874        return dst;
1875      }
1876
1877      public void copyValues(CommunicationRequest dst) {
1878        super.copyValues(dst);
1879        if (identifier != null) {
1880          dst.identifier = new ArrayList<Identifier>();
1881          for (Identifier i : identifier)
1882            dst.identifier.add(i.copy());
1883        };
1884        if (basedOn != null) {
1885          dst.basedOn = new ArrayList<Reference>();
1886          for (Reference i : basedOn)
1887            dst.basedOn.add(i.copy());
1888        };
1889        if (replaces != null) {
1890          dst.replaces = new ArrayList<Reference>();
1891          for (Reference i : replaces)
1892            dst.replaces.add(i.copy());
1893        };
1894        dst.groupIdentifier = groupIdentifier == null ? null : groupIdentifier.copy();
1895        dst.status = status == null ? null : status.copy();
1896        dst.statusReason = statusReason == null ? null : statusReason.copy();
1897        dst.intent = intent == null ? null : intent.copy();
1898        if (category != null) {
1899          dst.category = new ArrayList<CodeableConcept>();
1900          for (CodeableConcept i : category)
1901            dst.category.add(i.copy());
1902        };
1903        dst.priority = priority == null ? null : priority.copy();
1904        dst.doNotPerform = doNotPerform == null ? null : doNotPerform.copy();
1905        if (medium != null) {
1906          dst.medium = new ArrayList<CodeableConcept>();
1907          for (CodeableConcept i : medium)
1908            dst.medium.add(i.copy());
1909        };
1910        dst.subject = subject == null ? null : subject.copy();
1911        if (about != null) {
1912          dst.about = new ArrayList<Reference>();
1913          for (Reference i : about)
1914            dst.about.add(i.copy());
1915        };
1916        dst.encounter = encounter == null ? null : encounter.copy();
1917        if (payload != null) {
1918          dst.payload = new ArrayList<CommunicationRequestPayloadComponent>();
1919          for (CommunicationRequestPayloadComponent i : payload)
1920            dst.payload.add(i.copy());
1921        };
1922        dst.occurrence = occurrence == null ? null : occurrence.copy();
1923        dst.authoredOn = authoredOn == null ? null : authoredOn.copy();
1924        dst.requester = requester == null ? null : requester.copy();
1925        if (recipient != null) {
1926          dst.recipient = new ArrayList<Reference>();
1927          for (Reference i : recipient)
1928            dst.recipient.add(i.copy());
1929        };
1930        if (informationProvider != null) {
1931          dst.informationProvider = new ArrayList<Reference>();
1932          for (Reference i : informationProvider)
1933            dst.informationProvider.add(i.copy());
1934        };
1935        if (reason != null) {
1936          dst.reason = new ArrayList<CodeableReference>();
1937          for (CodeableReference i : reason)
1938            dst.reason.add(i.copy());
1939        };
1940        if (note != null) {
1941          dst.note = new ArrayList<Annotation>();
1942          for (Annotation i : note)
1943            dst.note.add(i.copy());
1944        };
1945      }
1946
1947      protected CommunicationRequest typedCopy() {
1948        return copy();
1949      }
1950
1951      @Override
1952      public boolean equalsDeep(Base other_) {
1953        if (!super.equalsDeep(other_))
1954          return false;
1955        if (!(other_ instanceof CommunicationRequest))
1956          return false;
1957        CommunicationRequest o = (CommunicationRequest) other_;
1958        return compareDeep(identifier, o.identifier, true) && compareDeep(basedOn, o.basedOn, true) && compareDeep(replaces, o.replaces, true)
1959           && compareDeep(groupIdentifier, o.groupIdentifier, true) && compareDeep(status, o.status, true)
1960           && compareDeep(statusReason, o.statusReason, true) && compareDeep(intent, o.intent, true) && compareDeep(category, o.category, true)
1961           && compareDeep(priority, o.priority, true) && compareDeep(doNotPerform, o.doNotPerform, true) && compareDeep(medium, o.medium, true)
1962           && compareDeep(subject, o.subject, true) && compareDeep(about, o.about, true) && compareDeep(encounter, o.encounter, true)
1963           && compareDeep(payload, o.payload, true) && compareDeep(occurrence, o.occurrence, true) && compareDeep(authoredOn, o.authoredOn, true)
1964           && compareDeep(requester, o.requester, true) && compareDeep(recipient, o.recipient, true) && compareDeep(informationProvider, o.informationProvider, true)
1965           && compareDeep(reason, o.reason, true) && compareDeep(note, o.note, true);
1966      }
1967
1968      @Override
1969      public boolean equalsShallow(Base other_) {
1970        if (!super.equalsShallow(other_))
1971          return false;
1972        if (!(other_ instanceof CommunicationRequest))
1973          return false;
1974        CommunicationRequest o = (CommunicationRequest) other_;
1975        return compareValues(status, o.status, true) && compareValues(intent, o.intent, true) && compareValues(priority, o.priority, true)
1976           && compareValues(doNotPerform, o.doNotPerform, true) && compareValues(authoredOn, o.authoredOn, true)
1977          ;
1978      }
1979
1980      public boolean isEmpty() {
1981        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, basedOn, replaces
1982          , groupIdentifier, status, statusReason, intent, category, priority, doNotPerform
1983          , medium, subject, about, encounter, payload, occurrence, authoredOn, requester
1984          , recipient, informationProvider, reason, note);
1985      }
1986
1987  @Override
1988  public ResourceType getResourceType() {
1989    return ResourceType.CommunicationRequest;
1990   }
1991
1992 /**
1993   * Search parameter: <b>authored</b>
1994   * <p>
1995   * Description: <b>When request transitioned to being actionable</b><br>
1996   * Type: <b>date</b><br>
1997   * Path: <b>CommunicationRequest.authoredOn</b><br>
1998   * </p>
1999   */
2000  @SearchParamDefinition(name="authored", path="CommunicationRequest.authoredOn", description="When request transitioned to being actionable", type="date" )
2001  public static final String SP_AUTHORED = "authored";
2002 /**
2003   * <b>Fluent Client</b> search parameter constant for <b>authored</b>
2004   * <p>
2005   * Description: <b>When request transitioned to being actionable</b><br>
2006   * Type: <b>date</b><br>
2007   * Path: <b>CommunicationRequest.authoredOn</b><br>
2008   * </p>
2009   */
2010  public static final ca.uhn.fhir.rest.gclient.DateClientParam AUTHORED = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_AUTHORED);
2011
2012 /**
2013   * Search parameter: <b>based-on</b>
2014   * <p>
2015   * Description: <b>Fulfills plan or proposal</b><br>
2016   * Type: <b>reference</b><br>
2017   * Path: <b>CommunicationRequest.basedOn</b><br>
2018   * </p>
2019   */
2020  @SearchParamDefinition(name="based-on", path="CommunicationRequest.basedOn", description="Fulfills plan or proposal", type="reference", target={Account.class, ActivityDefinition.class, ActorDefinition.class, AdministrableProductDefinition.class, AdverseEvent.class, AllergyIntolerance.class, Appointment.class, AppointmentResponse.class, ArtifactAssessment.class, AuditEvent.class, Basic.class, Binary.class, BiologicallyDerivedProduct.class, BiologicallyDerivedProductDispense.class, BodyStructure.class, Bundle.class, CapabilityStatement.class, CarePlan.class, CareTeam.class, ChargeItem.class, ChargeItemDefinition.class, Citation.class, Claim.class, ClaimResponse.class, ClinicalImpression.class, ClinicalUseDefinition.class, CodeSystem.class, Communication.class, CommunicationRequest.class, CompartmentDefinition.class, Composition.class, ConceptMap.class, Condition.class, ConditionDefinition.class, Consent.class, Contract.class, Coverage.class, CoverageEligibilityRequest.class, CoverageEligibilityResponse.class, DetectedIssue.class, Device.class, DeviceAssociation.class, DeviceDefinition.class, DeviceDispense.class, DeviceMetric.class, DeviceRequest.class, DeviceUsage.class, DiagnosticReport.class, DocumentReference.class, Encounter.class, EncounterHistory.class, Endpoint.class, EnrollmentRequest.class, EnrollmentResponse.class, EpisodeOfCare.class, EventDefinition.class, Evidence.class, EvidenceReport.class, EvidenceVariable.class, ExampleScenario.class, ExplanationOfBenefit.class, FamilyMemberHistory.class, Flag.class, FormularyItem.class, GenomicStudy.class, Goal.class, GraphDefinition.class, Group.class, GuidanceResponse.class, HealthcareService.class, ImagingSelection.class, ImagingStudy.class, Immunization.class, ImmunizationEvaluation.class, ImmunizationRecommendation.class, ImplementationGuide.class, Ingredient.class, InsurancePlan.class, InventoryItem.class, InventoryReport.class, Invoice.class, Library.class, Linkage.class, ListResource.class, Location.class, ManufacturedItemDefinition.class, Measure.class, MeasureReport.class, Medication.class, MedicationAdministration.class, MedicationDispense.class, MedicationKnowledge.class, MedicationRequest.class, MedicationStatement.class, MedicinalProductDefinition.class, MessageDefinition.class, MessageHeader.class, MolecularSequence.class, NamingSystem.class, NutritionIntake.class, NutritionOrder.class, NutritionProduct.class, Observation.class, ObservationDefinition.class, OperationDefinition.class, OperationOutcome.class, Organization.class, OrganizationAffiliation.class, PackagedProductDefinition.class, Parameters.class, Patient.class, PaymentNotice.class, PaymentReconciliation.class, Permission.class, Person.class, PlanDefinition.class, Practitioner.class, PractitionerRole.class, Procedure.class, Provenance.class, Questionnaire.class, QuestionnaireResponse.class, RegulatedAuthorization.class, RelatedPerson.class, RequestOrchestration.class, Requirements.class, ResearchStudy.class, ResearchSubject.class, RiskAssessment.class, Schedule.class, SearchParameter.class, ServiceRequest.class, Slot.class, Specimen.class, SpecimenDefinition.class, StructureDefinition.class, StructureMap.class, Subscription.class, SubscriptionStatus.class, SubscriptionTopic.class, Substance.class, SubstanceDefinition.class, SubstanceNucleicAcid.class, SubstancePolymer.class, SubstanceProtein.class, SubstanceReferenceInformation.class, SubstanceSourceMaterial.class, SupplyDelivery.class, SupplyRequest.class, Task.class, TerminologyCapabilities.class, TestPlan.class, TestReport.class, TestScript.class, Transport.class, ValueSet.class, VerificationResult.class, VisionPrescription.class } )
2021  public static final String SP_BASED_ON = "based-on";
2022 /**
2023   * <b>Fluent Client</b> search parameter constant for <b>based-on</b>
2024   * <p>
2025   * Description: <b>Fulfills plan or proposal</b><br>
2026   * Type: <b>reference</b><br>
2027   * Path: <b>CommunicationRequest.basedOn</b><br>
2028   * </p>
2029   */
2030  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam BASED_ON = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_BASED_ON);
2031
2032/**
2033   * Constant for fluent queries to be used to add include statements. Specifies
2034   * the path value of "<b>CommunicationRequest:based-on</b>".
2035   */
2036  public static final ca.uhn.fhir.model.api.Include INCLUDE_BASED_ON = new ca.uhn.fhir.model.api.Include("CommunicationRequest:based-on").toLocked();
2037
2038 /**
2039   * Search parameter: <b>category</b>
2040   * <p>
2041   * Description: <b>Message category</b><br>
2042   * Type: <b>token</b><br>
2043   * Path: <b>CommunicationRequest.category</b><br>
2044   * </p>
2045   */
2046  @SearchParamDefinition(name="category", path="CommunicationRequest.category", description="Message category", type="token" )
2047  public static final String SP_CATEGORY = "category";
2048 /**
2049   * <b>Fluent Client</b> search parameter constant for <b>category</b>
2050   * <p>
2051   * Description: <b>Message category</b><br>
2052   * Type: <b>token</b><br>
2053   * Path: <b>CommunicationRequest.category</b><br>
2054   * </p>
2055   */
2056  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CATEGORY = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CATEGORY);
2057
2058 /**
2059   * Search parameter: <b>group-identifier</b>
2060   * <p>
2061   * Description: <b>Composite request this is part of</b><br>
2062   * Type: <b>token</b><br>
2063   * Path: <b>CommunicationRequest.groupIdentifier</b><br>
2064   * </p>
2065   */
2066  @SearchParamDefinition(name="group-identifier", path="CommunicationRequest.groupIdentifier", description="Composite request this is part of", type="token" )
2067  public static final String SP_GROUP_IDENTIFIER = "group-identifier";
2068 /**
2069   * <b>Fluent Client</b> search parameter constant for <b>group-identifier</b>
2070   * <p>
2071   * Description: <b>Composite request this is part of</b><br>
2072   * Type: <b>token</b><br>
2073   * Path: <b>CommunicationRequest.groupIdentifier</b><br>
2074   * </p>
2075   */
2076  public static final ca.uhn.fhir.rest.gclient.TokenClientParam GROUP_IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_GROUP_IDENTIFIER);
2077
2078 /**
2079   * Search parameter: <b>information-provider</b>
2080   * <p>
2081   * Description: <b>Who should share the information</b><br>
2082   * Type: <b>reference</b><br>
2083   * Path: <b>CommunicationRequest.informationProvider</b><br>
2084   * </p>
2085   */
2086  @SearchParamDefinition(name="information-provider", path="CommunicationRequest.informationProvider", description="Who should share the information", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Device"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Patient"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Practitioner"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for RelatedPerson") }, target={Device.class, Endpoint.class, HealthcareService.class, Organization.class, Patient.class, Practitioner.class, PractitionerRole.class, RelatedPerson.class } )
2087  public static final String SP_INFORMATION_PROVIDER = "information-provider";
2088 /**
2089   * <b>Fluent Client</b> search parameter constant for <b>information-provider</b>
2090   * <p>
2091   * Description: <b>Who should share the information</b><br>
2092   * Type: <b>reference</b><br>
2093   * Path: <b>CommunicationRequest.informationProvider</b><br>
2094   * </p>
2095   */
2096  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam INFORMATION_PROVIDER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_INFORMATION_PROVIDER);
2097
2098/**
2099   * Constant for fluent queries to be used to add include statements. Specifies
2100   * the path value of "<b>CommunicationRequest:information-provider</b>".
2101   */
2102  public static final ca.uhn.fhir.model.api.Include INCLUDE_INFORMATION_PROVIDER = new ca.uhn.fhir.model.api.Include("CommunicationRequest:information-provider").toLocked();
2103
2104 /**
2105   * Search parameter: <b>medium</b>
2106   * <p>
2107   * Description: <b>A channel of communication</b><br>
2108   * Type: <b>token</b><br>
2109   * Path: <b>CommunicationRequest.medium</b><br>
2110   * </p>
2111   */
2112  @SearchParamDefinition(name="medium", path="CommunicationRequest.medium", description="A channel of communication", type="token" )
2113  public static final String SP_MEDIUM = "medium";
2114 /**
2115   * <b>Fluent Client</b> search parameter constant for <b>medium</b>
2116   * <p>
2117   * Description: <b>A channel of communication</b><br>
2118   * Type: <b>token</b><br>
2119   * Path: <b>CommunicationRequest.medium</b><br>
2120   * </p>
2121   */
2122  public static final ca.uhn.fhir.rest.gclient.TokenClientParam MEDIUM = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_MEDIUM);
2123
2124 /**
2125   * Search parameter: <b>occurrence</b>
2126   * <p>
2127   * Description: <b>When scheduled</b><br>
2128   * Type: <b>date</b><br>
2129   * Path: <b>CommunicationRequest.occurrence.ofType(dateTime) | CommunicationRequest.occurrence.ofType(Period)</b><br>
2130   * </p>
2131   */
2132  @SearchParamDefinition(name="occurrence", path="CommunicationRequest.occurrence.ofType(dateTime) | CommunicationRequest.occurrence.ofType(Period)", description="When scheduled", type="date" )
2133  public static final String SP_OCCURRENCE = "occurrence";
2134 /**
2135   * <b>Fluent Client</b> search parameter constant for <b>occurrence</b>
2136   * <p>
2137   * Description: <b>When scheduled</b><br>
2138   * Type: <b>date</b><br>
2139   * Path: <b>CommunicationRequest.occurrence.ofType(dateTime) | CommunicationRequest.occurrence.ofType(Period)</b><br>
2140   * </p>
2141   */
2142  public static final ca.uhn.fhir.rest.gclient.DateClientParam OCCURRENCE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_OCCURRENCE);
2143
2144 /**
2145   * Search parameter: <b>priority</b>
2146   * <p>
2147   * Description: <b>routine | urgent | asap | stat</b><br>
2148   * Type: <b>token</b><br>
2149   * Path: <b>CommunicationRequest.priority</b><br>
2150   * </p>
2151   */
2152  @SearchParamDefinition(name="priority", path="CommunicationRequest.priority", description="routine | urgent | asap | stat", type="token" )
2153  public static final String SP_PRIORITY = "priority";
2154 /**
2155   * <b>Fluent Client</b> search parameter constant for <b>priority</b>
2156   * <p>
2157   * Description: <b>routine | urgent | asap | stat</b><br>
2158   * Type: <b>token</b><br>
2159   * Path: <b>CommunicationRequest.priority</b><br>
2160   * </p>
2161   */
2162  public static final ca.uhn.fhir.rest.gclient.TokenClientParam PRIORITY = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_PRIORITY);
2163
2164 /**
2165   * Search parameter: <b>recipient</b>
2166   * <p>
2167   * Description: <b>Who to share the information with</b><br>
2168   * Type: <b>reference</b><br>
2169   * Path: <b>CommunicationRequest.recipient</b><br>
2170   * </p>
2171   */
2172  @SearchParamDefinition(name="recipient", path="CommunicationRequest.recipient", description="Who to share the information with", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Device"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Patient"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Practitioner"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for RelatedPerson"), @ca.uhn.fhir.model.api.annotation.Compartment(name="EXAMPLE") }, target={CareTeam.class, Device.class, Endpoint.class, Group.class, HealthcareService.class, Organization.class, Patient.class, Practitioner.class, PractitionerRole.class, RelatedPerson.class } )
2173  public static final String SP_RECIPIENT = "recipient";
2174 /**
2175   * <b>Fluent Client</b> search parameter constant for <b>recipient</b>
2176   * <p>
2177   * Description: <b>Who to share the information with</b><br>
2178   * Type: <b>reference</b><br>
2179   * Path: <b>CommunicationRequest.recipient</b><br>
2180   * </p>
2181   */
2182  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam RECIPIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_RECIPIENT);
2183
2184/**
2185   * Constant for fluent queries to be used to add include statements. Specifies
2186   * the path value of "<b>CommunicationRequest:recipient</b>".
2187   */
2188  public static final ca.uhn.fhir.model.api.Include INCLUDE_RECIPIENT = new ca.uhn.fhir.model.api.Include("CommunicationRequest:recipient").toLocked();
2189
2190 /**
2191   * Search parameter: <b>replaces</b>
2192   * <p>
2193   * Description: <b>Request(s) replaced by this request</b><br>
2194   * Type: <b>reference</b><br>
2195   * Path: <b>CommunicationRequest.replaces</b><br>
2196   * </p>
2197   */
2198  @SearchParamDefinition(name="replaces", path="CommunicationRequest.replaces", description="Request(s) replaced by this request", type="reference", target={CommunicationRequest.class } )
2199  public static final String SP_REPLACES = "replaces";
2200 /**
2201   * <b>Fluent Client</b> search parameter constant for <b>replaces</b>
2202   * <p>
2203   * Description: <b>Request(s) replaced by this request</b><br>
2204   * Type: <b>reference</b><br>
2205   * Path: <b>CommunicationRequest.replaces</b><br>
2206   * </p>
2207   */
2208  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam REPLACES = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_REPLACES);
2209
2210/**
2211   * Constant for fluent queries to be used to add include statements. Specifies
2212   * the path value of "<b>CommunicationRequest:replaces</b>".
2213   */
2214  public static final ca.uhn.fhir.model.api.Include INCLUDE_REPLACES = new ca.uhn.fhir.model.api.Include("CommunicationRequest:replaces").toLocked();
2215
2216 /**
2217   * Search parameter: <b>requester</b>
2218   * <p>
2219   * Description: <b>Who asks for the information to be shared</b><br>
2220   * Type: <b>reference</b><br>
2221   * Path: <b>CommunicationRequest.requester</b><br>
2222   * </p>
2223   */
2224  @SearchParamDefinition(name="requester", path="CommunicationRequest.requester", description="Who asks for the information to be shared", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Patient"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Practitioner"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for RelatedPerson") }, target={Device.class, Organization.class, Patient.class, Practitioner.class, PractitionerRole.class, RelatedPerson.class } )
2225  public static final String SP_REQUESTER = "requester";
2226 /**
2227   * <b>Fluent Client</b> search parameter constant for <b>requester</b>
2228   * <p>
2229   * Description: <b>Who asks for the information to be shared</b><br>
2230   * Type: <b>reference</b><br>
2231   * Path: <b>CommunicationRequest.requester</b><br>
2232   * </p>
2233   */
2234  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam REQUESTER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_REQUESTER);
2235
2236/**
2237   * Constant for fluent queries to be used to add include statements. Specifies
2238   * the path value of "<b>CommunicationRequest:requester</b>".
2239   */
2240  public static final ca.uhn.fhir.model.api.Include INCLUDE_REQUESTER = new ca.uhn.fhir.model.api.Include("CommunicationRequest:requester").toLocked();
2241
2242 /**
2243   * Search parameter: <b>status</b>
2244   * <p>
2245   * Description: <b>draft | active | on-hold | revoked | completed | entered-in-error | unknown</b><br>
2246   * Type: <b>token</b><br>
2247   * Path: <b>CommunicationRequest.status</b><br>
2248   * </p>
2249   */
2250  @SearchParamDefinition(name="status", path="CommunicationRequest.status", description="draft | active | on-hold | revoked | completed | entered-in-error | unknown", type="token" )
2251  public static final String SP_STATUS = "status";
2252 /**
2253   * <b>Fluent Client</b> search parameter constant for <b>status</b>
2254   * <p>
2255   * Description: <b>draft | active | on-hold | revoked | completed | entered-in-error | unknown</b><br>
2256   * Type: <b>token</b><br>
2257   * Path: <b>CommunicationRequest.status</b><br>
2258   * </p>
2259   */
2260  public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS);
2261
2262 /**
2263   * Search parameter: <b>subject</b>
2264   * <p>
2265   * Description: <b>Focus of message</b><br>
2266   * Type: <b>reference</b><br>
2267   * Path: <b>CommunicationRequest.subject</b><br>
2268   * </p>
2269   */
2270  @SearchParamDefinition(name="subject", path="CommunicationRequest.subject", description="Focus of message", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Patient") }, target={Group.class, Patient.class } )
2271  public static final String SP_SUBJECT = "subject";
2272 /**
2273   * <b>Fluent Client</b> search parameter constant for <b>subject</b>
2274   * <p>
2275   * Description: <b>Focus of message</b><br>
2276   * Type: <b>reference</b><br>
2277   * Path: <b>CommunicationRequest.subject</b><br>
2278   * </p>
2279   */
2280  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SUBJECT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SUBJECT);
2281
2282/**
2283   * Constant for fluent queries to be used to add include statements. Specifies
2284   * the path value of "<b>CommunicationRequest:subject</b>".
2285   */
2286  public static final ca.uhn.fhir.model.api.Include INCLUDE_SUBJECT = new ca.uhn.fhir.model.api.Include("CommunicationRequest:subject").toLocked();
2287
2288 /**
2289   * Search parameter: <b>encounter</b>
2290   * <p>
2291   * Description: <b>Multiple Resources: 
2292
2293* [AuditEvent](auditevent.html): Encounter related to the activity recorded in the AuditEvent
2294* [CarePlan](careplan.html): The Encounter during which this CarePlan was created
2295* [ChargeItem](chargeitem.html): Encounter associated with event
2296* [Claim](claim.html): Encounters associated with a billed line item
2297* [ClinicalImpression](clinicalimpression.html): The Encounter during which this ClinicalImpression was created
2298* [Communication](communication.html): The Encounter during which this Communication was created
2299* [CommunicationRequest](communicationrequest.html): The Encounter during which this CommunicationRequest was created
2300* [Composition](composition.html): Context of the Composition
2301* [Condition](condition.html): The Encounter during which this Condition was created
2302* [DeviceRequest](devicerequest.html): Encounter during which request was created
2303* [DiagnosticReport](diagnosticreport.html): The Encounter when the order was made
2304* [EncounterHistory](encounterhistory.html): The Encounter associated with this set of history values
2305* [ExplanationOfBenefit](explanationofbenefit.html): Encounters associated with a billed line item
2306* [Flag](flag.html): Alert relevant during encounter
2307* [ImagingStudy](imagingstudy.html): The context of the study
2308* [List](list.html): Context in which list created
2309* [MedicationDispense](medicationdispense.html): Returns dispenses with a specific encounter
2310* [MedicationStatement](medicationstatement.html): Returns statements for a specific encounter
2311* [NutritionIntake](nutritionintake.html): Returns statements for a specific encounter
2312* [NutritionOrder](nutritionorder.html): Return nutrition orders with this encounter identifier
2313* [Observation](observation.html): Encounter related to the observation
2314* [Procedure](procedure.html): The Encounter during which this Procedure was created
2315* [Provenance](provenance.html): Encounter related to the Provenance
2316* [QuestionnaireResponse](questionnaireresponse.html): Encounter associated with the questionnaire response
2317* [RequestOrchestration](requestorchestration.html): The encounter the request orchestration applies to
2318* [RiskAssessment](riskassessment.html): Where was assessment performed?
2319* [ServiceRequest](servicerequest.html): An encounter in which this request is made
2320* [Task](task.html): Search by encounter
2321* [VisionPrescription](visionprescription.html): Return prescriptions with this encounter identifier
2322</b><br>
2323   * Type: <b>reference</b><br>
2324   * Path: <b>AuditEvent.encounter | CarePlan.encounter | ChargeItem.encounter | Claim.item.encounter | ClinicalImpression.encounter | Communication.encounter | CommunicationRequest.encounter | Composition.encounter | Condition.encounter | DeviceRequest.encounter | DiagnosticReport.encounter | EncounterHistory.encounter | ExplanationOfBenefit.item.encounter | Flag.encounter | ImagingStudy.encounter | List.encounter | MedicationDispense.encounter | MedicationStatement.encounter | NutritionIntake.encounter | NutritionOrder.encounter | Observation.encounter | Procedure.encounter | Provenance.encounter | QuestionnaireResponse.encounter | RequestOrchestration.encounter | RiskAssessment.encounter | ServiceRequest.encounter | Task.encounter | VisionPrescription.encounter</b><br>
2325   * </p>
2326   */
2327  @SearchParamDefinition(name="encounter", path="AuditEvent.encounter | CarePlan.encounter | ChargeItem.encounter | Claim.item.encounter | ClinicalImpression.encounter | Communication.encounter | CommunicationRequest.encounter | Composition.encounter | Condition.encounter | DeviceRequest.encounter | DiagnosticReport.encounter | EncounterHistory.encounter | ExplanationOfBenefit.item.encounter | Flag.encounter | ImagingStudy.encounter | List.encounter | MedicationDispense.encounter | MedicationStatement.encounter | NutritionIntake.encounter | NutritionOrder.encounter | Observation.encounter | Procedure.encounter | Provenance.encounter | QuestionnaireResponse.encounter | RequestOrchestration.encounter | RiskAssessment.encounter | ServiceRequest.encounter | Task.encounter | VisionPrescription.encounter", description="Multiple Resources: \r\n\r\n* [AuditEvent](auditevent.html): Encounter related to the activity recorded in the AuditEvent\r\n* [CarePlan](careplan.html): The Encounter during which this CarePlan was created\r\n* [ChargeItem](chargeitem.html): Encounter associated with event\r\n* [Claim](claim.html): Encounters associated with a billed line item\r\n* [ClinicalImpression](clinicalimpression.html): The Encounter during which this ClinicalImpression was created\r\n* [Communication](communication.html): The Encounter during which this Communication was created\r\n* [CommunicationRequest](communicationrequest.html): The Encounter during which this CommunicationRequest was created\r\n* [Composition](composition.html): Context of the Composition\r\n* [Condition](condition.html): The Encounter during which this Condition was created\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* [EncounterHistory](encounterhistory.html): The Encounter associated with this set of history values\r\n* [ExplanationOfBenefit](explanationofbenefit.html): Encounters associated with a billed line item\r\n* [Flag](flag.html): Alert relevant during encounter\r\n* [ImagingStudy](imagingstudy.html): The context of the study\r\n* [List](list.html): Context in which list created\r\n* [MedicationDispense](medicationdispense.html): Returns dispenses with a specific encounter\r\n* [MedicationStatement](medicationstatement.html): Returns statements for a specific encounter\r\n* [NutritionIntake](nutritionintake.html): Returns statements for a specific encounter\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* [Provenance](provenance.html): Encounter related to the Provenance\r\n* [QuestionnaireResponse](questionnaireresponse.html): Encounter associated with the questionnaire response\r\n* [RequestOrchestration](requestorchestration.html): The encounter the request orchestration applies to\r\n* [RiskAssessment](riskassessment.html): Where was assessment performed?\r\n* [ServiceRequest](servicerequest.html): An encounter in which this request is made\r\n* [Task](task.html): Search by encounter\r\n* [VisionPrescription](visionprescription.html): Return prescriptions with this encounter identifier\r\n", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Encounter") }, target={Encounter.class } )
2328  public static final String SP_ENCOUNTER = "encounter";
2329 /**
2330   * <b>Fluent Client</b> search parameter constant for <b>encounter</b>
2331   * <p>
2332   * Description: <b>Multiple Resources: 
2333
2334* [AuditEvent](auditevent.html): Encounter related to the activity recorded in the AuditEvent
2335* [CarePlan](careplan.html): The Encounter during which this CarePlan was created
2336* [ChargeItem](chargeitem.html): Encounter associated with event
2337* [Claim](claim.html): Encounters associated with a billed line item
2338* [ClinicalImpression](clinicalimpression.html): The Encounter during which this ClinicalImpression was created
2339* [Communication](communication.html): The Encounter during which this Communication was created
2340* [CommunicationRequest](communicationrequest.html): The Encounter during which this CommunicationRequest was created
2341* [Composition](composition.html): Context of the Composition
2342* [Condition](condition.html): The Encounter during which this Condition was created
2343* [DeviceRequest](devicerequest.html): Encounter during which request was created
2344* [DiagnosticReport](diagnosticreport.html): The Encounter when the order was made
2345* [EncounterHistory](encounterhistory.html): The Encounter associated with this set of history values
2346* [ExplanationOfBenefit](explanationofbenefit.html): Encounters associated with a billed line item
2347* [Flag](flag.html): Alert relevant during encounter
2348* [ImagingStudy](imagingstudy.html): The context of the study
2349* [List](list.html): Context in which list created
2350* [MedicationDispense](medicationdispense.html): Returns dispenses with a specific encounter
2351* [MedicationStatement](medicationstatement.html): Returns statements for a specific encounter
2352* [NutritionIntake](nutritionintake.html): Returns statements for a specific encounter
2353* [NutritionOrder](nutritionorder.html): Return nutrition orders with this encounter identifier
2354* [Observation](observation.html): Encounter related to the observation
2355* [Procedure](procedure.html): The Encounter during which this Procedure was created
2356* [Provenance](provenance.html): Encounter related to the Provenance
2357* [QuestionnaireResponse](questionnaireresponse.html): Encounter associated with the questionnaire response
2358* [RequestOrchestration](requestorchestration.html): The encounter the request orchestration applies to
2359* [RiskAssessment](riskassessment.html): Where was assessment performed?
2360* [ServiceRequest](servicerequest.html): An encounter in which this request is made
2361* [Task](task.html): Search by encounter
2362* [VisionPrescription](visionprescription.html): Return prescriptions with this encounter identifier
2363</b><br>
2364   * Type: <b>reference</b><br>
2365   * Path: <b>AuditEvent.encounter | CarePlan.encounter | ChargeItem.encounter | Claim.item.encounter | ClinicalImpression.encounter | Communication.encounter | CommunicationRequest.encounter | Composition.encounter | Condition.encounter | DeviceRequest.encounter | DiagnosticReport.encounter | EncounterHistory.encounter | ExplanationOfBenefit.item.encounter | Flag.encounter | ImagingStudy.encounter | List.encounter | MedicationDispense.encounter | MedicationStatement.encounter | NutritionIntake.encounter | NutritionOrder.encounter | Observation.encounter | Procedure.encounter | Provenance.encounter | QuestionnaireResponse.encounter | RequestOrchestration.encounter | RiskAssessment.encounter | ServiceRequest.encounter | Task.encounter | VisionPrescription.encounter</b><br>
2366   * </p>
2367   */
2368  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ENCOUNTER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ENCOUNTER);
2369
2370/**
2371   * Constant for fluent queries to be used to add include statements. Specifies
2372   * the path value of "<b>CommunicationRequest:encounter</b>".
2373   */
2374  public static final ca.uhn.fhir.model.api.Include INCLUDE_ENCOUNTER = new ca.uhn.fhir.model.api.Include("CommunicationRequest:encounter").toLocked();
2375
2376 /**
2377   * Search parameter: <b>identifier</b>
2378   * <p>
2379   * Description: <b>Multiple Resources: 
2380
2381* [Account](account.html): Account number
2382* [AdverseEvent](adverseevent.html): Business identifier for the event
2383* [AllergyIntolerance](allergyintolerance.html): External ids for this item
2384* [Appointment](appointment.html): An Identifier of the Appointment
2385* [AppointmentResponse](appointmentresponse.html): An Identifier in this appointment response
2386* [Basic](basic.html): Business identifier
2387* [BodyStructure](bodystructure.html): Bodystructure identifier
2388* [CarePlan](careplan.html): External Ids for this plan
2389* [CareTeam](careteam.html): External Ids for this team
2390* [ChargeItem](chargeitem.html): Business Identifier for item
2391* [Claim](claim.html): The primary identifier of the financial resource
2392* [ClaimResponse](claimresponse.html): The identity of the ClaimResponse
2393* [ClinicalImpression](clinicalimpression.html): Business identifier
2394* [Communication](communication.html): Unique identifier
2395* [CommunicationRequest](communicationrequest.html): Unique identifier
2396* [Composition](composition.html): Version-independent identifier for the Composition
2397* [Condition](condition.html): A unique identifier of the condition record
2398* [Consent](consent.html): Identifier for this record (external references)
2399* [Contract](contract.html): The identity of the contract
2400* [Coverage](coverage.html): The primary identifier of the insured and the coverage
2401* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The business identifier of the Eligibility
2402* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The business identifier
2403* [DetectedIssue](detectedissue.html): Unique id for the detected issue
2404* [DeviceRequest](devicerequest.html): Business identifier for request/order
2405* [DeviceUsage](deviceusage.html): Search by identifier
2406* [DiagnosticReport](diagnosticreport.html): An identifier for the report
2407* [DocumentReference](documentreference.html): Identifier of the attachment binary
2408* [Encounter](encounter.html): Identifier(s) by which this encounter is known
2409* [EnrollmentRequest](enrollmentrequest.html): The business identifier of the Enrollment
2410* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare
2411* [ExplanationOfBenefit](explanationofbenefit.html): The business identifier of the Explanation of Benefit
2412* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier
2413* [Flag](flag.html): Business identifier
2414* [Goal](goal.html): External Ids for this goal
2415* [GuidanceResponse](guidanceresponse.html): The identifier of the guidance response
2416* [ImagingSelection](imagingselection.html): Identifiers for the imaging selection
2417* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID
2418* [Immunization](immunization.html): Business identifier
2419* [ImmunizationEvaluation](immunizationevaluation.html): ID of the evaluation
2420* [ImmunizationRecommendation](immunizationrecommendation.html): Business identifier
2421* [Invoice](invoice.html): Business Identifier for item
2422* [List](list.html): Business identifier
2423* [MeasureReport](measurereport.html): External identifier of the measure report to be returned
2424* [Medication](medication.html): Returns medications with this external identifier
2425* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier
2426* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier
2427* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier
2428* [MedicationStatement](medicationstatement.html): Return statements with this external identifier
2429* [MolecularSequence](molecularsequence.html): The unique identity for a particular sequence
2430* [NutritionIntake](nutritionintake.html): Return statements with this external identifier
2431* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier
2432* [Observation](observation.html): The unique id for a particular observation
2433* [Person](person.html): A person Identifier
2434* [Procedure](procedure.html): A unique identifier for a procedure
2435* [QuestionnaireResponse](questionnaireresponse.html): The unique identifier for the questionnaire response
2436* [RelatedPerson](relatedperson.html): An Identifier of the RelatedPerson
2437* [RequestOrchestration](requestorchestration.html): External identifiers for the request orchestration
2438* [ResearchSubject](researchsubject.html): Business Identifier for research subject in a study
2439* [RiskAssessment](riskassessment.html): Unique identifier for the assessment
2440* [ServiceRequest](servicerequest.html): Identifiers assigned to this order
2441* [Specimen](specimen.html): The unique identifier associated with the specimen
2442* [SupplyDelivery](supplydelivery.html): External identifier
2443* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest
2444* [Task](task.html): Search for a task instance by its business identifier
2445* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier
2446</b><br>
2447   * Type: <b>token</b><br>
2448   * Path: <b>Account.identifier | AdverseEvent.identifier | AllergyIntolerance.identifier | Appointment.identifier | AppointmentResponse.identifier | Basic.identifier | BodyStructure.identifier | CarePlan.identifier | CareTeam.identifier | ChargeItem.identifier | Claim.identifier | ClaimResponse.identifier | ClinicalImpression.identifier | Communication.identifier | CommunicationRequest.identifier | Composition.identifier | Condition.identifier | Consent.identifier | Contract.identifier | Coverage.identifier | CoverageEligibilityRequest.identifier | CoverageEligibilityResponse.identifier | DetectedIssue.identifier | DeviceRequest.identifier | DeviceUsage.identifier | DiagnosticReport.identifier | DocumentReference.identifier | Encounter.identifier | EnrollmentRequest.identifier | EpisodeOfCare.identifier | ExplanationOfBenefit.identifier | FamilyMemberHistory.identifier | Flag.identifier | Goal.identifier | GuidanceResponse.identifier | ImagingSelection.identifier | ImagingStudy.identifier | Immunization.identifier | ImmunizationEvaluation.identifier | ImmunizationRecommendation.identifier | Invoice.identifier | List.identifier | MeasureReport.identifier | Medication.identifier | MedicationAdministration.identifier | MedicationDispense.identifier | MedicationRequest.identifier | MedicationStatement.identifier | MolecularSequence.identifier | NutritionIntake.identifier | NutritionOrder.identifier | Observation.identifier | Person.identifier | Procedure.identifier | QuestionnaireResponse.identifier | RelatedPerson.identifier | RequestOrchestration.identifier | ResearchSubject.identifier | RiskAssessment.identifier | ServiceRequest.identifier | Specimen.identifier | SupplyDelivery.identifier | SupplyRequest.identifier | Task.identifier | VisionPrescription.identifier</b><br>
2449   * </p>
2450   */
2451  @SearchParamDefinition(name="identifier", path="Account.identifier | AdverseEvent.identifier | AllergyIntolerance.identifier | Appointment.identifier | AppointmentResponse.identifier | Basic.identifier | BodyStructure.identifier | CarePlan.identifier | CareTeam.identifier | ChargeItem.identifier | Claim.identifier | ClaimResponse.identifier | ClinicalImpression.identifier | Communication.identifier | CommunicationRequest.identifier | Composition.identifier | Condition.identifier | Consent.identifier | Contract.identifier | Coverage.identifier | CoverageEligibilityRequest.identifier | CoverageEligibilityResponse.identifier | DetectedIssue.identifier | DeviceRequest.identifier | DeviceUsage.identifier | DiagnosticReport.identifier | DocumentReference.identifier | Encounter.identifier | EnrollmentRequest.identifier | EpisodeOfCare.identifier | ExplanationOfBenefit.identifier | FamilyMemberHistory.identifier | Flag.identifier | Goal.identifier | GuidanceResponse.identifier | ImagingSelection.identifier | ImagingStudy.identifier | Immunization.identifier | ImmunizationEvaluation.identifier | ImmunizationRecommendation.identifier | Invoice.identifier | List.identifier | MeasureReport.identifier | Medication.identifier | MedicationAdministration.identifier | MedicationDispense.identifier | MedicationRequest.identifier | MedicationStatement.identifier | MolecularSequence.identifier | NutritionIntake.identifier | NutritionOrder.identifier | Observation.identifier | Person.identifier | Procedure.identifier | QuestionnaireResponse.identifier | RelatedPerson.identifier | RequestOrchestration.identifier | ResearchSubject.identifier | RiskAssessment.identifier | ServiceRequest.identifier | Specimen.identifier | SupplyDelivery.identifier | SupplyRequest.identifier | Task.identifier | VisionPrescription.identifier", description="Multiple Resources: \r\n\r\n* [Account](account.html): Account number\r\n* [AdverseEvent](adverseevent.html): Business identifier for the event\r\n* [AllergyIntolerance](allergyintolerance.html): External ids for this item\r\n* [Appointment](appointment.html): An Identifier of the Appointment\r\n* [AppointmentResponse](appointmentresponse.html): An Identifier in this appointment response\r\n* [Basic](basic.html): Business identifier\r\n* [BodyStructure](bodystructure.html): Bodystructure identifier\r\n* [CarePlan](careplan.html): External Ids for this plan\r\n* [CareTeam](careteam.html): External Ids for this team\r\n* [ChargeItem](chargeitem.html): Business Identifier for item\r\n* [Claim](claim.html): The primary identifier of the financial resource\r\n* [ClaimResponse](claimresponse.html): The identity of the ClaimResponse\r\n* [ClinicalImpression](clinicalimpression.html): Business identifier\r\n* [Communication](communication.html): Unique identifier\r\n* [CommunicationRequest](communicationrequest.html): Unique identifier\r\n* [Composition](composition.html): Version-independent identifier for the Composition\r\n* [Condition](condition.html): A unique identifier of the condition record\r\n* [Consent](consent.html): Identifier for this record (external references)\r\n* [Contract](contract.html): The identity of the contract\r\n* [Coverage](coverage.html): The primary identifier of the insured and the coverage\r\n* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The business identifier of the Eligibility\r\n* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The business identifier\r\n* [DetectedIssue](detectedissue.html): Unique id for the detected issue\r\n* [DeviceRequest](devicerequest.html): Business identifier for request/order\r\n* [DeviceUsage](deviceusage.html): Search by identifier\r\n* [DiagnosticReport](diagnosticreport.html): An identifier for the report\r\n* [DocumentReference](documentreference.html): Identifier of the attachment binary\r\n* [Encounter](encounter.html): Identifier(s) by which this encounter is known\r\n* [EnrollmentRequest](enrollmentrequest.html): The business identifier of the Enrollment\r\n* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare\r\n* [ExplanationOfBenefit](explanationofbenefit.html): The business identifier of the Explanation of Benefit\r\n* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier\r\n* [Flag](flag.html): Business identifier\r\n* [Goal](goal.html): External Ids for this goal\r\n* [GuidanceResponse](guidanceresponse.html): The identifier of the guidance response\r\n* [ImagingSelection](imagingselection.html): Identifiers for the imaging selection\r\n* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID\r\n* [Immunization](immunization.html): Business identifier\r\n* [ImmunizationEvaluation](immunizationevaluation.html): ID of the evaluation\r\n* [ImmunizationRecommendation](immunizationrecommendation.html): Business identifier\r\n* [Invoice](invoice.html): Business Identifier for item\r\n* [List](list.html): Business identifier\r\n* [MeasureReport](measurereport.html): External identifier of the measure report to be returned\r\n* [Medication](medication.html): Returns medications with this external identifier\r\n* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier\r\n* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier\r\n* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier\r\n* [MedicationStatement](medicationstatement.html): Return statements with this external identifier\r\n* [MolecularSequence](molecularsequence.html): The unique identity for a particular sequence\r\n* [NutritionIntake](nutritionintake.html): Return statements with this external identifier\r\n* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier\r\n* [Observation](observation.html): The unique id for a particular observation\r\n* [Person](person.html): A person Identifier\r\n* [Procedure](procedure.html): A unique identifier for a procedure\r\n* [QuestionnaireResponse](questionnaireresponse.html): The unique identifier for the questionnaire response\r\n* [RelatedPerson](relatedperson.html): An Identifier of the RelatedPerson\r\n* [RequestOrchestration](requestorchestration.html): External identifiers for the request orchestration\r\n* [ResearchSubject](researchsubject.html): Business Identifier for research subject in a study\r\n* [RiskAssessment](riskassessment.html): Unique identifier for the assessment\r\n* [ServiceRequest](servicerequest.html): Identifiers assigned to this order\r\n* [Specimen](specimen.html): The unique identifier associated with the specimen\r\n* [SupplyDelivery](supplydelivery.html): External identifier\r\n* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest\r\n* [Task](task.html): Search for a task instance by its business identifier\r\n* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier\r\n", type="token" )
2452  public static final String SP_IDENTIFIER = "identifier";
2453 /**
2454   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
2455   * <p>
2456   * Description: <b>Multiple Resources: 
2457
2458* [Account](account.html): Account number
2459* [AdverseEvent](adverseevent.html): Business identifier for the event
2460* [AllergyIntolerance](allergyintolerance.html): External ids for this item
2461* [Appointment](appointment.html): An Identifier of the Appointment
2462* [AppointmentResponse](appointmentresponse.html): An Identifier in this appointment response
2463* [Basic](basic.html): Business identifier
2464* [BodyStructure](bodystructure.html): Bodystructure identifier
2465* [CarePlan](careplan.html): External Ids for this plan
2466* [CareTeam](careteam.html): External Ids for this team
2467* [ChargeItem](chargeitem.html): Business Identifier for item
2468* [Claim](claim.html): The primary identifier of the financial resource
2469* [ClaimResponse](claimresponse.html): The identity of the ClaimResponse
2470* [ClinicalImpression](clinicalimpression.html): Business identifier
2471* [Communication](communication.html): Unique identifier
2472* [CommunicationRequest](communicationrequest.html): Unique identifier
2473* [Composition](composition.html): Version-independent identifier for the Composition
2474* [Condition](condition.html): A unique identifier of the condition record
2475* [Consent](consent.html): Identifier for this record (external references)
2476* [Contract](contract.html): The identity of the contract
2477* [Coverage](coverage.html): The primary identifier of the insured and the coverage
2478* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The business identifier of the Eligibility
2479* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The business identifier
2480* [DetectedIssue](detectedissue.html): Unique id for the detected issue
2481* [DeviceRequest](devicerequest.html): Business identifier for request/order
2482* [DeviceUsage](deviceusage.html): Search by identifier
2483* [DiagnosticReport](diagnosticreport.html): An identifier for the report
2484* [DocumentReference](documentreference.html): Identifier of the attachment binary
2485* [Encounter](encounter.html): Identifier(s) by which this encounter is known
2486* [EnrollmentRequest](enrollmentrequest.html): The business identifier of the Enrollment
2487* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare
2488* [ExplanationOfBenefit](explanationofbenefit.html): The business identifier of the Explanation of Benefit
2489* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier
2490* [Flag](flag.html): Business identifier
2491* [Goal](goal.html): External Ids for this goal
2492* [GuidanceResponse](guidanceresponse.html): The identifier of the guidance response
2493* [ImagingSelection](imagingselection.html): Identifiers for the imaging selection
2494* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID
2495* [Immunization](immunization.html): Business identifier
2496* [ImmunizationEvaluation](immunizationevaluation.html): ID of the evaluation
2497* [ImmunizationRecommendation](immunizationrecommendation.html): Business identifier
2498* [Invoice](invoice.html): Business Identifier for item
2499* [List](list.html): Business identifier
2500* [MeasureReport](measurereport.html): External identifier of the measure report to be returned
2501* [Medication](medication.html): Returns medications with this external identifier
2502* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier
2503* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier
2504* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier
2505* [MedicationStatement](medicationstatement.html): Return statements with this external identifier
2506* [MolecularSequence](molecularsequence.html): The unique identity for a particular sequence
2507* [NutritionIntake](nutritionintake.html): Return statements with this external identifier
2508* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier
2509* [Observation](observation.html): The unique id for a particular observation
2510* [Person](person.html): A person Identifier
2511* [Procedure](procedure.html): A unique identifier for a procedure
2512* [QuestionnaireResponse](questionnaireresponse.html): The unique identifier for the questionnaire response
2513* [RelatedPerson](relatedperson.html): An Identifier of the RelatedPerson
2514* [RequestOrchestration](requestorchestration.html): External identifiers for the request orchestration
2515* [ResearchSubject](researchsubject.html): Business Identifier for research subject in a study
2516* [RiskAssessment](riskassessment.html): Unique identifier for the assessment
2517* [ServiceRequest](servicerequest.html): Identifiers assigned to this order
2518* [Specimen](specimen.html): The unique identifier associated with the specimen
2519* [SupplyDelivery](supplydelivery.html): External identifier
2520* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest
2521* [Task](task.html): Search for a task instance by its business identifier
2522* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier
2523</b><br>
2524   * Type: <b>token</b><br>
2525   * Path: <b>Account.identifier | AdverseEvent.identifier | AllergyIntolerance.identifier | Appointment.identifier | AppointmentResponse.identifier | Basic.identifier | BodyStructure.identifier | CarePlan.identifier | CareTeam.identifier | ChargeItem.identifier | Claim.identifier | ClaimResponse.identifier | ClinicalImpression.identifier | Communication.identifier | CommunicationRequest.identifier | Composition.identifier | Condition.identifier | Consent.identifier | Contract.identifier | Coverage.identifier | CoverageEligibilityRequest.identifier | CoverageEligibilityResponse.identifier | DetectedIssue.identifier | DeviceRequest.identifier | DeviceUsage.identifier | DiagnosticReport.identifier | DocumentReference.identifier | Encounter.identifier | EnrollmentRequest.identifier | EpisodeOfCare.identifier | ExplanationOfBenefit.identifier | FamilyMemberHistory.identifier | Flag.identifier | Goal.identifier | GuidanceResponse.identifier | ImagingSelection.identifier | ImagingStudy.identifier | Immunization.identifier | ImmunizationEvaluation.identifier | ImmunizationRecommendation.identifier | Invoice.identifier | List.identifier | MeasureReport.identifier | Medication.identifier | MedicationAdministration.identifier | MedicationDispense.identifier | MedicationRequest.identifier | MedicationStatement.identifier | MolecularSequence.identifier | NutritionIntake.identifier | NutritionOrder.identifier | Observation.identifier | Person.identifier | Procedure.identifier | QuestionnaireResponse.identifier | RelatedPerson.identifier | RequestOrchestration.identifier | ResearchSubject.identifier | RiskAssessment.identifier | ServiceRequest.identifier | Specimen.identifier | SupplyDelivery.identifier | SupplyRequest.identifier | Task.identifier | VisionPrescription.identifier</b><br>
2526   * </p>
2527   */
2528  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
2529
2530 /**
2531   * Search parameter: <b>patient</b>
2532   * <p>
2533   * Description: <b>Multiple Resources: 
2534
2535* [Account](account.html): The entity that caused the expenses
2536* [AdverseEvent](adverseevent.html): Subject impacted by event
2537* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for
2538* [Appointment](appointment.html): One of the individuals of the appointment is this patient
2539* [AppointmentResponse](appointmentresponse.html): This Response is for this Patient
2540* [AuditEvent](auditevent.html): Where the activity involved patient data
2541* [Basic](basic.html): Identifies the focus of this resource
2542* [BodyStructure](bodystructure.html): Who this is about
2543* [CarePlan](careplan.html): Who the care plan is for
2544* [CareTeam](careteam.html): Who care team is for
2545* [ChargeItem](chargeitem.html): Individual service was done for/to
2546* [Claim](claim.html): Patient receiving the products or services
2547* [ClaimResponse](claimresponse.html): The subject of care
2548* [ClinicalImpression](clinicalimpression.html): Patient assessed
2549* [Communication](communication.html): Focus of message
2550* [CommunicationRequest](communicationrequest.html): Focus of message
2551* [Composition](composition.html): Who and/or what the composition is about
2552* [Condition](condition.html): Who has the condition?
2553* [Consent](consent.html): Who the consent applies to
2554* [Contract](contract.html): The identity of the subject of the contract (if a patient)
2555* [Coverage](coverage.html): Retrieve coverages for a patient
2556* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The reference to the patient
2557* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The reference to the patient
2558* [DetectedIssue](detectedissue.html): Associated patient
2559* [DeviceRequest](devicerequest.html): Individual the service is ordered for
2560* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device
2561* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient
2562* [DocumentReference](documentreference.html): Who/what is the subject of the document
2563* [Encounter](encounter.html): The patient present at the encounter
2564* [EnrollmentRequest](enrollmentrequest.html): The party to be enrolled
2565* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care
2566* [ExplanationOfBenefit](explanationofbenefit.html): The reference to the patient
2567* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for
2568* [Flag](flag.html): The identity of a subject to list flags for
2569* [Goal](goal.html): Who this goal is intended for
2570* [GuidanceResponse](guidanceresponse.html): The identity of a patient to search for guidance response results
2571* [ImagingSelection](imagingselection.html): Who the study is about
2572* [ImagingStudy](imagingstudy.html): Who the study is about
2573* [Immunization](immunization.html): The patient for the vaccination record
2574* [ImmunizationEvaluation](immunizationevaluation.html): The patient being evaluated
2575* [ImmunizationRecommendation](immunizationrecommendation.html): Who this profile is for
2576* [Invoice](invoice.html): Recipient(s) of goods and services
2577* [List](list.html): If all resources have the same subject
2578* [MeasureReport](measurereport.html): The identity of a patient to search for individual measure report results for
2579* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations  for
2580* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses  for
2581* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient
2582* [MedicationStatement](medicationstatement.html): Returns statements for a specific patient.
2583* [MolecularSequence](molecularsequence.html): The subject that the sequence is about
2584* [NutritionIntake](nutritionintake.html): Returns statements for a specific patient.
2585* [NutritionOrder](nutritionorder.html): The identity of the individual or set of individuals who requires the diet, formula or nutritional supplement
2586* [Observation](observation.html): The subject that the observation is about (if patient)
2587* [Person](person.html): The Person links to this Patient
2588* [Procedure](procedure.html): Search by subject - a patient
2589* [Provenance](provenance.html): Where the activity involved patient data
2590* [QuestionnaireResponse](questionnaireresponse.html): The patient that is the subject of the questionnaire response
2591* [RelatedPerson](relatedperson.html): The patient this related person is related to
2592* [RequestOrchestration](requestorchestration.html): The identity of a patient to search for request orchestrations
2593* [ResearchSubject](researchsubject.html): Who or what is part of study
2594* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?
2595* [ServiceRequest](servicerequest.html): Search by subject - a patient
2596* [Specimen](specimen.html): The patient the specimen comes from
2597* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied
2598* [SupplyRequest](supplyrequest.html): The patient or subject for whom the supply is destined
2599* [Task](task.html): Search by patient
2600* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for
2601</b><br>
2602   * Type: <b>reference</b><br>
2603   * Path: <b>Account.subject.where(resolve() is Patient) | AdverseEvent.subject.where(resolve() is Patient) | AllergyIntolerance.patient | Appointment.participant.actor.where(resolve() is Patient) | Appointment.subject.where(resolve() is Patient) | AppointmentResponse.actor.where(resolve() is Patient) | AuditEvent.patient | Basic.subject.where(resolve() is Patient) | BodyStructure.patient | CarePlan.subject.where(resolve() is Patient) | CareTeam.subject.where(resolve() is Patient) | ChargeItem.subject.where(resolve() is Patient) | Claim.patient | ClaimResponse.patient | ClinicalImpression.subject.where(resolve() is Patient) | Communication.subject.where(resolve() is Patient) | CommunicationRequest.subject.where(resolve() is Patient) | Composition.subject.where(resolve() is Patient) | Condition.subject.where(resolve() is Patient) | Consent.subject.where(resolve() is Patient) | Contract.subject.where(resolve() is Patient) | Coverage.beneficiary | CoverageEligibilityRequest.patient | CoverageEligibilityResponse.patient | DetectedIssue.subject.where(resolve() is Patient) | DeviceRequest.subject.where(resolve() is Patient) | DeviceUsage.patient | DiagnosticReport.subject.where(resolve() is Patient) | DocumentReference.subject.where(resolve() is Patient) | Encounter.subject.where(resolve() is Patient) | EnrollmentRequest.candidate | EpisodeOfCare.patient | ExplanationOfBenefit.patient | FamilyMemberHistory.patient | Flag.subject.where(resolve() is Patient) | Goal.subject.where(resolve() is Patient) | GuidanceResponse.subject.where(resolve() is Patient) | ImagingSelection.subject.where(resolve() is Patient) | ImagingStudy.subject.where(resolve() is Patient) | Immunization.patient | ImmunizationEvaluation.patient | ImmunizationRecommendation.patient | Invoice.subject.where(resolve() is Patient) | List.subject.where(resolve() is Patient) | MeasureReport.subject.where(resolve() is Patient) | MedicationAdministration.subject.where(resolve() is Patient) | MedicationDispense.subject.where(resolve() is Patient) | MedicationRequest.subject.where(resolve() is Patient) | MedicationStatement.subject.where(resolve() is Patient) | MolecularSequence.subject.where(resolve() is Patient) | NutritionIntake.subject.where(resolve() is Patient) | NutritionOrder.subject.where(resolve() is Patient) | Observation.subject.where(resolve() is Patient) | Person.link.target.where(resolve() is Patient) | Procedure.subject.where(resolve() is Patient) | Provenance.patient | QuestionnaireResponse.subject.where(resolve() is Patient) | RelatedPerson.patient | RequestOrchestration.subject.where(resolve() is Patient) | ResearchSubject.subject.where(resolve() is Patient) | RiskAssessment.subject.where(resolve() is Patient) | ServiceRequest.subject.where(resolve() is Patient) | Specimen.subject.where(resolve() is Patient) | SupplyDelivery.patient | SupplyRequest.deliverFor | Task.for.where(resolve() is Patient) | VisionPrescription.patient</b><br>
2604   * </p>
2605   */
2606  @SearchParamDefinition(name="patient", path="Account.subject.where(resolve() is Patient) | AdverseEvent.subject.where(resolve() is Patient) | AllergyIntolerance.patient | Appointment.participant.actor.where(resolve() is Patient) | Appointment.subject.where(resolve() is Patient) | AppointmentResponse.actor.where(resolve() is Patient) | AuditEvent.patient | Basic.subject.where(resolve() is Patient) | BodyStructure.patient | CarePlan.subject.where(resolve() is Patient) | CareTeam.subject.where(resolve() is Patient) | ChargeItem.subject.where(resolve() is Patient) | Claim.patient | ClaimResponse.patient | ClinicalImpression.subject.where(resolve() is Patient) | Communication.subject.where(resolve() is Patient) | CommunicationRequest.subject.where(resolve() is Patient) | Composition.subject.where(resolve() is Patient) | Condition.subject.where(resolve() is Patient) | Consent.subject.where(resolve() is Patient) | Contract.subject.where(resolve() is Patient) | Coverage.beneficiary | CoverageEligibilityRequest.patient | CoverageEligibilityResponse.patient | DetectedIssue.subject.where(resolve() is Patient) | DeviceRequest.subject.where(resolve() is Patient) | DeviceUsage.patient | DiagnosticReport.subject.where(resolve() is Patient) | DocumentReference.subject.where(resolve() is Patient) | Encounter.subject.where(resolve() is Patient) | EnrollmentRequest.candidate | EpisodeOfCare.patient | ExplanationOfBenefit.patient | FamilyMemberHistory.patient | Flag.subject.where(resolve() is Patient) | Goal.subject.where(resolve() is Patient) | GuidanceResponse.subject.where(resolve() is Patient) | ImagingSelection.subject.where(resolve() is Patient) | ImagingStudy.subject.where(resolve() is Patient) | Immunization.patient | ImmunizationEvaluation.patient | ImmunizationRecommendation.patient | Invoice.subject.where(resolve() is Patient) | List.subject.where(resolve() is Patient) | MeasureReport.subject.where(resolve() is Patient) | MedicationAdministration.subject.where(resolve() is Patient) | MedicationDispense.subject.where(resolve() is Patient) | MedicationRequest.subject.where(resolve() is Patient) | MedicationStatement.subject.where(resolve() is Patient) | MolecularSequence.subject.where(resolve() is Patient) | NutritionIntake.subject.where(resolve() is Patient) | NutritionOrder.subject.where(resolve() is Patient) | Observation.subject.where(resolve() is Patient) | Person.link.target.where(resolve() is Patient) | Procedure.subject.where(resolve() is Patient) | Provenance.patient | QuestionnaireResponse.subject.where(resolve() is Patient) | RelatedPerson.patient | RequestOrchestration.subject.where(resolve() is Patient) | ResearchSubject.subject.where(resolve() is Patient) | RiskAssessment.subject.where(resolve() is Patient) | ServiceRequest.subject.where(resolve() is Patient) | Specimen.subject.where(resolve() is Patient) | SupplyDelivery.patient | SupplyRequest.deliverFor | Task.for.where(resolve() is Patient) | VisionPrescription.patient", description="Multiple Resources: \r\n\r\n* [Account](account.html): The entity that caused the expenses\r\n* [AdverseEvent](adverseevent.html): Subject impacted by event\r\n* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for\r\n* [Appointment](appointment.html): One of the individuals of the appointment is this patient\r\n* [AppointmentResponse](appointmentresponse.html): This Response is for this Patient\r\n* [AuditEvent](auditevent.html): Where the activity involved patient data\r\n* [Basic](basic.html): Identifies the focus of this resource\r\n* [BodyStructure](bodystructure.html): Who this is about\r\n* [CarePlan](careplan.html): Who the care plan is for\r\n* [CareTeam](careteam.html): Who care team is for\r\n* [ChargeItem](chargeitem.html): Individual service was done for/to\r\n* [Claim](claim.html): Patient receiving the products or services\r\n* [ClaimResponse](claimresponse.html): The subject of care\r\n* [ClinicalImpression](clinicalimpression.html): Patient assessed\r\n* [Communication](communication.html): Focus of message\r\n* [CommunicationRequest](communicationrequest.html): Focus of message\r\n* [Composition](composition.html): Who and/or what the composition is about\r\n* [Condition](condition.html): Who has the condition?\r\n* [Consent](consent.html): Who the consent applies to\r\n* [Contract](contract.html): The identity of the subject of the contract (if a patient)\r\n* [Coverage](coverage.html): Retrieve coverages for a patient\r\n* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The reference to the patient\r\n* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The reference to the patient\r\n* [DetectedIssue](detectedissue.html): Associated patient\r\n* [DeviceRequest](devicerequest.html): Individual the service is ordered for\r\n* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device\r\n* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient\r\n* [DocumentReference](documentreference.html): Who/what is the subject of the document\r\n* [Encounter](encounter.html): The patient present at the encounter\r\n* [EnrollmentRequest](enrollmentrequest.html): The party to be enrolled\r\n* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care\r\n* [ExplanationOfBenefit](explanationofbenefit.html): The reference to the patient\r\n* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for\r\n* [Flag](flag.html): The identity of a subject to list flags for\r\n* [Goal](goal.html): Who this goal is intended for\r\n* [GuidanceResponse](guidanceresponse.html): The identity of a patient to search for guidance response results\r\n* [ImagingSelection](imagingselection.html): Who the study is about\r\n* [ImagingStudy](imagingstudy.html): Who the study is about\r\n* [Immunization](immunization.html): The patient for the vaccination record\r\n* [ImmunizationEvaluation](immunizationevaluation.html): The patient being evaluated\r\n* [ImmunizationRecommendation](immunizationrecommendation.html): Who this profile is for\r\n* [Invoice](invoice.html): Recipient(s) of goods and services\r\n* [List](list.html): If all resources have the same subject\r\n* [MeasureReport](measurereport.html): The identity of a patient to search for individual measure report results for\r\n* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations  for\r\n* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses  for\r\n* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient\r\n* [MedicationStatement](medicationstatement.html): Returns statements for a specific patient.\r\n* [MolecularSequence](molecularsequence.html): The subject that the sequence is about\r\n* [NutritionIntake](nutritionintake.html): Returns statements for a specific patient.\r\n* [NutritionOrder](nutritionorder.html): The identity of the individual or set of individuals who requires the diet, formula or nutritional supplement\r\n* [Observation](observation.html): The subject that the observation is about (if patient)\r\n* [Person](person.html): The Person links to this Patient\r\n* [Procedure](procedure.html): Search by subject - a patient\r\n* [Provenance](provenance.html): Where the activity involved patient data\r\n* [QuestionnaireResponse](questionnaireresponse.html): The patient that is the subject of the questionnaire response\r\n* [RelatedPerson](relatedperson.html): The patient this related person is related to\r\n* [RequestOrchestration](requestorchestration.html): The identity of a patient to search for request orchestrations\r\n* [ResearchSubject](researchsubject.html): Who or what is part of study\r\n* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?\r\n* [ServiceRequest](servicerequest.html): Search by subject - a patient\r\n* [Specimen](specimen.html): The patient the specimen comes from\r\n* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied\r\n* [SupplyRequest](supplyrequest.html): The patient or subject for whom the supply is destined\r\n* [Task](task.html): Search by patient\r\n* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for\r\n", type="reference", target={Patient.class } )
2607  public static final String SP_PATIENT = "patient";
2608 /**
2609   * <b>Fluent Client</b> search parameter constant for <b>patient</b>
2610   * <p>
2611   * Description: <b>Multiple Resources: 
2612
2613* [Account](account.html): The entity that caused the expenses
2614* [AdverseEvent](adverseevent.html): Subject impacted by event
2615* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for
2616* [Appointment](appointment.html): One of the individuals of the appointment is this patient
2617* [AppointmentResponse](appointmentresponse.html): This Response is for this Patient
2618* [AuditEvent](auditevent.html): Where the activity involved patient data
2619* [Basic](basic.html): Identifies the focus of this resource
2620* [BodyStructure](bodystructure.html): Who this is about
2621* [CarePlan](careplan.html): Who the care plan is for
2622* [CareTeam](careteam.html): Who care team is for
2623* [ChargeItem](chargeitem.html): Individual service was done for/to
2624* [Claim](claim.html): Patient receiving the products or services
2625* [ClaimResponse](claimresponse.html): The subject of care
2626* [ClinicalImpression](clinicalimpression.html): Patient assessed
2627* [Communication](communication.html): Focus of message
2628* [CommunicationRequest](communicationrequest.html): Focus of message
2629* [Composition](composition.html): Who and/or what the composition is about
2630* [Condition](condition.html): Who has the condition?
2631* [Consent](consent.html): Who the consent applies to
2632* [Contract](contract.html): The identity of the subject of the contract (if a patient)
2633* [Coverage](coverage.html): Retrieve coverages for a patient
2634* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The reference to the patient
2635* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The reference to the patient
2636* [DetectedIssue](detectedissue.html): Associated patient
2637* [DeviceRequest](devicerequest.html): Individual the service is ordered for
2638* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device
2639* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient
2640* [DocumentReference](documentreference.html): Who/what is the subject of the document
2641* [Encounter](encounter.html): The patient present at the encounter
2642* [EnrollmentRequest](enrollmentrequest.html): The party to be enrolled
2643* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care
2644* [ExplanationOfBenefit](explanationofbenefit.html): The reference to the patient
2645* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for
2646* [Flag](flag.html): The identity of a subject to list flags for
2647* [Goal](goal.html): Who this goal is intended for
2648* [GuidanceResponse](guidanceresponse.html): The identity of a patient to search for guidance response results
2649* [ImagingSelection](imagingselection.html): Who the study is about
2650* [ImagingStudy](imagingstudy.html): Who the study is about
2651* [Immunization](immunization.html): The patient for the vaccination record
2652* [ImmunizationEvaluation](immunizationevaluation.html): The patient being evaluated
2653* [ImmunizationRecommendation](immunizationrecommendation.html): Who this profile is for
2654* [Invoice](invoice.html): Recipient(s) of goods and services
2655* [List](list.html): If all resources have the same subject
2656* [MeasureReport](measurereport.html): The identity of a patient to search for individual measure report results for
2657* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations  for
2658* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses  for
2659* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient
2660* [MedicationStatement](medicationstatement.html): Returns statements for a specific patient.
2661* [MolecularSequence](molecularsequence.html): The subject that the sequence is about
2662* [NutritionIntake](nutritionintake.html): Returns statements for a specific patient.
2663* [NutritionOrder](nutritionorder.html): The identity of the individual or set of individuals who requires the diet, formula or nutritional supplement
2664* [Observation](observation.html): The subject that the observation is about (if patient)
2665* [Person](person.html): The Person links to this Patient
2666* [Procedure](procedure.html): Search by subject - a patient
2667* [Provenance](provenance.html): Where the activity involved patient data
2668* [QuestionnaireResponse](questionnaireresponse.html): The patient that is the subject of the questionnaire response
2669* [RelatedPerson](relatedperson.html): The patient this related person is related to
2670* [RequestOrchestration](requestorchestration.html): The identity of a patient to search for request orchestrations
2671* [ResearchSubject](researchsubject.html): Who or what is part of study
2672* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?
2673* [ServiceRequest](servicerequest.html): Search by subject - a patient
2674* [Specimen](specimen.html): The patient the specimen comes from
2675* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied
2676* [SupplyRequest](supplyrequest.html): The patient or subject for whom the supply is destined
2677* [Task](task.html): Search by patient
2678* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for
2679</b><br>
2680   * Type: <b>reference</b><br>
2681   * Path: <b>Account.subject.where(resolve() is Patient) | AdverseEvent.subject.where(resolve() is Patient) | AllergyIntolerance.patient | Appointment.participant.actor.where(resolve() is Patient) | Appointment.subject.where(resolve() is Patient) | AppointmentResponse.actor.where(resolve() is Patient) | AuditEvent.patient | Basic.subject.where(resolve() is Patient) | BodyStructure.patient | CarePlan.subject.where(resolve() is Patient) | CareTeam.subject.where(resolve() is Patient) | ChargeItem.subject.where(resolve() is Patient) | Claim.patient | ClaimResponse.patient | ClinicalImpression.subject.where(resolve() is Patient) | Communication.subject.where(resolve() is Patient) | CommunicationRequest.subject.where(resolve() is Patient) | Composition.subject.where(resolve() is Patient) | Condition.subject.where(resolve() is Patient) | Consent.subject.where(resolve() is Patient) | Contract.subject.where(resolve() is Patient) | Coverage.beneficiary | CoverageEligibilityRequest.patient | CoverageEligibilityResponse.patient | DetectedIssue.subject.where(resolve() is Patient) | DeviceRequest.subject.where(resolve() is Patient) | DeviceUsage.patient | DiagnosticReport.subject.where(resolve() is Patient) | DocumentReference.subject.where(resolve() is Patient) | Encounter.subject.where(resolve() is Patient) | EnrollmentRequest.candidate | EpisodeOfCare.patient | ExplanationOfBenefit.patient | FamilyMemberHistory.patient | Flag.subject.where(resolve() is Patient) | Goal.subject.where(resolve() is Patient) | GuidanceResponse.subject.where(resolve() is Patient) | ImagingSelection.subject.where(resolve() is Patient) | ImagingStudy.subject.where(resolve() is Patient) | Immunization.patient | ImmunizationEvaluation.patient | ImmunizationRecommendation.patient | Invoice.subject.where(resolve() is Patient) | List.subject.where(resolve() is Patient) | MeasureReport.subject.where(resolve() is Patient) | MedicationAdministration.subject.where(resolve() is Patient) | MedicationDispense.subject.where(resolve() is Patient) | MedicationRequest.subject.where(resolve() is Patient) | MedicationStatement.subject.where(resolve() is Patient) | MolecularSequence.subject.where(resolve() is Patient) | NutritionIntake.subject.where(resolve() is Patient) | NutritionOrder.subject.where(resolve() is Patient) | Observation.subject.where(resolve() is Patient) | Person.link.target.where(resolve() is Patient) | Procedure.subject.where(resolve() is Patient) | Provenance.patient | QuestionnaireResponse.subject.where(resolve() is Patient) | RelatedPerson.patient | RequestOrchestration.subject.where(resolve() is Patient) | ResearchSubject.subject.where(resolve() is Patient) | RiskAssessment.subject.where(resolve() is Patient) | ServiceRequest.subject.where(resolve() is Patient) | Specimen.subject.where(resolve() is Patient) | SupplyDelivery.patient | SupplyRequest.deliverFor | Task.for.where(resolve() is Patient) | VisionPrescription.patient</b><br>
2682   * </p>
2683   */
2684  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PATIENT);
2685
2686/**
2687   * Constant for fluent queries to be used to add include statements. Specifies
2688   * the path value of "<b>CommunicationRequest:patient</b>".
2689   */
2690  public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("CommunicationRequest:patient").toLocked();
2691
2692
2693}
2694