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 Base makeProperty(int hash, String name) throws FHIRException {
969        switch (hash) {
970        case -1618432855:  return addIdentifier(); 
971        case -1474995297:  return getAppointment();
972        case -577024441:  return getProposedNewTimeElement();
973        case 109757538:  return getStartElement();
974        case 100571:  return getEndElement();
975        case 841294093:  return addParticipantType(); 
976        case 92645877:  return getActor();
977        case 996096261:  return getParticipantStatusElement();
978        case 950398559:  return getCommentElement();
979        case 1165749981:  return getRecurringElement();
980        case 1721761055:  return getOccurrenceDateElement();
981        case -362407829:  return getRecurrenceIdElement();
982        default: return super.makeProperty(hash, name);
983        }
984
985      }
986
987      @Override
988      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
989        switch (hash) {
990        case -1618432855: /*identifier*/ return new String[] {"Identifier"};
991        case -1474995297: /*appointment*/ return new String[] {"Reference"};
992        case -577024441: /*proposedNewTime*/ return new String[] {"boolean"};
993        case 109757538: /*start*/ return new String[] {"instant"};
994        case 100571: /*end*/ return new String[] {"instant"};
995        case 841294093: /*participantType*/ return new String[] {"CodeableConcept"};
996        case 92645877: /*actor*/ return new String[] {"Reference"};
997        case 996096261: /*participantStatus*/ return new String[] {"code"};
998        case 950398559: /*comment*/ return new String[] {"markdown"};
999        case 1165749981: /*recurring*/ return new String[] {"boolean"};
1000        case 1721761055: /*occurrenceDate*/ return new String[] {"date"};
1001        case -362407829: /*recurrenceId*/ return new String[] {"positiveInt"};
1002        default: return super.getTypesForProperty(hash, name);
1003        }
1004
1005      }
1006
1007      @Override
1008      public Base addChild(String name) throws FHIRException {
1009        if (name.equals("identifier")) {
1010          return addIdentifier();
1011        }
1012        else if (name.equals("appointment")) {
1013          this.appointment = new Reference();
1014          return this.appointment;
1015        }
1016        else if (name.equals("proposedNewTime")) {
1017          throw new FHIRException("Cannot call addChild on a singleton property AppointmentResponse.proposedNewTime");
1018        }
1019        else if (name.equals("start")) {
1020          throw new FHIRException("Cannot call addChild on a singleton property AppointmentResponse.start");
1021        }
1022        else if (name.equals("end")) {
1023          throw new FHIRException("Cannot call addChild on a singleton property AppointmentResponse.end");
1024        }
1025        else if (name.equals("participantType")) {
1026          return addParticipantType();
1027        }
1028        else if (name.equals("actor")) {
1029          this.actor = new Reference();
1030          return this.actor;
1031        }
1032        else if (name.equals("participantStatus")) {
1033          throw new FHIRException("Cannot call addChild on a singleton property AppointmentResponse.participantStatus");
1034        }
1035        else if (name.equals("comment")) {
1036          throw new FHIRException("Cannot call addChild on a singleton property AppointmentResponse.comment");
1037        }
1038        else if (name.equals("recurring")) {
1039          throw new FHIRException("Cannot call addChild on a singleton property AppointmentResponse.recurring");
1040        }
1041        else if (name.equals("occurrenceDate")) {
1042          throw new FHIRException("Cannot call addChild on a singleton property AppointmentResponse.occurrenceDate");
1043        }
1044        else if (name.equals("recurrenceId")) {
1045          throw new FHIRException("Cannot call addChild on a singleton property AppointmentResponse.recurrenceId");
1046        }
1047        else
1048          return super.addChild(name);
1049      }
1050
1051  public String fhirType() {
1052    return "AppointmentResponse";
1053
1054  }
1055
1056      public AppointmentResponse copy() {
1057        AppointmentResponse dst = new AppointmentResponse();
1058        copyValues(dst);
1059        return dst;
1060      }
1061
1062      public void copyValues(AppointmentResponse dst) {
1063        super.copyValues(dst);
1064        if (identifier != null) {
1065          dst.identifier = new ArrayList<Identifier>();
1066          for (Identifier i : identifier)
1067            dst.identifier.add(i.copy());
1068        };
1069        dst.appointment = appointment == null ? null : appointment.copy();
1070        dst.proposedNewTime = proposedNewTime == null ? null : proposedNewTime.copy();
1071        dst.start = start == null ? null : start.copy();
1072        dst.end = end == null ? null : end.copy();
1073        if (participantType != null) {
1074          dst.participantType = new ArrayList<CodeableConcept>();
1075          for (CodeableConcept i : participantType)
1076            dst.participantType.add(i.copy());
1077        };
1078        dst.actor = actor == null ? null : actor.copy();
1079        dst.participantStatus = participantStatus == null ? null : participantStatus.copy();
1080        dst.comment = comment == null ? null : comment.copy();
1081        dst.recurring = recurring == null ? null : recurring.copy();
1082        dst.occurrenceDate = occurrenceDate == null ? null : occurrenceDate.copy();
1083        dst.recurrenceId = recurrenceId == null ? null : recurrenceId.copy();
1084      }
1085
1086      protected AppointmentResponse typedCopy() {
1087        return copy();
1088      }
1089
1090      @Override
1091      public boolean equalsDeep(Base other_) {
1092        if (!super.equalsDeep(other_))
1093          return false;
1094        if (!(other_ instanceof AppointmentResponse))
1095          return false;
1096        AppointmentResponse o = (AppointmentResponse) other_;
1097        return compareDeep(identifier, o.identifier, true) && compareDeep(appointment, o.appointment, true)
1098           && compareDeep(proposedNewTime, o.proposedNewTime, true) && compareDeep(start, o.start, true) && compareDeep(end, o.end, true)
1099           && compareDeep(participantType, o.participantType, true) && compareDeep(actor, o.actor, true) && compareDeep(participantStatus, o.participantStatus, true)
1100           && compareDeep(comment, o.comment, true) && compareDeep(recurring, o.recurring, true) && compareDeep(occurrenceDate, o.occurrenceDate, true)
1101           && compareDeep(recurrenceId, o.recurrenceId, true);
1102      }
1103
1104      @Override
1105      public boolean equalsShallow(Base other_) {
1106        if (!super.equalsShallow(other_))
1107          return false;
1108        if (!(other_ instanceof AppointmentResponse))
1109          return false;
1110        AppointmentResponse o = (AppointmentResponse) other_;
1111        return compareValues(proposedNewTime, o.proposedNewTime, true) && compareValues(start, o.start, true)
1112           && compareValues(end, o.end, true) && compareValues(participantStatus, o.participantStatus, true) && compareValues(comment, o.comment, true)
1113           && compareValues(recurring, o.recurring, true) && compareValues(occurrenceDate, o.occurrenceDate, true)
1114           && compareValues(recurrenceId, o.recurrenceId, true);
1115      }
1116
1117      public boolean isEmpty() {
1118        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, appointment, proposedNewTime
1119          , start, end, participantType, actor, participantStatus, comment, recurring, occurrenceDate
1120          , recurrenceId);
1121      }
1122
1123  @Override
1124  public ResourceType getResourceType() {
1125    return ResourceType.AppointmentResponse;
1126   }
1127
1128 /**
1129   * Search parameter: <b>actor</b>
1130   * <p>
1131   * Description: <b>The Person, Location/HealthcareService or Device that this appointment response replies for</b><br>
1132   * Type: <b>reference</b><br>
1133   * Path: <b>AppointmentResponse.actor</b><br>
1134   * </p>
1135   */
1136  @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 } )
1137  public static final String SP_ACTOR = "actor";
1138 /**
1139   * <b>Fluent Client</b> search parameter constant for <b>actor</b>
1140   * <p>
1141   * Description: <b>The Person, Location/HealthcareService or Device that this appointment response replies for</b><br>
1142   * Type: <b>reference</b><br>
1143   * Path: <b>AppointmentResponse.actor</b><br>
1144   * </p>
1145   */
1146  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ACTOR = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ACTOR);
1147
1148/**
1149   * Constant for fluent queries to be used to add include statements. Specifies
1150   * the path value of "<b>AppointmentResponse:actor</b>".
1151   */
1152  public static final ca.uhn.fhir.model.api.Include INCLUDE_ACTOR = new ca.uhn.fhir.model.api.Include("AppointmentResponse:actor").toLocked();
1153
1154 /**
1155   * Search parameter: <b>appointment</b>
1156   * <p>
1157   * Description: <b>The appointment that the response is attached to</b><br>
1158   * Type: <b>reference</b><br>
1159   * Path: <b>AppointmentResponse.appointment</b><br>
1160   * </p>
1161   */
1162  @SearchParamDefinition(name="appointment", path="AppointmentResponse.appointment", description="The appointment that the response is attached to", type="reference", target={Appointment.class } )
1163  public static final String SP_APPOINTMENT = "appointment";
1164 /**
1165   * <b>Fluent Client</b> search parameter constant for <b>appointment</b>
1166   * <p>
1167   * Description: <b>The appointment that the response is attached to</b><br>
1168   * Type: <b>reference</b><br>
1169   * Path: <b>AppointmentResponse.appointment</b><br>
1170   * </p>
1171   */
1172  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam APPOINTMENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_APPOINTMENT);
1173
1174/**
1175   * Constant for fluent queries to be used to add include statements. Specifies
1176   * the path value of "<b>AppointmentResponse:appointment</b>".
1177   */
1178  public static final ca.uhn.fhir.model.api.Include INCLUDE_APPOINTMENT = new ca.uhn.fhir.model.api.Include("AppointmentResponse:appointment").toLocked();
1179
1180 /**
1181   * Search parameter: <b>group</b>
1182   * <p>
1183   * Description: <b>This Response is for this Group</b><br>
1184   * Type: <b>reference</b><br>
1185   * Path: <b>AppointmentResponse.actor.where(resolve() is Group)</b><br>
1186   * </p>
1187   */
1188  @SearchParamDefinition(name="group", path="AppointmentResponse.actor.where(resolve() is Group)", description="This Response is for this Group", type="reference", target={Group.class } )
1189  public static final String SP_GROUP = "group";
1190 /**
1191   * <b>Fluent Client</b> search parameter constant for <b>group</b>
1192   * <p>
1193   * Description: <b>This Response is for this Group</b><br>
1194   * Type: <b>reference</b><br>
1195   * Path: <b>AppointmentResponse.actor.where(resolve() is Group)</b><br>
1196   * </p>
1197   */
1198  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam GROUP = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_GROUP);
1199
1200/**
1201   * Constant for fluent queries to be used to add include statements. Specifies
1202   * the path value of "<b>AppointmentResponse:group</b>".
1203   */
1204  public static final ca.uhn.fhir.model.api.Include INCLUDE_GROUP = new ca.uhn.fhir.model.api.Include("AppointmentResponse:group").toLocked();
1205
1206 /**
1207   * Search parameter: <b>location</b>
1208   * <p>
1209   * Description: <b>This Response is for this Location</b><br>
1210   * Type: <b>reference</b><br>
1211   * Path: <b>AppointmentResponse.actor.where(resolve() is Location)</b><br>
1212   * </p>
1213   */
1214  @SearchParamDefinition(name="location", path="AppointmentResponse.actor.where(resolve() is Location)", description="This Response is for this Location", type="reference", target={Location.class } )
1215  public static final String SP_LOCATION = "location";
1216 /**
1217   * <b>Fluent Client</b> search parameter constant for <b>location</b>
1218   * <p>
1219   * Description: <b>This Response is for this Location</b><br>
1220   * Type: <b>reference</b><br>
1221   * Path: <b>AppointmentResponse.actor.where(resolve() is Location)</b><br>
1222   * </p>
1223   */
1224  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam LOCATION = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_LOCATION);
1225
1226/**
1227   * Constant for fluent queries to be used to add include statements. Specifies
1228   * the path value of "<b>AppointmentResponse:location</b>".
1229   */
1230  public static final ca.uhn.fhir.model.api.Include INCLUDE_LOCATION = new ca.uhn.fhir.model.api.Include("AppointmentResponse:location").toLocked();
1231
1232 /**
1233   * Search parameter: <b>part-status</b>
1234   * <p>
1235   * Description: <b>The participants acceptance status for this appointment</b><br>
1236   * Type: <b>token</b><br>
1237   * Path: <b>AppointmentResponse.participantStatus</b><br>
1238   * </p>
1239   */
1240  @SearchParamDefinition(name="part-status", path="AppointmentResponse.participantStatus", description="The participants acceptance status for this appointment", type="token" )
1241  public static final String SP_PART_STATUS = "part-status";
1242 /**
1243   * <b>Fluent Client</b> search parameter constant for <b>part-status</b>
1244   * <p>
1245   * Description: <b>The participants acceptance status for this appointment</b><br>
1246   * Type: <b>token</b><br>
1247   * Path: <b>AppointmentResponse.participantStatus</b><br>
1248   * </p>
1249   */
1250  public static final ca.uhn.fhir.rest.gclient.TokenClientParam PART_STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_PART_STATUS);
1251
1252 /**
1253   * Search parameter: <b>practitioner</b>
1254   * <p>
1255   * Description: <b>This Response is for this Practitioner</b><br>
1256   * Type: <b>reference</b><br>
1257   * Path: <b>AppointmentResponse.actor.where(resolve() is Practitioner)</b><br>
1258   * </p>
1259   */
1260  @SearchParamDefinition(name="practitioner", path="AppointmentResponse.actor.where(resolve() is Practitioner)", description="This Response is for this Practitioner", type="reference", target={Practitioner.class } )
1261  public static final String SP_PRACTITIONER = "practitioner";
1262 /**
1263   * <b>Fluent Client</b> search parameter constant for <b>practitioner</b>
1264   * <p>
1265   * Description: <b>This Response is for this Practitioner</b><br>
1266   * Type: <b>reference</b><br>
1267   * Path: <b>AppointmentResponse.actor.where(resolve() is Practitioner)</b><br>
1268   * </p>
1269   */
1270  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PRACTITIONER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PRACTITIONER);
1271
1272/**
1273   * Constant for fluent queries to be used to add include statements. Specifies
1274   * the path value of "<b>AppointmentResponse:practitioner</b>".
1275   */
1276  public static final ca.uhn.fhir.model.api.Include INCLUDE_PRACTITIONER = new ca.uhn.fhir.model.api.Include("AppointmentResponse:practitioner").toLocked();
1277
1278 /**
1279   * Search parameter: <b>identifier</b>
1280   * <p>
1281   * Description: <b>Multiple Resources: 
1282
1283* [Account](account.html): Account number
1284* [AdverseEvent](adverseevent.html): Business identifier for the event
1285* [AllergyIntolerance](allergyintolerance.html): External ids for this item
1286* [Appointment](appointment.html): An Identifier of the Appointment
1287* [AppointmentResponse](appointmentresponse.html): An Identifier in this appointment response
1288* [Basic](basic.html): Business identifier
1289* [BodyStructure](bodystructure.html): Bodystructure identifier
1290* [CarePlan](careplan.html): External Ids for this plan
1291* [CareTeam](careteam.html): External Ids for this team
1292* [ChargeItem](chargeitem.html): Business Identifier for item
1293* [Claim](claim.html): The primary identifier of the financial resource
1294* [ClaimResponse](claimresponse.html): The identity of the ClaimResponse
1295* [ClinicalImpression](clinicalimpression.html): Business identifier
1296* [Communication](communication.html): Unique identifier
1297* [CommunicationRequest](communicationrequest.html): Unique identifier
1298* [Composition](composition.html): Version-independent identifier for the Composition
1299* [Condition](condition.html): A unique identifier of the condition record
1300* [Consent](consent.html): Identifier for this record (external references)
1301* [Contract](contract.html): The identity of the contract
1302* [Coverage](coverage.html): The primary identifier of the insured and the coverage
1303* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The business identifier of the Eligibility
1304* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The business identifier
1305* [DetectedIssue](detectedissue.html): Unique id for the detected issue
1306* [DeviceRequest](devicerequest.html): Business identifier for request/order
1307* [DeviceUsage](deviceusage.html): Search by identifier
1308* [DiagnosticReport](diagnosticreport.html): An identifier for the report
1309* [DocumentReference](documentreference.html): Identifier of the attachment binary
1310* [Encounter](encounter.html): Identifier(s) by which this encounter is known
1311* [EnrollmentRequest](enrollmentrequest.html): The business identifier of the Enrollment
1312* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare
1313* [ExplanationOfBenefit](explanationofbenefit.html): The business identifier of the Explanation of Benefit
1314* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier
1315* [Flag](flag.html): Business identifier
1316* [Goal](goal.html): External Ids for this goal
1317* [GuidanceResponse](guidanceresponse.html): The identifier of the guidance response
1318* [ImagingSelection](imagingselection.html): Identifiers for the imaging selection
1319* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID
1320* [Immunization](immunization.html): Business identifier
1321* [ImmunizationEvaluation](immunizationevaluation.html): ID of the evaluation
1322* [ImmunizationRecommendation](immunizationrecommendation.html): Business identifier
1323* [Invoice](invoice.html): Business Identifier for item
1324* [List](list.html): Business identifier
1325* [MeasureReport](measurereport.html): External identifier of the measure report to be returned
1326* [Medication](medication.html): Returns medications with this external identifier
1327* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier
1328* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier
1329* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier
1330* [MedicationStatement](medicationstatement.html): Return statements with this external identifier
1331* [MolecularSequence](molecularsequence.html): The unique identity for a particular sequence
1332* [NutritionIntake](nutritionintake.html): Return statements with this external identifier
1333* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier
1334* [Observation](observation.html): The unique id for a particular observation
1335* [Person](person.html): A person Identifier
1336* [Procedure](procedure.html): A unique identifier for a procedure
1337* [QuestionnaireResponse](questionnaireresponse.html): The unique identifier for the questionnaire response
1338* [RelatedPerson](relatedperson.html): An Identifier of the RelatedPerson
1339* [RequestOrchestration](requestorchestration.html): External identifiers for the request orchestration
1340* [ResearchSubject](researchsubject.html): Business Identifier for research subject in a study
1341* [RiskAssessment](riskassessment.html): Unique identifier for the assessment
1342* [ServiceRequest](servicerequest.html): Identifiers assigned to this order
1343* [Specimen](specimen.html): The unique identifier associated with the specimen
1344* [SupplyDelivery](supplydelivery.html): External identifier
1345* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest
1346* [Task](task.html): Search for a task instance by its business identifier
1347* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier
1348</b><br>
1349   * Type: <b>token</b><br>
1350   * 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>
1351   * </p>
1352   */
1353  @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" )
1354  public static final String SP_IDENTIFIER = "identifier";
1355 /**
1356   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
1357   * <p>
1358   * Description: <b>Multiple Resources: 
1359
1360* [Account](account.html): Account number
1361* [AdverseEvent](adverseevent.html): Business identifier for the event
1362* [AllergyIntolerance](allergyintolerance.html): External ids for this item
1363* [Appointment](appointment.html): An Identifier of the Appointment
1364* [AppointmentResponse](appointmentresponse.html): An Identifier in this appointment response
1365* [Basic](basic.html): Business identifier
1366* [BodyStructure](bodystructure.html): Bodystructure identifier
1367* [CarePlan](careplan.html): External Ids for this plan
1368* [CareTeam](careteam.html): External Ids for this team
1369* [ChargeItem](chargeitem.html): Business Identifier for item
1370* [Claim](claim.html): The primary identifier of the financial resource
1371* [ClaimResponse](claimresponse.html): The identity of the ClaimResponse
1372* [ClinicalImpression](clinicalimpression.html): Business identifier
1373* [Communication](communication.html): Unique identifier
1374* [CommunicationRequest](communicationrequest.html): Unique identifier
1375* [Composition](composition.html): Version-independent identifier for the Composition
1376* [Condition](condition.html): A unique identifier of the condition record
1377* [Consent](consent.html): Identifier for this record (external references)
1378* [Contract](contract.html): The identity of the contract
1379* [Coverage](coverage.html): The primary identifier of the insured and the coverage
1380* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The business identifier of the Eligibility
1381* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The business identifier
1382* [DetectedIssue](detectedissue.html): Unique id for the detected issue
1383* [DeviceRequest](devicerequest.html): Business identifier for request/order
1384* [DeviceUsage](deviceusage.html): Search by identifier
1385* [DiagnosticReport](diagnosticreport.html): An identifier for the report
1386* [DocumentReference](documentreference.html): Identifier of the attachment binary
1387* [Encounter](encounter.html): Identifier(s) by which this encounter is known
1388* [EnrollmentRequest](enrollmentrequest.html): The business identifier of the Enrollment
1389* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare
1390* [ExplanationOfBenefit](explanationofbenefit.html): The business identifier of the Explanation of Benefit
1391* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier
1392* [Flag](flag.html): Business identifier
1393* [Goal](goal.html): External Ids for this goal
1394* [GuidanceResponse](guidanceresponse.html): The identifier of the guidance response
1395* [ImagingSelection](imagingselection.html): Identifiers for the imaging selection
1396* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID
1397* [Immunization](immunization.html): Business identifier
1398* [ImmunizationEvaluation](immunizationevaluation.html): ID of the evaluation
1399* [ImmunizationRecommendation](immunizationrecommendation.html): Business identifier
1400* [Invoice](invoice.html): Business Identifier for item
1401* [List](list.html): Business identifier
1402* [MeasureReport](measurereport.html): External identifier of the measure report to be returned
1403* [Medication](medication.html): Returns medications with this external identifier
1404* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier
1405* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier
1406* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier
1407* [MedicationStatement](medicationstatement.html): Return statements with this external identifier
1408* [MolecularSequence](molecularsequence.html): The unique identity for a particular sequence
1409* [NutritionIntake](nutritionintake.html): Return statements with this external identifier
1410* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier
1411* [Observation](observation.html): The unique id for a particular observation
1412* [Person](person.html): A person Identifier
1413* [Procedure](procedure.html): A unique identifier for a procedure
1414* [QuestionnaireResponse](questionnaireresponse.html): The unique identifier for the questionnaire response
1415* [RelatedPerson](relatedperson.html): An Identifier of the RelatedPerson
1416* [RequestOrchestration](requestorchestration.html): External identifiers for the request orchestration
1417* [ResearchSubject](researchsubject.html): Business Identifier for research subject in a study
1418* [RiskAssessment](riskassessment.html): Unique identifier for the assessment
1419* [ServiceRequest](servicerequest.html): Identifiers assigned to this order
1420* [Specimen](specimen.html): The unique identifier associated with the specimen
1421* [SupplyDelivery](supplydelivery.html): External identifier
1422* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest
1423* [Task](task.html): Search for a task instance by its business identifier
1424* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier
1425</b><br>
1426   * Type: <b>token</b><br>
1427   * 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>
1428   * </p>
1429   */
1430  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
1431
1432 /**
1433   * Search parameter: <b>patient</b>
1434   * <p>
1435   * Description: <b>Multiple Resources: 
1436
1437* [Account](account.html): The entity that caused the expenses
1438* [AdverseEvent](adverseevent.html): Subject impacted by event
1439* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for
1440* [Appointment](appointment.html): One of the individuals of the appointment is this patient
1441* [AppointmentResponse](appointmentresponse.html): This Response is for this Patient
1442* [AuditEvent](auditevent.html): Where the activity involved patient data
1443* [Basic](basic.html): Identifies the focus of this resource
1444* [BodyStructure](bodystructure.html): Who this is about
1445* [CarePlan](careplan.html): Who the care plan is for
1446* [CareTeam](careteam.html): Who care team is for
1447* [ChargeItem](chargeitem.html): Individual service was done for/to
1448* [Claim](claim.html): Patient receiving the products or services
1449* [ClaimResponse](claimresponse.html): The subject of care
1450* [ClinicalImpression](clinicalimpression.html): Patient assessed
1451* [Communication](communication.html): Focus of message
1452* [CommunicationRequest](communicationrequest.html): Focus of message
1453* [Composition](composition.html): Who and/or what the composition is about
1454* [Condition](condition.html): Who has the condition?
1455* [Consent](consent.html): Who the consent applies to
1456* [Contract](contract.html): The identity of the subject of the contract (if a patient)
1457* [Coverage](coverage.html): Retrieve coverages for a patient
1458* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The reference to the patient
1459* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The reference to the patient
1460* [DetectedIssue](detectedissue.html): Associated patient
1461* [DeviceRequest](devicerequest.html): Individual the service is ordered for
1462* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device
1463* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient
1464* [DocumentReference](documentreference.html): Who/what is the subject of the document
1465* [Encounter](encounter.html): The patient present at the encounter
1466* [EnrollmentRequest](enrollmentrequest.html): The party to be enrolled
1467* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care
1468* [ExplanationOfBenefit](explanationofbenefit.html): The reference to the patient
1469* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for
1470* [Flag](flag.html): The identity of a subject to list flags for
1471* [Goal](goal.html): Who this goal is intended for
1472* [GuidanceResponse](guidanceresponse.html): The identity of a patient to search for guidance response results
1473* [ImagingSelection](imagingselection.html): Who the study is about
1474* [ImagingStudy](imagingstudy.html): Who the study is about
1475* [Immunization](immunization.html): The patient for the vaccination record
1476* [ImmunizationEvaluation](immunizationevaluation.html): The patient being evaluated
1477* [ImmunizationRecommendation](immunizationrecommendation.html): Who this profile is for
1478* [Invoice](invoice.html): Recipient(s) of goods and services
1479* [List](list.html): If all resources have the same subject
1480* [MeasureReport](measurereport.html): The identity of a patient to search for individual measure report results for
1481* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations  for
1482* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses  for
1483* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient
1484* [MedicationStatement](medicationstatement.html): Returns statements for a specific patient.
1485* [MolecularSequence](molecularsequence.html): The subject that the sequence is about
1486* [NutritionIntake](nutritionintake.html): Returns statements for a specific patient.
1487* [NutritionOrder](nutritionorder.html): The identity of the individual or set of individuals who requires the diet, formula or nutritional supplement
1488* [Observation](observation.html): The subject that the observation is about (if patient)
1489* [Person](person.html): The Person links to this Patient
1490* [Procedure](procedure.html): Search by subject - a patient
1491* [Provenance](provenance.html): Where the activity involved patient data
1492* [QuestionnaireResponse](questionnaireresponse.html): The patient that is the subject of the questionnaire response
1493* [RelatedPerson](relatedperson.html): The patient this related person is related to
1494* [RequestOrchestration](requestorchestration.html): The identity of a patient to search for request orchestrations
1495* [ResearchSubject](researchsubject.html): Who or what is part of study
1496* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?
1497* [ServiceRequest](servicerequest.html): Search by subject - a patient
1498* [Specimen](specimen.html): The patient the specimen comes from
1499* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied
1500* [SupplyRequest](supplyrequest.html): The patient or subject for whom the supply is destined
1501* [Task](task.html): Search by patient
1502* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for
1503</b><br>
1504   * Type: <b>reference</b><br>
1505   * 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>
1506   * </p>
1507   */
1508  @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 } )
1509  public static final String SP_PATIENT = "patient";
1510 /**
1511   * <b>Fluent Client</b> search parameter constant for <b>patient</b>
1512   * <p>
1513   * Description: <b>Multiple Resources: 
1514
1515* [Account](account.html): The entity that caused the expenses
1516* [AdverseEvent](adverseevent.html): Subject impacted by event
1517* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for
1518* [Appointment](appointment.html): One of the individuals of the appointment is this patient
1519* [AppointmentResponse](appointmentresponse.html): This Response is for this Patient
1520* [AuditEvent](auditevent.html): Where the activity involved patient data
1521* [Basic](basic.html): Identifies the focus of this resource
1522* [BodyStructure](bodystructure.html): Who this is about
1523* [CarePlan](careplan.html): Who the care plan is for
1524* [CareTeam](careteam.html): Who care team is for
1525* [ChargeItem](chargeitem.html): Individual service was done for/to
1526* [Claim](claim.html): Patient receiving the products or services
1527* [ClaimResponse](claimresponse.html): The subject of care
1528* [ClinicalImpression](clinicalimpression.html): Patient assessed
1529* [Communication](communication.html): Focus of message
1530* [CommunicationRequest](communicationrequest.html): Focus of message
1531* [Composition](composition.html): Who and/or what the composition is about
1532* [Condition](condition.html): Who has the condition?
1533* [Consent](consent.html): Who the consent applies to
1534* [Contract](contract.html): The identity of the subject of the contract (if a patient)
1535* [Coverage](coverage.html): Retrieve coverages for a patient
1536* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The reference to the patient
1537* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The reference to the patient
1538* [DetectedIssue](detectedissue.html): Associated patient
1539* [DeviceRequest](devicerequest.html): Individual the service is ordered for
1540* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device
1541* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient
1542* [DocumentReference](documentreference.html): Who/what is the subject of the document
1543* [Encounter](encounter.html): The patient present at the encounter
1544* [EnrollmentRequest](enrollmentrequest.html): The party to be enrolled
1545* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care
1546* [ExplanationOfBenefit](explanationofbenefit.html): The reference to the patient
1547* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for
1548* [Flag](flag.html): The identity of a subject to list flags for
1549* [Goal](goal.html): Who this goal is intended for
1550* [GuidanceResponse](guidanceresponse.html): The identity of a patient to search for guidance response results
1551* [ImagingSelection](imagingselection.html): Who the study is about
1552* [ImagingStudy](imagingstudy.html): Who the study is about
1553* [Immunization](immunization.html): The patient for the vaccination record
1554* [ImmunizationEvaluation](immunizationevaluation.html): The patient being evaluated
1555* [ImmunizationRecommendation](immunizationrecommendation.html): Who this profile is for
1556* [Invoice](invoice.html): Recipient(s) of goods and services
1557* [List](list.html): If all resources have the same subject
1558* [MeasureReport](measurereport.html): The identity of a patient to search for individual measure report results for
1559* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations  for
1560* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses  for
1561* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient
1562* [MedicationStatement](medicationstatement.html): Returns statements for a specific patient.
1563* [MolecularSequence](molecularsequence.html): The subject that the sequence is about
1564* [NutritionIntake](nutritionintake.html): Returns statements for a specific patient.
1565* [NutritionOrder](nutritionorder.html): The identity of the individual or set of individuals who requires the diet, formula or nutritional supplement
1566* [Observation](observation.html): The subject that the observation is about (if patient)
1567* [Person](person.html): The Person links to this Patient
1568* [Procedure](procedure.html): Search by subject - a patient
1569* [Provenance](provenance.html): Where the activity involved patient data
1570* [QuestionnaireResponse](questionnaireresponse.html): The patient that is the subject of the questionnaire response
1571* [RelatedPerson](relatedperson.html): The patient this related person is related to
1572* [RequestOrchestration](requestorchestration.html): The identity of a patient to search for request orchestrations
1573* [ResearchSubject](researchsubject.html): Who or what is part of study
1574* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?
1575* [ServiceRequest](servicerequest.html): Search by subject - a patient
1576* [Specimen](specimen.html): The patient the specimen comes from
1577* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied
1578* [SupplyRequest](supplyrequest.html): The patient or subject for whom the supply is destined
1579* [Task](task.html): Search by patient
1580* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for
1581</b><br>
1582   * Type: <b>reference</b><br>
1583   * 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>
1584   * </p>
1585   */
1586  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PATIENT);
1587
1588/**
1589   * Constant for fluent queries to be used to add include statements. Specifies
1590   * the path value of "<b>AppointmentResponse:patient</b>".
1591   */
1592  public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("AppointmentResponse:patient").toLocked();
1593
1594
1595}
1596