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