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