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