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 Tue, Dec 28, 2021 07:16+1100 for FHIR v5.0.0-snapshot1 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 slot of time on a schedule that may be available for booking appointments. 052 */ 053@ResourceDef(name="Slot", profile="http://hl7.org/fhir/StructureDefinition/Slot") 054public class Slot extends DomainResource { 055 056 public enum SlotStatus { 057 /** 058 * Indicates that the time interval is busy because one or more events have been scheduled for that interval. 059 */ 060 BUSY, 061 /** 062 * Indicates that the time interval is free for scheduling. 063 */ 064 FREE, 065 /** 066 * Indicates that the time interval is busy and that the interval cannot be scheduled. 067 */ 068 BUSYUNAVAILABLE, 069 /** 070 * Indicates that the time interval is busy because one or more events have been tentatively scheduled for that interval. 071 */ 072 BUSYTENTATIVE, 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 SlotStatus fromCode(String codeString) throws FHIRException { 082 if (codeString == null || "".equals(codeString)) 083 return null; 084 if ("busy".equals(codeString)) 085 return BUSY; 086 if ("free".equals(codeString)) 087 return FREE; 088 if ("busy-unavailable".equals(codeString)) 089 return BUSYUNAVAILABLE; 090 if ("busy-tentative".equals(codeString)) 091 return BUSYTENTATIVE; 092 if ("entered-in-error".equals(codeString)) 093 return ENTEREDINERROR; 094 if (Configuration.isAcceptInvalidEnums()) 095 return null; 096 else 097 throw new FHIRException("Unknown SlotStatus code '"+codeString+"'"); 098 } 099 public String toCode() { 100 switch (this) { 101 case BUSY: return "busy"; 102 case FREE: return "free"; 103 case BUSYUNAVAILABLE: return "busy-unavailable"; 104 case BUSYTENTATIVE: return "busy-tentative"; 105 case ENTEREDINERROR: return "entered-in-error"; 106 default: return "?"; 107 } 108 } 109 public String getSystem() { 110 switch (this) { 111 case BUSY: return "http://hl7.org/fhir/slotstatus"; 112 case FREE: return "http://hl7.org/fhir/slotstatus"; 113 case BUSYUNAVAILABLE: return "http://hl7.org/fhir/slotstatus"; 114 case BUSYTENTATIVE: return "http://hl7.org/fhir/slotstatus"; 115 case ENTEREDINERROR: return "http://hl7.org/fhir/slotstatus"; 116 default: return "?"; 117 } 118 } 119 public String getDefinition() { 120 switch (this) { 121 case BUSY: return "Indicates that the time interval is busy because one or more events have been scheduled for that interval."; 122 case FREE: return "Indicates that the time interval is free for scheduling."; 123 case BUSYUNAVAILABLE: return "Indicates that the time interval is busy and that the interval cannot be scheduled."; 124 case BUSYTENTATIVE: return "Indicates that the time interval is busy because one or more events have been tentatively scheduled for that interval."; 125 case ENTEREDINERROR: return "This instance should not have been part of this patient's medical record."; 126 default: return "?"; 127 } 128 } 129 public String getDisplay() { 130 switch (this) { 131 case BUSY: return "Busy"; 132 case FREE: return "Free"; 133 case BUSYUNAVAILABLE: return "Busy (Unavailable)"; 134 case BUSYTENTATIVE: return "Busy (Tentative)"; 135 case ENTEREDINERROR: return "Entered in error"; 136 default: return "?"; 137 } 138 } 139 } 140 141 public static class SlotStatusEnumFactory implements EnumFactory<SlotStatus> { 142 public SlotStatus fromCode(String codeString) throws IllegalArgumentException { 143 if (codeString == null || "".equals(codeString)) 144 if (codeString == null || "".equals(codeString)) 145 return null; 146 if ("busy".equals(codeString)) 147 return SlotStatus.BUSY; 148 if ("free".equals(codeString)) 149 return SlotStatus.FREE; 150 if ("busy-unavailable".equals(codeString)) 151 return SlotStatus.BUSYUNAVAILABLE; 152 if ("busy-tentative".equals(codeString)) 153 return SlotStatus.BUSYTENTATIVE; 154 if ("entered-in-error".equals(codeString)) 155 return SlotStatus.ENTEREDINERROR; 156 throw new IllegalArgumentException("Unknown SlotStatus code '"+codeString+"'"); 157 } 158 public Enumeration<SlotStatus> fromType(Base code) throws FHIRException { 159 if (code == null) 160 return null; 161 if (code.isEmpty()) 162 return new Enumeration<SlotStatus>(this); 163 String codeString = ((PrimitiveType) code).asStringValue(); 164 if (codeString == null || "".equals(codeString)) 165 return null; 166 if ("busy".equals(codeString)) 167 return new Enumeration<SlotStatus>(this, SlotStatus.BUSY); 168 if ("free".equals(codeString)) 169 return new Enumeration<SlotStatus>(this, SlotStatus.FREE); 170 if ("busy-unavailable".equals(codeString)) 171 return new Enumeration<SlotStatus>(this, SlotStatus.BUSYUNAVAILABLE); 172 if ("busy-tentative".equals(codeString)) 173 return new Enumeration<SlotStatus>(this, SlotStatus.BUSYTENTATIVE); 174 if ("entered-in-error".equals(codeString)) 175 return new Enumeration<SlotStatus>(this, SlotStatus.ENTEREDINERROR); 176 throw new FHIRException("Unknown SlotStatus code '"+codeString+"'"); 177 } 178 public String toCode(SlotStatus code) { 179 if (code == SlotStatus.BUSY) 180 return "busy"; 181 if (code == SlotStatus.FREE) 182 return "free"; 183 if (code == SlotStatus.BUSYUNAVAILABLE) 184 return "busy-unavailable"; 185 if (code == SlotStatus.BUSYTENTATIVE) 186 return "busy-tentative"; 187 if (code == SlotStatus.ENTEREDINERROR) 188 return "entered-in-error"; 189 return "?"; 190 } 191 public String toSystem(SlotStatus code) { 192 return code.getSystem(); 193 } 194 } 195 196 /** 197 * External Ids for this item. 198 */ 199 @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 200 @Description(shortDefinition="External Ids for this item", formalDefinition="External Ids for this item." ) 201 protected List<Identifier> identifier; 202 203 /** 204 * A broad categorization of the service that is to be performed during this appointment. 205 */ 206 @Child(name = "serviceCategory", type = {CodeableConcept.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 207 @Description(shortDefinition="A broad categorization of the service that is to be performed during this appointment", formalDefinition="A broad categorization of the service that is to be performed during this appointment." ) 208 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/service-category") 209 protected List<CodeableConcept> serviceCategory; 210 211 /** 212 * The type of appointments that can be booked into this slot (ideally this would be an identifiable service - which is at a location, rather than the location itself). If provided then this overrides the value provided on the availability resource. 213 */ 214 @Child(name = "serviceType", type = {CodeableConcept.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 215 @Description(shortDefinition="The type of appointments that can be booked into this slot (ideally this would be an identifiable service - which is at a location, rather than the location itself). If provided then this overrides the value provided on the availability resource", formalDefinition="The type of appointments that can be booked into this slot (ideally this would be an identifiable service - which is at a location, rather than the location itself). If provided then this overrides the value provided on the availability resource." ) 216 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/service-type") 217 protected List<CodeableConcept> serviceType; 218 219 /** 220 * The specialty of a practitioner that would be required to perform the service requested in this appointment. 221 */ 222 @Child(name = "specialty", type = {CodeableConcept.class}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 223 @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." ) 224 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/c80-practice-codes") 225 protected List<CodeableConcept> specialty; 226 227 /** 228 * The style of appointment or patient that may be booked in the slot (not service type). 229 */ 230 @Child(name = "appointmentType", type = {CodeableConcept.class}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 231 @Description(shortDefinition="The style of appointment or patient that may be booked in the slot (not service type)", formalDefinition="The style of appointment or patient that may be booked in the slot (not service type)." ) 232 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://terminology.hl7.org/ValueSet/v2-0276") 233 protected List<CodeableConcept> appointmentType; 234 235 /** 236 * The schedule resource that this slot defines an interval of status information. 237 */ 238 @Child(name = "schedule", type = {Schedule.class}, order=5, min=1, max=1, modifier=false, summary=true) 239 @Description(shortDefinition="The schedule resource that this slot defines an interval of status information", formalDefinition="The schedule resource that this slot defines an interval of status information." ) 240 protected Reference schedule; 241 242 /** 243 * busy | free | busy-unavailable | busy-tentative | entered-in-error. 244 */ 245 @Child(name = "status", type = {CodeType.class}, order=6, min=1, max=1, modifier=false, summary=true) 246 @Description(shortDefinition="busy | free | busy-unavailable | busy-tentative | entered-in-error", formalDefinition="busy | free | busy-unavailable | busy-tentative | entered-in-error." ) 247 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/slotstatus") 248 protected Enumeration<SlotStatus> status; 249 250 /** 251 * Date/Time that the slot is to begin. 252 */ 253 @Child(name = "start", type = {InstantType.class}, order=7, min=1, max=1, modifier=false, summary=true) 254 @Description(shortDefinition="Date/Time that the slot is to begin", formalDefinition="Date/Time that the slot is to begin." ) 255 protected InstantType start; 256 257 /** 258 * Date/Time that the slot is to conclude. 259 */ 260 @Child(name = "end", type = {InstantType.class}, order=8, min=1, max=1, modifier=false, summary=true) 261 @Description(shortDefinition="Date/Time that the slot is to conclude", formalDefinition="Date/Time that the slot is to conclude." ) 262 protected InstantType end; 263 264 /** 265 * This slot has already been overbooked, appointments are unlikely to be accepted for this time. 266 */ 267 @Child(name = "overbooked", type = {BooleanType.class}, order=9, min=0, max=1, modifier=false, summary=false) 268 @Description(shortDefinition="This slot has already been overbooked, appointments are unlikely to be accepted for this time", formalDefinition="This slot has already been overbooked, appointments are unlikely to be accepted for this time." ) 269 protected BooleanType overbooked; 270 271 /** 272 * Comments on the slot to describe any extended information. Such as custom constraints on the slot. 273 */ 274 @Child(name = "comment", type = {StringType.class}, order=10, min=0, max=1, modifier=false, summary=false) 275 @Description(shortDefinition="Comments on the slot to describe any extended information. Such as custom constraints on the slot", formalDefinition="Comments on the slot to describe any extended information. Such as custom constraints on the slot." ) 276 protected StringType comment; 277 278 private static final long serialVersionUID = 1338658975L; 279 280 /** 281 * Constructor 282 */ 283 public Slot() { 284 super(); 285 } 286 287 /** 288 * Constructor 289 */ 290 public Slot(Reference schedule, SlotStatus status, Date start, Date end) { 291 super(); 292 this.setSchedule(schedule); 293 this.setStatus(status); 294 this.setStart(start); 295 this.setEnd(end); 296 } 297 298 /** 299 * @return {@link #identifier} (External Ids for this item.) 300 */ 301 public List<Identifier> getIdentifier() { 302 if (this.identifier == null) 303 this.identifier = new ArrayList<Identifier>(); 304 return this.identifier; 305 } 306 307 /** 308 * @return Returns a reference to <code>this</code> for easy method chaining 309 */ 310 public Slot setIdentifier(List<Identifier> theIdentifier) { 311 this.identifier = theIdentifier; 312 return this; 313 } 314 315 public boolean hasIdentifier() { 316 if (this.identifier == null) 317 return false; 318 for (Identifier item : this.identifier) 319 if (!item.isEmpty()) 320 return true; 321 return false; 322 } 323 324 public Identifier addIdentifier() { //3 325 Identifier t = new Identifier(); 326 if (this.identifier == null) 327 this.identifier = new ArrayList<Identifier>(); 328 this.identifier.add(t); 329 return t; 330 } 331 332 public Slot addIdentifier(Identifier t) { //3 333 if (t == null) 334 return this; 335 if (this.identifier == null) 336 this.identifier = new ArrayList<Identifier>(); 337 this.identifier.add(t); 338 return this; 339 } 340 341 /** 342 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3} 343 */ 344 public Identifier getIdentifierFirstRep() { 345 if (getIdentifier().isEmpty()) { 346 addIdentifier(); 347 } 348 return getIdentifier().get(0); 349 } 350 351 /** 352 * @return {@link #serviceCategory} (A broad categorization of the service that is to be performed during this appointment.) 353 */ 354 public List<CodeableConcept> getServiceCategory() { 355 if (this.serviceCategory == null) 356 this.serviceCategory = new ArrayList<CodeableConcept>(); 357 return this.serviceCategory; 358 } 359 360 /** 361 * @return Returns a reference to <code>this</code> for easy method chaining 362 */ 363 public Slot setServiceCategory(List<CodeableConcept> theServiceCategory) { 364 this.serviceCategory = theServiceCategory; 365 return this; 366 } 367 368 public boolean hasServiceCategory() { 369 if (this.serviceCategory == null) 370 return false; 371 for (CodeableConcept item : this.serviceCategory) 372 if (!item.isEmpty()) 373 return true; 374 return false; 375 } 376 377 public CodeableConcept addServiceCategory() { //3 378 CodeableConcept t = new CodeableConcept(); 379 if (this.serviceCategory == null) 380 this.serviceCategory = new ArrayList<CodeableConcept>(); 381 this.serviceCategory.add(t); 382 return t; 383 } 384 385 public Slot addServiceCategory(CodeableConcept t) { //3 386 if (t == null) 387 return this; 388 if (this.serviceCategory == null) 389 this.serviceCategory = new ArrayList<CodeableConcept>(); 390 this.serviceCategory.add(t); 391 return this; 392 } 393 394 /** 395 * @return The first repetition of repeating field {@link #serviceCategory}, creating it if it does not already exist {3} 396 */ 397 public CodeableConcept getServiceCategoryFirstRep() { 398 if (getServiceCategory().isEmpty()) { 399 addServiceCategory(); 400 } 401 return getServiceCategory().get(0); 402 } 403 404 /** 405 * @return {@link #serviceType} (The type of appointments that can be booked into this slot (ideally this would be an identifiable service - which is at a location, rather than the location itself). If provided then this overrides the value provided on the availability resource.) 406 */ 407 public List<CodeableConcept> getServiceType() { 408 if (this.serviceType == null) 409 this.serviceType = new ArrayList<CodeableConcept>(); 410 return this.serviceType; 411 } 412 413 /** 414 * @return Returns a reference to <code>this</code> for easy method chaining 415 */ 416 public Slot setServiceType(List<CodeableConcept> theServiceType) { 417 this.serviceType = theServiceType; 418 return this; 419 } 420 421 public boolean hasServiceType() { 422 if (this.serviceType == null) 423 return false; 424 for (CodeableConcept item : this.serviceType) 425 if (!item.isEmpty()) 426 return true; 427 return false; 428 } 429 430 public CodeableConcept addServiceType() { //3 431 CodeableConcept t = new CodeableConcept(); 432 if (this.serviceType == null) 433 this.serviceType = new ArrayList<CodeableConcept>(); 434 this.serviceType.add(t); 435 return t; 436 } 437 438 public Slot addServiceType(CodeableConcept t) { //3 439 if (t == null) 440 return this; 441 if (this.serviceType == null) 442 this.serviceType = new ArrayList<CodeableConcept>(); 443 this.serviceType.add(t); 444 return this; 445 } 446 447 /** 448 * @return The first repetition of repeating field {@link #serviceType}, creating it if it does not already exist {3} 449 */ 450 public CodeableConcept getServiceTypeFirstRep() { 451 if (getServiceType().isEmpty()) { 452 addServiceType(); 453 } 454 return getServiceType().get(0); 455 } 456 457 /** 458 * @return {@link #specialty} (The specialty of a practitioner that would be required to perform the service requested in this appointment.) 459 */ 460 public List<CodeableConcept> getSpecialty() { 461 if (this.specialty == null) 462 this.specialty = new ArrayList<CodeableConcept>(); 463 return this.specialty; 464 } 465 466 /** 467 * @return Returns a reference to <code>this</code> for easy method chaining 468 */ 469 public Slot setSpecialty(List<CodeableConcept> theSpecialty) { 470 this.specialty = theSpecialty; 471 return this; 472 } 473 474 public boolean hasSpecialty() { 475 if (this.specialty == null) 476 return false; 477 for (CodeableConcept item : this.specialty) 478 if (!item.isEmpty()) 479 return true; 480 return false; 481 } 482 483 public CodeableConcept addSpecialty() { //3 484 CodeableConcept t = new CodeableConcept(); 485 if (this.specialty == null) 486 this.specialty = new ArrayList<CodeableConcept>(); 487 this.specialty.add(t); 488 return t; 489 } 490 491 public Slot addSpecialty(CodeableConcept t) { //3 492 if (t == null) 493 return this; 494 if (this.specialty == null) 495 this.specialty = new ArrayList<CodeableConcept>(); 496 this.specialty.add(t); 497 return this; 498 } 499 500 /** 501 * @return The first repetition of repeating field {@link #specialty}, creating it if it does not already exist {3} 502 */ 503 public CodeableConcept getSpecialtyFirstRep() { 504 if (getSpecialty().isEmpty()) { 505 addSpecialty(); 506 } 507 return getSpecialty().get(0); 508 } 509 510 /** 511 * @return {@link #appointmentType} (The style of appointment or patient that may be booked in the slot (not service type).) 512 */ 513 public List<CodeableConcept> getAppointmentType() { 514 if (this.appointmentType == null) 515 this.appointmentType = new ArrayList<CodeableConcept>(); 516 return this.appointmentType; 517 } 518 519 /** 520 * @return Returns a reference to <code>this</code> for easy method chaining 521 */ 522 public Slot setAppointmentType(List<CodeableConcept> theAppointmentType) { 523 this.appointmentType = theAppointmentType; 524 return this; 525 } 526 527 public boolean hasAppointmentType() { 528 if (this.appointmentType == null) 529 return false; 530 for (CodeableConcept item : this.appointmentType) 531 if (!item.isEmpty()) 532 return true; 533 return false; 534 } 535 536 public CodeableConcept addAppointmentType() { //3 537 CodeableConcept t = new CodeableConcept(); 538 if (this.appointmentType == null) 539 this.appointmentType = new ArrayList<CodeableConcept>(); 540 this.appointmentType.add(t); 541 return t; 542 } 543 544 public Slot addAppointmentType(CodeableConcept t) { //3 545 if (t == null) 546 return this; 547 if (this.appointmentType == null) 548 this.appointmentType = new ArrayList<CodeableConcept>(); 549 this.appointmentType.add(t); 550 return this; 551 } 552 553 /** 554 * @return The first repetition of repeating field {@link #appointmentType}, creating it if it does not already exist {3} 555 */ 556 public CodeableConcept getAppointmentTypeFirstRep() { 557 if (getAppointmentType().isEmpty()) { 558 addAppointmentType(); 559 } 560 return getAppointmentType().get(0); 561 } 562 563 /** 564 * @return {@link #schedule} (The schedule resource that this slot defines an interval of status information.) 565 */ 566 public Reference getSchedule() { 567 if (this.schedule == null) 568 if (Configuration.errorOnAutoCreate()) 569 throw new Error("Attempt to auto-create Slot.schedule"); 570 else if (Configuration.doAutoCreate()) 571 this.schedule = new Reference(); // cc 572 return this.schedule; 573 } 574 575 public boolean hasSchedule() { 576 return this.schedule != null && !this.schedule.isEmpty(); 577 } 578 579 /** 580 * @param value {@link #schedule} (The schedule resource that this slot defines an interval of status information.) 581 */ 582 public Slot setSchedule(Reference value) { 583 this.schedule = value; 584 return this; 585 } 586 587 /** 588 * @return {@link #status} (busy | free | busy-unavailable | busy-tentative | entered-in-error.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 589 */ 590 public Enumeration<SlotStatus> getStatusElement() { 591 if (this.status == null) 592 if (Configuration.errorOnAutoCreate()) 593 throw new Error("Attempt to auto-create Slot.status"); 594 else if (Configuration.doAutoCreate()) 595 this.status = new Enumeration<SlotStatus>(new SlotStatusEnumFactory()); // bb 596 return this.status; 597 } 598 599 public boolean hasStatusElement() { 600 return this.status != null && !this.status.isEmpty(); 601 } 602 603 public boolean hasStatus() { 604 return this.status != null && !this.status.isEmpty(); 605 } 606 607 /** 608 * @param value {@link #status} (busy | free | busy-unavailable | busy-tentative | entered-in-error.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 609 */ 610 public Slot setStatusElement(Enumeration<SlotStatus> value) { 611 this.status = value; 612 return this; 613 } 614 615 /** 616 * @return busy | free | busy-unavailable | busy-tentative | entered-in-error. 617 */ 618 public SlotStatus getStatus() { 619 return this.status == null ? null : this.status.getValue(); 620 } 621 622 /** 623 * @param value busy | free | busy-unavailable | busy-tentative | entered-in-error. 624 */ 625 public Slot setStatus(SlotStatus value) { 626 if (this.status == null) 627 this.status = new Enumeration<SlotStatus>(new SlotStatusEnumFactory()); 628 this.status.setValue(value); 629 return this; 630 } 631 632 /** 633 * @return {@link #start} (Date/Time that the slot is to begin.). This is the underlying object with id, value and extensions. The accessor "getStart" gives direct access to the value 634 */ 635 public InstantType getStartElement() { 636 if (this.start == null) 637 if (Configuration.errorOnAutoCreate()) 638 throw new Error("Attempt to auto-create Slot.start"); 639 else if (Configuration.doAutoCreate()) 640 this.start = new InstantType(); // bb 641 return this.start; 642 } 643 644 public boolean hasStartElement() { 645 return this.start != null && !this.start.isEmpty(); 646 } 647 648 public boolean hasStart() { 649 return this.start != null && !this.start.isEmpty(); 650 } 651 652 /** 653 * @param value {@link #start} (Date/Time that the slot is to begin.). This is the underlying object with id, value and extensions. The accessor "getStart" gives direct access to the value 654 */ 655 public Slot setStartElement(InstantType value) { 656 this.start = value; 657 return this; 658 } 659 660 /** 661 * @return Date/Time that the slot is to begin. 662 */ 663 public Date getStart() { 664 return this.start == null ? null : this.start.getValue(); 665 } 666 667 /** 668 * @param value Date/Time that the slot is to begin. 669 */ 670 public Slot setStart(Date value) { 671 if (this.start == null) 672 this.start = new InstantType(); 673 this.start.setValue(value); 674 return this; 675 } 676 677 /** 678 * @return {@link #end} (Date/Time that the slot is to conclude.). This is the underlying object with id, value and extensions. The accessor "getEnd" gives direct access to the value 679 */ 680 public InstantType getEndElement() { 681 if (this.end == null) 682 if (Configuration.errorOnAutoCreate()) 683 throw new Error("Attempt to auto-create Slot.end"); 684 else if (Configuration.doAutoCreate()) 685 this.end = new InstantType(); // bb 686 return this.end; 687 } 688 689 public boolean hasEndElement() { 690 return this.end != null && !this.end.isEmpty(); 691 } 692 693 public boolean hasEnd() { 694 return this.end != null && !this.end.isEmpty(); 695 } 696 697 /** 698 * @param value {@link #end} (Date/Time that the slot is to conclude.). This is the underlying object with id, value and extensions. The accessor "getEnd" gives direct access to the value 699 */ 700 public Slot setEndElement(InstantType value) { 701 this.end = value; 702 return this; 703 } 704 705 /** 706 * @return Date/Time that the slot is to conclude. 707 */ 708 public Date getEnd() { 709 return this.end == null ? null : this.end.getValue(); 710 } 711 712 /** 713 * @param value Date/Time that the slot is to conclude. 714 */ 715 public Slot setEnd(Date value) { 716 if (this.end == null) 717 this.end = new InstantType(); 718 this.end.setValue(value); 719 return this; 720 } 721 722 /** 723 * @return {@link #overbooked} (This slot has already been overbooked, appointments are unlikely to be accepted for this time.). This is the underlying object with id, value and extensions. The accessor "getOverbooked" gives direct access to the value 724 */ 725 public BooleanType getOverbookedElement() { 726 if (this.overbooked == null) 727 if (Configuration.errorOnAutoCreate()) 728 throw new Error("Attempt to auto-create Slot.overbooked"); 729 else if (Configuration.doAutoCreate()) 730 this.overbooked = new BooleanType(); // bb 731 return this.overbooked; 732 } 733 734 public boolean hasOverbookedElement() { 735 return this.overbooked != null && !this.overbooked.isEmpty(); 736 } 737 738 public boolean hasOverbooked() { 739 return this.overbooked != null && !this.overbooked.isEmpty(); 740 } 741 742 /** 743 * @param value {@link #overbooked} (This slot has already been overbooked, appointments are unlikely to be accepted for this time.). This is the underlying object with id, value and extensions. The accessor "getOverbooked" gives direct access to the value 744 */ 745 public Slot setOverbookedElement(BooleanType value) { 746 this.overbooked = value; 747 return this; 748 } 749 750 /** 751 * @return This slot has already been overbooked, appointments are unlikely to be accepted for this time. 752 */ 753 public boolean getOverbooked() { 754 return this.overbooked == null || this.overbooked.isEmpty() ? false : this.overbooked.getValue(); 755 } 756 757 /** 758 * @param value This slot has already been overbooked, appointments are unlikely to be accepted for this time. 759 */ 760 public Slot setOverbooked(boolean value) { 761 if (this.overbooked == null) 762 this.overbooked = new BooleanType(); 763 this.overbooked.setValue(value); 764 return this; 765 } 766 767 /** 768 * @return {@link #comment} (Comments on the slot to describe any extended information. Such as custom constraints on the slot.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value 769 */ 770 public StringType getCommentElement() { 771 if (this.comment == null) 772 if (Configuration.errorOnAutoCreate()) 773 throw new Error("Attempt to auto-create Slot.comment"); 774 else if (Configuration.doAutoCreate()) 775 this.comment = new StringType(); // bb 776 return this.comment; 777 } 778 779 public boolean hasCommentElement() { 780 return this.comment != null && !this.comment.isEmpty(); 781 } 782 783 public boolean hasComment() { 784 return this.comment != null && !this.comment.isEmpty(); 785 } 786 787 /** 788 * @param value {@link #comment} (Comments on the slot to describe any extended information. Such as custom constraints on the slot.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value 789 */ 790 public Slot setCommentElement(StringType value) { 791 this.comment = value; 792 return this; 793 } 794 795 /** 796 * @return Comments on the slot to describe any extended information. Such as custom constraints on the slot. 797 */ 798 public String getComment() { 799 return this.comment == null ? null : this.comment.getValue(); 800 } 801 802 /** 803 * @param value Comments on the slot to describe any extended information. Such as custom constraints on the slot. 804 */ 805 public Slot setComment(String value) { 806 if (Utilities.noString(value)) 807 this.comment = null; 808 else { 809 if (this.comment == null) 810 this.comment = new StringType(); 811 this.comment.setValue(value); 812 } 813 return this; 814 } 815 816 protected void listChildren(List<Property> children) { 817 super.listChildren(children); 818 children.add(new Property("identifier", "Identifier", "External Ids for this item.", 0, java.lang.Integer.MAX_VALUE, identifier)); 819 children.add(new Property("serviceCategory", "CodeableConcept", "A broad categorization of the service that is to be performed during this appointment.", 0, java.lang.Integer.MAX_VALUE, serviceCategory)); 820 children.add(new Property("serviceType", "CodeableConcept", "The type of appointments that can be booked into this slot (ideally this would be an identifiable service - which is at a location, rather than the location itself). If provided then this overrides the value provided on the availability resource.", 0, java.lang.Integer.MAX_VALUE, serviceType)); 821 children.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)); 822 children.add(new Property("appointmentType", "CodeableConcept", "The style of appointment or patient that may be booked in the slot (not service type).", 0, java.lang.Integer.MAX_VALUE, appointmentType)); 823 children.add(new Property("schedule", "Reference(Schedule)", "The schedule resource that this slot defines an interval of status information.", 0, 1, schedule)); 824 children.add(new Property("status", "code", "busy | free | busy-unavailable | busy-tentative | entered-in-error.", 0, 1, status)); 825 children.add(new Property("start", "instant", "Date/Time that the slot is to begin.", 0, 1, start)); 826 children.add(new Property("end", "instant", "Date/Time that the slot is to conclude.", 0, 1, end)); 827 children.add(new Property("overbooked", "boolean", "This slot has already been overbooked, appointments are unlikely to be accepted for this time.", 0, 1, overbooked)); 828 children.add(new Property("comment", "string", "Comments on the slot to describe any extended information. Such as custom constraints on the slot.", 0, 1, comment)); 829 } 830 831 @Override 832 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 833 switch (_hash) { 834 case -1618432855: /*identifier*/ return new Property("identifier", "Identifier", "External Ids for this item.", 0, java.lang.Integer.MAX_VALUE, identifier); 835 case 1281188563: /*serviceCategory*/ return new Property("serviceCategory", "CodeableConcept", "A broad categorization of the service that is to be performed during this appointment.", 0, java.lang.Integer.MAX_VALUE, serviceCategory); 836 case -1928370289: /*serviceType*/ return new Property("serviceType", "CodeableConcept", "The type of appointments that can be booked into this slot (ideally this would be an identifiable service - which is at a location, rather than the location itself). If provided then this overrides the value provided on the availability resource.", 0, java.lang.Integer.MAX_VALUE, serviceType); 837 case -1694759682: /*specialty*/ return 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); 838 case -1596426375: /*appointmentType*/ return new Property("appointmentType", "CodeableConcept", "The style of appointment or patient that may be booked in the slot (not service type).", 0, java.lang.Integer.MAX_VALUE, appointmentType); 839 case -697920873: /*schedule*/ return new Property("schedule", "Reference(Schedule)", "The schedule resource that this slot defines an interval of status information.", 0, 1, schedule); 840 case -892481550: /*status*/ return new Property("status", "code", "busy | free | busy-unavailable | busy-tentative | entered-in-error.", 0, 1, status); 841 case 109757538: /*start*/ return new Property("start", "instant", "Date/Time that the slot is to begin.", 0, 1, start); 842 case 100571: /*end*/ return new Property("end", "instant", "Date/Time that the slot is to conclude.", 0, 1, end); 843 case 2068545308: /*overbooked*/ return new Property("overbooked", "boolean", "This slot has already been overbooked, appointments are unlikely to be accepted for this time.", 0, 1, overbooked); 844 case 950398559: /*comment*/ return new Property("comment", "string", "Comments on the slot to describe any extended information. Such as custom constraints on the slot.", 0, 1, comment); 845 default: return super.getNamedProperty(_hash, _name, _checkValid); 846 } 847 848 } 849 850 @Override 851 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 852 switch (hash) { 853 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 854 case 1281188563: /*serviceCategory*/ return this.serviceCategory == null ? new Base[0] : this.serviceCategory.toArray(new Base[this.serviceCategory.size()]); // CodeableConcept 855 case -1928370289: /*serviceType*/ return this.serviceType == null ? new Base[0] : this.serviceType.toArray(new Base[this.serviceType.size()]); // CodeableConcept 856 case -1694759682: /*specialty*/ return this.specialty == null ? new Base[0] : this.specialty.toArray(new Base[this.specialty.size()]); // CodeableConcept 857 case -1596426375: /*appointmentType*/ return this.appointmentType == null ? new Base[0] : this.appointmentType.toArray(new Base[this.appointmentType.size()]); // CodeableConcept 858 case -697920873: /*schedule*/ return this.schedule == null ? new Base[0] : new Base[] {this.schedule}; // Reference 859 case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<SlotStatus> 860 case 109757538: /*start*/ return this.start == null ? new Base[0] : new Base[] {this.start}; // InstantType 861 case 100571: /*end*/ return this.end == null ? new Base[0] : new Base[] {this.end}; // InstantType 862 case 2068545308: /*overbooked*/ return this.overbooked == null ? new Base[0] : new Base[] {this.overbooked}; // BooleanType 863 case 950398559: /*comment*/ return this.comment == null ? new Base[0] : new Base[] {this.comment}; // StringType 864 default: return super.getProperty(hash, name, checkValid); 865 } 866 867 } 868 869 @Override 870 public Base setProperty(int hash, String name, Base value) throws FHIRException { 871 switch (hash) { 872 case -1618432855: // identifier 873 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier 874 return value; 875 case 1281188563: // serviceCategory 876 this.getServiceCategory().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 877 return value; 878 case -1928370289: // serviceType 879 this.getServiceType().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 880 return value; 881 case -1694759682: // specialty 882 this.getSpecialty().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 883 return value; 884 case -1596426375: // appointmentType 885 this.getAppointmentType().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 886 return value; 887 case -697920873: // schedule 888 this.schedule = TypeConvertor.castToReference(value); // Reference 889 return value; 890 case -892481550: // status 891 value = new SlotStatusEnumFactory().fromType(TypeConvertor.castToCode(value)); 892 this.status = (Enumeration) value; // Enumeration<SlotStatus> 893 return value; 894 case 109757538: // start 895 this.start = TypeConvertor.castToInstant(value); // InstantType 896 return value; 897 case 100571: // end 898 this.end = TypeConvertor.castToInstant(value); // InstantType 899 return value; 900 case 2068545308: // overbooked 901 this.overbooked = TypeConvertor.castToBoolean(value); // BooleanType 902 return value; 903 case 950398559: // comment 904 this.comment = TypeConvertor.castToString(value); // StringType 905 return value; 906 default: return super.setProperty(hash, name, value); 907 } 908 909 } 910 911 @Override 912 public Base setProperty(String name, Base value) throws FHIRException { 913 if (name.equals("identifier")) { 914 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); 915 } else if (name.equals("serviceCategory")) { 916 this.getServiceCategory().add(TypeConvertor.castToCodeableConcept(value)); 917 } else if (name.equals("serviceType")) { 918 this.getServiceType().add(TypeConvertor.castToCodeableConcept(value)); 919 } else if (name.equals("specialty")) { 920 this.getSpecialty().add(TypeConvertor.castToCodeableConcept(value)); 921 } else if (name.equals("appointmentType")) { 922 this.getAppointmentType().add(TypeConvertor.castToCodeableConcept(value)); 923 } else if (name.equals("schedule")) { 924 this.schedule = TypeConvertor.castToReference(value); // Reference 925 } else if (name.equals("status")) { 926 value = new SlotStatusEnumFactory().fromType(TypeConvertor.castToCode(value)); 927 this.status = (Enumeration) value; // Enumeration<SlotStatus> 928 } else if (name.equals("start")) { 929 this.start = TypeConvertor.castToInstant(value); // InstantType 930 } else if (name.equals("end")) { 931 this.end = TypeConvertor.castToInstant(value); // InstantType 932 } else if (name.equals("overbooked")) { 933 this.overbooked = TypeConvertor.castToBoolean(value); // BooleanType 934 } else if (name.equals("comment")) { 935 this.comment = TypeConvertor.castToString(value); // StringType 936 } else 937 return super.setProperty(name, value); 938 return value; 939 } 940 941 @Override 942 public Base makeProperty(int hash, String name) throws FHIRException { 943 switch (hash) { 944 case -1618432855: return addIdentifier(); 945 case 1281188563: return addServiceCategory(); 946 case -1928370289: return addServiceType(); 947 case -1694759682: return addSpecialty(); 948 case -1596426375: return addAppointmentType(); 949 case -697920873: return getSchedule(); 950 case -892481550: return getStatusElement(); 951 case 109757538: return getStartElement(); 952 case 100571: return getEndElement(); 953 case 2068545308: return getOverbookedElement(); 954 case 950398559: return getCommentElement(); 955 default: return super.makeProperty(hash, name); 956 } 957 958 } 959 960 @Override 961 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 962 switch (hash) { 963 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 964 case 1281188563: /*serviceCategory*/ return new String[] {"CodeableConcept"}; 965 case -1928370289: /*serviceType*/ return new String[] {"CodeableConcept"}; 966 case -1694759682: /*specialty*/ return new String[] {"CodeableConcept"}; 967 case -1596426375: /*appointmentType*/ return new String[] {"CodeableConcept"}; 968 case -697920873: /*schedule*/ return new String[] {"Reference"}; 969 case -892481550: /*status*/ return new String[] {"code"}; 970 case 109757538: /*start*/ return new String[] {"instant"}; 971 case 100571: /*end*/ return new String[] {"instant"}; 972 case 2068545308: /*overbooked*/ return new String[] {"boolean"}; 973 case 950398559: /*comment*/ return new String[] {"string"}; 974 default: return super.getTypesForProperty(hash, name); 975 } 976 977 } 978 979 @Override 980 public Base addChild(String name) throws FHIRException { 981 if (name.equals("identifier")) { 982 return addIdentifier(); 983 } 984 else if (name.equals("serviceCategory")) { 985 return addServiceCategory(); 986 } 987 else if (name.equals("serviceType")) { 988 return addServiceType(); 989 } 990 else if (name.equals("specialty")) { 991 return addSpecialty(); 992 } 993 else if (name.equals("appointmentType")) { 994 return addAppointmentType(); 995 } 996 else if (name.equals("schedule")) { 997 this.schedule = new Reference(); 998 return this.schedule; 999 } 1000 else if (name.equals("status")) { 1001 throw new FHIRException("Cannot call addChild on a primitive type Slot.status"); 1002 } 1003 else if (name.equals("start")) { 1004 throw new FHIRException("Cannot call addChild on a primitive type Slot.start"); 1005 } 1006 else if (name.equals("end")) { 1007 throw new FHIRException("Cannot call addChild on a primitive type Slot.end"); 1008 } 1009 else if (name.equals("overbooked")) { 1010 throw new FHIRException("Cannot call addChild on a primitive type Slot.overbooked"); 1011 } 1012 else if (name.equals("comment")) { 1013 throw new FHIRException("Cannot call addChild on a primitive type Slot.comment"); 1014 } 1015 else 1016 return super.addChild(name); 1017 } 1018 1019 public String fhirType() { 1020 return "Slot"; 1021 1022 } 1023 1024 public Slot copy() { 1025 Slot dst = new Slot(); 1026 copyValues(dst); 1027 return dst; 1028 } 1029 1030 public void copyValues(Slot dst) { 1031 super.copyValues(dst); 1032 if (identifier != null) { 1033 dst.identifier = new ArrayList<Identifier>(); 1034 for (Identifier i : identifier) 1035 dst.identifier.add(i.copy()); 1036 }; 1037 if (serviceCategory != null) { 1038 dst.serviceCategory = new ArrayList<CodeableConcept>(); 1039 for (CodeableConcept i : serviceCategory) 1040 dst.serviceCategory.add(i.copy()); 1041 }; 1042 if (serviceType != null) { 1043 dst.serviceType = new ArrayList<CodeableConcept>(); 1044 for (CodeableConcept i : serviceType) 1045 dst.serviceType.add(i.copy()); 1046 }; 1047 if (specialty != null) { 1048 dst.specialty = new ArrayList<CodeableConcept>(); 1049 for (CodeableConcept i : specialty) 1050 dst.specialty.add(i.copy()); 1051 }; 1052 if (appointmentType != null) { 1053 dst.appointmentType = new ArrayList<CodeableConcept>(); 1054 for (CodeableConcept i : appointmentType) 1055 dst.appointmentType.add(i.copy()); 1056 }; 1057 dst.schedule = schedule == null ? null : schedule.copy(); 1058 dst.status = status == null ? null : status.copy(); 1059 dst.start = start == null ? null : start.copy(); 1060 dst.end = end == null ? null : end.copy(); 1061 dst.overbooked = overbooked == null ? null : overbooked.copy(); 1062 dst.comment = comment == null ? null : comment.copy(); 1063 } 1064 1065 protected Slot typedCopy() { 1066 return copy(); 1067 } 1068 1069 @Override 1070 public boolean equalsDeep(Base other_) { 1071 if (!super.equalsDeep(other_)) 1072 return false; 1073 if (!(other_ instanceof Slot)) 1074 return false; 1075 Slot o = (Slot) other_; 1076 return compareDeep(identifier, o.identifier, true) && compareDeep(serviceCategory, o.serviceCategory, true) 1077 && compareDeep(serviceType, o.serviceType, true) && compareDeep(specialty, o.specialty, true) && compareDeep(appointmentType, o.appointmentType, true) 1078 && compareDeep(schedule, o.schedule, true) && compareDeep(status, o.status, true) && compareDeep(start, o.start, true) 1079 && compareDeep(end, o.end, true) && compareDeep(overbooked, o.overbooked, true) && compareDeep(comment, o.comment, true) 1080 ; 1081 } 1082 1083 @Override 1084 public boolean equalsShallow(Base other_) { 1085 if (!super.equalsShallow(other_)) 1086 return false; 1087 if (!(other_ instanceof Slot)) 1088 return false; 1089 Slot o = (Slot) other_; 1090 return compareValues(status, o.status, true) && compareValues(start, o.start, true) && compareValues(end, o.end, true) 1091 && compareValues(overbooked, o.overbooked, true) && compareValues(comment, o.comment, true); 1092 } 1093 1094 public boolean isEmpty() { 1095 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, serviceCategory 1096 , serviceType, specialty, appointmentType, schedule, status, start, end, overbooked 1097 , comment); 1098 } 1099 1100 @Override 1101 public ResourceType getResourceType() { 1102 return ResourceType.Slot; 1103 } 1104 1105 /** 1106 * Search parameter: <b>appointment-type</b> 1107 * <p> 1108 * Description: <b>The style of appointment or patient that may be booked in the slot (not service type)</b><br> 1109 * Type: <b>token</b><br> 1110 * Path: <b>Slot.appointmentType</b><br> 1111 * </p> 1112 */ 1113 @SearchParamDefinition(name="appointment-type", path="Slot.appointmentType", description="The style of appointment or patient that may be booked in the slot (not service type)", type="token" ) 1114 public static final String SP_APPOINTMENT_TYPE = "appointment-type"; 1115 /** 1116 * <b>Fluent Client</b> search parameter constant for <b>appointment-type</b> 1117 * <p> 1118 * Description: <b>The style of appointment or patient that may be booked in the slot (not service type)</b><br> 1119 * Type: <b>token</b><br> 1120 * Path: <b>Slot.appointmentType</b><br> 1121 * </p> 1122 */ 1123 public static final ca.uhn.fhir.rest.gclient.TokenClientParam APPOINTMENT_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_APPOINTMENT_TYPE); 1124 1125 /** 1126 * Search parameter: <b>identifier</b> 1127 * <p> 1128 * Description: <b>A Slot Identifier</b><br> 1129 * Type: <b>token</b><br> 1130 * Path: <b>Slot.identifier</b><br> 1131 * </p> 1132 */ 1133 @SearchParamDefinition(name="identifier", path="Slot.identifier", description="A Slot Identifier", type="token" ) 1134 public static final String SP_IDENTIFIER = "identifier"; 1135 /** 1136 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 1137 * <p> 1138 * Description: <b>A Slot Identifier</b><br> 1139 * Type: <b>token</b><br> 1140 * Path: <b>Slot.identifier</b><br> 1141 * </p> 1142 */ 1143 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 1144 1145 /** 1146 * Search parameter: <b>schedule</b> 1147 * <p> 1148 * Description: <b>The Schedule Resource that we are seeking a slot within</b><br> 1149 * Type: <b>reference</b><br> 1150 * Path: <b>Slot.schedule</b><br> 1151 * </p> 1152 */ 1153 @SearchParamDefinition(name="schedule", path="Slot.schedule", description="The Schedule Resource that we are seeking a slot within", type="reference", target={Schedule.class } ) 1154 public static final String SP_SCHEDULE = "schedule"; 1155 /** 1156 * <b>Fluent Client</b> search parameter constant for <b>schedule</b> 1157 * <p> 1158 * Description: <b>The Schedule Resource that we are seeking a slot within</b><br> 1159 * Type: <b>reference</b><br> 1160 * Path: <b>Slot.schedule</b><br> 1161 * </p> 1162 */ 1163 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SCHEDULE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SCHEDULE); 1164 1165/** 1166 * Constant for fluent queries to be used to add include statements. Specifies 1167 * the path value of "<b>Slot:schedule</b>". 1168 */ 1169 public static final ca.uhn.fhir.model.api.Include INCLUDE_SCHEDULE = new ca.uhn.fhir.model.api.Include("Slot:schedule").toLocked(); 1170 1171 /** 1172 * Search parameter: <b>service-category</b> 1173 * <p> 1174 * Description: <b>A broad categorization of the service that is to be performed during this appointment</b><br> 1175 * Type: <b>token</b><br> 1176 * Path: <b>Slot.serviceCategory</b><br> 1177 * </p> 1178 */ 1179 @SearchParamDefinition(name="service-category", path="Slot.serviceCategory", description="A broad categorization of the service that is to be performed during this appointment", type="token" ) 1180 public static final String SP_SERVICE_CATEGORY = "service-category"; 1181 /** 1182 * <b>Fluent Client</b> search parameter constant for <b>service-category</b> 1183 * <p> 1184 * Description: <b>A broad categorization of the service that is to be performed during this appointment</b><br> 1185 * Type: <b>token</b><br> 1186 * Path: <b>Slot.serviceCategory</b><br> 1187 * </p> 1188 */ 1189 public static final ca.uhn.fhir.rest.gclient.TokenClientParam SERVICE_CATEGORY = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_SERVICE_CATEGORY); 1190 1191 /** 1192 * Search parameter: <b>service-type</b> 1193 * <p> 1194 * Description: <b>The type of appointments that can be booked into the slot</b><br> 1195 * Type: <b>token</b><br> 1196 * Path: <b>Slot.serviceType</b><br> 1197 * </p> 1198 */ 1199 @SearchParamDefinition(name="service-type", path="Slot.serviceType", description="The type of appointments that can be booked into the slot", type="token" ) 1200 public static final String SP_SERVICE_TYPE = "service-type"; 1201 /** 1202 * <b>Fluent Client</b> search parameter constant for <b>service-type</b> 1203 * <p> 1204 * Description: <b>The type of appointments that can be booked into the slot</b><br> 1205 * Type: <b>token</b><br> 1206 * Path: <b>Slot.serviceType</b><br> 1207 * </p> 1208 */ 1209 public static final ca.uhn.fhir.rest.gclient.TokenClientParam SERVICE_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_SERVICE_TYPE); 1210 1211 /** 1212 * Search parameter: <b>specialty</b> 1213 * <p> 1214 * Description: <b>The specialty of a practitioner that would be required to perform the service requested in this appointment</b><br> 1215 * Type: <b>token</b><br> 1216 * Path: <b>Slot.specialty</b><br> 1217 * </p> 1218 */ 1219 @SearchParamDefinition(name="specialty", path="Slot.specialty", description="The specialty of a practitioner that would be required to perform the service requested in this appointment", type="token" ) 1220 public static final String SP_SPECIALTY = "specialty"; 1221 /** 1222 * <b>Fluent Client</b> search parameter constant for <b>specialty</b> 1223 * <p> 1224 * Description: <b>The specialty of a practitioner that would be required to perform the service requested in this appointment</b><br> 1225 * Type: <b>token</b><br> 1226 * Path: <b>Slot.specialty</b><br> 1227 * </p> 1228 */ 1229 public static final ca.uhn.fhir.rest.gclient.TokenClientParam SPECIALTY = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_SPECIALTY); 1230 1231 /** 1232 * Search parameter: <b>start</b> 1233 * <p> 1234 * Description: <b>Appointment date/time.</b><br> 1235 * Type: <b>date</b><br> 1236 * Path: <b>Slot.start</b><br> 1237 * </p> 1238 */ 1239 @SearchParamDefinition(name="start", path="Slot.start", description="Appointment date/time.", type="date" ) 1240 public static final String SP_START = "start"; 1241 /** 1242 * <b>Fluent Client</b> search parameter constant for <b>start</b> 1243 * <p> 1244 * Description: <b>Appointment date/time.</b><br> 1245 * Type: <b>date</b><br> 1246 * Path: <b>Slot.start</b><br> 1247 * </p> 1248 */ 1249 public static final ca.uhn.fhir.rest.gclient.DateClientParam START = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_START); 1250 1251 /** 1252 * Search parameter: <b>status</b> 1253 * <p> 1254 * Description: <b>The free/busy status of the appointment</b><br> 1255 * Type: <b>token</b><br> 1256 * Path: <b>Slot.status</b><br> 1257 * </p> 1258 */ 1259 @SearchParamDefinition(name="status", path="Slot.status", description="The free/busy status of the appointment", type="token" ) 1260 public static final String SP_STATUS = "status"; 1261 /** 1262 * <b>Fluent Client</b> search parameter constant for <b>status</b> 1263 * <p> 1264 * Description: <b>The free/busy status of the appointment</b><br> 1265 * Type: <b>token</b><br> 1266 * Path: <b>Slot.status</b><br> 1267 * </p> 1268 */ 1269 public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS); 1270 1271 1272} 1273