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 reply to an appointment request for a patient and/or practitioner(s), such as a confirmation or rejection.
052 */
053@ResourceDef(name="AppointmentResponse", profile="http://hl7.org/fhir/StructureDefinition/AppointmentResponse")
054public class AppointmentResponse extends DomainResource {
055
056    public enum AppointmentResponseStatus {
057        /**
058         * The participant has accepted the appointment.
059         */
060        ACCEPTED, 
061        /**
062         * The participant has declined the appointment and will not participate in the appointment.
063         */
064        DECLINED, 
065        /**
066         * The participant has  tentatively accepted the appointment. This could be automatically created by a system and requires further processing before it can be accepted. There is no commitment that attendance will occur.
067         */
068        TENTATIVE, 
069        /**
070         * The participant needs to indicate if they accept the appointment by changing this status to one of the other statuses.
071         */
072        NEEDSACTION, 
073        /**
074         * This instance should not have been part of this patient's medical record.
075         */
076        ENTEREDINERROR, 
077        /**
078         * added to help the parsers with the generic types
079         */
080        NULL;
081        public static AppointmentResponseStatus fromCode(String codeString) throws FHIRException {
082            if (codeString == null || "".equals(codeString))
083                return null;
084        if ("accepted".equals(codeString))
085          return ACCEPTED;
086        if ("declined".equals(codeString))
087          return DECLINED;
088        if ("tentative".equals(codeString))
089          return TENTATIVE;
090        if ("needs-action".equals(codeString))
091          return NEEDSACTION;
092        if ("entered-in-error".equals(codeString))
093          return ENTEREDINERROR;
094        if (Configuration.isAcceptInvalidEnums())
095          return null;
096        else
097          throw new FHIRException("Unknown AppointmentResponseStatus code '"+codeString+"'");
098        }
099        public String toCode() {
100          switch (this) {
101            case ACCEPTED: return "accepted";
102            case DECLINED: return "declined";
103            case TENTATIVE: return "tentative";
104            case NEEDSACTION: return "needs-action";
105            case ENTEREDINERROR: return "entered-in-error";
106            case NULL: return null;
107            default: return "?";
108          }
109        }
110        public String getSystem() {
111          switch (this) {
112            case ACCEPTED: return "http://hl7.org/fhir/participationstatus";
113            case DECLINED: return "http://hl7.org/fhir/participationstatus";
114            case TENTATIVE: return "http://hl7.org/fhir/participationstatus";
115            case NEEDSACTION: return "http://hl7.org/fhir/participationstatus";
116            case ENTEREDINERROR: return "http://hl7.org/fhir/appointmentstatus";
117            case NULL: return null;
118            default: return "?";
119          }
120        }
121        public String getDefinition() {
122          switch (this) {
123            case ACCEPTED: return "The participant has accepted the appointment.";
124            case DECLINED: return "The participant has declined the appointment and will not participate in the appointment.";
125            case TENTATIVE: return "The participant has  tentatively accepted the appointment. This could be automatically created by a system and requires further processing before it can be accepted. There is no commitment that attendance will occur.";
126            case NEEDSACTION: return "The participant needs to indicate if they accept the appointment by changing this status to one of the other statuses.";
127            case ENTEREDINERROR: return "This instance should not have been part of this patient's medical record.";
128            case NULL: return null;
129            default: return "?";
130          }
131        }
132        public String getDisplay() {
133          switch (this) {
134            case ACCEPTED: return "Accepted";
135            case DECLINED: return "Declined";
136            case TENTATIVE: return "Tentative";
137            case NEEDSACTION: return "Needs Action";
138            case ENTEREDINERROR: return "Entered in error";
139            case NULL: return null;
140            default: return "?";
141          }
142        }
143    }
144
145  public static class AppointmentResponseStatusEnumFactory implements EnumFactory<AppointmentResponseStatus> {
146    public AppointmentResponseStatus fromCode(String codeString) throws IllegalArgumentException {
147      if (codeString == null || "".equals(codeString))
148            if (codeString == null || "".equals(codeString))
149                return null;
150        if ("accepted".equals(codeString))
151          return AppointmentResponseStatus.ACCEPTED;
152        if ("declined".equals(codeString))
153          return AppointmentResponseStatus.DECLINED;
154        if ("tentative".equals(codeString))
155          return AppointmentResponseStatus.TENTATIVE;
156        if ("needs-action".equals(codeString))
157          return AppointmentResponseStatus.NEEDSACTION;
158        if ("entered-in-error".equals(codeString))
159          return AppointmentResponseStatus.ENTEREDINERROR;
160        throw new IllegalArgumentException("Unknown AppointmentResponseStatus code '"+codeString+"'");
161        }
162        public Enumeration<AppointmentResponseStatus> fromType(PrimitiveType<?> code) throws FHIRException {
163          if (code == null)
164            return null;
165          if (code.isEmpty())
166            return new Enumeration<AppointmentResponseStatus>(this, AppointmentResponseStatus.NULL, code);
167          String codeString = ((PrimitiveType) code).asStringValue();
168          if (codeString == null || "".equals(codeString))
169            return new Enumeration<AppointmentResponseStatus>(this, AppointmentResponseStatus.NULL, code);
170        if ("accepted".equals(codeString))
171          return new Enumeration<AppointmentResponseStatus>(this, AppointmentResponseStatus.ACCEPTED, code);
172        if ("declined".equals(codeString))
173          return new Enumeration<AppointmentResponseStatus>(this, AppointmentResponseStatus.DECLINED, code);
174        if ("tentative".equals(codeString))
175          return new Enumeration<AppointmentResponseStatus>(this, AppointmentResponseStatus.TENTATIVE, code);
176        if ("needs-action".equals(codeString))
177          return new Enumeration<AppointmentResponseStatus>(this, AppointmentResponseStatus.NEEDSACTION, code);
178        if ("entered-in-error".equals(codeString))
179          return new Enumeration<AppointmentResponseStatus>(this, AppointmentResponseStatus.ENTEREDINERROR, code);
180        throw new FHIRException("Unknown AppointmentResponseStatus code '"+codeString+"'");
181        }
182    public String toCode(AppointmentResponseStatus code) {
183      if (code == AppointmentResponseStatus.ACCEPTED)
184        return "accepted";
185      if (code == AppointmentResponseStatus.DECLINED)
186        return "declined";
187      if (code == AppointmentResponseStatus.TENTATIVE)
188        return "tentative";
189      if (code == AppointmentResponseStatus.NEEDSACTION)
190        return "needs-action";
191      if (code == AppointmentResponseStatus.ENTEREDINERROR)
192        return "entered-in-error";
193      return "?";
194      }
195    public String toSystem(AppointmentResponseStatus code) {
196      return code.getSystem();
197      }
198    }
199
200    /**
201     * This records identifiers associated with this appointment response concern that are defined by business processes and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate.
202     */
203    @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
204    @Description(shortDefinition="External Ids for this item", formalDefinition="This records identifiers associated with this appointment response concern that are defined by business processes and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate." )
205    protected List<Identifier> identifier;
206
207    /**
208     * Appointment that this response is replying to.
209     */
210    @Child(name = "appointment", type = {Appointment.class}, order=1, min=1, max=1, modifier=false, summary=true)
211    @Description(shortDefinition="Appointment this response relates to", formalDefinition="Appointment that this response is replying to." )
212    protected Reference appointment;
213
214    /**
215     * Indicates that the response is proposing a different time that was initially requested.  The new proposed time will be indicated in the start and end properties.
216     */
217    @Child(name = "proposedNewTime", type = {BooleanType.class}, order=2, min=0, max=1, modifier=false, summary=true)
218    @Description(shortDefinition="Indicator for a counter proposal", formalDefinition="Indicates that the response is proposing a different time that was initially requested.  The new proposed time will be indicated in the start and end properties." )
219    protected BooleanType proposedNewTime;
220
221    /**
222     * Date/Time that the appointment is to take place, or requested new start time.
223     */
224    @Child(name = "start", type = {InstantType.class}, order=3, min=0, max=1, modifier=false, summary=false)
225    @Description(shortDefinition="Time from appointment, or requested new start time", formalDefinition="Date/Time that the appointment is to take place, or requested new start time." )
226    protected InstantType start;
227
228    /**
229     * This may be either the same as the appointment request to confirm the details of the appointment, or alternately a new time to request a re-negotiation of the end time.
230     */
231    @Child(name = "end", type = {InstantType.class}, order=4, min=0, max=1, modifier=false, summary=false)
232    @Description(shortDefinition="Time from appointment, or requested new end time", formalDefinition="This may be either the same as the appointment request to confirm the details of the appointment, or alternately a new time to request a re-negotiation of the end time." )
233    protected InstantType end;
234
235    /**
236     * Role of participant in the appointment.
237     */
238    @Child(name = "participantType", type = {CodeableConcept.class}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
239    @Description(shortDefinition="Role of participant in the appointment", formalDefinition="Role of participant in the appointment." )
240    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/encounter-participant-type")
241    protected List<CodeableConcept> participantType;
242
243    /**
244     * A Person, Location, HealthcareService, or Device that is participating in the appointment.
245     */
246    @Child(name = "actor", type = {Patient.class, Group.class, Practitioner.class, PractitionerRole.class, RelatedPerson.class, Device.class, HealthcareService.class, Location.class}, order=6, min=0, max=1, modifier=false, summary=true)
247    @Description(shortDefinition="Person(s), Location, HealthcareService, or Device", formalDefinition="A Person, Location, HealthcareService, or Device that is participating in the appointment." )
248    protected Reference actor;
249
250    /**
251     * Participation status of the participant. When the status is declined or tentative if the start/end times are different to the appointment, then these times should be interpreted as a requested time change. When the status is accepted, the times can either be the time of the appointment (as a confirmation of the time) or can be empty.
252     */
253    @Child(name = "participantStatus", type = {CodeType.class}, order=7, min=1, max=1, modifier=true, summary=true)
254    @Description(shortDefinition="accepted | declined | tentative | needs-action | entered-in-error", formalDefinition="Participation status of the participant. When the status is declined or tentative if the start/end times are different to the appointment, then these times should be interpreted as a requested time change. When the status is accepted, the times can either be the time of the appointment (as a confirmation of the time) or can be empty." )
255    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/appointmentresponse-status")
256    protected Enumeration<AppointmentResponseStatus> participantStatus;
257
258    /**
259     * Additional comments about the appointment.
260     */
261    @Child(name = "comment", type = {MarkdownType.class}, order=8, min=0, max=1, modifier=false, summary=false)
262    @Description(shortDefinition="Additional comments", formalDefinition="Additional comments about the appointment." )
263    protected MarkdownType comment;
264
265    /**
266     * Indicates that this AppointmentResponse applies to all occurrences in a recurring request.
267     */
268    @Child(name = "recurring", type = {BooleanType.class}, order=9, min=0, max=1, modifier=false, summary=false)
269    @Description(shortDefinition="This response is for all occurrences in a recurring request", formalDefinition="Indicates that this AppointmentResponse applies to all occurrences in a recurring request." )
270    protected BooleanType recurring;
271
272    /**
273     * The original date within a recurring request. This could be used in place of the recurrenceId to be more direct (or where the template is provided through the simple list of dates in `Appointment.occurrenceDate`).
274     */
275    @Child(name = "occurrenceDate", type = {DateType.class}, order=10, min=0, max=1, modifier=false, summary=false)
276    @Description(shortDefinition="Original date within a recurring request", formalDefinition="The original date within a recurring request. This could be used in place of the recurrenceId to be more direct (or where the template is provided through the simple list of dates in `Appointment.occurrenceDate`)." )
277    protected DateType occurrenceDate;
278
279    /**
280     * The recurrence ID (sequence number) of the specific appointment when responding to a recurring request.
281     */
282    @Child(name = "recurrenceId", type = {PositiveIntType.class}, order=11, min=0, max=1, modifier=false, summary=false)
283    @Description(shortDefinition="The recurrence ID of the specific recurring request", formalDefinition="The recurrence ID (sequence number) of the specific appointment when responding to a recurring request." )
284    protected PositiveIntType recurrenceId;
285
286    private static final long serialVersionUID = -780212279L;
287
288  /**
289   * Constructor
290   */
291    public AppointmentResponse() {
292      super();
293    }
294
295  /**
296   * Constructor
297   */
298    public AppointmentResponse(Reference appointment, AppointmentResponseStatus participantStatus) {
299      super();
300      this.setAppointment(appointment);
301      this.setParticipantStatus(participantStatus);
302    }
303
304    /**
305     * @return {@link #identifier} (This records identifiers associated with this appointment response concern that are defined by business processes and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate.)
306     */
307    public List<Identifier> getIdentifier() { 
308      if (this.identifier == null)
309        this.identifier = new ArrayList<Identifier>();
310      return this.identifier;
311    }
312
313    /**
314     * @return Returns a reference to <code>this</code> for easy method chaining
315     */
316    public AppointmentResponse setIdentifier(List<Identifier> theIdentifier) { 
317      this.identifier = theIdentifier;
318      return this;
319    }
320
321    public boolean hasIdentifier() { 
322      if (this.identifier == null)
323        return false;
324      for (Identifier item : this.identifier)
325        if (!item.isEmpty())
326          return true;
327      return false;
328    }
329
330    public Identifier addIdentifier() { //3
331      Identifier t = new Identifier();
332      if (this.identifier == null)
333        this.identifier = new ArrayList<Identifier>();
334      this.identifier.add(t);
335      return t;
336    }
337
338    public AppointmentResponse addIdentifier(Identifier t) { //3
339      if (t == null)
340        return this;
341      if (this.identifier == null)
342        this.identifier = new ArrayList<Identifier>();
343      this.identifier.add(t);
344      return this;
345    }
346
347    /**
348     * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3}
349     */
350    public Identifier getIdentifierFirstRep() { 
351      if (getIdentifier().isEmpty()) {
352        addIdentifier();
353      }
354      return getIdentifier().get(0);
355    }
356
357    /**
358     * @return {@link #appointment} (Appointment that this response is replying to.)
359     */
360    public Reference getAppointment() { 
361      if (this.appointment == null)
362        if (Configuration.errorOnAutoCreate())
363          throw new Error("Attempt to auto-create AppointmentResponse.appointment");
364        else if (Configuration.doAutoCreate())
365          this.appointment = new Reference(); // cc
366      return this.appointment;
367    }
368
369    public boolean hasAppointment() { 
370      return this.appointment != null && !this.appointment.isEmpty();
371    }
372
373    /**
374     * @param value {@link #appointment} (Appointment that this response is replying to.)
375     */
376    public AppointmentResponse setAppointment(Reference value) { 
377      this.appointment = value;
378      return this;
379    }
380
381    /**
382     * @return {@link #proposedNewTime} (Indicates that the response is proposing a different time that was initially requested.  The new proposed time will be indicated in the start and end properties.). This is the underlying object with id, value and extensions. The accessor "getProposedNewTime" gives direct access to the value
383     */
384    public BooleanType getProposedNewTimeElement() { 
385      if (this.proposedNewTime == null)
386        if (Configuration.errorOnAutoCreate())
387          throw new Error("Attempt to auto-create AppointmentResponse.proposedNewTime");
388        else if (Configuration.doAutoCreate())
389          this.proposedNewTime = new BooleanType(); // bb
390      return this.proposedNewTime;
391    }
392
393    public boolean hasProposedNewTimeElement() { 
394      return this.proposedNewTime != null && !this.proposedNewTime.isEmpty();
395    }
396
397    public boolean hasProposedNewTime() { 
398      return this.proposedNewTime != null && !this.proposedNewTime.isEmpty();
399    }
400
401    /**
402     * @param value {@link #proposedNewTime} (Indicates that the response is proposing a different time that was initially requested.  The new proposed time will be indicated in the start and end properties.). This is the underlying object with id, value and extensions. The accessor "getProposedNewTime" gives direct access to the value
403     */
404    public AppointmentResponse setProposedNewTimeElement(BooleanType value) { 
405      this.proposedNewTime = value;
406      return this;
407    }
408
409    /**
410     * @return Indicates that the response is proposing a different time that was initially requested.  The new proposed time will be indicated in the start and end properties.
411     */
412    public boolean getProposedNewTime() { 
413      return this.proposedNewTime == null || this.proposedNewTime.isEmpty() ? false : this.proposedNewTime.getValue();
414    }
415
416    /**
417     * @param value Indicates that the response is proposing a different time that was initially requested.  The new proposed time will be indicated in the start and end properties.
418     */
419    public AppointmentResponse setProposedNewTime(boolean value) { 
420        if (this.proposedNewTime == null)
421          this.proposedNewTime = new BooleanType();
422        this.proposedNewTime.setValue(value);
423      return this;
424    }
425
426    /**
427     * @return {@link #start} (Date/Time that the appointment is to take place, or requested new start time.). This is the underlying object with id, value and extensions. The accessor "getStart" gives direct access to the value
428     */
429    public InstantType getStartElement() { 
430      if (this.start == null)
431        if (Configuration.errorOnAutoCreate())
432          throw new Error("Attempt to auto-create AppointmentResponse.start");
433        else if (Configuration.doAutoCreate())
434          this.start = new InstantType(); // bb
435      return this.start;
436    }
437
438    public boolean hasStartElement() { 
439      return this.start != null && !this.start.isEmpty();
440    }
441
442    public boolean hasStart() { 
443      return this.start != null && !this.start.isEmpty();
444    }
445
446    /**
447     * @param value {@link #start} (Date/Time that the appointment is to take place, or requested new start time.). This is the underlying object with id, value and extensions. The accessor "getStart" gives direct access to the value
448     */
449    public AppointmentResponse setStartElement(InstantType value) { 
450      this.start = value;
451      return this;
452    }
453
454    /**
455     * @return Date/Time that the appointment is to take place, or requested new start time.
456     */
457    public Date getStart() { 
458      return this.start == null ? null : this.start.getValue();
459    }
460
461    /**
462     * @param value Date/Time that the appointment is to take place, or requested new start time.
463     */
464    public AppointmentResponse setStart(Date value) { 
465      if (value == null)
466        this.start = null;
467      else {
468        if (this.start == null)
469          this.start = new InstantType();
470        this.start.setValue(value);
471      }
472      return this;
473    }
474
475    /**
476     * @return {@link #end} (This may be either the same as the appointment request to confirm the details of the appointment, or alternately a new time to request a re-negotiation of the end time.). This is the underlying object with id, value and extensions. The accessor "getEnd" gives direct access to the value
477     */
478    public InstantType getEndElement() { 
479      if (this.end == null)
480        if (Configuration.errorOnAutoCreate())
481          throw new Error("Attempt to auto-create AppointmentResponse.end");
482        else if (Configuration.doAutoCreate())
483          this.end = new InstantType(); // bb
484      return this.end;
485    }
486
487    public boolean hasEndElement() { 
488      return this.end != null && !this.end.isEmpty();
489    }
490
491    public boolean hasEnd() { 
492      return this.end != null && !this.end.isEmpty();
493    }
494
495    /**
496     * @param value {@link #end} (This may be either the same as the appointment request to confirm the details of the appointment, or alternately a new time to request a re-negotiation of the end time.). This is the underlying object with id, value and extensions. The accessor "getEnd" gives direct access to the value
497     */
498    public AppointmentResponse setEndElement(InstantType value) { 
499      this.end = value;
500      return this;
501    }
502
503    /**
504     * @return This may be either the same as the appointment request to confirm the details of the appointment, or alternately a new time to request a re-negotiation of the end time.
505     */
506    public Date getEnd() { 
507      return this.end == null ? null : this.end.getValue();
508    }
509
510    /**
511     * @param value This may be either the same as the appointment request to confirm the details of the appointment, or alternately a new time to request a re-negotiation of the end time.
512     */
513    public AppointmentResponse setEnd(Date value) { 
514      if (value == null)
515        this.end = null;
516      else {
517        if (this.end == null)
518          this.end = new InstantType();
519        this.end.setValue(value);
520      }
521      return this;
522    }
523
524    /**
525     * @return {@link #participantType} (Role of participant in the appointment.)
526     */
527    public List<CodeableConcept> getParticipantType() { 
528      if (this.participantType == null)
529        this.participantType = new ArrayList<CodeableConcept>();
530      return this.participantType;
531    }
532
533    /**
534     * @return Returns a reference to <code>this</code> for easy method chaining
535     */
536    public AppointmentResponse setParticipantType(List<CodeableConcept> theParticipantType) { 
537      this.participantType = theParticipantType;
538      return this;
539    }
540
541    public boolean hasParticipantType() { 
542      if (this.participantType == null)
543        return false;
544      for (CodeableConcept item : this.participantType)
545        if (!item.isEmpty())
546          return true;
547      return false;
548    }
549
550    public CodeableConcept addParticipantType() { //3
551      CodeableConcept t = new CodeableConcept();
552      if (this.participantType == null)
553        this.participantType = new ArrayList<CodeableConcept>();
554      this.participantType.add(t);
555      return t;
556    }
557
558    public AppointmentResponse addParticipantType(CodeableConcept t) { //3
559      if (t == null)
560        return this;
561      if (this.participantType == null)
562        this.participantType = new ArrayList<CodeableConcept>();
563      this.participantType.add(t);
564      return this;
565    }
566
567    /**
568     * @return The first repetition of repeating field {@link #participantType}, creating it if it does not already exist {3}
569     */
570    public CodeableConcept getParticipantTypeFirstRep() { 
571      if (getParticipantType().isEmpty()) {
572        addParticipantType();
573      }
574      return getParticipantType().get(0);
575    }
576
577    /**
578     * @return {@link #actor} (A Person, Location, HealthcareService, or Device that is participating in the appointment.)
579     */
580    public Reference getActor() { 
581      if (this.actor == null)
582        if (Configuration.errorOnAutoCreate())
583          throw new Error("Attempt to auto-create AppointmentResponse.actor");
584        else if (Configuration.doAutoCreate())
585          this.actor = new Reference(); // cc
586      return this.actor;
587    }
588
589    public boolean hasActor() { 
590      return this.actor != null && !this.actor.isEmpty();
591    }
592
593    /**
594     * @param value {@link #actor} (A Person, Location, HealthcareService, or Device that is participating in the appointment.)
595     */
596    public AppointmentResponse setActor(Reference value) { 
597      this.actor = value;
598      return this;
599    }
600
601    /**
602     * @return {@link #participantStatus} (Participation status of the participant. When the status is declined or tentative if the start/end times are different to the appointment, then these times should be interpreted as a requested time change. When the status is accepted, the times can either be the time of the appointment (as a confirmation of the time) or can be empty.). This is the underlying object with id, value and extensions. The accessor "getParticipantStatus" gives direct access to the value
603     */
604    public Enumeration<AppointmentResponseStatus> getParticipantStatusElement() { 
605      if (this.participantStatus == null)
606        if (Configuration.errorOnAutoCreate())
607          throw new Error("Attempt to auto-create AppointmentResponse.participantStatus");
608        else if (Configuration.doAutoCreate())
609          this.participantStatus = new Enumeration<AppointmentResponseStatus>(new AppointmentResponseStatusEnumFactory()); // bb
610      return this.participantStatus;
611    }
612
613    public boolean hasParticipantStatusElement() { 
614      return this.participantStatus != null && !this.participantStatus.isEmpty();
615    }
616
617    public boolean hasParticipantStatus() { 
618      return this.participantStatus != null && !this.participantStatus.isEmpty();
619    }
620
621    /**
622     * @param value {@link #participantStatus} (Participation status of the participant. When the status is declined or tentative if the start/end times are different to the appointment, then these times should be interpreted as a requested time change. When the status is accepted, the times can either be the time of the appointment (as a confirmation of the time) or can be empty.). This is the underlying object with id, value and extensions. The accessor "getParticipantStatus" gives direct access to the value
623     */
624    public AppointmentResponse setParticipantStatusElement(Enumeration<AppointmentResponseStatus> value) { 
625      this.participantStatus = value;
626      return this;
627    }
628
629    /**
630     * @return Participation status of the participant. When the status is declined or tentative if the start/end times are different to the appointment, then these times should be interpreted as a requested time change. When the status is accepted, the times can either be the time of the appointment (as a confirmation of the time) or can be empty.
631     */
632    public AppointmentResponseStatus getParticipantStatus() { 
633      return this.participantStatus == null ? null : this.participantStatus.getValue();
634    }
635
636    /**
637     * @param value Participation status of the participant. When the status is declined or tentative if the start/end times are different to the appointment, then these times should be interpreted as a requested time change. When the status is accepted, the times can either be the time of the appointment (as a confirmation of the time) or can be empty.
638     */
639    public AppointmentResponse setParticipantStatus(AppointmentResponseStatus value) { 
640        if (this.participantStatus == null)
641          this.participantStatus = new Enumeration<AppointmentResponseStatus>(new AppointmentResponseStatusEnumFactory());
642        this.participantStatus.setValue(value);
643      return this;
644    }
645
646    /**
647     * @return {@link #comment} (Additional comments about the appointment.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value
648     */
649    public MarkdownType getCommentElement() { 
650      if (this.comment == null)
651        if (Configuration.errorOnAutoCreate())
652          throw new Error("Attempt to auto-create AppointmentResponse.comment");
653        else if (Configuration.doAutoCreate())
654          this.comment = new MarkdownType(); // bb
655      return this.comment;
656    }
657
658    public boolean hasCommentElement() { 
659      return this.comment != null && !this.comment.isEmpty();
660    }
661
662    public boolean hasComment() { 
663      return this.comment != null && !this.comment.isEmpty();
664    }
665
666    /**
667     * @param value {@link #comment} (Additional comments about the appointment.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value
668     */
669    public AppointmentResponse setCommentElement(MarkdownType value) { 
670      this.comment = value;
671      return this;
672    }
673
674    /**
675     * @return Additional comments about the appointment.
676     */
677    public String getComment() { 
678      return this.comment == null ? null : this.comment.getValue();
679    }
680
681    /**
682     * @param value Additional comments about the appointment.
683     */
684    public AppointmentResponse setComment(String value) { 
685      if (Utilities.noString(value))
686        this.comment = null;
687      else {
688        if (this.comment == null)
689          this.comment = new MarkdownType();
690        this.comment.setValue(value);
691      }
692      return this;
693    }
694
695    /**
696     * @return {@link #recurring} (Indicates that this AppointmentResponse applies to all occurrences in a recurring request.). This is the underlying object with id, value and extensions. The accessor "getRecurring" gives direct access to the value
697     */
698    public BooleanType getRecurringElement() { 
699      if (this.recurring == null)
700        if (Configuration.errorOnAutoCreate())
701          throw new Error("Attempt to auto-create AppointmentResponse.recurring");
702        else if (Configuration.doAutoCreate())
703          this.recurring = new BooleanType(); // bb
704      return this.recurring;
705    }
706
707    public boolean hasRecurringElement() { 
708      return this.recurring != null && !this.recurring.isEmpty();
709    }
710
711    public boolean hasRecurring() { 
712      return this.recurring != null && !this.recurring.isEmpty();
713    }
714
715    /**
716     * @param value {@link #recurring} (Indicates that this AppointmentResponse applies to all occurrences in a recurring request.). This is the underlying object with id, value and extensions. The accessor "getRecurring" gives direct access to the value
717     */
718    public AppointmentResponse setRecurringElement(BooleanType value) { 
719      this.recurring = value;
720      return this;
721    }
722
723    /**
724     * @return Indicates that this AppointmentResponse applies to all occurrences in a recurring request.
725     */
726    public boolean getRecurring() { 
727      return this.recurring == null || this.recurring.isEmpty() ? false : this.recurring.getValue();
728    }
729
730    /**
731     * @param value Indicates that this AppointmentResponse applies to all occurrences in a recurring request.
732     */
733    public AppointmentResponse setRecurring(boolean value) { 
734        if (this.recurring == null)
735          this.recurring = new BooleanType();
736        this.recurring.setValue(value);
737      return this;
738    }
739
740    /**
741     * @return {@link #occurrenceDate} (The original date within a recurring request. This could be used in place of the recurrenceId to be more direct (or where the template is provided through the simple list of dates in `Appointment.occurrenceDate`).). This is the underlying object with id, value and extensions. The accessor "getOccurrenceDate" gives direct access to the value
742     */
743    public DateType getOccurrenceDateElement() { 
744      if (this.occurrenceDate == null)
745        if (Configuration.errorOnAutoCreate())
746          throw new Error("Attempt to auto-create AppointmentResponse.occurrenceDate");
747        else if (Configuration.doAutoCreate())
748          this.occurrenceDate = new DateType(); // bb
749      return this.occurrenceDate;
750    }
751
752    public boolean hasOccurrenceDateElement() { 
753      return this.occurrenceDate != null && !this.occurrenceDate.isEmpty();
754    }
755
756    public boolean hasOccurrenceDate() { 
757      return this.occurrenceDate != null && !this.occurrenceDate.isEmpty();
758    }
759
760    /**
761     * @param value {@link #occurrenceDate} (The original date within a recurring request. This could be used in place of the recurrenceId to be more direct (or where the template is provided through the simple list of dates in `Appointment.occurrenceDate`).). This is the underlying object with id, value and extensions. The accessor "getOccurrenceDate" gives direct access to the value
762     */
763    public AppointmentResponse setOccurrenceDateElement(DateType value) { 
764      this.occurrenceDate = value;
765      return this;
766    }
767
768    /**
769     * @return The original date within a recurring request. This could be used in place of the recurrenceId to be more direct (or where the template is provided through the simple list of dates in `Appointment.occurrenceDate`).
770     */
771    public Date getOccurrenceDate() { 
772      return this.occurrenceDate == null ? null : this.occurrenceDate.getValue();
773    }
774
775    /**
776     * @param value The original date within a recurring request. This could be used in place of the recurrenceId to be more direct (or where the template is provided through the simple list of dates in `Appointment.occurrenceDate`).
777     */
778    public AppointmentResponse setOccurrenceDate(Date value) { 
779      if (value == null)
780        this.occurrenceDate = null;
781      else {
782        if (this.occurrenceDate == null)
783          this.occurrenceDate = new DateType();
784        this.occurrenceDate.setValue(value);
785      }
786      return this;
787    }
788
789    /**
790     * @return {@link #recurrenceId} (The recurrence ID (sequence number) of the specific appointment when responding to a recurring request.). This is the underlying object with id, value and extensions. The accessor "getRecurrenceId" gives direct access to the value
791     */
792    public PositiveIntType getRecurrenceIdElement() { 
793      if (this.recurrenceId == null)
794        if (Configuration.errorOnAutoCreate())
795          throw new Error("Attempt to auto-create AppointmentResponse.recurrenceId");
796        else if (Configuration.doAutoCreate())
797          this.recurrenceId = new PositiveIntType(); // bb
798      return this.recurrenceId;
799    }
800
801    public boolean hasRecurrenceIdElement() { 
802      return this.recurrenceId != null && !this.recurrenceId.isEmpty();
803    }
804
805    public boolean hasRecurrenceId() { 
806      return this.recurrenceId != null && !this.recurrenceId.isEmpty();
807    }
808
809    /**
810     * @param value {@link #recurrenceId} (The recurrence ID (sequence number) of the specific appointment when responding to a recurring request.). This is the underlying object with id, value and extensions. The accessor "getRecurrenceId" gives direct access to the value
811     */
812    public AppointmentResponse setRecurrenceIdElement(PositiveIntType value) { 
813      this.recurrenceId = value;
814      return this;
815    }
816
817    /**
818     * @return The recurrence ID (sequence number) of the specific appointment when responding to a recurring request.
819     */
820    public int getRecurrenceId() { 
821      return this.recurrenceId == null || this.recurrenceId.isEmpty() ? 0 : this.recurrenceId.getValue();
822    }
823
824    /**
825     * @param value The recurrence ID (sequence number) of the specific appointment when responding to a recurring request.
826     */
827    public AppointmentResponse setRecurrenceId(int value) { 
828        if (this.recurrenceId == null)
829          this.recurrenceId = new PositiveIntType();
830        this.recurrenceId.setValue(value);
831      return this;
832    }
833
834      protected void listChildren(List<Property> children) {
835        super.listChildren(children);
836        children.add(new Property("identifier", "Identifier", "This records identifiers associated with this appointment response concern that are defined by business processes and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate.", 0, java.lang.Integer.MAX_VALUE, identifier));
837        children.add(new Property("appointment", "Reference(Appointment)", "Appointment that this response is replying to.", 0, 1, appointment));
838        children.add(new Property("proposedNewTime", "boolean", "Indicates that the response is proposing a different time that was initially requested.  The new proposed time will be indicated in the start and end properties.", 0, 1, proposedNewTime));
839        children.add(new Property("start", "instant", "Date/Time that the appointment is to take place, or requested new start time.", 0, 1, start));
840        children.add(new Property("end", "instant", "This may be either the same as the appointment request to confirm the details of the appointment, or alternately a new time to request a re-negotiation of the end time.", 0, 1, end));
841        children.add(new Property("participantType", "CodeableConcept", "Role of participant in the appointment.", 0, java.lang.Integer.MAX_VALUE, participantType));
842        children.add(new Property("actor", "Reference(Patient|Group|Practitioner|PractitionerRole|RelatedPerson|Device|HealthcareService|Location)", "A Person, Location, HealthcareService, or Device that is participating in the appointment.", 0, 1, actor));
843        children.add(new Property("participantStatus", "code", "Participation status of the participant. When the status is declined or tentative if the start/end times are different to the appointment, then these times should be interpreted as a requested time change. When the status is accepted, the times can either be the time of the appointment (as a confirmation of the time) or can be empty.", 0, 1, participantStatus));
844        children.add(new Property("comment", "markdown", "Additional comments about the appointment.", 0, 1, comment));
845        children.add(new Property("recurring", "boolean", "Indicates that this AppointmentResponse applies to all occurrences in a recurring request.", 0, 1, recurring));
846        children.add(new Property("occurrenceDate", "date", "The original date within a recurring request. This could be used in place of the recurrenceId to be more direct (or where the template is provided through the simple list of dates in `Appointment.occurrenceDate`).", 0, 1, occurrenceDate));
847        children.add(new Property("recurrenceId", "positiveInt", "The recurrence ID (sequence number) of the specific appointment when responding to a recurring request.", 0, 1, recurrenceId));
848      }
849
850      @Override
851      public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
852        switch (_hash) {
853        case -1618432855: /*identifier*/  return new Property("identifier", "Identifier", "This records identifiers associated with this appointment response concern that are defined by business processes and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate.", 0, java.lang.Integer.MAX_VALUE, identifier);
854        case -1474995297: /*appointment*/  return new Property("appointment", "Reference(Appointment)", "Appointment that this response is replying to.", 0, 1, appointment);
855        case -577024441: /*proposedNewTime*/  return new Property("proposedNewTime", "boolean", "Indicates that the response is proposing a different time that was initially requested.  The new proposed time will be indicated in the start and end properties.", 0, 1, proposedNewTime);
856        case 109757538: /*start*/  return new Property("start", "instant", "Date/Time that the appointment is to take place, or requested new start time.", 0, 1, start);
857        case 100571: /*end*/  return new Property("end", "instant", "This may be either the same as the appointment request to confirm the details of the appointment, or alternately a new time to request a re-negotiation of the end time.", 0, 1, end);
858        case 841294093: /*participantType*/  return new Property("participantType", "CodeableConcept", "Role of participant in the appointment.", 0, java.lang.Integer.MAX_VALUE, participantType);
859        case 92645877: /*actor*/  return new Property("actor", "Reference(Patient|Group|Practitioner|PractitionerRole|RelatedPerson|Device|HealthcareService|Location)", "A Person, Location, HealthcareService, or Device that is participating in the appointment.", 0, 1, actor);
860        case 996096261: /*participantStatus*/  return new Property("participantStatus", "code", "Participation status of the participant. When the status is declined or tentative if the start/end times are different to the appointment, then these times should be interpreted as a requested time change. When the status is accepted, the times can either be the time of the appointment (as a confirmation of the time) or can be empty.", 0, 1, participantStatus);
861        case 950398559: /*comment*/  return new Property("comment", "markdown", "Additional comments about the appointment.", 0, 1, comment);
862        case 1165749981: /*recurring*/  return new Property("recurring", "boolean", "Indicates that this AppointmentResponse applies to all occurrences in a recurring request.", 0, 1, recurring);
863        case 1721761055: /*occurrenceDate*/  return new Property("occurrenceDate", "date", "The original date within a recurring request. This could be used in place of the recurrenceId to be more direct (or where the template is provided through the simple list of dates in `Appointment.occurrenceDate`).", 0, 1, occurrenceDate);
864        case -362407829: /*recurrenceId*/  return new Property("recurrenceId", "positiveInt", "The recurrence ID (sequence number) of the specific appointment when responding to a recurring request.", 0, 1, recurrenceId);
865        default: return super.getNamedProperty(_hash, _name, _checkValid);
866        }
867
868      }
869
870      @Override
871      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
872        switch (hash) {
873        case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier
874        case -1474995297: /*appointment*/ return this.appointment == null ? new Base[0] : new Base[] {this.appointment}; // Reference
875        case -577024441: /*proposedNewTime*/ return this.proposedNewTime == null ? new Base[0] : new Base[] {this.proposedNewTime}; // BooleanType
876        case 109757538: /*start*/ return this.start == null ? new Base[0] : new Base[] {this.start}; // InstantType
877        case 100571: /*end*/ return this.end == null ? new Base[0] : new Base[] {this.end}; // InstantType
878        case 841294093: /*participantType*/ return this.participantType == null ? new Base[0] : this.participantType.toArray(new Base[this.participantType.size()]); // CodeableConcept
879        case 92645877: /*actor*/ return this.actor == null ? new Base[0] : new Base[] {this.actor}; // Reference
880        case 996096261: /*participantStatus*/ return this.participantStatus == null ? new Base[0] : new Base[] {this.participantStatus}; // Enumeration<AppointmentResponseStatus>
881        case 950398559: /*comment*/ return this.comment == null ? new Base[0] : new Base[] {this.comment}; // MarkdownType
882        case 1165749981: /*recurring*/ return this.recurring == null ? new Base[0] : new Base[] {this.recurring}; // BooleanType
883        case 1721761055: /*occurrenceDate*/ return this.occurrenceDate == null ? new Base[0] : new Base[] {this.occurrenceDate}; // DateType
884        case -362407829: /*recurrenceId*/ return this.recurrenceId == null ? new Base[0] : new Base[] {this.recurrenceId}; // PositiveIntType
885        default: return super.getProperty(hash, name, checkValid);
886        }
887
888      }
889
890      @Override
891      public Base setProperty(int hash, String name, Base value) throws FHIRException {
892        switch (hash) {
893        case -1618432855: // identifier
894          this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier
895          return value;
896        case -1474995297: // appointment
897          this.appointment = TypeConvertor.castToReference(value); // Reference
898          return value;
899        case -577024441: // proposedNewTime
900          this.proposedNewTime = TypeConvertor.castToBoolean(value); // BooleanType
901          return value;
902        case 109757538: // start
903          this.start = TypeConvertor.castToInstant(value); // InstantType
904          return value;
905        case 100571: // end
906          this.end = TypeConvertor.castToInstant(value); // InstantType
907          return value;
908        case 841294093: // participantType
909          this.getParticipantType().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept
910          return value;
911        case 92645877: // actor
912          this.actor = TypeConvertor.castToReference(value); // Reference
913          return value;
914        case 996096261: // participantStatus
915          value = new AppointmentResponseStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
916          this.participantStatus = (Enumeration) value; // Enumeration<AppointmentResponseStatus>
917          return value;
918        case 950398559: // comment
919          this.comment = TypeConvertor.castToMarkdown(value); // MarkdownType
920          return value;
921        case 1165749981: // recurring
922          this.recurring = TypeConvertor.castToBoolean(value); // BooleanType
923          return value;
924        case 1721761055: // occurrenceDate
925          this.occurrenceDate = TypeConvertor.castToDate(value); // DateType
926          return value;
927        case -362407829: // recurrenceId
928          this.recurrenceId = TypeConvertor.castToPositiveInt(value); // PositiveIntType
929          return value;
930        default: return super.setProperty(hash, name, value);
931        }
932
933      }
934
935      @Override
936      public Base setProperty(String name, Base value) throws FHIRException {
937        if (name.equals("identifier")) {
938          this.getIdentifier().add(TypeConvertor.castToIdentifier(value));
939        } else if (name.equals("appointment")) {
940          this.appointment = TypeConvertor.castToReference(value); // Reference
941        } else if (name.equals("proposedNewTime")) {
942          this.proposedNewTime = TypeConvertor.castToBoolean(value); // BooleanType
943        } else if (name.equals("start")) {
944          this.start = TypeConvertor.castToInstant(value); // InstantType
945        } else if (name.equals("end")) {
946          this.end = TypeConvertor.castToInstant(value); // InstantType
947        } else if (name.equals("participantType")) {
948          this.getParticipantType().add(TypeConvertor.castToCodeableConcept(value));
949        } else if (name.equals("actor")) {
950          this.actor = TypeConvertor.castToReference(value); // Reference
951        } else if (name.equals("participantStatus")) {
952          value = new AppointmentResponseStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
953          this.participantStatus = (Enumeration) value; // Enumeration<AppointmentResponseStatus>
954        } else if (name.equals("comment")) {
955          this.comment = TypeConvertor.castToMarkdown(value); // MarkdownType
956        } else if (name.equals("recurring")) {
957          this.recurring = TypeConvertor.castToBoolean(value); // BooleanType
958        } else if (name.equals("occurrenceDate")) {
959          this.occurrenceDate = TypeConvertor.castToDate(value); // DateType
960        } else if (name.equals("recurrenceId")) {
961          this.recurrenceId = TypeConvertor.castToPositiveInt(value); // PositiveIntType
962        } else
963          return super.setProperty(name, value);
964        return value;
965      }
966
967  @Override
968  public void removeChild(String name, Base value) throws FHIRException {
969        if (name.equals("identifier")) {
970          this.getIdentifier().remove(value);
971        } else if (name.equals("appointment")) {
972          this.appointment = null;
973        } else if (name.equals("proposedNewTime")) {
974          this.proposedNewTime = null;
975        } else if (name.equals("start")) {
976          this.start = null;
977        } else if (name.equals("end")) {
978          this.end = null;
979        } else if (name.equals("participantType")) {
980          this.getParticipantType().remove(value);
981        } else if (name.equals("actor")) {
982          this.actor = null;
983        } else if (name.equals("participantStatus")) {
984          value = new AppointmentResponseStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
985          this.participantStatus = (Enumeration) value; // Enumeration<AppointmentResponseStatus>
986        } else if (name.equals("comment")) {
987          this.comment = null;
988        } else if (name.equals("recurring")) {
989          this.recurring = null;
990        } else if (name.equals("occurrenceDate")) {
991          this.occurrenceDate = null;
992        } else if (name.equals("recurrenceId")) {
993          this.recurrenceId = null;
994        } else
995          super.removeChild(name, value);
996        
997      }
998
999      @Override
1000      public Base makeProperty(int hash, String name) throws FHIRException {
1001        switch (hash) {
1002        case -1618432855:  return addIdentifier(); 
1003        case -1474995297:  return getAppointment();
1004        case -577024441:  return getProposedNewTimeElement();
1005        case 109757538:  return getStartElement();
1006        case 100571:  return getEndElement();
1007        case 841294093:  return addParticipantType(); 
1008        case 92645877:  return getActor();
1009        case 996096261:  return getParticipantStatusElement();
1010        case 950398559:  return getCommentElement();
1011        case 1165749981:  return getRecurringElement();
1012        case 1721761055:  return getOccurrenceDateElement();
1013        case -362407829:  return getRecurrenceIdElement();
1014        default: return super.makeProperty(hash, name);
1015        }
1016
1017      }
1018
1019      @Override
1020      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
1021        switch (hash) {
1022        case -1618432855: /*identifier*/ return new String[] {"Identifier"};
1023        case -1474995297: /*appointment*/ return new String[] {"Reference"};
1024        case -577024441: /*proposedNewTime*/ return new String[] {"boolean"};
1025        case 109757538: /*start*/ return new String[] {"instant"};
1026        case 100571: /*end*/ return new String[] {"instant"};
1027        case 841294093: /*participantType*/ return new String[] {"CodeableConcept"};
1028        case 92645877: /*actor*/ return new String[] {"Reference"};
1029        case 996096261: /*participantStatus*/ return new String[] {"code"};
1030        case 950398559: /*comment*/ return new String[] {"markdown"};
1031        case 1165749981: /*recurring*/ return new String[] {"boolean"};
1032        case 1721761055: /*occurrenceDate*/ return new String[] {"date"};
1033        case -362407829: /*recurrenceId*/ return new String[] {"positiveInt"};
1034        default: return super.getTypesForProperty(hash, name);
1035        }
1036
1037      }
1038
1039      @Override
1040      public Base addChild(String name) throws FHIRException {
1041        if (name.equals("identifier")) {
1042          return addIdentifier();
1043        }
1044        else if (name.equals("appointment")) {
1045          this.appointment = new Reference();
1046          return this.appointment;
1047        }
1048        else if (name.equals("proposedNewTime")) {
1049          throw new FHIRException("Cannot call addChild on a singleton property AppointmentResponse.proposedNewTime");
1050        }
1051        else if (name.equals("start")) {
1052          throw new FHIRException("Cannot call addChild on a singleton property AppointmentResponse.start");
1053        }
1054        else if (name.equals("end")) {
1055          throw new FHIRException("Cannot call addChild on a singleton property AppointmentResponse.end");
1056        }
1057        else if (name.equals("participantType")) {
1058          return addParticipantType();
1059        }
1060        else if (name.equals("actor")) {
1061          this.actor = new Reference();
1062          return this.actor;
1063        }
1064        else if (name.equals("participantStatus")) {
1065          throw new FHIRException("Cannot call addChild on a singleton property AppointmentResponse.participantStatus");
1066        }
1067        else if (name.equals("comment")) {
1068          throw new FHIRException("Cannot call addChild on a singleton property AppointmentResponse.comment");
1069        }
1070        else if (name.equals("recurring")) {
1071          throw new FHIRException("Cannot call addChild on a singleton property AppointmentResponse.recurring");
1072        }
1073        else if (name.equals("occurrenceDate")) {
1074          throw new FHIRException("Cannot call addChild on a singleton property AppointmentResponse.occurrenceDate");
1075        }
1076        else if (name.equals("recurrenceId")) {
1077          throw new FHIRException("Cannot call addChild on a singleton property AppointmentResponse.recurrenceId");
1078        }
1079        else
1080          return super.addChild(name);
1081      }
1082
1083  public String fhirType() {
1084    return "AppointmentResponse";
1085
1086  }
1087
1088      public AppointmentResponse copy() {
1089        AppointmentResponse dst = new AppointmentResponse();
1090        copyValues(dst);
1091        return dst;
1092      }
1093
1094      public void copyValues(AppointmentResponse dst) {
1095        super.copyValues(dst);
1096        if (identifier != null) {
1097          dst.identifier = new ArrayList<Identifier>();
1098          for (Identifier i : identifier)
1099            dst.identifier.add(i.copy());
1100        };
1101        dst.appointment = appointment == null ? null : appointment.copy();
1102        dst.proposedNewTime = proposedNewTime == null ? null : proposedNewTime.copy();
1103        dst.start = start == null ? null : start.copy();
1104        dst.end = end == null ? null : end.copy();
1105        if (participantType != null) {
1106          dst.participantType = new ArrayList<CodeableConcept>();
1107          for (CodeableConcept i : participantType)
1108            dst.participantType.add(i.copy());
1109        };
1110        dst.actor = actor == null ? null : actor.copy();
1111        dst.participantStatus = participantStatus == null ? null : participantStatus.copy();
1112        dst.comment = comment == null ? null : comment.copy();
1113        dst.recurring = recurring == null ? null : recurring.copy();
1114        dst.occurrenceDate = occurrenceDate == null ? null : occurrenceDate.copy();
1115        dst.recurrenceId = recurrenceId == null ? null : recurrenceId.copy();
1116      }
1117
1118      protected AppointmentResponse typedCopy() {
1119        return copy();
1120      }
1121
1122      @Override
1123      public boolean equalsDeep(Base other_) {
1124        if (!super.equalsDeep(other_))
1125          return false;
1126        if (!(other_ instanceof AppointmentResponse))
1127          return false;
1128        AppointmentResponse o = (AppointmentResponse) other_;
1129        return compareDeep(identifier, o.identifier, true) && compareDeep(appointment, o.appointment, true)
1130           && compareDeep(proposedNewTime, o.proposedNewTime, true) && compareDeep(start, o.start, true) && compareDeep(end, o.end, true)
1131           && compareDeep(participantType, o.participantType, true) && compareDeep(actor, o.actor, true) && compareDeep(participantStatus, o.participantStatus, true)
1132           && compareDeep(comment, o.comment, true) && compareDeep(recurring, o.recurring, true) && compareDeep(occurrenceDate, o.occurrenceDate, true)
1133           && compareDeep(recurrenceId, o.recurrenceId, true);
1134      }
1135
1136      @Override
1137      public boolean equalsShallow(Base other_) {
1138        if (!super.equalsShallow(other_))
1139          return false;
1140        if (!(other_ instanceof AppointmentResponse))
1141          return false;
1142        AppointmentResponse o = (AppointmentResponse) other_;
1143        return compareValues(proposedNewTime, o.proposedNewTime, true) && compareValues(start, o.start, true)
1144           && compareValues(end, o.end, true) && compareValues(participantStatus, o.participantStatus, true) && compareValues(comment, o.comment, true)
1145           && compareValues(recurring, o.recurring, true) && compareValues(occurrenceDate, o.occurrenceDate, true)
1146           && compareValues(recurrenceId, o.recurrenceId, true);
1147      }
1148
1149      public boolean isEmpty() {
1150        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, appointment, proposedNewTime
1151          , start, end, participantType, actor, participantStatus, comment, recurring, occurrenceDate
1152          , recurrenceId);
1153      }
1154
1155  @Override
1156  public ResourceType getResourceType() {
1157    return ResourceType.AppointmentResponse;
1158   }
1159
1160 /**
1161   * Search parameter: <b>actor</b>
1162   * <p>
1163   * Description: <b>The Person, Location/HealthcareService or Device that this appointment response replies for</b><br>
1164   * Type: <b>reference</b><br>
1165   * Path: <b>AppointmentResponse.actor</b><br>
1166   * </p>
1167   */
1168  @SearchParamDefinition(name="actor", path="AppointmentResponse.actor", description="The Person, Location/HealthcareService or Device that this appointment response replies for", 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, Group.class, HealthcareService.class, Location.class, Patient.class, Practitioner.class, PractitionerRole.class, RelatedPerson.class } )
1169  public static final String SP_ACTOR = "actor";
1170 /**
1171   * <b>Fluent Client</b> search parameter constant for <b>actor</b>
1172   * <p>
1173   * Description: <b>The Person, Location/HealthcareService or Device that this appointment response replies for</b><br>
1174   * Type: <b>reference</b><br>
1175   * Path: <b>AppointmentResponse.actor</b><br>
1176   * </p>
1177   */
1178  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ACTOR = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ACTOR);
1179
1180/**
1181   * Constant for fluent queries to be used to add include statements. Specifies
1182   * the path value of "<b>AppointmentResponse:actor</b>".
1183   */
1184  public static final ca.uhn.fhir.model.api.Include INCLUDE_ACTOR = new ca.uhn.fhir.model.api.Include("AppointmentResponse:actor").toLocked();
1185
1186 /**
1187   * Search parameter: <b>appointment</b>
1188   * <p>
1189   * Description: <b>The appointment that the response is attached to</b><br>
1190   * Type: <b>reference</b><br>
1191   * Path: <b>AppointmentResponse.appointment</b><br>
1192   * </p>
1193   */
1194  @SearchParamDefinition(name="appointment", path="AppointmentResponse.appointment", description="The appointment that the response is attached to", type="reference", target={Appointment.class } )
1195  public static final String SP_APPOINTMENT = "appointment";
1196 /**
1197   * <b>Fluent Client</b> search parameter constant for <b>appointment</b>
1198   * <p>
1199   * Description: <b>The appointment that the response is attached to</b><br>
1200   * Type: <b>reference</b><br>
1201   * Path: <b>AppointmentResponse.appointment</b><br>
1202   * </p>
1203   */
1204  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam APPOINTMENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_APPOINTMENT);
1205
1206/**
1207   * Constant for fluent queries to be used to add include statements. Specifies
1208   * the path value of "<b>AppointmentResponse:appointment</b>".
1209   */
1210  public static final ca.uhn.fhir.model.api.Include INCLUDE_APPOINTMENT = new ca.uhn.fhir.model.api.Include("AppointmentResponse:appointment").toLocked();
1211
1212 /**
1213   * Search parameter: <b>group</b>
1214   * <p>
1215   * Description: <b>This Response is for this Group</b><br>
1216   * Type: <b>reference</b><br>
1217   * Path: <b>AppointmentResponse.actor.where(resolve() is Group)</b><br>
1218   * </p>
1219   */
1220  @SearchParamDefinition(name="group", path="AppointmentResponse.actor.where(resolve() is Group)", description="This Response is for this Group", type="reference", target={Group.class } )
1221  public static final String SP_GROUP = "group";
1222 /**
1223   * <b>Fluent Client</b> search parameter constant for <b>group</b>
1224   * <p>
1225   * Description: <b>This Response is for this Group</b><br>
1226   * Type: <b>reference</b><br>
1227   * Path: <b>AppointmentResponse.actor.where(resolve() is Group)</b><br>
1228   * </p>
1229   */
1230  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam GROUP = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_GROUP);
1231
1232/**
1233   * Constant for fluent queries to be used to add include statements. Specifies
1234   * the path value of "<b>AppointmentResponse:group</b>".
1235   */
1236  public static final ca.uhn.fhir.model.api.Include INCLUDE_GROUP = new ca.uhn.fhir.model.api.Include("AppointmentResponse:group").toLocked();
1237
1238 /**
1239   * Search parameter: <b>location</b>
1240   * <p>
1241   * Description: <b>This Response is for this Location</b><br>
1242   * Type: <b>reference</b><br>
1243   * Path: <b>AppointmentResponse.actor.where(resolve() is Location)</b><br>
1244   * </p>
1245   */
1246  @SearchParamDefinition(name="location", path="AppointmentResponse.actor.where(resolve() is Location)", description="This Response is for this Location", type="reference", target={Location.class } )
1247  public static final String SP_LOCATION = "location";
1248 /**
1249   * <b>Fluent Client</b> search parameter constant for <b>location</b>
1250   * <p>
1251   * Description: <b>This Response is for this Location</b><br>
1252   * Type: <b>reference</b><br>
1253   * Path: <b>AppointmentResponse.actor.where(resolve() is Location)</b><br>
1254   * </p>
1255   */
1256  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam LOCATION = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_LOCATION);
1257
1258/**
1259   * Constant for fluent queries to be used to add include statements. Specifies
1260   * the path value of "<b>AppointmentResponse:location</b>".
1261   */
1262  public static final ca.uhn.fhir.model.api.Include INCLUDE_LOCATION = new ca.uhn.fhir.model.api.Include("AppointmentResponse:location").toLocked();
1263
1264 /**
1265   * Search parameter: <b>part-status</b>
1266   * <p>
1267   * Description: <b>The participants acceptance status for this appointment</b><br>
1268   * Type: <b>token</b><br>
1269   * Path: <b>AppointmentResponse.participantStatus</b><br>
1270   * </p>
1271   */
1272  @SearchParamDefinition(name="part-status", path="AppointmentResponse.participantStatus", description="The participants acceptance status for this appointment", type="token" )
1273  public static final String SP_PART_STATUS = "part-status";
1274 /**
1275   * <b>Fluent Client</b> search parameter constant for <b>part-status</b>
1276   * <p>
1277   * Description: <b>The participants acceptance status for this appointment</b><br>
1278   * Type: <b>token</b><br>
1279   * Path: <b>AppointmentResponse.participantStatus</b><br>
1280   * </p>
1281   */
1282  public static final ca.uhn.fhir.rest.gclient.TokenClientParam PART_STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_PART_STATUS);
1283
1284 /**
1285   * Search parameter: <b>practitioner</b>
1286   * <p>
1287   * Description: <b>This Response is for this Practitioner</b><br>
1288   * Type: <b>reference</b><br>
1289   * Path: <b>AppointmentResponse.actor.where(resolve() is Practitioner)</b><br>
1290   * </p>
1291   */
1292  @SearchParamDefinition(name="practitioner", path="AppointmentResponse.actor.where(resolve() is Practitioner)", description="This Response is for this Practitioner", type="reference", target={Practitioner.class } )
1293  public static final String SP_PRACTITIONER = "practitioner";
1294 /**
1295   * <b>Fluent Client</b> search parameter constant for <b>practitioner</b>
1296   * <p>
1297   * Description: <b>This Response is for this Practitioner</b><br>
1298   * Type: <b>reference</b><br>
1299   * Path: <b>AppointmentResponse.actor.where(resolve() is Practitioner)</b><br>
1300   * </p>
1301   */
1302  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PRACTITIONER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PRACTITIONER);
1303
1304/**
1305   * Constant for fluent queries to be used to add include statements. Specifies
1306   * the path value of "<b>AppointmentResponse:practitioner</b>".
1307   */
1308  public static final ca.uhn.fhir.model.api.Include INCLUDE_PRACTITIONER = new ca.uhn.fhir.model.api.Include("AppointmentResponse:practitioner").toLocked();
1309
1310 /**
1311   * Search parameter: <b>identifier</b>
1312   * <p>
1313   * Description: <b>Multiple Resources: 
1314
1315* [Account](account.html): Account number
1316* [AdverseEvent](adverseevent.html): Business identifier for the event
1317* [AllergyIntolerance](allergyintolerance.html): External ids for this item
1318* [Appointment](appointment.html): An Identifier of the Appointment
1319* [AppointmentResponse](appointmentresponse.html): An Identifier in this appointment response
1320* [Basic](basic.html): Business identifier
1321* [BodyStructure](bodystructure.html): Bodystructure identifier
1322* [CarePlan](careplan.html): External Ids for this plan
1323* [CareTeam](careteam.html): External Ids for this team
1324* [ChargeItem](chargeitem.html): Business Identifier for item
1325* [Claim](claim.html): The primary identifier of the financial resource
1326* [ClaimResponse](claimresponse.html): The identity of the ClaimResponse
1327* [ClinicalImpression](clinicalimpression.html): Business identifier
1328* [Communication](communication.html): Unique identifier
1329* [CommunicationRequest](communicationrequest.html): Unique identifier
1330* [Composition](composition.html): Version-independent identifier for the Composition
1331* [Condition](condition.html): A unique identifier of the condition record
1332* [Consent](consent.html): Identifier for this record (external references)
1333* [Contract](contract.html): The identity of the contract
1334* [Coverage](coverage.html): The primary identifier of the insured and the coverage
1335* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The business identifier of the Eligibility
1336* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The business identifier
1337* [DetectedIssue](detectedissue.html): Unique id for the detected issue
1338* [DeviceRequest](devicerequest.html): Business identifier for request/order
1339* [DeviceUsage](deviceusage.html): Search by identifier
1340* [DiagnosticReport](diagnosticreport.html): An identifier for the report
1341* [DocumentReference](documentreference.html): Identifier of the attachment binary
1342* [Encounter](encounter.html): Identifier(s) by which this encounter is known
1343* [EnrollmentRequest](enrollmentrequest.html): The business identifier of the Enrollment
1344* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare
1345* [ExplanationOfBenefit](explanationofbenefit.html): The business identifier of the Explanation of Benefit
1346* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier
1347* [Flag](flag.html): Business identifier
1348* [Goal](goal.html): External Ids for this goal
1349* [GuidanceResponse](guidanceresponse.html): The identifier of the guidance response
1350* [ImagingSelection](imagingselection.html): Identifiers for the imaging selection
1351* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID
1352* [Immunization](immunization.html): Business identifier
1353* [ImmunizationEvaluation](immunizationevaluation.html): ID of the evaluation
1354* [ImmunizationRecommendation](immunizationrecommendation.html): Business identifier
1355* [Invoice](invoice.html): Business Identifier for item
1356* [List](list.html): Business identifier
1357* [MeasureReport](measurereport.html): External identifier of the measure report to be returned
1358* [Medication](medication.html): Returns medications with this external identifier
1359* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier
1360* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier
1361* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier
1362* [MedicationStatement](medicationstatement.html): Return statements with this external identifier
1363* [MolecularSequence](molecularsequence.html): The unique identity for a particular sequence
1364* [NutritionIntake](nutritionintake.html): Return statements with this external identifier
1365* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier
1366* [Observation](observation.html): The unique id for a particular observation
1367* [Person](person.html): A person Identifier
1368* [Procedure](procedure.html): A unique identifier for a procedure
1369* [QuestionnaireResponse](questionnaireresponse.html): The unique identifier for the questionnaire response
1370* [RelatedPerson](relatedperson.html): An Identifier of the RelatedPerson
1371* [RequestOrchestration](requestorchestration.html): External identifiers for the request orchestration
1372* [ResearchSubject](researchsubject.html): Business Identifier for research subject in a study
1373* [RiskAssessment](riskassessment.html): Unique identifier for the assessment
1374* [ServiceRequest](servicerequest.html): Identifiers assigned to this order
1375* [Specimen](specimen.html): The unique identifier associated with the specimen
1376* [SupplyDelivery](supplydelivery.html): External identifier
1377* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest
1378* [Task](task.html): Search for a task instance by its business identifier
1379* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier
1380</b><br>
1381   * Type: <b>token</b><br>
1382   * 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>
1383   * </p>
1384   */
1385  @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" )
1386  public static final String SP_IDENTIFIER = "identifier";
1387 /**
1388   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
1389   * <p>
1390   * Description: <b>Multiple Resources: 
1391
1392* [Account](account.html): Account number
1393* [AdverseEvent](adverseevent.html): Business identifier for the event
1394* [AllergyIntolerance](allergyintolerance.html): External ids for this item
1395* [Appointment](appointment.html): An Identifier of the Appointment
1396* [AppointmentResponse](appointmentresponse.html): An Identifier in this appointment response
1397* [Basic](basic.html): Business identifier
1398* [BodyStructure](bodystructure.html): Bodystructure identifier
1399* [CarePlan](careplan.html): External Ids for this plan
1400* [CareTeam](careteam.html): External Ids for this team
1401* [ChargeItem](chargeitem.html): Business Identifier for item
1402* [Claim](claim.html): The primary identifier of the financial resource
1403* [ClaimResponse](claimresponse.html): The identity of the ClaimResponse
1404* [ClinicalImpression](clinicalimpression.html): Business identifier
1405* [Communication](communication.html): Unique identifier
1406* [CommunicationRequest](communicationrequest.html): Unique identifier
1407* [Composition](composition.html): Version-independent identifier for the Composition
1408* [Condition](condition.html): A unique identifier of the condition record
1409* [Consent](consent.html): Identifier for this record (external references)
1410* [Contract](contract.html): The identity of the contract
1411* [Coverage](coverage.html): The primary identifier of the insured and the coverage
1412* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The business identifier of the Eligibility
1413* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The business identifier
1414* [DetectedIssue](detectedissue.html): Unique id for the detected issue
1415* [DeviceRequest](devicerequest.html): Business identifier for request/order
1416* [DeviceUsage](deviceusage.html): Search by identifier
1417* [DiagnosticReport](diagnosticreport.html): An identifier for the report
1418* [DocumentReference](documentreference.html): Identifier of the attachment binary
1419* [Encounter](encounter.html): Identifier(s) by which this encounter is known
1420* [EnrollmentRequest](enrollmentrequest.html): The business identifier of the Enrollment
1421* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare
1422* [ExplanationOfBenefit](explanationofbenefit.html): The business identifier of the Explanation of Benefit
1423* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier
1424* [Flag](flag.html): Business identifier
1425* [Goal](goal.html): External Ids for this goal
1426* [GuidanceResponse](guidanceresponse.html): The identifier of the guidance response
1427* [ImagingSelection](imagingselection.html): Identifiers for the imaging selection
1428* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID
1429* [Immunization](immunization.html): Business identifier
1430* [ImmunizationEvaluation](immunizationevaluation.html): ID of the evaluation
1431* [ImmunizationRecommendation](immunizationrecommendation.html): Business identifier
1432* [Invoice](invoice.html): Business Identifier for item
1433* [List](list.html): Business identifier
1434* [MeasureReport](measurereport.html): External identifier of the measure report to be returned
1435* [Medication](medication.html): Returns medications with this external identifier
1436* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier
1437* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier
1438* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier
1439* [MedicationStatement](medicationstatement.html): Return statements with this external identifier
1440* [MolecularSequence](molecularsequence.html): The unique identity for a particular sequence
1441* [NutritionIntake](nutritionintake.html): Return statements with this external identifier
1442* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier
1443* [Observation](observation.html): The unique id for a particular observation
1444* [Person](person.html): A person Identifier
1445* [Procedure](procedure.html): A unique identifier for a procedure
1446* [QuestionnaireResponse](questionnaireresponse.html): The unique identifier for the questionnaire response
1447* [RelatedPerson](relatedperson.html): An Identifier of the RelatedPerson
1448* [RequestOrchestration](requestorchestration.html): External identifiers for the request orchestration
1449* [ResearchSubject](researchsubject.html): Business Identifier for research subject in a study
1450* [RiskAssessment](riskassessment.html): Unique identifier for the assessment
1451* [ServiceRequest](servicerequest.html): Identifiers assigned to this order
1452* [Specimen](specimen.html): The unique identifier associated with the specimen
1453* [SupplyDelivery](supplydelivery.html): External identifier
1454* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest
1455* [Task](task.html): Search for a task instance by its business identifier
1456* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier
1457</b><br>
1458   * Type: <b>token</b><br>
1459   * 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>
1460   * </p>
1461   */
1462  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
1463
1464 /**
1465   * Search parameter: <b>patient</b>
1466   * <p>
1467   * Description: <b>Multiple Resources: 
1468
1469* [Account](account.html): The entity that caused the expenses
1470* [AdverseEvent](adverseevent.html): Subject impacted by event
1471* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for
1472* [Appointment](appointment.html): One of the individuals of the appointment is this patient
1473* [AppointmentResponse](appointmentresponse.html): This Response is for this Patient
1474* [AuditEvent](auditevent.html): Where the activity involved patient data
1475* [Basic](basic.html): Identifies the focus of this resource
1476* [BodyStructure](bodystructure.html): Who this is about
1477* [CarePlan](careplan.html): Who the care plan is for
1478* [CareTeam](careteam.html): Who care team is for
1479* [ChargeItem](chargeitem.html): Individual service was done for/to
1480* [Claim](claim.html): Patient receiving the products or services
1481* [ClaimResponse](claimresponse.html): The subject of care
1482* [ClinicalImpression](clinicalimpression.html): Patient assessed
1483* [Communication](communication.html): Focus of message
1484* [CommunicationRequest](communicationrequest.html): Focus of message
1485* [Composition](composition.html): Who and/or what the composition is about
1486* [Condition](condition.html): Who has the condition?
1487* [Consent](consent.html): Who the consent applies to
1488* [Contract](contract.html): The identity of the subject of the contract (if a patient)
1489* [Coverage](coverage.html): Retrieve coverages for a patient
1490* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The reference to the patient
1491* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The reference to the patient
1492* [DetectedIssue](detectedissue.html): Associated patient
1493* [DeviceRequest](devicerequest.html): Individual the service is ordered for
1494* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device
1495* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient
1496* [DocumentReference](documentreference.html): Who/what is the subject of the document
1497* [Encounter](encounter.html): The patient present at the encounter
1498* [EnrollmentRequest](enrollmentrequest.html): The party to be enrolled
1499* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care
1500* [ExplanationOfBenefit](explanationofbenefit.html): The reference to the patient
1501* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for
1502* [Flag](flag.html): The identity of a subject to list flags for
1503* [Goal](goal.html): Who this goal is intended for
1504* [GuidanceResponse](guidanceresponse.html): The identity of a patient to search for guidance response results
1505* [ImagingSelection](imagingselection.html): Who the study is about
1506* [ImagingStudy](imagingstudy.html): Who the study is about
1507* [Immunization](immunization.html): The patient for the vaccination record
1508* [ImmunizationEvaluation](immunizationevaluation.html): The patient being evaluated
1509* [ImmunizationRecommendation](immunizationrecommendation.html): Who this profile is for
1510* [Invoice](invoice.html): Recipient(s) of goods and services
1511* [List](list.html): If all resources have the same subject
1512* [MeasureReport](measurereport.html): The identity of a patient to search for individual measure report results for
1513* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations  for
1514* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses  for
1515* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient
1516* [MedicationStatement](medicationstatement.html): Returns statements for a specific patient.
1517* [MolecularSequence](molecularsequence.html): The subject that the sequence is about
1518* [NutritionIntake](nutritionintake.html): Returns statements for a specific patient.
1519* [NutritionOrder](nutritionorder.html): The identity of the individual or set of individuals who requires the diet, formula or nutritional supplement
1520* [Observation](observation.html): The subject that the observation is about (if patient)
1521* [Person](person.html): The Person links to this Patient
1522* [Procedure](procedure.html): Search by subject - a patient
1523* [Provenance](provenance.html): Where the activity involved patient data
1524* [QuestionnaireResponse](questionnaireresponse.html): The patient that is the subject of the questionnaire response
1525* [RelatedPerson](relatedperson.html): The patient this related person is related to
1526* [RequestOrchestration](requestorchestration.html): The identity of a patient to search for request orchestrations
1527* [ResearchSubject](researchsubject.html): Who or what is part of study
1528* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?
1529* [ServiceRequest](servicerequest.html): Search by subject - a patient
1530* [Specimen](specimen.html): The patient the specimen comes from
1531* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied
1532* [SupplyRequest](supplyrequest.html): The patient or subject for whom the supply is destined
1533* [Task](task.html): Search by patient
1534* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for
1535</b><br>
1536   * Type: <b>reference</b><br>
1537   * 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>
1538   * </p>
1539   */
1540  @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 } )
1541  public static final String SP_PATIENT = "patient";
1542 /**
1543   * <b>Fluent Client</b> search parameter constant for <b>patient</b>
1544   * <p>
1545   * Description: <b>Multiple Resources: 
1546
1547* [Account](account.html): The entity that caused the expenses
1548* [AdverseEvent](adverseevent.html): Subject impacted by event
1549* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for
1550* [Appointment](appointment.html): One of the individuals of the appointment is this patient
1551* [AppointmentResponse](appointmentresponse.html): This Response is for this Patient
1552* [AuditEvent](auditevent.html): Where the activity involved patient data
1553* [Basic](basic.html): Identifies the focus of this resource
1554* [BodyStructure](bodystructure.html): Who this is about
1555* [CarePlan](careplan.html): Who the care plan is for
1556* [CareTeam](careteam.html): Who care team is for
1557* [ChargeItem](chargeitem.html): Individual service was done for/to
1558* [Claim](claim.html): Patient receiving the products or services
1559* [ClaimResponse](claimresponse.html): The subject of care
1560* [ClinicalImpression](clinicalimpression.html): Patient assessed
1561* [Communication](communication.html): Focus of message
1562* [CommunicationRequest](communicationrequest.html): Focus of message
1563* [Composition](composition.html): Who and/or what the composition is about
1564* [Condition](condition.html): Who has the condition?
1565* [Consent](consent.html): Who the consent applies to
1566* [Contract](contract.html): The identity of the subject of the contract (if a patient)
1567* [Coverage](coverage.html): Retrieve coverages for a patient
1568* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The reference to the patient
1569* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The reference to the patient
1570* [DetectedIssue](detectedissue.html): Associated patient
1571* [DeviceRequest](devicerequest.html): Individual the service is ordered for
1572* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device
1573* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient
1574* [DocumentReference](documentreference.html): Who/what is the subject of the document
1575* [Encounter](encounter.html): The patient present at the encounter
1576* [EnrollmentRequest](enrollmentrequest.html): The party to be enrolled
1577* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care
1578* [ExplanationOfBenefit](explanationofbenefit.html): The reference to the patient
1579* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for
1580* [Flag](flag.html): The identity of a subject to list flags for
1581* [Goal](goal.html): Who this goal is intended for
1582* [GuidanceResponse](guidanceresponse.html): The identity of a patient to search for guidance response results
1583* [ImagingSelection](imagingselection.html): Who the study is about
1584* [ImagingStudy](imagingstudy.html): Who the study is about
1585* [Immunization](immunization.html): The patient for the vaccination record
1586* [ImmunizationEvaluation](immunizationevaluation.html): The patient being evaluated
1587* [ImmunizationRecommendation](immunizationrecommendation.html): Who this profile is for
1588* [Invoice](invoice.html): Recipient(s) of goods and services
1589* [List](list.html): If all resources have the same subject
1590* [MeasureReport](measurereport.html): The identity of a patient to search for individual measure report results for
1591* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations  for
1592* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses  for
1593* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient
1594* [MedicationStatement](medicationstatement.html): Returns statements for a specific patient.
1595* [MolecularSequence](molecularsequence.html): The subject that the sequence is about
1596* [NutritionIntake](nutritionintake.html): Returns statements for a specific patient.
1597* [NutritionOrder](nutritionorder.html): The identity of the individual or set of individuals who requires the diet, formula or nutritional supplement
1598* [Observation](observation.html): The subject that the observation is about (if patient)
1599* [Person](person.html): The Person links to this Patient
1600* [Procedure](procedure.html): Search by subject - a patient
1601* [Provenance](provenance.html): Where the activity involved patient data
1602* [QuestionnaireResponse](questionnaireresponse.html): The patient that is the subject of the questionnaire response
1603* [RelatedPerson](relatedperson.html): The patient this related person is related to
1604* [RequestOrchestration](requestorchestration.html): The identity of a patient to search for request orchestrations
1605* [ResearchSubject](researchsubject.html): Who or what is part of study
1606* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?
1607* [ServiceRequest](servicerequest.html): Search by subject - a patient
1608* [Specimen](specimen.html): The patient the specimen comes from
1609* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied
1610* [SupplyRequest](supplyrequest.html): The patient or subject for whom the supply is destined
1611* [Task](task.html): Search by patient
1612* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for
1613</b><br>
1614   * Type: <b>reference</b><br>
1615   * 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>
1616   * </p>
1617   */
1618  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PATIENT);
1619
1620/**
1621   * Constant for fluent queries to be used to add include statements. Specifies
1622   * the path value of "<b>AppointmentResponse:patient</b>".
1623   */
1624  public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("AppointmentResponse:patient").toLocked();
1625
1626
1627}
1628