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