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