
001package org.hl7.fhir.r5.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 Thu, Mar 23, 2023 19:59+1100 for FHIR v5.0.0 033 034import java.util.ArrayList; 035import java.util.Date; 036import java.util.List; 037import org.hl7.fhir.utilities.Utilities; 038import org.hl7.fhir.r5.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(PrimitiveType<?> code) throws FHIRException { 163 if (code == null) 164 return null; 165 if (code.isEmpty()) 166 return new Enumeration<SlotStatus>(this, SlotStatus.NULL, code); 167 String codeString = ((PrimitiveType) code).asStringValue(); 168 if (codeString == null || "".equals(codeString)) 169 return new Enumeration<SlotStatus>(this, SlotStatus.NULL, code); 170 if ("busy".equals(codeString)) 171 return new Enumeration<SlotStatus>(this, SlotStatus.BUSY, code); 172 if ("free".equals(codeString)) 173 return new Enumeration<SlotStatus>(this, SlotStatus.FREE, code); 174 if ("busy-unavailable".equals(codeString)) 175 return new Enumeration<SlotStatus>(this, SlotStatus.BUSYUNAVAILABLE, code); 176 if ("busy-tentative".equals(codeString)) 177 return new Enumeration<SlotStatus>(this, SlotStatus.BUSYTENTATIVE, code); 178 if ("entered-in-error".equals(codeString)) 179 return new Enumeration<SlotStatus>(this, SlotStatus.ENTEREDINERROR, code); 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 Schedule resource. 217 */ 218 @Child(name = "serviceType", type = {CodeableReference.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 Schedule 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 Schedule resource." ) 220 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/service-type") 221 protected List<CodeableReference> 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=Child.MAX_UNLIMITED, 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 List<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 = 2060370370L; 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 Schedule resource.) 410 */ 411 public List<CodeableReference> getServiceType() { 412 if (this.serviceType == null) 413 this.serviceType = new ArrayList<CodeableReference>(); 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<CodeableReference> theServiceType) { 421 this.serviceType = theServiceType; 422 return this; 423 } 424 425 public boolean hasServiceType() { 426 if (this.serviceType == null) 427 return false; 428 for (CodeableReference item : this.serviceType) 429 if (!item.isEmpty()) 430 return true; 431 return false; 432 } 433 434 public CodeableReference addServiceType() { //3 435 CodeableReference t = new CodeableReference(); 436 if (this.serviceType == null) 437 this.serviceType = new ArrayList<CodeableReference>(); 438 this.serviceType.add(t); 439 return t; 440 } 441 442 public Slot addServiceType(CodeableReference t) { //3 443 if (t == null) 444 return this; 445 if (this.serviceType == null) 446 this.serviceType = new ArrayList<CodeableReference>(); 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 CodeableReference 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 List<CodeableConcept> getAppointmentType() { 518 if (this.appointmentType == null) 519 this.appointmentType = new ArrayList<CodeableConcept>(); 520 return this.appointmentType; 521 } 522 523 /** 524 * @return Returns a reference to <code>this</code> for easy method chaining 525 */ 526 public Slot setAppointmentType(List<CodeableConcept> theAppointmentType) { 527 this.appointmentType = theAppointmentType; 528 return this; 529 } 530 531 public boolean hasAppointmentType() { 532 if (this.appointmentType == null) 533 return false; 534 for (CodeableConcept item : this.appointmentType) 535 if (!item.isEmpty()) 536 return true; 537 return false; 538 } 539 540 public CodeableConcept addAppointmentType() { //3 541 CodeableConcept t = new CodeableConcept(); 542 if (this.appointmentType == null) 543 this.appointmentType = new ArrayList<CodeableConcept>(); 544 this.appointmentType.add(t); 545 return t; 546 } 547 548 public Slot addAppointmentType(CodeableConcept t) { //3 549 if (t == null) 550 return this; 551 if (this.appointmentType == null) 552 this.appointmentType = new ArrayList<CodeableConcept>(); 553 this.appointmentType.add(t); 554 return this; 555 } 556 557 /** 558 * @return The first repetition of repeating field {@link #appointmentType}, creating it if it does not already exist {3} 559 */ 560 public CodeableConcept getAppointmentTypeFirstRep() { 561 if (getAppointmentType().isEmpty()) { 562 addAppointmentType(); 563 } 564 return getAppointmentType().get(0); 565 } 566 567 /** 568 * @return {@link #schedule} (The schedule resource that this slot defines an interval of status information.) 569 */ 570 public Reference getSchedule() { 571 if (this.schedule == null) 572 if (Configuration.errorOnAutoCreate()) 573 throw new Error("Attempt to auto-create Slot.schedule"); 574 else if (Configuration.doAutoCreate()) 575 this.schedule = new Reference(); // cc 576 return this.schedule; 577 } 578 579 public boolean hasSchedule() { 580 return this.schedule != null && !this.schedule.isEmpty(); 581 } 582 583 /** 584 * @param value {@link #schedule} (The schedule resource that this slot defines an interval of status information.) 585 */ 586 public Slot setSchedule(Reference value) { 587 this.schedule = value; 588 return this; 589 } 590 591 /** 592 * @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 593 */ 594 public Enumeration<SlotStatus> getStatusElement() { 595 if (this.status == null) 596 if (Configuration.errorOnAutoCreate()) 597 throw new Error("Attempt to auto-create Slot.status"); 598 else if (Configuration.doAutoCreate()) 599 this.status = new Enumeration<SlotStatus>(new SlotStatusEnumFactory()); // bb 600 return this.status; 601 } 602 603 public boolean hasStatusElement() { 604 return this.status != null && !this.status.isEmpty(); 605 } 606 607 public boolean hasStatus() { 608 return this.status != null && !this.status.isEmpty(); 609 } 610 611 /** 612 * @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 613 */ 614 public Slot setStatusElement(Enumeration<SlotStatus> value) { 615 this.status = value; 616 return this; 617 } 618 619 /** 620 * @return busy | free | busy-unavailable | busy-tentative | entered-in-error. 621 */ 622 public SlotStatus getStatus() { 623 return this.status == null ? null : this.status.getValue(); 624 } 625 626 /** 627 * @param value busy | free | busy-unavailable | busy-tentative | entered-in-error. 628 */ 629 public Slot setStatus(SlotStatus value) { 630 if (this.status == null) 631 this.status = new Enumeration<SlotStatus>(new SlotStatusEnumFactory()); 632 this.status.setValue(value); 633 return this; 634 } 635 636 /** 637 * @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 638 */ 639 public InstantType getStartElement() { 640 if (this.start == null) 641 if (Configuration.errorOnAutoCreate()) 642 throw new Error("Attempt to auto-create Slot.start"); 643 else if (Configuration.doAutoCreate()) 644 this.start = new InstantType(); // bb 645 return this.start; 646 } 647 648 public boolean hasStartElement() { 649 return this.start != null && !this.start.isEmpty(); 650 } 651 652 public boolean hasStart() { 653 return this.start != null && !this.start.isEmpty(); 654 } 655 656 /** 657 * @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 658 */ 659 public Slot setStartElement(InstantType value) { 660 this.start = value; 661 return this; 662 } 663 664 /** 665 * @return Date/Time that the slot is to begin. 666 */ 667 public Date getStart() { 668 return this.start == null ? null : this.start.getValue(); 669 } 670 671 /** 672 * @param value Date/Time that the slot is to begin. 673 */ 674 public Slot setStart(Date value) { 675 if (this.start == null) 676 this.start = new InstantType(); 677 this.start.setValue(value); 678 return this; 679 } 680 681 /** 682 * @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 683 */ 684 public InstantType getEndElement() { 685 if (this.end == null) 686 if (Configuration.errorOnAutoCreate()) 687 throw new Error("Attempt to auto-create Slot.end"); 688 else if (Configuration.doAutoCreate()) 689 this.end = new InstantType(); // bb 690 return this.end; 691 } 692 693 public boolean hasEndElement() { 694 return this.end != null && !this.end.isEmpty(); 695 } 696 697 public boolean hasEnd() { 698 return this.end != null && !this.end.isEmpty(); 699 } 700 701 /** 702 * @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 703 */ 704 public Slot setEndElement(InstantType value) { 705 this.end = value; 706 return this; 707 } 708 709 /** 710 * @return Date/Time that the slot is to conclude. 711 */ 712 public Date getEnd() { 713 return this.end == null ? null : this.end.getValue(); 714 } 715 716 /** 717 * @param value Date/Time that the slot is to conclude. 718 */ 719 public Slot setEnd(Date value) { 720 if (this.end == null) 721 this.end = new InstantType(); 722 this.end.setValue(value); 723 return this; 724 } 725 726 /** 727 * @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 728 */ 729 public BooleanType getOverbookedElement() { 730 if (this.overbooked == null) 731 if (Configuration.errorOnAutoCreate()) 732 throw new Error("Attempt to auto-create Slot.overbooked"); 733 else if (Configuration.doAutoCreate()) 734 this.overbooked = new BooleanType(); // bb 735 return this.overbooked; 736 } 737 738 public boolean hasOverbookedElement() { 739 return this.overbooked != null && !this.overbooked.isEmpty(); 740 } 741 742 public boolean hasOverbooked() { 743 return this.overbooked != null && !this.overbooked.isEmpty(); 744 } 745 746 /** 747 * @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 748 */ 749 public Slot setOverbookedElement(BooleanType value) { 750 this.overbooked = value; 751 return this; 752 } 753 754 /** 755 * @return This slot has already been overbooked, appointments are unlikely to be accepted for this time. 756 */ 757 public boolean getOverbooked() { 758 return this.overbooked == null || this.overbooked.isEmpty() ? false : this.overbooked.getValue(); 759 } 760 761 /** 762 * @param value This slot has already been overbooked, appointments are unlikely to be accepted for this time. 763 */ 764 public Slot setOverbooked(boolean value) { 765 if (this.overbooked == null) 766 this.overbooked = new BooleanType(); 767 this.overbooked.setValue(value); 768 return this; 769 } 770 771 /** 772 * @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 773 */ 774 public StringType getCommentElement() { 775 if (this.comment == null) 776 if (Configuration.errorOnAutoCreate()) 777 throw new Error("Attempt to auto-create Slot.comment"); 778 else if (Configuration.doAutoCreate()) 779 this.comment = new StringType(); // bb 780 return this.comment; 781 } 782 783 public boolean hasCommentElement() { 784 return this.comment != null && !this.comment.isEmpty(); 785 } 786 787 public boolean hasComment() { 788 return this.comment != null && !this.comment.isEmpty(); 789 } 790 791 /** 792 * @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 793 */ 794 public Slot setCommentElement(StringType value) { 795 this.comment = value; 796 return this; 797 } 798 799 /** 800 * @return Comments on the slot to describe any extended information. Such as custom constraints on the slot. 801 */ 802 public String getComment() { 803 return this.comment == null ? null : this.comment.getValue(); 804 } 805 806 /** 807 * @param value Comments on the slot to describe any extended information. Such as custom constraints on the slot. 808 */ 809 public Slot setComment(String value) { 810 if (Utilities.noString(value)) 811 this.comment = null; 812 else { 813 if (this.comment == null) 814 this.comment = new StringType(); 815 this.comment.setValue(value); 816 } 817 return this; 818 } 819 820 protected void listChildren(List<Property> children) { 821 super.listChildren(children); 822 children.add(new Property("identifier", "Identifier", "External Ids for this item.", 0, java.lang.Integer.MAX_VALUE, identifier)); 823 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)); 824 children.add(new Property("serviceType", "CodeableReference(HealthcareService)", "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 Schedule resource.", 0, java.lang.Integer.MAX_VALUE, serviceType)); 825 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)); 826 children.add(new Property("appointmentType", "CodeableConcept", "The style of appointment or patient that may be booked in the slot (not service type).", 0, java.lang.Integer.MAX_VALUE, appointmentType)); 827 children.add(new Property("schedule", "Reference(Schedule)", "The schedule resource that this slot defines an interval of status information.", 0, 1, schedule)); 828 children.add(new Property("status", "code", "busy | free | busy-unavailable | busy-tentative | entered-in-error.", 0, 1, status)); 829 children.add(new Property("start", "instant", "Date/Time that the slot is to begin.", 0, 1, start)); 830 children.add(new Property("end", "instant", "Date/Time that the slot is to conclude.", 0, 1, end)); 831 children.add(new Property("overbooked", "boolean", "This slot has already been overbooked, appointments are unlikely to be accepted for this time.", 0, 1, overbooked)); 832 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)); 833 } 834 835 @Override 836 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 837 switch (_hash) { 838 case -1618432855: /*identifier*/ return new Property("identifier", "Identifier", "External Ids for this item.", 0, java.lang.Integer.MAX_VALUE, identifier); 839 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); 840 case -1928370289: /*serviceType*/ return new Property("serviceType", "CodeableReference(HealthcareService)", "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 Schedule resource.", 0, java.lang.Integer.MAX_VALUE, serviceType); 841 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); 842 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, java.lang.Integer.MAX_VALUE, appointmentType); 843 case -697920873: /*schedule*/ return new Property("schedule", "Reference(Schedule)", "The schedule resource that this slot defines an interval of status information.", 0, 1, schedule); 844 case -892481550: /*status*/ return new Property("status", "code", "busy | free | busy-unavailable | busy-tentative | entered-in-error.", 0, 1, status); 845 case 109757538: /*start*/ return new Property("start", "instant", "Date/Time that the slot is to begin.", 0, 1, start); 846 case 100571: /*end*/ return new Property("end", "instant", "Date/Time that the slot is to conclude.", 0, 1, end); 847 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); 848 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); 849 default: return super.getNamedProperty(_hash, _name, _checkValid); 850 } 851 852 } 853 854 @Override 855 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 856 switch (hash) { 857 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 858 case 1281188563: /*serviceCategory*/ return this.serviceCategory == null ? new Base[0] : this.serviceCategory.toArray(new Base[this.serviceCategory.size()]); // CodeableConcept 859 case -1928370289: /*serviceType*/ return this.serviceType == null ? new Base[0] : this.serviceType.toArray(new Base[this.serviceType.size()]); // CodeableReference 860 case -1694759682: /*specialty*/ return this.specialty == null ? new Base[0] : this.specialty.toArray(new Base[this.specialty.size()]); // CodeableConcept 861 case -1596426375: /*appointmentType*/ return this.appointmentType == null ? new Base[0] : this.appointmentType.toArray(new Base[this.appointmentType.size()]); // CodeableConcept 862 case -697920873: /*schedule*/ return this.schedule == null ? new Base[0] : new Base[] {this.schedule}; // Reference 863 case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<SlotStatus> 864 case 109757538: /*start*/ return this.start == null ? new Base[0] : new Base[] {this.start}; // InstantType 865 case 100571: /*end*/ return this.end == null ? new Base[0] : new Base[] {this.end}; // InstantType 866 case 2068545308: /*overbooked*/ return this.overbooked == null ? new Base[0] : new Base[] {this.overbooked}; // BooleanType 867 case 950398559: /*comment*/ return this.comment == null ? new Base[0] : new Base[] {this.comment}; // StringType 868 default: return super.getProperty(hash, name, checkValid); 869 } 870 871 } 872 873 @Override 874 public Base setProperty(int hash, String name, Base value) throws FHIRException { 875 switch (hash) { 876 case -1618432855: // identifier 877 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier 878 return value; 879 case 1281188563: // serviceCategory 880 this.getServiceCategory().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 881 return value; 882 case -1928370289: // serviceType 883 this.getServiceType().add(TypeConvertor.castToCodeableReference(value)); // CodeableReference 884 return value; 885 case -1694759682: // specialty 886 this.getSpecialty().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 887 return value; 888 case -1596426375: // appointmentType 889 this.getAppointmentType().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 890 return value; 891 case -697920873: // schedule 892 this.schedule = TypeConvertor.castToReference(value); // Reference 893 return value; 894 case -892481550: // status 895 value = new SlotStatusEnumFactory().fromType(TypeConvertor.castToCode(value)); 896 this.status = (Enumeration) value; // Enumeration<SlotStatus> 897 return value; 898 case 109757538: // start 899 this.start = TypeConvertor.castToInstant(value); // InstantType 900 return value; 901 case 100571: // end 902 this.end = TypeConvertor.castToInstant(value); // InstantType 903 return value; 904 case 2068545308: // overbooked 905 this.overbooked = TypeConvertor.castToBoolean(value); // BooleanType 906 return value; 907 case 950398559: // comment 908 this.comment = TypeConvertor.castToString(value); // StringType 909 return value; 910 default: return super.setProperty(hash, name, value); 911 } 912 913 } 914 915 @Override 916 public Base setProperty(String name, Base value) throws FHIRException { 917 if (name.equals("identifier")) { 918 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); 919 } else if (name.equals("serviceCategory")) { 920 this.getServiceCategory().add(TypeConvertor.castToCodeableConcept(value)); 921 } else if (name.equals("serviceType")) { 922 this.getServiceType().add(TypeConvertor.castToCodeableReference(value)); 923 } else if (name.equals("specialty")) { 924 this.getSpecialty().add(TypeConvertor.castToCodeableConcept(value)); 925 } else if (name.equals("appointmentType")) { 926 this.getAppointmentType().add(TypeConvertor.castToCodeableConcept(value)); 927 } else if (name.equals("schedule")) { 928 this.schedule = TypeConvertor.castToReference(value); // Reference 929 } else if (name.equals("status")) { 930 value = new SlotStatusEnumFactory().fromType(TypeConvertor.castToCode(value)); 931 this.status = (Enumeration) value; // Enumeration<SlotStatus> 932 } else if (name.equals("start")) { 933 this.start = TypeConvertor.castToInstant(value); // InstantType 934 } else if (name.equals("end")) { 935 this.end = TypeConvertor.castToInstant(value); // InstantType 936 } else if (name.equals("overbooked")) { 937 this.overbooked = TypeConvertor.castToBoolean(value); // BooleanType 938 } else if (name.equals("comment")) { 939 this.comment = TypeConvertor.castToString(value); // StringType 940 } else 941 return super.setProperty(name, value); 942 return value; 943 } 944 945 @Override 946 public Base makeProperty(int hash, String name) throws FHIRException { 947 switch (hash) { 948 case -1618432855: return addIdentifier(); 949 case 1281188563: return addServiceCategory(); 950 case -1928370289: return addServiceType(); 951 case -1694759682: return addSpecialty(); 952 case -1596426375: return addAppointmentType(); 953 case -697920873: return getSchedule(); 954 case -892481550: return getStatusElement(); 955 case 109757538: return getStartElement(); 956 case 100571: return getEndElement(); 957 case 2068545308: return getOverbookedElement(); 958 case 950398559: return getCommentElement(); 959 default: return super.makeProperty(hash, name); 960 } 961 962 } 963 964 @Override 965 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 966 switch (hash) { 967 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 968 case 1281188563: /*serviceCategory*/ return new String[] {"CodeableConcept"}; 969 case -1928370289: /*serviceType*/ return new String[] {"CodeableReference"}; 970 case -1694759682: /*specialty*/ return new String[] {"CodeableConcept"}; 971 case -1596426375: /*appointmentType*/ return new String[] {"CodeableConcept"}; 972 case -697920873: /*schedule*/ return new String[] {"Reference"}; 973 case -892481550: /*status*/ return new String[] {"code"}; 974 case 109757538: /*start*/ return new String[] {"instant"}; 975 case 100571: /*end*/ return new String[] {"instant"}; 976 case 2068545308: /*overbooked*/ return new String[] {"boolean"}; 977 case 950398559: /*comment*/ return new String[] {"string"}; 978 default: return super.getTypesForProperty(hash, name); 979 } 980 981 } 982 983 @Override 984 public Base addChild(String name) throws FHIRException { 985 if (name.equals("identifier")) { 986 return addIdentifier(); 987 } 988 else if (name.equals("serviceCategory")) { 989 return addServiceCategory(); 990 } 991 else if (name.equals("serviceType")) { 992 return addServiceType(); 993 } 994 else if (name.equals("specialty")) { 995 return addSpecialty(); 996 } 997 else if (name.equals("appointmentType")) { 998 return addAppointmentType(); 999 } 1000 else if (name.equals("schedule")) { 1001 this.schedule = new Reference(); 1002 return this.schedule; 1003 } 1004 else if (name.equals("status")) { 1005 throw new FHIRException("Cannot call addChild on a singleton property Slot.status"); 1006 } 1007 else if (name.equals("start")) { 1008 throw new FHIRException("Cannot call addChild on a singleton property Slot.start"); 1009 } 1010 else if (name.equals("end")) { 1011 throw new FHIRException("Cannot call addChild on a singleton property Slot.end"); 1012 } 1013 else if (name.equals("overbooked")) { 1014 throw new FHIRException("Cannot call addChild on a singleton property Slot.overbooked"); 1015 } 1016 else if (name.equals("comment")) { 1017 throw new FHIRException("Cannot call addChild on a singleton property Slot.comment"); 1018 } 1019 else 1020 return super.addChild(name); 1021 } 1022 1023 public String fhirType() { 1024 return "Slot"; 1025 1026 } 1027 1028 public Slot copy() { 1029 Slot dst = new Slot(); 1030 copyValues(dst); 1031 return dst; 1032 } 1033 1034 public void copyValues(Slot dst) { 1035 super.copyValues(dst); 1036 if (identifier != null) { 1037 dst.identifier = new ArrayList<Identifier>(); 1038 for (Identifier i : identifier) 1039 dst.identifier.add(i.copy()); 1040 }; 1041 if (serviceCategory != null) { 1042 dst.serviceCategory = new ArrayList<CodeableConcept>(); 1043 for (CodeableConcept i : serviceCategory) 1044 dst.serviceCategory.add(i.copy()); 1045 }; 1046 if (serviceType != null) { 1047 dst.serviceType = new ArrayList<CodeableReference>(); 1048 for (CodeableReference i : serviceType) 1049 dst.serviceType.add(i.copy()); 1050 }; 1051 if (specialty != null) { 1052 dst.specialty = new ArrayList<CodeableConcept>(); 1053 for (CodeableConcept i : specialty) 1054 dst.specialty.add(i.copy()); 1055 }; 1056 if (appointmentType != null) { 1057 dst.appointmentType = new ArrayList<CodeableConcept>(); 1058 for (CodeableConcept i : appointmentType) 1059 dst.appointmentType.add(i.copy()); 1060 }; 1061 dst.schedule = schedule == null ? null : schedule.copy(); 1062 dst.status = status == null ? null : status.copy(); 1063 dst.start = start == null ? null : start.copy(); 1064 dst.end = end == null ? null : end.copy(); 1065 dst.overbooked = overbooked == null ? null : overbooked.copy(); 1066 dst.comment = comment == null ? null : comment.copy(); 1067 } 1068 1069 protected Slot typedCopy() { 1070 return copy(); 1071 } 1072 1073 @Override 1074 public boolean equalsDeep(Base other_) { 1075 if (!super.equalsDeep(other_)) 1076 return false; 1077 if (!(other_ instanceof Slot)) 1078 return false; 1079 Slot o = (Slot) other_; 1080 return compareDeep(identifier, o.identifier, true) && compareDeep(serviceCategory, o.serviceCategory, true) 1081 && compareDeep(serviceType, o.serviceType, true) && compareDeep(specialty, o.specialty, true) && compareDeep(appointmentType, o.appointmentType, true) 1082 && compareDeep(schedule, o.schedule, true) && compareDeep(status, o.status, true) && compareDeep(start, o.start, true) 1083 && compareDeep(end, o.end, true) && compareDeep(overbooked, o.overbooked, true) && compareDeep(comment, o.comment, true) 1084 ; 1085 } 1086 1087 @Override 1088 public boolean equalsShallow(Base other_) { 1089 if (!super.equalsShallow(other_)) 1090 return false; 1091 if (!(other_ instanceof Slot)) 1092 return false; 1093 Slot o = (Slot) other_; 1094 return compareValues(status, o.status, true) && compareValues(start, o.start, true) && compareValues(end, o.end, true) 1095 && compareValues(overbooked, o.overbooked, true) && compareValues(comment, o.comment, true); 1096 } 1097 1098 public boolean isEmpty() { 1099 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, serviceCategory 1100 , serviceType, specialty, appointmentType, schedule, status, start, end, overbooked 1101 , comment); 1102 } 1103 1104 @Override 1105 public ResourceType getResourceType() { 1106 return ResourceType.Slot; 1107 } 1108 1109 /** 1110 * Search parameter: <b>appointment-type</b> 1111 * <p> 1112 * Description: <b>The style of appointment or patient that may be booked in the slot (not service type)</b><br> 1113 * Type: <b>token</b><br> 1114 * Path: <b>Slot.appointmentType</b><br> 1115 * </p> 1116 */ 1117 @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" ) 1118 public static final String SP_APPOINTMENT_TYPE = "appointment-type"; 1119 /** 1120 * <b>Fluent Client</b> search parameter constant for <b>appointment-type</b> 1121 * <p> 1122 * Description: <b>The style of appointment or patient that may be booked in the slot (not service type)</b><br> 1123 * Type: <b>token</b><br> 1124 * Path: <b>Slot.appointmentType</b><br> 1125 * </p> 1126 */ 1127 public static final ca.uhn.fhir.rest.gclient.TokenClientParam APPOINTMENT_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_APPOINTMENT_TYPE); 1128 1129 /** 1130 * Search parameter: <b>identifier</b> 1131 * <p> 1132 * Description: <b>A Slot Identifier</b><br> 1133 * Type: <b>token</b><br> 1134 * Path: <b>Slot.identifier</b><br> 1135 * </p> 1136 */ 1137 @SearchParamDefinition(name="identifier", path="Slot.identifier", description="A Slot Identifier", type="token" ) 1138 public static final String SP_IDENTIFIER = "identifier"; 1139 /** 1140 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 1141 * <p> 1142 * Description: <b>A Slot Identifier</b><br> 1143 * Type: <b>token</b><br> 1144 * Path: <b>Slot.identifier</b><br> 1145 * </p> 1146 */ 1147 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 1148 1149 /** 1150 * Search parameter: <b>schedule</b> 1151 * <p> 1152 * Description: <b>The Schedule Resource that we are seeking a slot within</b><br> 1153 * Type: <b>reference</b><br> 1154 * Path: <b>Slot.schedule</b><br> 1155 * </p> 1156 */ 1157 @SearchParamDefinition(name="schedule", path="Slot.schedule", description="The Schedule Resource that we are seeking a slot within", type="reference", target={Schedule.class } ) 1158 public static final String SP_SCHEDULE = "schedule"; 1159 /** 1160 * <b>Fluent Client</b> search parameter constant for <b>schedule</b> 1161 * <p> 1162 * Description: <b>The Schedule Resource that we are seeking a slot within</b><br> 1163 * Type: <b>reference</b><br> 1164 * Path: <b>Slot.schedule</b><br> 1165 * </p> 1166 */ 1167 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SCHEDULE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SCHEDULE); 1168 1169/** 1170 * Constant for fluent queries to be used to add include statements. Specifies 1171 * the path value of "<b>Slot:schedule</b>". 1172 */ 1173 public static final ca.uhn.fhir.model.api.Include INCLUDE_SCHEDULE = new ca.uhn.fhir.model.api.Include("Slot:schedule").toLocked(); 1174 1175 /** 1176 * Search parameter: <b>service-category</b> 1177 * <p> 1178 * Description: <b>A broad categorization of the service that is to be performed during this appointment</b><br> 1179 * Type: <b>token</b><br> 1180 * Path: <b>Slot.serviceCategory</b><br> 1181 * </p> 1182 */ 1183 @SearchParamDefinition(name="service-category", path="Slot.serviceCategory", description="A broad categorization of the service that is to be performed during this appointment", type="token" ) 1184 public static final String SP_SERVICE_CATEGORY = "service-category"; 1185 /** 1186 * <b>Fluent Client</b> search parameter constant for <b>service-category</b> 1187 * <p> 1188 * Description: <b>A broad categorization of the service that is to be performed during this appointment</b><br> 1189 * Type: <b>token</b><br> 1190 * Path: <b>Slot.serviceCategory</b><br> 1191 * </p> 1192 */ 1193 public static final ca.uhn.fhir.rest.gclient.TokenClientParam SERVICE_CATEGORY = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_SERVICE_CATEGORY); 1194 1195 /** 1196 * Search parameter: <b>service-type-reference</b> 1197 * <p> 1198 * Description: <b>The type (by HealthcareService) of appointments that can be booked into the slot</b><br> 1199 * Type: <b>reference</b><br> 1200 * Path: <b>Slot.serviceType.reference</b><br> 1201 * </p> 1202 */ 1203 @SearchParamDefinition(name="service-type-reference", path="Slot.serviceType.reference", description="The type (by HealthcareService) of appointments that can be booked into the slot", type="reference", target={HealthcareService.class } ) 1204 public static final String SP_SERVICE_TYPE_REFERENCE = "service-type-reference"; 1205 /** 1206 * <b>Fluent Client</b> search parameter constant for <b>service-type-reference</b> 1207 * <p> 1208 * Description: <b>The type (by HealthcareService) of appointments that can be booked into the slot</b><br> 1209 * Type: <b>reference</b><br> 1210 * Path: <b>Slot.serviceType.reference</b><br> 1211 * </p> 1212 */ 1213 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SERVICE_TYPE_REFERENCE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SERVICE_TYPE_REFERENCE); 1214 1215/** 1216 * Constant for fluent queries to be used to add include statements. Specifies 1217 * the path value of "<b>Slot:service-type-reference</b>". 1218 */ 1219 public static final ca.uhn.fhir.model.api.Include INCLUDE_SERVICE_TYPE_REFERENCE = new ca.uhn.fhir.model.api.Include("Slot:service-type-reference").toLocked(); 1220 1221 /** 1222 * Search parameter: <b>service-type</b> 1223 * <p> 1224 * Description: <b>The type (by coding) of appointments that can be booked into the slot</b><br> 1225 * Type: <b>token</b><br> 1226 * Path: <b>Slot.serviceType.concept</b><br> 1227 * </p> 1228 */ 1229 @SearchParamDefinition(name="service-type", path="Slot.serviceType.concept", description="The type (by coding) of appointments that can be booked into the slot", type="token" ) 1230 public static final String SP_SERVICE_TYPE = "service-type"; 1231 /** 1232 * <b>Fluent Client</b> search parameter constant for <b>service-type</b> 1233 * <p> 1234 * Description: <b>The type (by coding) of appointments that can be booked into the slot</b><br> 1235 * Type: <b>token</b><br> 1236 * Path: <b>Slot.serviceType.concept</b><br> 1237 * </p> 1238 */ 1239 public static final ca.uhn.fhir.rest.gclient.TokenClientParam SERVICE_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_SERVICE_TYPE); 1240 1241 /** 1242 * Search parameter: <b>specialty</b> 1243 * <p> 1244 * Description: <b>The specialty of a practitioner that would be required to perform the service requested in this appointment</b><br> 1245 * Type: <b>token</b><br> 1246 * Path: <b>Slot.specialty</b><br> 1247 * </p> 1248 */ 1249 @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" ) 1250 public static final String SP_SPECIALTY = "specialty"; 1251 /** 1252 * <b>Fluent Client</b> search parameter constant for <b>specialty</b> 1253 * <p> 1254 * Description: <b>The specialty of a practitioner that would be required to perform the service requested in this appointment</b><br> 1255 * Type: <b>token</b><br> 1256 * Path: <b>Slot.specialty</b><br> 1257 * </p> 1258 */ 1259 public static final ca.uhn.fhir.rest.gclient.TokenClientParam SPECIALTY = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_SPECIALTY); 1260 1261 /** 1262 * Search parameter: <b>start</b> 1263 * <p> 1264 * Description: <b>Appointment date/time.</b><br> 1265 * Type: <b>date</b><br> 1266 * Path: <b>Slot.start</b><br> 1267 * </p> 1268 */ 1269 @SearchParamDefinition(name="start", path="Slot.start", description="Appointment date/time.", type="date" ) 1270 public static final String SP_START = "start"; 1271 /** 1272 * <b>Fluent Client</b> search parameter constant for <b>start</b> 1273 * <p> 1274 * Description: <b>Appointment date/time.</b><br> 1275 * Type: <b>date</b><br> 1276 * Path: <b>Slot.start</b><br> 1277 * </p> 1278 */ 1279 public static final ca.uhn.fhir.rest.gclient.DateClientParam START = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_START); 1280 1281 /** 1282 * Search parameter: <b>status</b> 1283 * <p> 1284 * Description: <b>The free/busy status of the appointment</b><br> 1285 * Type: <b>token</b><br> 1286 * Path: <b>Slot.status</b><br> 1287 * </p> 1288 */ 1289 @SearchParamDefinition(name="status", path="Slot.status", description="The free/busy status of the appointment", type="token" ) 1290 public static final String SP_STATUS = "status"; 1291 /** 1292 * <b>Fluent Client</b> search parameter constant for <b>status</b> 1293 * <p> 1294 * Description: <b>The free/busy status of the appointment</b><br> 1295 * Type: <b>token</b><br> 1296 * Path: <b>Slot.status</b><br> 1297 * </p> 1298 */ 1299 public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS); 1300 1301 1302} 1303