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