001package org.hl7.fhir.dstu2016may.model;
002
003/*
004  Copyright (c) 2011+, HL7, Inc.
005  All rights reserved.
006  
007  Redistribution and use in source and binary forms, with or without modification, 
008  are permitted provided that the following conditions are met:
009  
010   * Redistributions of source code must retain the above copyright notice, this 
011     list of conditions and the following disclaimer.
012   * Redistributions in binary form must reproduce the above copyright notice, 
013     this list of conditions and the following disclaimer in the documentation 
014     and/or other materials provided with the distribution.
015   * Neither the name of HL7 nor the names of its contributors may be used to 
016     endorse or promote products derived from this software without specific 
017     prior written permission.
018  
019  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
020  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
021  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
022  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
023  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
024  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
025  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
026  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
027  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
028  POSSIBILITY OF SUCH DAMAGE.
029  
030*/
031
032// Generated on Sun, May 8, 2016 03:05+1000 for FHIR v1.4.0
033import java.util.ArrayList;
034import java.util.List;
035
036import org.hl7.fhir.exceptions.FHIRException;
037import org.hl7.fhir.utilities.Utilities;
038
039import ca.uhn.fhir.model.api.annotation.Child;
040import ca.uhn.fhir.model.api.annotation.Description;
041import ca.uhn.fhir.model.api.annotation.ResourceDef;
042import ca.uhn.fhir.model.api.annotation.SearchParamDefinition;
043/**
044 * A container for slot(s) of time that may be available for booking appointments.
045 */
046@ResourceDef(name="Schedule", profile="http://hl7.org/fhir/Profile/Schedule")
047public class Schedule extends DomainResource {
048
049    /**
050     * External Ids for this item.
051     */
052    @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
053    @Description(shortDefinition="External Ids for this item", formalDefinition="External Ids for this item." )
054    protected List<Identifier> identifier;
055
056    /**
057     * A broad categorisation of the service that is to be performed during this appointment.
058     */
059    @Child(name = "serviceCategory", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=false, summary=true)
060    @Description(shortDefinition="A broad categorisation of the service that is to be performed during this appointment", formalDefinition="A broad categorisation of the service that is to be performed during this appointment." )
061    protected CodeableConcept serviceCategory;
062
063    /**
064     * The specific service that is to be performed during this appointment.
065     */
066    @Child(name = "serviceType", type = {CodeableConcept.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
067    @Description(shortDefinition="The specific service that is to be performed during this appointment", formalDefinition="The specific service that is to be performed during this appointment." )
068    protected List<CodeableConcept> serviceType;
069
070    /**
071     * The specialty of a practitioner that would be required to perform the service requested in this appointment.
072     */
073    @Child(name = "specialty", type = {CodeableConcept.class}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
074    @Description(shortDefinition="The specialty of a practitioner that would be required to perform the service requested in this appointment", formalDefinition="The specialty of a practitioner that would be required to perform the service requested in this appointment." )
075    protected List<CodeableConcept> specialty;
076
077    /**
078     * The resource this Schedule resource is providing availability information for. These are expected to usually be one of HealthcareService, Location, Practitioner, Device, Patient or RelatedPerson.
079     */
080    @Child(name = "actor", type = {Patient.class, Practitioner.class, RelatedPerson.class, Device.class, HealthcareService.class, Location.class}, order=4, min=1, max=1, modifier=false, summary=true)
081    @Description(shortDefinition="The resource this Schedule resource is providing availability information for. These are expected to usually be one of HealthcareService, Location, Practitioner, Device, Patient or RelatedPerson", formalDefinition="The resource this Schedule resource is providing availability information for. These are expected to usually be one of HealthcareService, Location, Practitioner, Device, Patient or RelatedPerson." )
082    protected Reference actor;
083
084    /**
085     * The actual object that is the target of the reference (The resource this Schedule resource is providing availability information for. These are expected to usually be one of HealthcareService, Location, Practitioner, Device, Patient or RelatedPerson.)
086     */
087    protected Resource actorTarget;
088
089    /**
090     * The period of time that the slots that are attached to this Schedule resource cover (even if none exist). These  cover the amount of time that an organization's planning horizon; the interval for which they are currently accepting appointments. This does not define a "template" for planning outside these dates.
091     */
092    @Child(name = "planningHorizon", type = {Period.class}, order=5, min=0, max=1, modifier=false, summary=true)
093    @Description(shortDefinition="The period of time that the slots that are attached to this Schedule resource cover (even if none exist). These  cover the amount of time that an organization's planning horizon; the interval for which they are currently accepting appointments. This does not define a \"template\" for planning outside these dates", formalDefinition="The period of time that the slots that are attached to this Schedule resource cover (even if none exist). These  cover the amount of time that an organization's planning horizon; the interval for which they are currently accepting appointments. This does not define a \"template\" for planning outside these dates." )
094    protected Period planningHorizon;
095
096    /**
097     * Comments on the availability to describe any extended information. Such as custom constraints on the slot(s) that may be associated.
098     */
099    @Child(name = "comment", type = {StringType.class}, order=6, min=0, max=1, modifier=false, summary=false)
100    @Description(shortDefinition="Comments on the availability to describe any extended information. Such as custom constraints on the slot(s) that may be associated", formalDefinition="Comments on the availability to describe any extended information. Such as custom constraints on the slot(s) that may be associated." )
101    protected StringType comment;
102
103    private static final long serialVersionUID = 1234951934L;
104
105  /**
106   * Constructor
107   */
108    public Schedule() {
109      super();
110    }
111
112  /**
113   * Constructor
114   */
115    public Schedule(Reference actor) {
116      super();
117      this.actor = actor;
118    }
119
120    /**
121     * @return {@link #identifier} (External Ids for this item.)
122     */
123    public List<Identifier> getIdentifier() { 
124      if (this.identifier == null)
125        this.identifier = new ArrayList<Identifier>();
126      return this.identifier;
127    }
128
129    public boolean hasIdentifier() { 
130      if (this.identifier == null)
131        return false;
132      for (Identifier item : this.identifier)
133        if (!item.isEmpty())
134          return true;
135      return false;
136    }
137
138    /**
139     * @return {@link #identifier} (External Ids for this item.)
140     */
141    // syntactic sugar
142    public Identifier addIdentifier() { //3
143      Identifier t = new Identifier();
144      if (this.identifier == null)
145        this.identifier = new ArrayList<Identifier>();
146      this.identifier.add(t);
147      return t;
148    }
149
150    // syntactic sugar
151    public Schedule addIdentifier(Identifier t) { //3
152      if (t == null)
153        return this;
154      if (this.identifier == null)
155        this.identifier = new ArrayList<Identifier>();
156      this.identifier.add(t);
157      return this;
158    }
159
160    /**
161     * @return {@link #serviceCategory} (A broad categorisation of the service that is to be performed during this appointment.)
162     */
163    public CodeableConcept getServiceCategory() { 
164      if (this.serviceCategory == null)
165        if (Configuration.errorOnAutoCreate())
166          throw new Error("Attempt to auto-create Schedule.serviceCategory");
167        else if (Configuration.doAutoCreate())
168          this.serviceCategory = new CodeableConcept(); // cc
169      return this.serviceCategory;
170    }
171
172    public boolean hasServiceCategory() { 
173      return this.serviceCategory != null && !this.serviceCategory.isEmpty();
174    }
175
176    /**
177     * @param value {@link #serviceCategory} (A broad categorisation of the service that is to be performed during this appointment.)
178     */
179    public Schedule setServiceCategory(CodeableConcept value) { 
180      this.serviceCategory = value;
181      return this;
182    }
183
184    /**
185     * @return {@link #serviceType} (The specific service that is to be performed during this appointment.)
186     */
187    public List<CodeableConcept> getServiceType() { 
188      if (this.serviceType == null)
189        this.serviceType = new ArrayList<CodeableConcept>();
190      return this.serviceType;
191    }
192
193    public boolean hasServiceType() { 
194      if (this.serviceType == null)
195        return false;
196      for (CodeableConcept item : this.serviceType)
197        if (!item.isEmpty())
198          return true;
199      return false;
200    }
201
202    /**
203     * @return {@link #serviceType} (The specific service that is to be performed during this appointment.)
204     */
205    // syntactic sugar
206    public CodeableConcept addServiceType() { //3
207      CodeableConcept t = new CodeableConcept();
208      if (this.serviceType == null)
209        this.serviceType = new ArrayList<CodeableConcept>();
210      this.serviceType.add(t);
211      return t;
212    }
213
214    // syntactic sugar
215    public Schedule addServiceType(CodeableConcept t) { //3
216      if (t == null)
217        return this;
218      if (this.serviceType == null)
219        this.serviceType = new ArrayList<CodeableConcept>();
220      this.serviceType.add(t);
221      return this;
222    }
223
224    /**
225     * @return {@link #specialty} (The specialty of a practitioner that would be required to perform the service requested in this appointment.)
226     */
227    public List<CodeableConcept> getSpecialty() { 
228      if (this.specialty == null)
229        this.specialty = new ArrayList<CodeableConcept>();
230      return this.specialty;
231    }
232
233    public boolean hasSpecialty() { 
234      if (this.specialty == null)
235        return false;
236      for (CodeableConcept item : this.specialty)
237        if (!item.isEmpty())
238          return true;
239      return false;
240    }
241
242    /**
243     * @return {@link #specialty} (The specialty of a practitioner that would be required to perform the service requested in this appointment.)
244     */
245    // syntactic sugar
246    public CodeableConcept addSpecialty() { //3
247      CodeableConcept t = new CodeableConcept();
248      if (this.specialty == null)
249        this.specialty = new ArrayList<CodeableConcept>();
250      this.specialty.add(t);
251      return t;
252    }
253
254    // syntactic sugar
255    public Schedule addSpecialty(CodeableConcept t) { //3
256      if (t == null)
257        return this;
258      if (this.specialty == null)
259        this.specialty = new ArrayList<CodeableConcept>();
260      this.specialty.add(t);
261      return this;
262    }
263
264    /**
265     * @return {@link #actor} (The resource this Schedule resource is providing availability information for. These are expected to usually be one of HealthcareService, Location, Practitioner, Device, Patient or RelatedPerson.)
266     */
267    public Reference getActor() { 
268      if (this.actor == null)
269        if (Configuration.errorOnAutoCreate())
270          throw new Error("Attempt to auto-create Schedule.actor");
271        else if (Configuration.doAutoCreate())
272          this.actor = new Reference(); // cc
273      return this.actor;
274    }
275
276    public boolean hasActor() { 
277      return this.actor != null && !this.actor.isEmpty();
278    }
279
280    /**
281     * @param value {@link #actor} (The resource this Schedule resource is providing availability information for. These are expected to usually be one of HealthcareService, Location, Practitioner, Device, Patient or RelatedPerson.)
282     */
283    public Schedule setActor(Reference value) { 
284      this.actor = value;
285      return this;
286    }
287
288    /**
289     * @return {@link #actor} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The resource this Schedule resource is providing availability information for. These are expected to usually be one of HealthcareService, Location, Practitioner, Device, Patient or RelatedPerson.)
290     */
291    public Resource getActorTarget() { 
292      return this.actorTarget;
293    }
294
295    /**
296     * @param value {@link #actor} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The resource this Schedule resource is providing availability information for. These are expected to usually be one of HealthcareService, Location, Practitioner, Device, Patient or RelatedPerson.)
297     */
298    public Schedule setActorTarget(Resource value) { 
299      this.actorTarget = value;
300      return this;
301    }
302
303    /**
304     * @return {@link #planningHorizon} (The period of time that the slots that are attached to this Schedule resource cover (even if none exist). These  cover the amount of time that an organization's planning horizon; the interval for which they are currently accepting appointments. This does not define a "template" for planning outside these dates.)
305     */
306    public Period getPlanningHorizon() { 
307      if (this.planningHorizon == null)
308        if (Configuration.errorOnAutoCreate())
309          throw new Error("Attempt to auto-create Schedule.planningHorizon");
310        else if (Configuration.doAutoCreate())
311          this.planningHorizon = new Period(); // cc
312      return this.planningHorizon;
313    }
314
315    public boolean hasPlanningHorizon() { 
316      return this.planningHorizon != null && !this.planningHorizon.isEmpty();
317    }
318
319    /**
320     * @param value {@link #planningHorizon} (The period of time that the slots that are attached to this Schedule resource cover (even if none exist). These  cover the amount of time that an organization's planning horizon; the interval for which they are currently accepting appointments. This does not define a "template" for planning outside these dates.)
321     */
322    public Schedule setPlanningHorizon(Period value) { 
323      this.planningHorizon = value;
324      return this;
325    }
326
327    /**
328     * @return {@link #comment} (Comments on the availability to describe any extended information. Such as custom constraints on the slot(s) that may be associated.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value
329     */
330    public StringType getCommentElement() { 
331      if (this.comment == null)
332        if (Configuration.errorOnAutoCreate())
333          throw new Error("Attempt to auto-create Schedule.comment");
334        else if (Configuration.doAutoCreate())
335          this.comment = new StringType(); // bb
336      return this.comment;
337    }
338
339    public boolean hasCommentElement() { 
340      return this.comment != null && !this.comment.isEmpty();
341    }
342
343    public boolean hasComment() { 
344      return this.comment != null && !this.comment.isEmpty();
345    }
346
347    /**
348     * @param value {@link #comment} (Comments on the availability to describe any extended information. Such as custom constraints on the slot(s) that may be associated.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value
349     */
350    public Schedule setCommentElement(StringType value) { 
351      this.comment = value;
352      return this;
353    }
354
355    /**
356     * @return Comments on the availability to describe any extended information. Such as custom constraints on the slot(s) that may be associated.
357     */
358    public String getComment() { 
359      return this.comment == null ? null : this.comment.getValue();
360    }
361
362    /**
363     * @param value Comments on the availability to describe any extended information. Such as custom constraints on the slot(s) that may be associated.
364     */
365    public Schedule setComment(String value) { 
366      if (Utilities.noString(value))
367        this.comment = null;
368      else {
369        if (this.comment == null)
370          this.comment = new StringType();
371        this.comment.setValue(value);
372      }
373      return this;
374    }
375
376      protected void listChildren(List<Property> childrenList) {
377        super.listChildren(childrenList);
378        childrenList.add(new Property("identifier", "Identifier", "External Ids for this item.", 0, java.lang.Integer.MAX_VALUE, identifier));
379        childrenList.add(new Property("serviceCategory", "CodeableConcept", "A broad categorisation of the service that is to be performed during this appointment.", 0, java.lang.Integer.MAX_VALUE, serviceCategory));
380        childrenList.add(new Property("serviceType", "CodeableConcept", "The specific service that is to be performed during this appointment.", 0, java.lang.Integer.MAX_VALUE, serviceType));
381        childrenList.add(new Property("specialty", "CodeableConcept", "The specialty of a practitioner that would be required to perform the service requested in this appointment.", 0, java.lang.Integer.MAX_VALUE, specialty));
382        childrenList.add(new Property("actor", "Reference(Patient|Practitioner|RelatedPerson|Device|HealthcareService|Location)", "The resource this Schedule resource is providing availability information for. These are expected to usually be one of HealthcareService, Location, Practitioner, Device, Patient or RelatedPerson.", 0, java.lang.Integer.MAX_VALUE, actor));
383        childrenList.add(new Property("planningHorizon", "Period", "The period of time that the slots that are attached to this Schedule resource cover (even if none exist). These  cover the amount of time that an organization's planning horizon; the interval for which they are currently accepting appointments. This does not define a \"template\" for planning outside these dates.", 0, java.lang.Integer.MAX_VALUE, planningHorizon));
384        childrenList.add(new Property("comment", "string", "Comments on the availability to describe any extended information. Such as custom constraints on the slot(s) that may be associated.", 0, java.lang.Integer.MAX_VALUE, comment));
385      }
386
387      @Override
388      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
389        switch (hash) {
390        case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier
391        case 1281188563: /*serviceCategory*/ return this.serviceCategory == null ? new Base[0] : new Base[] {this.serviceCategory}; // CodeableConcept
392        case -1928370289: /*serviceType*/ return this.serviceType == null ? new Base[0] : this.serviceType.toArray(new Base[this.serviceType.size()]); // CodeableConcept
393        case -1694759682: /*specialty*/ return this.specialty == null ? new Base[0] : this.specialty.toArray(new Base[this.specialty.size()]); // CodeableConcept
394        case 92645877: /*actor*/ return this.actor == null ? new Base[0] : new Base[] {this.actor}; // Reference
395        case -1718507650: /*planningHorizon*/ return this.planningHorizon == null ? new Base[0] : new Base[] {this.planningHorizon}; // Period
396        case 950398559: /*comment*/ return this.comment == null ? new Base[0] : new Base[] {this.comment}; // StringType
397        default: return super.getProperty(hash, name, checkValid);
398        }
399
400      }
401
402      @Override
403      public void setProperty(int hash, String name, Base value) throws FHIRException {
404        switch (hash) {
405        case -1618432855: // identifier
406          this.getIdentifier().add(castToIdentifier(value)); // Identifier
407          break;
408        case 1281188563: // serviceCategory
409          this.serviceCategory = castToCodeableConcept(value); // CodeableConcept
410          break;
411        case -1928370289: // serviceType
412          this.getServiceType().add(castToCodeableConcept(value)); // CodeableConcept
413          break;
414        case -1694759682: // specialty
415          this.getSpecialty().add(castToCodeableConcept(value)); // CodeableConcept
416          break;
417        case 92645877: // actor
418          this.actor = castToReference(value); // Reference
419          break;
420        case -1718507650: // planningHorizon
421          this.planningHorizon = castToPeriod(value); // Period
422          break;
423        case 950398559: // comment
424          this.comment = castToString(value); // StringType
425          break;
426        default: super.setProperty(hash, name, value);
427        }
428
429      }
430
431      @Override
432      public void setProperty(String name, Base value) throws FHIRException {
433        if (name.equals("identifier"))
434          this.getIdentifier().add(castToIdentifier(value));
435        else if (name.equals("serviceCategory"))
436          this.serviceCategory = castToCodeableConcept(value); // CodeableConcept
437        else if (name.equals("serviceType"))
438          this.getServiceType().add(castToCodeableConcept(value));
439        else if (name.equals("specialty"))
440          this.getSpecialty().add(castToCodeableConcept(value));
441        else if (name.equals("actor"))
442          this.actor = castToReference(value); // Reference
443        else if (name.equals("planningHorizon"))
444          this.planningHorizon = castToPeriod(value); // Period
445        else if (name.equals("comment"))
446          this.comment = castToString(value); // StringType
447        else
448          super.setProperty(name, value);
449      }
450
451      @Override
452      public Base makeProperty(int hash, String name) throws FHIRException {
453        switch (hash) {
454        case -1618432855:  return addIdentifier(); // Identifier
455        case 1281188563:  return getServiceCategory(); // CodeableConcept
456        case -1928370289:  return addServiceType(); // CodeableConcept
457        case -1694759682:  return addSpecialty(); // CodeableConcept
458        case 92645877:  return getActor(); // Reference
459        case -1718507650:  return getPlanningHorizon(); // Period
460        case 950398559: throw new FHIRException("Cannot make property comment as it is not a complex type"); // StringType
461        default: return super.makeProperty(hash, name);
462        }
463
464      }
465
466      @Override
467      public Base addChild(String name) throws FHIRException {
468        if (name.equals("identifier")) {
469          return addIdentifier();
470        }
471        else if (name.equals("serviceCategory")) {
472          this.serviceCategory = new CodeableConcept();
473          return this.serviceCategory;
474        }
475        else if (name.equals("serviceType")) {
476          return addServiceType();
477        }
478        else if (name.equals("specialty")) {
479          return addSpecialty();
480        }
481        else if (name.equals("actor")) {
482          this.actor = new Reference();
483          return this.actor;
484        }
485        else if (name.equals("planningHorizon")) {
486          this.planningHorizon = new Period();
487          return this.planningHorizon;
488        }
489        else if (name.equals("comment")) {
490          throw new FHIRException("Cannot call addChild on a primitive type Schedule.comment");
491        }
492        else
493          return super.addChild(name);
494      }
495
496  public String fhirType() {
497    return "Schedule";
498
499  }
500
501      public Schedule copy() {
502        Schedule dst = new Schedule();
503        copyValues(dst);
504        if (identifier != null) {
505          dst.identifier = new ArrayList<Identifier>();
506          for (Identifier i : identifier)
507            dst.identifier.add(i.copy());
508        };
509        dst.serviceCategory = serviceCategory == null ? null : serviceCategory.copy();
510        if (serviceType != null) {
511          dst.serviceType = new ArrayList<CodeableConcept>();
512          for (CodeableConcept i : serviceType)
513            dst.serviceType.add(i.copy());
514        };
515        if (specialty != null) {
516          dst.specialty = new ArrayList<CodeableConcept>();
517          for (CodeableConcept i : specialty)
518            dst.specialty.add(i.copy());
519        };
520        dst.actor = actor == null ? null : actor.copy();
521        dst.planningHorizon = planningHorizon == null ? null : planningHorizon.copy();
522        dst.comment = comment == null ? null : comment.copy();
523        return dst;
524      }
525
526      protected Schedule typedCopy() {
527        return copy();
528      }
529
530      @Override
531      public boolean equalsDeep(Base other) {
532        if (!super.equalsDeep(other))
533          return false;
534        if (!(other instanceof Schedule))
535          return false;
536        Schedule o = (Schedule) other;
537        return compareDeep(identifier, o.identifier, true) && compareDeep(serviceCategory, o.serviceCategory, true)
538           && compareDeep(serviceType, o.serviceType, true) && compareDeep(specialty, o.specialty, true) && compareDeep(actor, o.actor, true)
539           && compareDeep(planningHorizon, o.planningHorizon, true) && compareDeep(comment, o.comment, true)
540          ;
541      }
542
543      @Override
544      public boolean equalsShallow(Base other) {
545        if (!super.equalsShallow(other))
546          return false;
547        if (!(other instanceof Schedule))
548          return false;
549        Schedule o = (Schedule) other;
550        return compareValues(comment, o.comment, true);
551      }
552
553      public boolean isEmpty() {
554        return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (serviceCategory == null || serviceCategory.isEmpty())
555           && (serviceType == null || serviceType.isEmpty()) && (specialty == null || specialty.isEmpty())
556           && (actor == null || actor.isEmpty()) && (planningHorizon == null || planningHorizon.isEmpty())
557           && (comment == null || comment.isEmpty());
558      }
559
560  @Override
561  public ResourceType getResourceType() {
562    return ResourceType.Schedule;
563   }
564
565 /**
566   * Search parameter: <b>actor</b>
567   * <p>
568   * Description: <b>The individual(HealthcareService, Practitioner, Location, ...) to find a Schedule for</b><br>
569   * Type: <b>reference</b><br>
570   * Path: <b>Schedule.actor</b><br>
571   * </p>
572   */
573  @SearchParamDefinition(name="actor", path="Schedule.actor", description="The individual(HealthcareService, Practitioner, Location, ...) to find a Schedule for", type="reference" )
574  public static final String SP_ACTOR = "actor";
575 /**
576   * <b>Fluent Client</b> search parameter constant for <b>actor</b>
577   * <p>
578   * Description: <b>The individual(HealthcareService, Practitioner, Location, ...) to find a Schedule for</b><br>
579   * Type: <b>reference</b><br>
580   * Path: <b>Schedule.actor</b><br>
581   * </p>
582   */
583  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ACTOR = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ACTOR);
584
585/**
586   * Constant for fluent queries to be used to add include statements. Specifies
587   * the path value of "<b>Schedule:actor</b>".
588   */
589  public static final ca.uhn.fhir.model.api.Include INCLUDE_ACTOR = new ca.uhn.fhir.model.api.Include("Schedule:actor").toLocked();
590
591 /**
592   * Search parameter: <b>date</b>
593   * <p>
594   * Description: <b>Search for Schedule resources that have a period that contains this date specified</b><br>
595   * Type: <b>date</b><br>
596   * Path: <b>Schedule.planningHorizon</b><br>
597   * </p>
598   */
599  @SearchParamDefinition(name="date", path="Schedule.planningHorizon", description="Search for Schedule resources that have a period that contains this date specified", type="date" )
600  public static final String SP_DATE = "date";
601 /**
602   * <b>Fluent Client</b> search parameter constant for <b>date</b>
603   * <p>
604   * Description: <b>Search for Schedule resources that have a period that contains this date specified</b><br>
605   * Type: <b>date</b><br>
606   * Path: <b>Schedule.planningHorizon</b><br>
607   * </p>
608   */
609  public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE);
610
611 /**
612   * Search parameter: <b>type</b>
613   * <p>
614   * Description: <b>The type of appointments that can be booked into associated slot(s)</b><br>
615   * Type: <b>token</b><br>
616   * Path: <b>Schedule.serviceType</b><br>
617   * </p>
618   */
619  @SearchParamDefinition(name="type", path="Schedule.serviceType", description="The type of appointments that can be booked into associated slot(s)", type="token" )
620  public static final String SP_TYPE = "type";
621 /**
622   * <b>Fluent Client</b> search parameter constant for <b>type</b>
623   * <p>
624   * Description: <b>The type of appointments that can be booked into associated slot(s)</b><br>
625   * Type: <b>token</b><br>
626   * Path: <b>Schedule.serviceType</b><br>
627   * </p>
628   */
629  public static final ca.uhn.fhir.rest.gclient.TokenClientParam TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TYPE);
630
631 /**
632   * Search parameter: <b>identifier</b>
633   * <p>
634   * Description: <b>A Schedule Identifier</b><br>
635   * Type: <b>token</b><br>
636   * Path: <b>Schedule.identifier</b><br>
637   * </p>
638   */
639  @SearchParamDefinition(name="identifier", path="Schedule.identifier", description="A Schedule Identifier", type="token" )
640  public static final String SP_IDENTIFIER = "identifier";
641 /**
642   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
643   * <p>
644   * Description: <b>A Schedule Identifier</b><br>
645   * Type: <b>token</b><br>
646   * Path: <b>Schedule.identifier</b><br>
647   * </p>
648   */
649  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
650
651
652}
653