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