001package org.hl7.fhir.dstu3.model; 002 003 004 005/* 006 Copyright (c) 2011+, HL7, Inc. 007 All rights reserved. 008 009 Redistribution and use in source and binary forms, with or without modification, 010 are permitted provided that the following conditions are met: 011 012 * Redistributions of source code must retain the above copyright notice, this 013 list of conditions and the following disclaimer. 014 * Redistributions in binary form must reproduce the above copyright notice, 015 this list of conditions and the following disclaimer in the documentation 016 and/or other materials provided with the distribution. 017 * Neither the name of HL7 nor the names of its contributors may be used to 018 endorse or promote products derived from this software without specific 019 prior written permission. 020 021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 022 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 023 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 024 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 025 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 026 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 027 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 028 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 029 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 030 POSSIBILITY OF SUCH DAMAGE. 031 032*/ 033 034// Generated on Fri, Mar 16, 2018 15:21+1100 for FHIR v3.0.x 035import java.util.ArrayList; 036import java.util.Date; 037import java.util.List; 038 039import org.hl7.fhir.exceptions.FHIRException; 040import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 041import org.hl7.fhir.utilities.Utilities; 042 043import ca.uhn.fhir.model.api.annotation.Block; 044import ca.uhn.fhir.model.api.annotation.Child; 045import ca.uhn.fhir.model.api.annotation.Description; 046import ca.uhn.fhir.model.api.annotation.ResourceDef; 047import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 048/** 049 * A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s). 050 */ 051@ResourceDef(name="Appointment", profile="http://hl7.org/fhir/Profile/Appointment") 052public class Appointment extends DomainResource { 053 054 public enum AppointmentStatus { 055 /** 056 * None of the participant(s) have finalized their acceptance of the appointment request, and the start/end time may not be set yet. 057 */ 058 PROPOSED, 059 /** 060 * Some or all of the participant(s) have not finalized their acceptance of the appointment request. 061 */ 062 PENDING, 063 /** 064 * All participant(s) have been considered and the appointment is confirmed to go ahead at the date/times specified. 065 */ 066 BOOKED, 067 /** 068 * Some of the patients have arrived. 069 */ 070 ARRIVED, 071 /** 072 * This appointment has completed and may have resulted in an encounter. 073 */ 074 FULFILLED, 075 /** 076 * The appointment has been cancelled. 077 */ 078 CANCELLED, 079 /** 080 * Some or all of the participant(s) have not/did not appear for the appointment (usually the patient). 081 */ 082 NOSHOW, 083 /** 084 * This instance should not have been part of this patient's medical record. 085 */ 086 ENTEREDINERROR, 087 /** 088 * added to help the parsers with the generic types 089 */ 090 NULL; 091 public static AppointmentStatus fromCode(String codeString) throws FHIRException { 092 if (codeString == null || "".equals(codeString)) 093 return null; 094 if ("proposed".equals(codeString)) 095 return PROPOSED; 096 if ("pending".equals(codeString)) 097 return PENDING; 098 if ("booked".equals(codeString)) 099 return BOOKED; 100 if ("arrived".equals(codeString)) 101 return ARRIVED; 102 if ("fulfilled".equals(codeString)) 103 return FULFILLED; 104 if ("cancelled".equals(codeString)) 105 return CANCELLED; 106 if ("noshow".equals(codeString)) 107 return NOSHOW; 108 if ("entered-in-error".equals(codeString)) 109 return ENTEREDINERROR; 110 if (Configuration.isAcceptInvalidEnums()) 111 return null; 112 else 113 throw new FHIRException("Unknown AppointmentStatus code '"+codeString+"'"); 114 } 115 public String toCode() { 116 switch (this) { 117 case PROPOSED: return "proposed"; 118 case PENDING: return "pending"; 119 case BOOKED: return "booked"; 120 case ARRIVED: return "arrived"; 121 case FULFILLED: return "fulfilled"; 122 case CANCELLED: return "cancelled"; 123 case NOSHOW: return "noshow"; 124 case ENTEREDINERROR: return "entered-in-error"; 125 case NULL: return null; 126 default: return "?"; 127 } 128 } 129 public String getSystem() { 130 switch (this) { 131 case PROPOSED: return "http://hl7.org/fhir/appointmentstatus"; 132 case PENDING: return "http://hl7.org/fhir/appointmentstatus"; 133 case BOOKED: return "http://hl7.org/fhir/appointmentstatus"; 134 case ARRIVED: return "http://hl7.org/fhir/appointmentstatus"; 135 case FULFILLED: return "http://hl7.org/fhir/appointmentstatus"; 136 case CANCELLED: return "http://hl7.org/fhir/appointmentstatus"; 137 case NOSHOW: return "http://hl7.org/fhir/appointmentstatus"; 138 case ENTEREDINERROR: return "http://hl7.org/fhir/appointmentstatus"; 139 case NULL: return null; 140 default: return "?"; 141 } 142 } 143 public String getDefinition() { 144 switch (this) { 145 case PROPOSED: return "None of the participant(s) have finalized their acceptance of the appointment request, and the start/end time may not be set yet."; 146 case PENDING: return "Some or all of the participant(s) have not finalized their acceptance of the appointment request."; 147 case BOOKED: return "All participant(s) have been considered and the appointment is confirmed to go ahead at the date/times specified."; 148 case ARRIVED: return "Some of the patients have arrived."; 149 case FULFILLED: return "This appointment has completed and may have resulted in an encounter."; 150 case CANCELLED: return "The appointment has been cancelled."; 151 case NOSHOW: return "Some or all of the participant(s) have not/did not appear for the appointment (usually the patient)."; 152 case ENTEREDINERROR: return "This instance should not have been part of this patient's medical record."; 153 case NULL: return null; 154 default: return "?"; 155 } 156 } 157 public String getDisplay() { 158 switch (this) { 159 case PROPOSED: return "Proposed"; 160 case PENDING: return "Pending"; 161 case BOOKED: return "Booked"; 162 case ARRIVED: return "Arrived"; 163 case FULFILLED: return "Fulfilled"; 164 case CANCELLED: return "Cancelled"; 165 case NOSHOW: return "No Show"; 166 case ENTEREDINERROR: return "Entered in error"; 167 case NULL: return null; 168 default: return "?"; 169 } 170 } 171 } 172 173 public static class AppointmentStatusEnumFactory implements EnumFactory<AppointmentStatus> { 174 public AppointmentStatus fromCode(String codeString) throws IllegalArgumentException { 175 if (codeString == null || "".equals(codeString)) 176 if (codeString == null || "".equals(codeString)) 177 return null; 178 if ("proposed".equals(codeString)) 179 return AppointmentStatus.PROPOSED; 180 if ("pending".equals(codeString)) 181 return AppointmentStatus.PENDING; 182 if ("booked".equals(codeString)) 183 return AppointmentStatus.BOOKED; 184 if ("arrived".equals(codeString)) 185 return AppointmentStatus.ARRIVED; 186 if ("fulfilled".equals(codeString)) 187 return AppointmentStatus.FULFILLED; 188 if ("cancelled".equals(codeString)) 189 return AppointmentStatus.CANCELLED; 190 if ("noshow".equals(codeString)) 191 return AppointmentStatus.NOSHOW; 192 if ("entered-in-error".equals(codeString)) 193 return AppointmentStatus.ENTEREDINERROR; 194 throw new IllegalArgumentException("Unknown AppointmentStatus code '"+codeString+"'"); 195 } 196 public Enumeration<AppointmentStatus> fromType(PrimitiveType<?> code) throws FHIRException { 197 if (code == null) 198 return null; 199 if (code.isEmpty()) 200 return new Enumeration<AppointmentStatus>(this); 201 String codeString = code.asStringValue(); 202 if (codeString == null || "".equals(codeString)) 203 return null; 204 if ("proposed".equals(codeString)) 205 return new Enumeration<AppointmentStatus>(this, AppointmentStatus.PROPOSED); 206 if ("pending".equals(codeString)) 207 return new Enumeration<AppointmentStatus>(this, AppointmentStatus.PENDING); 208 if ("booked".equals(codeString)) 209 return new Enumeration<AppointmentStatus>(this, AppointmentStatus.BOOKED); 210 if ("arrived".equals(codeString)) 211 return new Enumeration<AppointmentStatus>(this, AppointmentStatus.ARRIVED); 212 if ("fulfilled".equals(codeString)) 213 return new Enumeration<AppointmentStatus>(this, AppointmentStatus.FULFILLED); 214 if ("cancelled".equals(codeString)) 215 return new Enumeration<AppointmentStatus>(this, AppointmentStatus.CANCELLED); 216 if ("noshow".equals(codeString)) 217 return new Enumeration<AppointmentStatus>(this, AppointmentStatus.NOSHOW); 218 if ("entered-in-error".equals(codeString)) 219 return new Enumeration<AppointmentStatus>(this, AppointmentStatus.ENTEREDINERROR); 220 throw new FHIRException("Unknown AppointmentStatus code '"+codeString+"'"); 221 } 222 public String toCode(AppointmentStatus code) { 223 if (code == AppointmentStatus.PROPOSED) 224 return "proposed"; 225 if (code == AppointmentStatus.PENDING) 226 return "pending"; 227 if (code == AppointmentStatus.BOOKED) 228 return "booked"; 229 if (code == AppointmentStatus.ARRIVED) 230 return "arrived"; 231 if (code == AppointmentStatus.FULFILLED) 232 return "fulfilled"; 233 if (code == AppointmentStatus.CANCELLED) 234 return "cancelled"; 235 if (code == AppointmentStatus.NOSHOW) 236 return "noshow"; 237 if (code == AppointmentStatus.ENTEREDINERROR) 238 return "entered-in-error"; 239 return "?"; 240 } 241 public String toSystem(AppointmentStatus code) { 242 return code.getSystem(); 243 } 244 } 245 246 public enum ParticipantRequired { 247 /** 248 * The participant is required to attend the appointment. 249 */ 250 REQUIRED, 251 /** 252 * The participant may optionally attend the appointment. 253 */ 254 OPTIONAL, 255 /** 256 * The participant is excluded from the appointment, and may not be informed of the appointment taking place. (Appointment is about them, not for them - such as 2 doctors discussing results about a patient's test). 257 */ 258 INFORMATIONONLY, 259 /** 260 * added to help the parsers with the generic types 261 */ 262 NULL; 263 public static ParticipantRequired fromCode(String codeString) throws FHIRException { 264 if (codeString == null || "".equals(codeString)) 265 return null; 266 if ("required".equals(codeString)) 267 return REQUIRED; 268 if ("optional".equals(codeString)) 269 return OPTIONAL; 270 if ("information-only".equals(codeString)) 271 return INFORMATIONONLY; 272 if (Configuration.isAcceptInvalidEnums()) 273 return null; 274 else 275 throw new FHIRException("Unknown ParticipantRequired code '"+codeString+"'"); 276 } 277 public String toCode() { 278 switch (this) { 279 case REQUIRED: return "required"; 280 case OPTIONAL: return "optional"; 281 case INFORMATIONONLY: return "information-only"; 282 case NULL: return null; 283 default: return "?"; 284 } 285 } 286 public String getSystem() { 287 switch (this) { 288 case REQUIRED: return "http://hl7.org/fhir/participantrequired"; 289 case OPTIONAL: return "http://hl7.org/fhir/participantrequired"; 290 case INFORMATIONONLY: return "http://hl7.org/fhir/participantrequired"; 291 case NULL: return null; 292 default: return "?"; 293 } 294 } 295 public String getDefinition() { 296 switch (this) { 297 case REQUIRED: return "The participant is required to attend the appointment."; 298 case OPTIONAL: return "The participant may optionally attend the appointment."; 299 case INFORMATIONONLY: return "The participant is excluded from the appointment, and may not be informed of the appointment taking place. (Appointment is about them, not for them - such as 2 doctors discussing results about a patient's test)."; 300 case NULL: return null; 301 default: return "?"; 302 } 303 } 304 public String getDisplay() { 305 switch (this) { 306 case REQUIRED: return "Required"; 307 case OPTIONAL: return "Optional"; 308 case INFORMATIONONLY: return "Information Only"; 309 case NULL: return null; 310 default: return "?"; 311 } 312 } 313 } 314 315 public static class ParticipantRequiredEnumFactory implements EnumFactory<ParticipantRequired> { 316 public ParticipantRequired fromCode(String codeString) throws IllegalArgumentException { 317 if (codeString == null || "".equals(codeString)) 318 if (codeString == null || "".equals(codeString)) 319 return null; 320 if ("required".equals(codeString)) 321 return ParticipantRequired.REQUIRED; 322 if ("optional".equals(codeString)) 323 return ParticipantRequired.OPTIONAL; 324 if ("information-only".equals(codeString)) 325 return ParticipantRequired.INFORMATIONONLY; 326 throw new IllegalArgumentException("Unknown ParticipantRequired code '"+codeString+"'"); 327 } 328 public Enumeration<ParticipantRequired> fromType(PrimitiveType<?> code) throws FHIRException { 329 if (code == null) 330 return null; 331 if (code.isEmpty()) 332 return new Enumeration<ParticipantRequired>(this); 333 String codeString = code.asStringValue(); 334 if (codeString == null || "".equals(codeString)) 335 return null; 336 if ("required".equals(codeString)) 337 return new Enumeration<ParticipantRequired>(this, ParticipantRequired.REQUIRED); 338 if ("optional".equals(codeString)) 339 return new Enumeration<ParticipantRequired>(this, ParticipantRequired.OPTIONAL); 340 if ("information-only".equals(codeString)) 341 return new Enumeration<ParticipantRequired>(this, ParticipantRequired.INFORMATIONONLY); 342 throw new FHIRException("Unknown ParticipantRequired code '"+codeString+"'"); 343 } 344 public String toCode(ParticipantRequired code) { 345 if (code == ParticipantRequired.REQUIRED) 346 return "required"; 347 if (code == ParticipantRequired.OPTIONAL) 348 return "optional"; 349 if (code == ParticipantRequired.INFORMATIONONLY) 350 return "information-only"; 351 return "?"; 352 } 353 public String toSystem(ParticipantRequired code) { 354 return code.getSystem(); 355 } 356 } 357 358 public enum ParticipationStatus { 359 /** 360 * The participant has accepted the appointment. 361 */ 362 ACCEPTED, 363 /** 364 * The participant has declined the appointment and will not participate in the appointment. 365 */ 366 DECLINED, 367 /** 368 * The participant has tentatively accepted the appointment. This could be automatically created by a system and requires further processing before it can be accepted. There is no commitment that attendance will occur. 369 */ 370 TENTATIVE, 371 /** 372 * The participant needs to indicate if they accept the appointment by changing this status to one of the other statuses. 373 */ 374 NEEDSACTION, 375 /** 376 * added to help the parsers with the generic types 377 */ 378 NULL; 379 public static ParticipationStatus fromCode(String codeString) throws FHIRException { 380 if (codeString == null || "".equals(codeString)) 381 return null; 382 if ("accepted".equals(codeString)) 383 return ACCEPTED; 384 if ("declined".equals(codeString)) 385 return DECLINED; 386 if ("tentative".equals(codeString)) 387 return TENTATIVE; 388 if ("needs-action".equals(codeString)) 389 return NEEDSACTION; 390 if (Configuration.isAcceptInvalidEnums()) 391 return null; 392 else 393 throw new FHIRException("Unknown ParticipationStatus code '"+codeString+"'"); 394 } 395 public String toCode() { 396 switch (this) { 397 case ACCEPTED: return "accepted"; 398 case DECLINED: return "declined"; 399 case TENTATIVE: return "tentative"; 400 case NEEDSACTION: return "needs-action"; 401 case NULL: return null; 402 default: return "?"; 403 } 404 } 405 public String getSystem() { 406 switch (this) { 407 case ACCEPTED: return "http://hl7.org/fhir/participationstatus"; 408 case DECLINED: return "http://hl7.org/fhir/participationstatus"; 409 case TENTATIVE: return "http://hl7.org/fhir/participationstatus"; 410 case NEEDSACTION: return "http://hl7.org/fhir/participationstatus"; 411 case NULL: return null; 412 default: return "?"; 413 } 414 } 415 public String getDefinition() { 416 switch (this) { 417 case ACCEPTED: return "The participant has accepted the appointment."; 418 case DECLINED: return "The participant has declined the appointment and will not participate in the appointment."; 419 case TENTATIVE: return "The participant has tentatively accepted the appointment. This could be automatically created by a system and requires further processing before it can be accepted. There is no commitment that attendance will occur."; 420 case NEEDSACTION: return "The participant needs to indicate if they accept the appointment by changing this status to one of the other statuses."; 421 case NULL: return null; 422 default: return "?"; 423 } 424 } 425 public String getDisplay() { 426 switch (this) { 427 case ACCEPTED: return "Accepted"; 428 case DECLINED: return "Declined"; 429 case TENTATIVE: return "Tentative"; 430 case NEEDSACTION: return "Needs Action"; 431 case NULL: return null; 432 default: return "?"; 433 } 434 } 435 } 436 437 public static class ParticipationStatusEnumFactory implements EnumFactory<ParticipationStatus> { 438 public ParticipationStatus fromCode(String codeString) throws IllegalArgumentException { 439 if (codeString == null || "".equals(codeString)) 440 if (codeString == null || "".equals(codeString)) 441 return null; 442 if ("accepted".equals(codeString)) 443 return ParticipationStatus.ACCEPTED; 444 if ("declined".equals(codeString)) 445 return ParticipationStatus.DECLINED; 446 if ("tentative".equals(codeString)) 447 return ParticipationStatus.TENTATIVE; 448 if ("needs-action".equals(codeString)) 449 return ParticipationStatus.NEEDSACTION; 450 throw new IllegalArgumentException("Unknown ParticipationStatus code '"+codeString+"'"); 451 } 452 public Enumeration<ParticipationStatus> fromType(PrimitiveType<?> code) throws FHIRException { 453 if (code == null) 454 return null; 455 if (code.isEmpty()) 456 return new Enumeration<ParticipationStatus>(this); 457 String codeString = code.asStringValue(); 458 if (codeString == null || "".equals(codeString)) 459 return null; 460 if ("accepted".equals(codeString)) 461 return new Enumeration<ParticipationStatus>(this, ParticipationStatus.ACCEPTED); 462 if ("declined".equals(codeString)) 463 return new Enumeration<ParticipationStatus>(this, ParticipationStatus.DECLINED); 464 if ("tentative".equals(codeString)) 465 return new Enumeration<ParticipationStatus>(this, ParticipationStatus.TENTATIVE); 466 if ("needs-action".equals(codeString)) 467 return new Enumeration<ParticipationStatus>(this, ParticipationStatus.NEEDSACTION); 468 throw new FHIRException("Unknown ParticipationStatus code '"+codeString+"'"); 469 } 470 public String toCode(ParticipationStatus code) { 471 if (code == ParticipationStatus.ACCEPTED) 472 return "accepted"; 473 if (code == ParticipationStatus.DECLINED) 474 return "declined"; 475 if (code == ParticipationStatus.TENTATIVE) 476 return "tentative"; 477 if (code == ParticipationStatus.NEEDSACTION) 478 return "needs-action"; 479 return "?"; 480 } 481 public String toSystem(ParticipationStatus code) { 482 return code.getSystem(); 483 } 484 } 485 486 @Block() 487 public static class AppointmentParticipantComponent extends BackboneElement implements IBaseBackboneElement { 488 /** 489 * Role of participant in the appointment. 490 */ 491 @Child(name = "type", type = {CodeableConcept.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 492 @Description(shortDefinition="Role of participant in the appointment", formalDefinition="Role of participant in the appointment." ) 493 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/encounter-participant-type") 494 protected List<CodeableConcept> type; 495 496 /** 497 * A Person, Location/HealthcareService or Device that is participating in the appointment. 498 */ 499 @Child(name = "actor", type = {Patient.class, Practitioner.class, RelatedPerson.class, Device.class, HealthcareService.class, Location.class}, order=2, min=0, max=1, modifier=false, summary=true) 500 @Description(shortDefinition="Person, Location/HealthcareService or Device", formalDefinition="A Person, Location/HealthcareService or Device that is participating in the appointment." ) 501 protected Reference actor; 502 503 /** 504 * The actual object that is the target of the reference (A Person, Location/HealthcareService or Device that is participating in the appointment.) 505 */ 506 protected Resource actorTarget; 507 508 /** 509 * Is this participant required to be present at the meeting. This covers a use-case where 2 doctors need to meet to discuss the results for a specific patient, and the patient is not required to be present. 510 */ 511 @Child(name = "required", type = {CodeType.class}, order=3, min=0, max=1, modifier=false, summary=true) 512 @Description(shortDefinition="required | optional | information-only", formalDefinition="Is this participant required to be present at the meeting. This covers a use-case where 2 doctors need to meet to discuss the results for a specific patient, and the patient is not required to be present." ) 513 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/participantrequired") 514 protected Enumeration<ParticipantRequired> required; 515 516 /** 517 * Participation status of the actor. 518 */ 519 @Child(name = "status", type = {CodeType.class}, order=4, min=1, max=1, modifier=false, summary=false) 520 @Description(shortDefinition="accepted | declined | tentative | needs-action", formalDefinition="Participation status of the actor." ) 521 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/participationstatus") 522 protected Enumeration<ParticipationStatus> status; 523 524 private static final long serialVersionUID = -1620552507L; 525 526 /** 527 * Constructor 528 */ 529 public AppointmentParticipantComponent() { 530 super(); 531 } 532 533 /** 534 * Constructor 535 */ 536 public AppointmentParticipantComponent(Enumeration<ParticipationStatus> status) { 537 super(); 538 this.status = status; 539 } 540 541 /** 542 * @return {@link #type} (Role of participant in the appointment.) 543 */ 544 public List<CodeableConcept> getType() { 545 if (this.type == null) 546 this.type = new ArrayList<CodeableConcept>(); 547 return this.type; 548 } 549 550 /** 551 * @return Returns a reference to <code>this</code> for easy method chaining 552 */ 553 public AppointmentParticipantComponent setType(List<CodeableConcept> theType) { 554 this.type = theType; 555 return this; 556 } 557 558 public boolean hasType() { 559 if (this.type == null) 560 return false; 561 for (CodeableConcept item : this.type) 562 if (!item.isEmpty()) 563 return true; 564 return false; 565 } 566 567 public CodeableConcept addType() { //3 568 CodeableConcept t = new CodeableConcept(); 569 if (this.type == null) 570 this.type = new ArrayList<CodeableConcept>(); 571 this.type.add(t); 572 return t; 573 } 574 575 public AppointmentParticipantComponent addType(CodeableConcept t) { //3 576 if (t == null) 577 return this; 578 if (this.type == null) 579 this.type = new ArrayList<CodeableConcept>(); 580 this.type.add(t); 581 return this; 582 } 583 584 /** 585 * @return The first repetition of repeating field {@link #type}, creating it if it does not already exist 586 */ 587 public CodeableConcept getTypeFirstRep() { 588 if (getType().isEmpty()) { 589 addType(); 590 } 591 return getType().get(0); 592 } 593 594 /** 595 * @return {@link #actor} (A Person, Location/HealthcareService or Device that is participating in the appointment.) 596 */ 597 public Reference getActor() { 598 if (this.actor == null) 599 if (Configuration.errorOnAutoCreate()) 600 throw new Error("Attempt to auto-create AppointmentParticipantComponent.actor"); 601 else if (Configuration.doAutoCreate()) 602 this.actor = new Reference(); // cc 603 return this.actor; 604 } 605 606 public boolean hasActor() { 607 return this.actor != null && !this.actor.isEmpty(); 608 } 609 610 /** 611 * @param value {@link #actor} (A Person, Location/HealthcareService or Device that is participating in the appointment.) 612 */ 613 public AppointmentParticipantComponent setActor(Reference value) { 614 this.actor = value; 615 return this; 616 } 617 618 /** 619 * @return {@link #actor} 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. (A Person, Location/HealthcareService or Device that is participating in the appointment.) 620 */ 621 public Resource getActorTarget() { 622 return this.actorTarget; 623 } 624 625 /** 626 * @param value {@link #actor} 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. (A Person, Location/HealthcareService or Device that is participating in the appointment.) 627 */ 628 public AppointmentParticipantComponent setActorTarget(Resource value) { 629 this.actorTarget = value; 630 return this; 631 } 632 633 /** 634 * @return {@link #required} (Is this participant required to be present at the meeting. This covers a use-case where 2 doctors need to meet to discuss the results for a specific patient, and the patient is not required to be present.). This is the underlying object with id, value and extensions. The accessor "getRequired" gives direct access to the value 635 */ 636 public Enumeration<ParticipantRequired> getRequiredElement() { 637 if (this.required == null) 638 if (Configuration.errorOnAutoCreate()) 639 throw new Error("Attempt to auto-create AppointmentParticipantComponent.required"); 640 else if (Configuration.doAutoCreate()) 641 this.required = new Enumeration<ParticipantRequired>(new ParticipantRequiredEnumFactory()); // bb 642 return this.required; 643 } 644 645 public boolean hasRequiredElement() { 646 return this.required != null && !this.required.isEmpty(); 647 } 648 649 public boolean hasRequired() { 650 return this.required != null && !this.required.isEmpty(); 651 } 652 653 /** 654 * @param value {@link #required} (Is this participant required to be present at the meeting. This covers a use-case where 2 doctors need to meet to discuss the results for a specific patient, and the patient is not required to be present.). This is the underlying object with id, value and extensions. The accessor "getRequired" gives direct access to the value 655 */ 656 public AppointmentParticipantComponent setRequiredElement(Enumeration<ParticipantRequired> value) { 657 this.required = value; 658 return this; 659 } 660 661 /** 662 * @return Is this participant required to be present at the meeting. This covers a use-case where 2 doctors need to meet to discuss the results for a specific patient, and the patient is not required to be present. 663 */ 664 public ParticipantRequired getRequired() { 665 return this.required == null ? null : this.required.getValue(); 666 } 667 668 /** 669 * @param value Is this participant required to be present at the meeting. This covers a use-case where 2 doctors need to meet to discuss the results for a specific patient, and the patient is not required to be present. 670 */ 671 public AppointmentParticipantComponent setRequired(ParticipantRequired value) { 672 if (value == null) 673 this.required = null; 674 else { 675 if (this.required == null) 676 this.required = new Enumeration<ParticipantRequired>(new ParticipantRequiredEnumFactory()); 677 this.required.setValue(value); 678 } 679 return this; 680 } 681 682 /** 683 * @return {@link #status} (Participation status of the actor.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 684 */ 685 public Enumeration<ParticipationStatus> getStatusElement() { 686 if (this.status == null) 687 if (Configuration.errorOnAutoCreate()) 688 throw new Error("Attempt to auto-create AppointmentParticipantComponent.status"); 689 else if (Configuration.doAutoCreate()) 690 this.status = new Enumeration<ParticipationStatus>(new ParticipationStatusEnumFactory()); // bb 691 return this.status; 692 } 693 694 public boolean hasStatusElement() { 695 return this.status != null && !this.status.isEmpty(); 696 } 697 698 public boolean hasStatus() { 699 return this.status != null && !this.status.isEmpty(); 700 } 701 702 /** 703 * @param value {@link #status} (Participation status of the actor.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 704 */ 705 public AppointmentParticipantComponent setStatusElement(Enumeration<ParticipationStatus> value) { 706 this.status = value; 707 return this; 708 } 709 710 /** 711 * @return Participation status of the actor. 712 */ 713 public ParticipationStatus getStatus() { 714 return this.status == null ? null : this.status.getValue(); 715 } 716 717 /** 718 * @param value Participation status of the actor. 719 */ 720 public AppointmentParticipantComponent setStatus(ParticipationStatus value) { 721 if (this.status == null) 722 this.status = new Enumeration<ParticipationStatus>(new ParticipationStatusEnumFactory()); 723 this.status.setValue(value); 724 return this; 725 } 726 727 protected void listChildren(List<Property> children) { 728 super.listChildren(children); 729 children.add(new Property("type", "CodeableConcept", "Role of participant in the appointment.", 0, java.lang.Integer.MAX_VALUE, type)); 730 children.add(new Property("actor", "Reference(Patient|Practitioner|RelatedPerson|Device|HealthcareService|Location)", "A Person, Location/HealthcareService or Device that is participating in the appointment.", 0, 1, actor)); 731 children.add(new Property("required", "code", "Is this participant required to be present at the meeting. This covers a use-case where 2 doctors need to meet to discuss the results for a specific patient, and the patient is not required to be present.", 0, 1, required)); 732 children.add(new Property("status", "code", "Participation status of the actor.", 0, 1, status)); 733 } 734 735 @Override 736 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 737 switch (_hash) { 738 case 3575610: /*type*/ return new Property("type", "CodeableConcept", "Role of participant in the appointment.", 0, java.lang.Integer.MAX_VALUE, type); 739 case 92645877: /*actor*/ return new Property("actor", "Reference(Patient|Practitioner|RelatedPerson|Device|HealthcareService|Location)", "A Person, Location/HealthcareService or Device that is participating in the appointment.", 0, 1, actor); 740 case -393139297: /*required*/ return new Property("required", "code", "Is this participant required to be present at the meeting. This covers a use-case where 2 doctors need to meet to discuss the results for a specific patient, and the patient is not required to be present.", 0, 1, required); 741 case -892481550: /*status*/ return new Property("status", "code", "Participation status of the actor.", 0, 1, status); 742 default: return super.getNamedProperty(_hash, _name, _checkValid); 743 } 744 745 } 746 747 @Override 748 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 749 switch (hash) { 750 case 3575610: /*type*/ return this.type == null ? new Base[0] : this.type.toArray(new Base[this.type.size()]); // CodeableConcept 751 case 92645877: /*actor*/ return this.actor == null ? new Base[0] : new Base[] {this.actor}; // Reference 752 case -393139297: /*required*/ return this.required == null ? new Base[0] : new Base[] {this.required}; // Enumeration<ParticipantRequired> 753 case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<ParticipationStatus> 754 default: return super.getProperty(hash, name, checkValid); 755 } 756 757 } 758 759 @Override 760 public Base setProperty(int hash, String name, Base value) throws FHIRException { 761 switch (hash) { 762 case 3575610: // type 763 this.getType().add(castToCodeableConcept(value)); // CodeableConcept 764 return value; 765 case 92645877: // actor 766 this.actor = castToReference(value); // Reference 767 return value; 768 case -393139297: // required 769 value = new ParticipantRequiredEnumFactory().fromType(castToCode(value)); 770 this.required = (Enumeration) value; // Enumeration<ParticipantRequired> 771 return value; 772 case -892481550: // status 773 value = new ParticipationStatusEnumFactory().fromType(castToCode(value)); 774 this.status = (Enumeration) value; // Enumeration<ParticipationStatus> 775 return value; 776 default: return super.setProperty(hash, name, value); 777 } 778 779 } 780 781 @Override 782 public Base setProperty(String name, Base value) throws FHIRException { 783 if (name.equals("type")) { 784 this.getType().add(castToCodeableConcept(value)); 785 } else if (name.equals("actor")) { 786 this.actor = castToReference(value); // Reference 787 } else if (name.equals("required")) { 788 value = new ParticipantRequiredEnumFactory().fromType(castToCode(value)); 789 this.required = (Enumeration) value; // Enumeration<ParticipantRequired> 790 } else if (name.equals("status")) { 791 value = new ParticipationStatusEnumFactory().fromType(castToCode(value)); 792 this.status = (Enumeration) value; // Enumeration<ParticipationStatus> 793 } else 794 return super.setProperty(name, value); 795 return value; 796 } 797 798 @Override 799 public Base makeProperty(int hash, String name) throws FHIRException { 800 switch (hash) { 801 case 3575610: return addType(); 802 case 92645877: return getActor(); 803 case -393139297: return getRequiredElement(); 804 case -892481550: return getStatusElement(); 805 default: return super.makeProperty(hash, name); 806 } 807 808 } 809 810 @Override 811 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 812 switch (hash) { 813 case 3575610: /*type*/ return new String[] {"CodeableConcept"}; 814 case 92645877: /*actor*/ return new String[] {"Reference"}; 815 case -393139297: /*required*/ return new String[] {"code"}; 816 case -892481550: /*status*/ return new String[] {"code"}; 817 default: return super.getTypesForProperty(hash, name); 818 } 819 820 } 821 822 @Override 823 public Base addChild(String name) throws FHIRException { 824 if (name.equals("type")) { 825 return addType(); 826 } 827 else if (name.equals("actor")) { 828 this.actor = new Reference(); 829 return this.actor; 830 } 831 else if (name.equals("required")) { 832 throw new FHIRException("Cannot call addChild on a singleton property Appointment.required"); 833 } 834 else if (name.equals("status")) { 835 throw new FHIRException("Cannot call addChild on a singleton property Appointment.status"); 836 } 837 else 838 return super.addChild(name); 839 } 840 841 public AppointmentParticipantComponent copy() { 842 AppointmentParticipantComponent dst = new AppointmentParticipantComponent(); 843 copyValues(dst); 844 if (type != null) { 845 dst.type = new ArrayList<CodeableConcept>(); 846 for (CodeableConcept i : type) 847 dst.type.add(i.copy()); 848 }; 849 dst.actor = actor == null ? null : actor.copy(); 850 dst.required = required == null ? null : required.copy(); 851 dst.status = status == null ? null : status.copy(); 852 return dst; 853 } 854 855 @Override 856 public boolean equalsDeep(Base other_) { 857 if (!super.equalsDeep(other_)) 858 return false; 859 if (!(other_ instanceof AppointmentParticipantComponent)) 860 return false; 861 AppointmentParticipantComponent o = (AppointmentParticipantComponent) other_; 862 return compareDeep(type, o.type, true) && compareDeep(actor, o.actor, true) && compareDeep(required, o.required, true) 863 && compareDeep(status, o.status, true); 864 } 865 866 @Override 867 public boolean equalsShallow(Base other_) { 868 if (!super.equalsShallow(other_)) 869 return false; 870 if (!(other_ instanceof AppointmentParticipantComponent)) 871 return false; 872 AppointmentParticipantComponent o = (AppointmentParticipantComponent) other_; 873 return compareValues(required, o.required, true) && compareValues(status, o.status, true); 874 } 875 876 public boolean isEmpty() { 877 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(type, actor, required, status 878 ); 879 } 880 881 public String fhirType() { 882 return "Appointment.participant"; 883 884 } 885 886 } 887 888 /** 889 * This records identifiers associated with this appointment concern that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation). 890 */ 891 @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 892 @Description(shortDefinition="External Ids for this item", formalDefinition="This records identifiers associated with this appointment concern that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation)." ) 893 protected List<Identifier> identifier; 894 895 /** 896 * The overall status of the Appointment. Each of the participants has their own participation status which indicates their involvement in the process, however this status indicates the shared status. 897 */ 898 @Child(name = "status", type = {CodeType.class}, order=1, min=1, max=1, modifier=true, summary=true) 899 @Description(shortDefinition="proposed | pending | booked | arrived | fulfilled | cancelled | noshow | entered-in-error", formalDefinition="The overall status of the Appointment. Each of the participants has their own participation status which indicates their involvement in the process, however this status indicates the shared status." ) 900 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/appointmentstatus") 901 protected Enumeration<AppointmentStatus> status; 902 903 /** 904 * A broad categorisation of the service that is to be performed during this appointment. 905 */ 906 @Child(name = "serviceCategory", type = {CodeableConcept.class}, order=2, min=0, max=1, modifier=false, summary=true) 907 @Description(shortDefinition="A broad categorisation of the service that is to be performed during this appointment", formalDefinition="A broad categorisation of the service that is to be performed during this appointment." ) 908 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/service-category") 909 protected CodeableConcept serviceCategory; 910 911 /** 912 * The specific service that is to be performed during this appointment. 913 */ 914 @Child(name = "serviceType", type = {CodeableConcept.class}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 915 @Description(shortDefinition="The specific service that is to be performed during this appointment", formalDefinition="The specific service that is to be performed during this appointment." ) 916 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/service-type") 917 protected List<CodeableConcept> serviceType; 918 919 /** 920 * The specialty of a practitioner that would be required to perform the service requested in this appointment. 921 */ 922 @Child(name = "specialty", type = {CodeableConcept.class}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 923 @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." ) 924 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/c80-practice-codes") 925 protected List<CodeableConcept> specialty; 926 927 /** 928 * The style of appointment or patient that has been booked in the slot (not service type). 929 */ 930 @Child(name = "appointmentType", type = {CodeableConcept.class}, order=5, min=0, max=1, modifier=false, summary=true) 931 @Description(shortDefinition="The style of appointment or patient that has been booked in the slot (not service type)", formalDefinition="The style of appointment or patient that has been booked in the slot (not service type)." ) 932 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/v2-0276") 933 protected CodeableConcept appointmentType; 934 935 /** 936 * The reason that this appointment is being scheduled. This is more clinical than administrative. 937 */ 938 @Child(name = "reason", type = {CodeableConcept.class}, order=6, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 939 @Description(shortDefinition="Reason this appointment is scheduled", formalDefinition="The reason that this appointment is being scheduled. This is more clinical than administrative." ) 940 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/encounter-reason") 941 protected List<CodeableConcept> reason; 942 943 /** 944 * Reason the appointment has been scheduled to take place, as specified using information from another resource. When the patient arrives and the encounter begins it may be used as the admission diagnosis. The indication will typically be a Condition (with other resources referenced in the evidence.detail), or a Procedure. 945 */ 946 @Child(name = "indication", type = {Condition.class, Procedure.class}, order=7, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 947 @Description(shortDefinition="Reason the appointment is to takes place (resource)", formalDefinition="Reason the appointment has been scheduled to take place, as specified using information from another resource. When the patient arrives and the encounter begins it may be used as the admission diagnosis. The indication will typically be a Condition (with other resources referenced in the evidence.detail), or a Procedure." ) 948 protected List<Reference> indication; 949 /** 950 * The actual objects that are the target of the reference (Reason the appointment has been scheduled to take place, as specified using information from another resource. When the patient arrives and the encounter begins it may be used as the admission diagnosis. The indication will typically be a Condition (with other resources referenced in the evidence.detail), or a Procedure.) 951 */ 952 protected List<Resource> indicationTarget; 953 954 955 /** 956 * The priority of the appointment. Can be used to make informed decisions if needing to re-prioritize appointments. (The iCal Standard specifies 0 as undefined, 1 as highest, 9 as lowest priority). 957 */ 958 @Child(name = "priority", type = {UnsignedIntType.class}, order=8, min=0, max=1, modifier=false, summary=false) 959 @Description(shortDefinition="Used to make informed decisions if needing to re-prioritize", formalDefinition="The priority of the appointment. Can be used to make informed decisions if needing to re-prioritize appointments. (The iCal Standard specifies 0 as undefined, 1 as highest, 9 as lowest priority)." ) 960 protected UnsignedIntType priority; 961 962 /** 963 * The brief description of the appointment as would be shown on a subject line in a meeting request, or appointment list. Detailed or expanded information should be put in the comment field. 964 */ 965 @Child(name = "description", type = {StringType.class}, order=9, min=0, max=1, modifier=false, summary=false) 966 @Description(shortDefinition="Shown on a subject line in a meeting request, or appointment list", formalDefinition="The brief description of the appointment as would be shown on a subject line in a meeting request, or appointment list. Detailed or expanded information should be put in the comment field." ) 967 protected StringType description; 968 969 /** 970 * Additional information to support the appointment provided when making the appointment. 971 */ 972 @Child(name = "supportingInformation", type = {Reference.class}, order=10, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 973 @Description(shortDefinition="Additional information to support the appointment", formalDefinition="Additional information to support the appointment provided when making the appointment." ) 974 protected List<Reference> supportingInformation; 975 /** 976 * The actual objects that are the target of the reference (Additional information to support the appointment provided when making the appointment.) 977 */ 978 protected List<Resource> supportingInformationTarget; 979 980 981 /** 982 * Date/Time that the appointment is to take place. 983 */ 984 @Child(name = "start", type = {InstantType.class}, order=11, min=0, max=1, modifier=false, summary=true) 985 @Description(shortDefinition="When appointment is to take place", formalDefinition="Date/Time that the appointment is to take place." ) 986 protected InstantType start; 987 988 /** 989 * Date/Time that the appointment is to conclude. 990 */ 991 @Child(name = "end", type = {InstantType.class}, order=12, min=0, max=1, modifier=false, summary=true) 992 @Description(shortDefinition="When appointment is to conclude", formalDefinition="Date/Time that the appointment is to conclude." ) 993 protected InstantType end; 994 995 /** 996 * Number of minutes that the appointment is to take. This can be less than the duration between the start and end times (where actual time of appointment is only an estimate or is a planned appointment request). 997 */ 998 @Child(name = "minutesDuration", type = {PositiveIntType.class}, order=13, min=0, max=1, modifier=false, summary=false) 999 @Description(shortDefinition="Can be less than start/end (e.g. estimate)", formalDefinition="Number of minutes that the appointment is to take. This can be less than the duration between the start and end times (where actual time of appointment is only an estimate or is a planned appointment request)." ) 1000 protected PositiveIntType minutesDuration; 1001 1002 /** 1003 * The slots from the participants' schedules that will be filled by the appointment. 1004 */ 1005 @Child(name = "slot", type = {Slot.class}, order=14, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1006 @Description(shortDefinition="The slots that this appointment is filling", formalDefinition="The slots from the participants' schedules that will be filled by the appointment." ) 1007 protected List<Reference> slot; 1008 /** 1009 * The actual objects that are the target of the reference (The slots from the participants' schedules that will be filled by the appointment.) 1010 */ 1011 protected List<Slot> slotTarget; 1012 1013 1014 /** 1015 * The date that this appointment was initially created. This could be different to the meta.lastModified value on the initial entry, as this could have been before the resource was created on the FHIR server, and should remain unchanged over the lifespan of the appointment. 1016 */ 1017 @Child(name = "created", type = {DateTimeType.class}, order=15, min=0, max=1, modifier=false, summary=false) 1018 @Description(shortDefinition="The date that this appointment was initially created", formalDefinition="The date that this appointment was initially created. This could be different to the meta.lastModified value on the initial entry, as this could have been before the resource was created on the FHIR server, and should remain unchanged over the lifespan of the appointment." ) 1019 protected DateTimeType created; 1020 1021 /** 1022 * Additional comments about the appointment. 1023 */ 1024 @Child(name = "comment", type = {StringType.class}, order=16, min=0, max=1, modifier=false, summary=false) 1025 @Description(shortDefinition="Additional comments", formalDefinition="Additional comments about the appointment." ) 1026 protected StringType comment; 1027 1028 /** 1029 * The referral request this appointment is allocated to assess (incoming referral). 1030 */ 1031 @Child(name = "incomingReferral", type = {ReferralRequest.class}, order=17, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1032 @Description(shortDefinition="The ReferralRequest provided as information to allocate to the Encounter", formalDefinition="The referral request this appointment is allocated to assess (incoming referral)." ) 1033 protected List<Reference> incomingReferral; 1034 /** 1035 * The actual objects that are the target of the reference (The referral request this appointment is allocated to assess (incoming referral).) 1036 */ 1037 protected List<ReferralRequest> incomingReferralTarget; 1038 1039 1040 /** 1041 * List of participants involved in the appointment. 1042 */ 1043 @Child(name = "participant", type = {}, order=18, min=1, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1044 @Description(shortDefinition="Participants involved in appointment", formalDefinition="List of participants involved in the appointment." ) 1045 protected List<AppointmentParticipantComponent> participant; 1046 1047 /** 1048 * A set of date ranges (potentially including times) that the appointment is preferred to be scheduled within. When using these values, the minutes duration should be provided to indicate the length of the appointment to fill and populate the start/end times for the actual allocated time. 1049 */ 1050 @Child(name = "requestedPeriod", type = {Period.class}, order=19, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1051 @Description(shortDefinition="Potential date/time interval(s) requested to allocate the appointment within", formalDefinition="A set of date ranges (potentially including times) that the appointment is preferred to be scheduled within. When using these values, the minutes duration should be provided to indicate the length of the appointment to fill and populate the start/end times for the actual allocated time." ) 1052 protected List<Period> requestedPeriod; 1053 1054 private static final long serialVersionUID = -1589372810L; 1055 1056 /** 1057 * Constructor 1058 */ 1059 public Appointment() { 1060 super(); 1061 } 1062 1063 /** 1064 * Constructor 1065 */ 1066 public Appointment(Enumeration<AppointmentStatus> status) { 1067 super(); 1068 this.status = status; 1069 } 1070 1071 /** 1072 * @return {@link #identifier} (This records identifiers associated with this appointment concern that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).) 1073 */ 1074 public List<Identifier> getIdentifier() { 1075 if (this.identifier == null) 1076 this.identifier = new ArrayList<Identifier>(); 1077 return this.identifier; 1078 } 1079 1080 /** 1081 * @return Returns a reference to <code>this</code> for easy method chaining 1082 */ 1083 public Appointment setIdentifier(List<Identifier> theIdentifier) { 1084 this.identifier = theIdentifier; 1085 return this; 1086 } 1087 1088 public boolean hasIdentifier() { 1089 if (this.identifier == null) 1090 return false; 1091 for (Identifier item : this.identifier) 1092 if (!item.isEmpty()) 1093 return true; 1094 return false; 1095 } 1096 1097 public Identifier addIdentifier() { //3 1098 Identifier t = new Identifier(); 1099 if (this.identifier == null) 1100 this.identifier = new ArrayList<Identifier>(); 1101 this.identifier.add(t); 1102 return t; 1103 } 1104 1105 public Appointment addIdentifier(Identifier t) { //3 1106 if (t == null) 1107 return this; 1108 if (this.identifier == null) 1109 this.identifier = new ArrayList<Identifier>(); 1110 this.identifier.add(t); 1111 return this; 1112 } 1113 1114 /** 1115 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist 1116 */ 1117 public Identifier getIdentifierFirstRep() { 1118 if (getIdentifier().isEmpty()) { 1119 addIdentifier(); 1120 } 1121 return getIdentifier().get(0); 1122 } 1123 1124 /** 1125 * @return {@link #status} (The overall status of the Appointment. Each of the participants has their own participation status which indicates their involvement in the process, however this status indicates the shared status.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 1126 */ 1127 public Enumeration<AppointmentStatus> getStatusElement() { 1128 if (this.status == null) 1129 if (Configuration.errorOnAutoCreate()) 1130 throw new Error("Attempt to auto-create Appointment.status"); 1131 else if (Configuration.doAutoCreate()) 1132 this.status = new Enumeration<AppointmentStatus>(new AppointmentStatusEnumFactory()); // bb 1133 return this.status; 1134 } 1135 1136 public boolean hasStatusElement() { 1137 return this.status != null && !this.status.isEmpty(); 1138 } 1139 1140 public boolean hasStatus() { 1141 return this.status != null && !this.status.isEmpty(); 1142 } 1143 1144 /** 1145 * @param value {@link #status} (The overall status of the Appointment. Each of the participants has their own participation status which indicates their involvement in the process, however this status indicates the shared status.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 1146 */ 1147 public Appointment setStatusElement(Enumeration<AppointmentStatus> value) { 1148 this.status = value; 1149 return this; 1150 } 1151 1152 /** 1153 * @return The overall status of the Appointment. Each of the participants has their own participation status which indicates their involvement in the process, however this status indicates the shared status. 1154 */ 1155 public AppointmentStatus getStatus() { 1156 return this.status == null ? null : this.status.getValue(); 1157 } 1158 1159 /** 1160 * @param value The overall status of the Appointment. Each of the participants has their own participation status which indicates their involvement in the process, however this status indicates the shared status. 1161 */ 1162 public Appointment setStatus(AppointmentStatus value) { 1163 if (this.status == null) 1164 this.status = new Enumeration<AppointmentStatus>(new AppointmentStatusEnumFactory()); 1165 this.status.setValue(value); 1166 return this; 1167 } 1168 1169 /** 1170 * @return {@link #serviceCategory} (A broad categorisation of the service that is to be performed during this appointment.) 1171 */ 1172 public CodeableConcept getServiceCategory() { 1173 if (this.serviceCategory == null) 1174 if (Configuration.errorOnAutoCreate()) 1175 throw new Error("Attempt to auto-create Appointment.serviceCategory"); 1176 else if (Configuration.doAutoCreate()) 1177 this.serviceCategory = new CodeableConcept(); // cc 1178 return this.serviceCategory; 1179 } 1180 1181 public boolean hasServiceCategory() { 1182 return this.serviceCategory != null && !this.serviceCategory.isEmpty(); 1183 } 1184 1185 /** 1186 * @param value {@link #serviceCategory} (A broad categorisation of the service that is to be performed during this appointment.) 1187 */ 1188 public Appointment setServiceCategory(CodeableConcept value) { 1189 this.serviceCategory = value; 1190 return this; 1191 } 1192 1193 /** 1194 * @return {@link #serviceType} (The specific service that is to be performed during this appointment.) 1195 */ 1196 public List<CodeableConcept> getServiceType() { 1197 if (this.serviceType == null) 1198 this.serviceType = new ArrayList<CodeableConcept>(); 1199 return this.serviceType; 1200 } 1201 1202 /** 1203 * @return Returns a reference to <code>this</code> for easy method chaining 1204 */ 1205 public Appointment setServiceType(List<CodeableConcept> theServiceType) { 1206 this.serviceType = theServiceType; 1207 return this; 1208 } 1209 1210 public boolean hasServiceType() { 1211 if (this.serviceType == null) 1212 return false; 1213 for (CodeableConcept item : this.serviceType) 1214 if (!item.isEmpty()) 1215 return true; 1216 return false; 1217 } 1218 1219 public CodeableConcept addServiceType() { //3 1220 CodeableConcept t = new CodeableConcept(); 1221 if (this.serviceType == null) 1222 this.serviceType = new ArrayList<CodeableConcept>(); 1223 this.serviceType.add(t); 1224 return t; 1225 } 1226 1227 public Appointment addServiceType(CodeableConcept t) { //3 1228 if (t == null) 1229 return this; 1230 if (this.serviceType == null) 1231 this.serviceType = new ArrayList<CodeableConcept>(); 1232 this.serviceType.add(t); 1233 return this; 1234 } 1235 1236 /** 1237 * @return The first repetition of repeating field {@link #serviceType}, creating it if it does not already exist 1238 */ 1239 public CodeableConcept getServiceTypeFirstRep() { 1240 if (getServiceType().isEmpty()) { 1241 addServiceType(); 1242 } 1243 return getServiceType().get(0); 1244 } 1245 1246 /** 1247 * @return {@link #specialty} (The specialty of a practitioner that would be required to perform the service requested in this appointment.) 1248 */ 1249 public List<CodeableConcept> getSpecialty() { 1250 if (this.specialty == null) 1251 this.specialty = new ArrayList<CodeableConcept>(); 1252 return this.specialty; 1253 } 1254 1255 /** 1256 * @return Returns a reference to <code>this</code> for easy method chaining 1257 */ 1258 public Appointment setSpecialty(List<CodeableConcept> theSpecialty) { 1259 this.specialty = theSpecialty; 1260 return this; 1261 } 1262 1263 public boolean hasSpecialty() { 1264 if (this.specialty == null) 1265 return false; 1266 for (CodeableConcept item : this.specialty) 1267 if (!item.isEmpty()) 1268 return true; 1269 return false; 1270 } 1271 1272 public CodeableConcept addSpecialty() { //3 1273 CodeableConcept t = new CodeableConcept(); 1274 if (this.specialty == null) 1275 this.specialty = new ArrayList<CodeableConcept>(); 1276 this.specialty.add(t); 1277 return t; 1278 } 1279 1280 public Appointment addSpecialty(CodeableConcept t) { //3 1281 if (t == null) 1282 return this; 1283 if (this.specialty == null) 1284 this.specialty = new ArrayList<CodeableConcept>(); 1285 this.specialty.add(t); 1286 return this; 1287 } 1288 1289 /** 1290 * @return The first repetition of repeating field {@link #specialty}, creating it if it does not already exist 1291 */ 1292 public CodeableConcept getSpecialtyFirstRep() { 1293 if (getSpecialty().isEmpty()) { 1294 addSpecialty(); 1295 } 1296 return getSpecialty().get(0); 1297 } 1298 1299 /** 1300 * @return {@link #appointmentType} (The style of appointment or patient that has been booked in the slot (not service type).) 1301 */ 1302 public CodeableConcept getAppointmentType() { 1303 if (this.appointmentType == null) 1304 if (Configuration.errorOnAutoCreate()) 1305 throw new Error("Attempt to auto-create Appointment.appointmentType"); 1306 else if (Configuration.doAutoCreate()) 1307 this.appointmentType = new CodeableConcept(); // cc 1308 return this.appointmentType; 1309 } 1310 1311 public boolean hasAppointmentType() { 1312 return this.appointmentType != null && !this.appointmentType.isEmpty(); 1313 } 1314 1315 /** 1316 * @param value {@link #appointmentType} (The style of appointment or patient that has been booked in the slot (not service type).) 1317 */ 1318 public Appointment setAppointmentType(CodeableConcept value) { 1319 this.appointmentType = value; 1320 return this; 1321 } 1322 1323 /** 1324 * @return {@link #reason} (The reason that this appointment is being scheduled. This is more clinical than administrative.) 1325 */ 1326 public List<CodeableConcept> getReason() { 1327 if (this.reason == null) 1328 this.reason = new ArrayList<CodeableConcept>(); 1329 return this.reason; 1330 } 1331 1332 /** 1333 * @return Returns a reference to <code>this</code> for easy method chaining 1334 */ 1335 public Appointment setReason(List<CodeableConcept> theReason) { 1336 this.reason = theReason; 1337 return this; 1338 } 1339 1340 public boolean hasReason() { 1341 if (this.reason == null) 1342 return false; 1343 for (CodeableConcept item : this.reason) 1344 if (!item.isEmpty()) 1345 return true; 1346 return false; 1347 } 1348 1349 public CodeableConcept addReason() { //3 1350 CodeableConcept t = new CodeableConcept(); 1351 if (this.reason == null) 1352 this.reason = new ArrayList<CodeableConcept>(); 1353 this.reason.add(t); 1354 return t; 1355 } 1356 1357 public Appointment addReason(CodeableConcept t) { //3 1358 if (t == null) 1359 return this; 1360 if (this.reason == null) 1361 this.reason = new ArrayList<CodeableConcept>(); 1362 this.reason.add(t); 1363 return this; 1364 } 1365 1366 /** 1367 * @return The first repetition of repeating field {@link #reason}, creating it if it does not already exist 1368 */ 1369 public CodeableConcept getReasonFirstRep() { 1370 if (getReason().isEmpty()) { 1371 addReason(); 1372 } 1373 return getReason().get(0); 1374 } 1375 1376 /** 1377 * @return {@link #indication} (Reason the appointment has been scheduled to take place, as specified using information from another resource. When the patient arrives and the encounter begins it may be used as the admission diagnosis. The indication will typically be a Condition (with other resources referenced in the evidence.detail), or a Procedure.) 1378 */ 1379 public List<Reference> getIndication() { 1380 if (this.indication == null) 1381 this.indication = new ArrayList<Reference>(); 1382 return this.indication; 1383 } 1384 1385 /** 1386 * @return Returns a reference to <code>this</code> for easy method chaining 1387 */ 1388 public Appointment setIndication(List<Reference> theIndication) { 1389 this.indication = theIndication; 1390 return this; 1391 } 1392 1393 public boolean hasIndication() { 1394 if (this.indication == null) 1395 return false; 1396 for (Reference item : this.indication) 1397 if (!item.isEmpty()) 1398 return true; 1399 return false; 1400 } 1401 1402 public Reference addIndication() { //3 1403 Reference t = new Reference(); 1404 if (this.indication == null) 1405 this.indication = new ArrayList<Reference>(); 1406 this.indication.add(t); 1407 return t; 1408 } 1409 1410 public Appointment addIndication(Reference t) { //3 1411 if (t == null) 1412 return this; 1413 if (this.indication == null) 1414 this.indication = new ArrayList<Reference>(); 1415 this.indication.add(t); 1416 return this; 1417 } 1418 1419 /** 1420 * @return The first repetition of repeating field {@link #indication}, creating it if it does not already exist 1421 */ 1422 public Reference getIndicationFirstRep() { 1423 if (getIndication().isEmpty()) { 1424 addIndication(); 1425 } 1426 return getIndication().get(0); 1427 } 1428 1429 /** 1430 * @deprecated Use Reference#setResource(IBaseResource) instead 1431 */ 1432 @Deprecated 1433 public List<Resource> getIndicationTarget() { 1434 if (this.indicationTarget == null) 1435 this.indicationTarget = new ArrayList<Resource>(); 1436 return this.indicationTarget; 1437 } 1438 1439 /** 1440 * @return {@link #priority} (The priority of the appointment. Can be used to make informed decisions if needing to re-prioritize appointments. (The iCal Standard specifies 0 as undefined, 1 as highest, 9 as lowest priority).). This is the underlying object with id, value and extensions. The accessor "getPriority" gives direct access to the value 1441 */ 1442 public UnsignedIntType getPriorityElement() { 1443 if (this.priority == null) 1444 if (Configuration.errorOnAutoCreate()) 1445 throw new Error("Attempt to auto-create Appointment.priority"); 1446 else if (Configuration.doAutoCreate()) 1447 this.priority = new UnsignedIntType(); // bb 1448 return this.priority; 1449 } 1450 1451 public boolean hasPriorityElement() { 1452 return this.priority != null && !this.priority.isEmpty(); 1453 } 1454 1455 public boolean hasPriority() { 1456 return this.priority != null && !this.priority.isEmpty(); 1457 } 1458 1459 /** 1460 * @param value {@link #priority} (The priority of the appointment. Can be used to make informed decisions if needing to re-prioritize appointments. (The iCal Standard specifies 0 as undefined, 1 as highest, 9 as lowest priority).). This is the underlying object with id, value and extensions. The accessor "getPriority" gives direct access to the value 1461 */ 1462 public Appointment setPriorityElement(UnsignedIntType value) { 1463 this.priority = value; 1464 return this; 1465 } 1466 1467 /** 1468 * @return The priority of the appointment. Can be used to make informed decisions if needing to re-prioritize appointments. (The iCal Standard specifies 0 as undefined, 1 as highest, 9 as lowest priority). 1469 */ 1470 public int getPriority() { 1471 return this.priority == null || this.priority.isEmpty() ? 0 : this.priority.getValue(); 1472 } 1473 1474 /** 1475 * @param value The priority of the appointment. Can be used to make informed decisions if needing to re-prioritize appointments. (The iCal Standard specifies 0 as undefined, 1 as highest, 9 as lowest priority). 1476 */ 1477 public Appointment setPriority(int value) { 1478 if (this.priority == null) 1479 this.priority = new UnsignedIntType(); 1480 this.priority.setValue(value); 1481 return this; 1482 } 1483 1484 /** 1485 * @return {@link #description} (The brief description of the appointment as would be shown on a subject line in a meeting request, or appointment list. Detailed or expanded information should be put in the comment field.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 1486 */ 1487 public StringType getDescriptionElement() { 1488 if (this.description == null) 1489 if (Configuration.errorOnAutoCreate()) 1490 throw new Error("Attempt to auto-create Appointment.description"); 1491 else if (Configuration.doAutoCreate()) 1492 this.description = new StringType(); // bb 1493 return this.description; 1494 } 1495 1496 public boolean hasDescriptionElement() { 1497 return this.description != null && !this.description.isEmpty(); 1498 } 1499 1500 public boolean hasDescription() { 1501 return this.description != null && !this.description.isEmpty(); 1502 } 1503 1504 /** 1505 * @param value {@link #description} (The brief description of the appointment as would be shown on a subject line in a meeting request, or appointment list. Detailed or expanded information should be put in the comment field.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 1506 */ 1507 public Appointment setDescriptionElement(StringType value) { 1508 this.description = value; 1509 return this; 1510 } 1511 1512 /** 1513 * @return The brief description of the appointment as would be shown on a subject line in a meeting request, or appointment list. Detailed or expanded information should be put in the comment field. 1514 */ 1515 public String getDescription() { 1516 return this.description == null ? null : this.description.getValue(); 1517 } 1518 1519 /** 1520 * @param value The brief description of the appointment as would be shown on a subject line in a meeting request, or appointment list. Detailed or expanded information should be put in the comment field. 1521 */ 1522 public Appointment setDescription(String value) { 1523 if (Utilities.noString(value)) 1524 this.description = null; 1525 else { 1526 if (this.description == null) 1527 this.description = new StringType(); 1528 this.description.setValue(value); 1529 } 1530 return this; 1531 } 1532 1533 /** 1534 * @return {@link #supportingInformation} (Additional information to support the appointment provided when making the appointment.) 1535 */ 1536 public List<Reference> getSupportingInformation() { 1537 if (this.supportingInformation == null) 1538 this.supportingInformation = new ArrayList<Reference>(); 1539 return this.supportingInformation; 1540 } 1541 1542 /** 1543 * @return Returns a reference to <code>this</code> for easy method chaining 1544 */ 1545 public Appointment setSupportingInformation(List<Reference> theSupportingInformation) { 1546 this.supportingInformation = theSupportingInformation; 1547 return this; 1548 } 1549 1550 public boolean hasSupportingInformation() { 1551 if (this.supportingInformation == null) 1552 return false; 1553 for (Reference item : this.supportingInformation) 1554 if (!item.isEmpty()) 1555 return true; 1556 return false; 1557 } 1558 1559 public Reference addSupportingInformation() { //3 1560 Reference t = new Reference(); 1561 if (this.supportingInformation == null) 1562 this.supportingInformation = new ArrayList<Reference>(); 1563 this.supportingInformation.add(t); 1564 return t; 1565 } 1566 1567 public Appointment addSupportingInformation(Reference t) { //3 1568 if (t == null) 1569 return this; 1570 if (this.supportingInformation == null) 1571 this.supportingInformation = new ArrayList<Reference>(); 1572 this.supportingInformation.add(t); 1573 return this; 1574 } 1575 1576 /** 1577 * @return The first repetition of repeating field {@link #supportingInformation}, creating it if it does not already exist 1578 */ 1579 public Reference getSupportingInformationFirstRep() { 1580 if (getSupportingInformation().isEmpty()) { 1581 addSupportingInformation(); 1582 } 1583 return getSupportingInformation().get(0); 1584 } 1585 1586 /** 1587 * @deprecated Use Reference#setResource(IBaseResource) instead 1588 */ 1589 @Deprecated 1590 public List<Resource> getSupportingInformationTarget() { 1591 if (this.supportingInformationTarget == null) 1592 this.supportingInformationTarget = new ArrayList<Resource>(); 1593 return this.supportingInformationTarget; 1594 } 1595 1596 /** 1597 * @return {@link #start} (Date/Time that the appointment is to take place.). This is the underlying object with id, value and extensions. The accessor "getStart" gives direct access to the value 1598 */ 1599 public InstantType getStartElement() { 1600 if (this.start == null) 1601 if (Configuration.errorOnAutoCreate()) 1602 throw new Error("Attempt to auto-create Appointment.start"); 1603 else if (Configuration.doAutoCreate()) 1604 this.start = new InstantType(); // bb 1605 return this.start; 1606 } 1607 1608 public boolean hasStartElement() { 1609 return this.start != null && !this.start.isEmpty(); 1610 } 1611 1612 public boolean hasStart() { 1613 return this.start != null && !this.start.isEmpty(); 1614 } 1615 1616 /** 1617 * @param value {@link #start} (Date/Time that the appointment is to take place.). This is the underlying object with id, value and extensions. The accessor "getStart" gives direct access to the value 1618 */ 1619 public Appointment setStartElement(InstantType value) { 1620 this.start = value; 1621 return this; 1622 } 1623 1624 /** 1625 * @return Date/Time that the appointment is to take place. 1626 */ 1627 public Date getStart() { 1628 return this.start == null ? null : this.start.getValue(); 1629 } 1630 1631 /** 1632 * @param value Date/Time that the appointment is to take place. 1633 */ 1634 public Appointment setStart(Date value) { 1635 if (value == null) 1636 this.start = null; 1637 else { 1638 if (this.start == null) 1639 this.start = new InstantType(); 1640 this.start.setValue(value); 1641 } 1642 return this; 1643 } 1644 1645 /** 1646 * @return {@link #end} (Date/Time that the appointment is to conclude.). This is the underlying object with id, value and extensions. The accessor "getEnd" gives direct access to the value 1647 */ 1648 public InstantType getEndElement() { 1649 if (this.end == null) 1650 if (Configuration.errorOnAutoCreate()) 1651 throw new Error("Attempt to auto-create Appointment.end"); 1652 else if (Configuration.doAutoCreate()) 1653 this.end = new InstantType(); // bb 1654 return this.end; 1655 } 1656 1657 public boolean hasEndElement() { 1658 return this.end != null && !this.end.isEmpty(); 1659 } 1660 1661 public boolean hasEnd() { 1662 return this.end != null && !this.end.isEmpty(); 1663 } 1664 1665 /** 1666 * @param value {@link #end} (Date/Time that the appointment is to conclude.). This is the underlying object with id, value and extensions. The accessor "getEnd" gives direct access to the value 1667 */ 1668 public Appointment setEndElement(InstantType value) { 1669 this.end = value; 1670 return this; 1671 } 1672 1673 /** 1674 * @return Date/Time that the appointment is to conclude. 1675 */ 1676 public Date getEnd() { 1677 return this.end == null ? null : this.end.getValue(); 1678 } 1679 1680 /** 1681 * @param value Date/Time that the appointment is to conclude. 1682 */ 1683 public Appointment setEnd(Date value) { 1684 if (value == null) 1685 this.end = null; 1686 else { 1687 if (this.end == null) 1688 this.end = new InstantType(); 1689 this.end.setValue(value); 1690 } 1691 return this; 1692 } 1693 1694 /** 1695 * @return {@link #minutesDuration} (Number of minutes that the appointment is to take. This can be less than the duration between the start and end times (where actual time of appointment is only an estimate or is a planned appointment request).). This is the underlying object with id, value and extensions. The accessor "getMinutesDuration" gives direct access to the value 1696 */ 1697 public PositiveIntType getMinutesDurationElement() { 1698 if (this.minutesDuration == null) 1699 if (Configuration.errorOnAutoCreate()) 1700 throw new Error("Attempt to auto-create Appointment.minutesDuration"); 1701 else if (Configuration.doAutoCreate()) 1702 this.minutesDuration = new PositiveIntType(); // bb 1703 return this.minutesDuration; 1704 } 1705 1706 public boolean hasMinutesDurationElement() { 1707 return this.minutesDuration != null && !this.minutesDuration.isEmpty(); 1708 } 1709 1710 public boolean hasMinutesDuration() { 1711 return this.minutesDuration != null && !this.minutesDuration.isEmpty(); 1712 } 1713 1714 /** 1715 * @param value {@link #minutesDuration} (Number of minutes that the appointment is to take. This can be less than the duration between the start and end times (where actual time of appointment is only an estimate or is a planned appointment request).). This is the underlying object with id, value and extensions. The accessor "getMinutesDuration" gives direct access to the value 1716 */ 1717 public Appointment setMinutesDurationElement(PositiveIntType value) { 1718 this.minutesDuration = value; 1719 return this; 1720 } 1721 1722 /** 1723 * @return Number of minutes that the appointment is to take. This can be less than the duration between the start and end times (where actual time of appointment is only an estimate or is a planned appointment request). 1724 */ 1725 public int getMinutesDuration() { 1726 return this.minutesDuration == null || this.minutesDuration.isEmpty() ? 0 : this.minutesDuration.getValue(); 1727 } 1728 1729 /** 1730 * @param value Number of minutes that the appointment is to take. This can be less than the duration between the start and end times (where actual time of appointment is only an estimate or is a planned appointment request). 1731 */ 1732 public Appointment setMinutesDuration(int value) { 1733 if (this.minutesDuration == null) 1734 this.minutesDuration = new PositiveIntType(); 1735 this.minutesDuration.setValue(value); 1736 return this; 1737 } 1738 1739 /** 1740 * @return {@link #slot} (The slots from the participants' schedules that will be filled by the appointment.) 1741 */ 1742 public List<Reference> getSlot() { 1743 if (this.slot == null) 1744 this.slot = new ArrayList<Reference>(); 1745 return this.slot; 1746 } 1747 1748 /** 1749 * @return Returns a reference to <code>this</code> for easy method chaining 1750 */ 1751 public Appointment setSlot(List<Reference> theSlot) { 1752 this.slot = theSlot; 1753 return this; 1754 } 1755 1756 public boolean hasSlot() { 1757 if (this.slot == null) 1758 return false; 1759 for (Reference item : this.slot) 1760 if (!item.isEmpty()) 1761 return true; 1762 return false; 1763 } 1764 1765 public Reference addSlot() { //3 1766 Reference t = new Reference(); 1767 if (this.slot == null) 1768 this.slot = new ArrayList<Reference>(); 1769 this.slot.add(t); 1770 return t; 1771 } 1772 1773 public Appointment addSlot(Reference t) { //3 1774 if (t == null) 1775 return this; 1776 if (this.slot == null) 1777 this.slot = new ArrayList<Reference>(); 1778 this.slot.add(t); 1779 return this; 1780 } 1781 1782 /** 1783 * @return The first repetition of repeating field {@link #slot}, creating it if it does not already exist 1784 */ 1785 public Reference getSlotFirstRep() { 1786 if (getSlot().isEmpty()) { 1787 addSlot(); 1788 } 1789 return getSlot().get(0); 1790 } 1791 1792 /** 1793 * @deprecated Use Reference#setResource(IBaseResource) instead 1794 */ 1795 @Deprecated 1796 public List<Slot> getSlotTarget() { 1797 if (this.slotTarget == null) 1798 this.slotTarget = new ArrayList<Slot>(); 1799 return this.slotTarget; 1800 } 1801 1802 /** 1803 * @deprecated Use Reference#setResource(IBaseResource) instead 1804 */ 1805 @Deprecated 1806 public Slot addSlotTarget() { 1807 Slot r = new Slot(); 1808 if (this.slotTarget == null) 1809 this.slotTarget = new ArrayList<Slot>(); 1810 this.slotTarget.add(r); 1811 return r; 1812 } 1813 1814 /** 1815 * @return {@link #created} (The date that this appointment was initially created. This could be different to the meta.lastModified value on the initial entry, as this could have been before the resource was created on the FHIR server, and should remain unchanged over the lifespan of the appointment.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value 1816 */ 1817 public DateTimeType getCreatedElement() { 1818 if (this.created == null) 1819 if (Configuration.errorOnAutoCreate()) 1820 throw new Error("Attempt to auto-create Appointment.created"); 1821 else if (Configuration.doAutoCreate()) 1822 this.created = new DateTimeType(); // bb 1823 return this.created; 1824 } 1825 1826 public boolean hasCreatedElement() { 1827 return this.created != null && !this.created.isEmpty(); 1828 } 1829 1830 public boolean hasCreated() { 1831 return this.created != null && !this.created.isEmpty(); 1832 } 1833 1834 /** 1835 * @param value {@link #created} (The date that this appointment was initially created. This could be different to the meta.lastModified value on the initial entry, as this could have been before the resource was created on the FHIR server, and should remain unchanged over the lifespan of the appointment.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value 1836 */ 1837 public Appointment setCreatedElement(DateTimeType value) { 1838 this.created = value; 1839 return this; 1840 } 1841 1842 /** 1843 * @return The date that this appointment was initially created. This could be different to the meta.lastModified value on the initial entry, as this could have been before the resource was created on the FHIR server, and should remain unchanged over the lifespan of the appointment. 1844 */ 1845 public Date getCreated() { 1846 return this.created == null ? null : this.created.getValue(); 1847 } 1848 1849 /** 1850 * @param value The date that this appointment was initially created. This could be different to the meta.lastModified value on the initial entry, as this could have been before the resource was created on the FHIR server, and should remain unchanged over the lifespan of the appointment. 1851 */ 1852 public Appointment setCreated(Date value) { 1853 if (value == null) 1854 this.created = null; 1855 else { 1856 if (this.created == null) 1857 this.created = new DateTimeType(); 1858 this.created.setValue(value); 1859 } 1860 return this; 1861 } 1862 1863 /** 1864 * @return {@link #comment} (Additional comments about the appointment.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value 1865 */ 1866 public StringType getCommentElement() { 1867 if (this.comment == null) 1868 if (Configuration.errorOnAutoCreate()) 1869 throw new Error("Attempt to auto-create Appointment.comment"); 1870 else if (Configuration.doAutoCreate()) 1871 this.comment = new StringType(); // bb 1872 return this.comment; 1873 } 1874 1875 public boolean hasCommentElement() { 1876 return this.comment != null && !this.comment.isEmpty(); 1877 } 1878 1879 public boolean hasComment() { 1880 return this.comment != null && !this.comment.isEmpty(); 1881 } 1882 1883 /** 1884 * @param value {@link #comment} (Additional comments about the appointment.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value 1885 */ 1886 public Appointment setCommentElement(StringType value) { 1887 this.comment = value; 1888 return this; 1889 } 1890 1891 /** 1892 * @return Additional comments about the appointment. 1893 */ 1894 public String getComment() { 1895 return this.comment == null ? null : this.comment.getValue(); 1896 } 1897 1898 /** 1899 * @param value Additional comments about the appointment. 1900 */ 1901 public Appointment setComment(String value) { 1902 if (Utilities.noString(value)) 1903 this.comment = null; 1904 else { 1905 if (this.comment == null) 1906 this.comment = new StringType(); 1907 this.comment.setValue(value); 1908 } 1909 return this; 1910 } 1911 1912 /** 1913 * @return {@link #incomingReferral} (The referral request this appointment is allocated to assess (incoming referral).) 1914 */ 1915 public List<Reference> getIncomingReferral() { 1916 if (this.incomingReferral == null) 1917 this.incomingReferral = new ArrayList<Reference>(); 1918 return this.incomingReferral; 1919 } 1920 1921 /** 1922 * @return Returns a reference to <code>this</code> for easy method chaining 1923 */ 1924 public Appointment setIncomingReferral(List<Reference> theIncomingReferral) { 1925 this.incomingReferral = theIncomingReferral; 1926 return this; 1927 } 1928 1929 public boolean hasIncomingReferral() { 1930 if (this.incomingReferral == null) 1931 return false; 1932 for (Reference item : this.incomingReferral) 1933 if (!item.isEmpty()) 1934 return true; 1935 return false; 1936 } 1937 1938 public Reference addIncomingReferral() { //3 1939 Reference t = new Reference(); 1940 if (this.incomingReferral == null) 1941 this.incomingReferral = new ArrayList<Reference>(); 1942 this.incomingReferral.add(t); 1943 return t; 1944 } 1945 1946 public Appointment addIncomingReferral(Reference t) { //3 1947 if (t == null) 1948 return this; 1949 if (this.incomingReferral == null) 1950 this.incomingReferral = new ArrayList<Reference>(); 1951 this.incomingReferral.add(t); 1952 return this; 1953 } 1954 1955 /** 1956 * @return The first repetition of repeating field {@link #incomingReferral}, creating it if it does not already exist 1957 */ 1958 public Reference getIncomingReferralFirstRep() { 1959 if (getIncomingReferral().isEmpty()) { 1960 addIncomingReferral(); 1961 } 1962 return getIncomingReferral().get(0); 1963 } 1964 1965 /** 1966 * @deprecated Use Reference#setResource(IBaseResource) instead 1967 */ 1968 @Deprecated 1969 public List<ReferralRequest> getIncomingReferralTarget() { 1970 if (this.incomingReferralTarget == null) 1971 this.incomingReferralTarget = new ArrayList<ReferralRequest>(); 1972 return this.incomingReferralTarget; 1973 } 1974 1975 /** 1976 * @deprecated Use Reference#setResource(IBaseResource) instead 1977 */ 1978 @Deprecated 1979 public ReferralRequest addIncomingReferralTarget() { 1980 ReferralRequest r = new ReferralRequest(); 1981 if (this.incomingReferralTarget == null) 1982 this.incomingReferralTarget = new ArrayList<ReferralRequest>(); 1983 this.incomingReferralTarget.add(r); 1984 return r; 1985 } 1986 1987 /** 1988 * @return {@link #participant} (List of participants involved in the appointment.) 1989 */ 1990 public List<AppointmentParticipantComponent> getParticipant() { 1991 if (this.participant == null) 1992 this.participant = new ArrayList<AppointmentParticipantComponent>(); 1993 return this.participant; 1994 } 1995 1996 /** 1997 * @return Returns a reference to <code>this</code> for easy method chaining 1998 */ 1999 public Appointment setParticipant(List<AppointmentParticipantComponent> theParticipant) { 2000 this.participant = theParticipant; 2001 return this; 2002 } 2003 2004 public boolean hasParticipant() { 2005 if (this.participant == null) 2006 return false; 2007 for (AppointmentParticipantComponent item : this.participant) 2008 if (!item.isEmpty()) 2009 return true; 2010 return false; 2011 } 2012 2013 public AppointmentParticipantComponent addParticipant() { //3 2014 AppointmentParticipantComponent t = new AppointmentParticipantComponent(); 2015 if (this.participant == null) 2016 this.participant = new ArrayList<AppointmentParticipantComponent>(); 2017 this.participant.add(t); 2018 return t; 2019 } 2020 2021 public Appointment addParticipant(AppointmentParticipantComponent t) { //3 2022 if (t == null) 2023 return this; 2024 if (this.participant == null) 2025 this.participant = new ArrayList<AppointmentParticipantComponent>(); 2026 this.participant.add(t); 2027 return this; 2028 } 2029 2030 /** 2031 * @return The first repetition of repeating field {@link #participant}, creating it if it does not already exist 2032 */ 2033 public AppointmentParticipantComponent getParticipantFirstRep() { 2034 if (getParticipant().isEmpty()) { 2035 addParticipant(); 2036 } 2037 return getParticipant().get(0); 2038 } 2039 2040 /** 2041 * @return {@link #requestedPeriod} (A set of date ranges (potentially including times) that the appointment is preferred to be scheduled within. When using these values, the minutes duration should be provided to indicate the length of the appointment to fill and populate the start/end times for the actual allocated time.) 2042 */ 2043 public List<Period> getRequestedPeriod() { 2044 if (this.requestedPeriod == null) 2045 this.requestedPeriod = new ArrayList<Period>(); 2046 return this.requestedPeriod; 2047 } 2048 2049 /** 2050 * @return Returns a reference to <code>this</code> for easy method chaining 2051 */ 2052 public Appointment setRequestedPeriod(List<Period> theRequestedPeriod) { 2053 this.requestedPeriod = theRequestedPeriod; 2054 return this; 2055 } 2056 2057 public boolean hasRequestedPeriod() { 2058 if (this.requestedPeriod == null) 2059 return false; 2060 for (Period item : this.requestedPeriod) 2061 if (!item.isEmpty()) 2062 return true; 2063 return false; 2064 } 2065 2066 public Period addRequestedPeriod() { //3 2067 Period t = new Period(); 2068 if (this.requestedPeriod == null) 2069 this.requestedPeriod = new ArrayList<Period>(); 2070 this.requestedPeriod.add(t); 2071 return t; 2072 } 2073 2074 public Appointment addRequestedPeriod(Period t) { //3 2075 if (t == null) 2076 return this; 2077 if (this.requestedPeriod == null) 2078 this.requestedPeriod = new ArrayList<Period>(); 2079 this.requestedPeriod.add(t); 2080 return this; 2081 } 2082 2083 /** 2084 * @return The first repetition of repeating field {@link #requestedPeriod}, creating it if it does not already exist 2085 */ 2086 public Period getRequestedPeriodFirstRep() { 2087 if (getRequestedPeriod().isEmpty()) { 2088 addRequestedPeriod(); 2089 } 2090 return getRequestedPeriod().get(0); 2091 } 2092 2093 protected void listChildren(List<Property> children) { 2094 super.listChildren(children); 2095 children.add(new Property("identifier", "Identifier", "This records identifiers associated with this appointment concern that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).", 0, java.lang.Integer.MAX_VALUE, identifier)); 2096 children.add(new Property("status", "code", "The overall status of the Appointment. Each of the participants has their own participation status which indicates their involvement in the process, however this status indicates the shared status.", 0, 1, status)); 2097 children.add(new Property("serviceCategory", "CodeableConcept", "A broad categorisation of the service that is to be performed during this appointment.", 0, 1, serviceCategory)); 2098 children.add(new Property("serviceType", "CodeableConcept", "The specific service that is to be performed during this appointment.", 0, java.lang.Integer.MAX_VALUE, serviceType)); 2099 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)); 2100 children.add(new Property("appointmentType", "CodeableConcept", "The style of appointment or patient that has been booked in the slot (not service type).", 0, 1, appointmentType)); 2101 children.add(new Property("reason", "CodeableConcept", "The reason that this appointment is being scheduled. This is more clinical than administrative.", 0, java.lang.Integer.MAX_VALUE, reason)); 2102 children.add(new Property("indication", "Reference(Condition|Procedure)", "Reason the appointment has been scheduled to take place, as specified using information from another resource. When the patient arrives and the encounter begins it may be used as the admission diagnosis. The indication will typically be a Condition (with other resources referenced in the evidence.detail), or a Procedure.", 0, java.lang.Integer.MAX_VALUE, indication)); 2103 children.add(new Property("priority", "unsignedInt", "The priority of the appointment. Can be used to make informed decisions if needing to re-prioritize appointments. (The iCal Standard specifies 0 as undefined, 1 as highest, 9 as lowest priority).", 0, 1, priority)); 2104 children.add(new Property("description", "string", "The brief description of the appointment as would be shown on a subject line in a meeting request, or appointment list. Detailed or expanded information should be put in the comment field.", 0, 1, description)); 2105 children.add(new Property("supportingInformation", "Reference(Any)", "Additional information to support the appointment provided when making the appointment.", 0, java.lang.Integer.MAX_VALUE, supportingInformation)); 2106 children.add(new Property("start", "instant", "Date/Time that the appointment is to take place.", 0, 1, start)); 2107 children.add(new Property("end", "instant", "Date/Time that the appointment is to conclude.", 0, 1, end)); 2108 children.add(new Property("minutesDuration", "positiveInt", "Number of minutes that the appointment is to take. This can be less than the duration between the start and end times (where actual time of appointment is only an estimate or is a planned appointment request).", 0, 1, minutesDuration)); 2109 children.add(new Property("slot", "Reference(Slot)", "The slots from the participants' schedules that will be filled by the appointment.", 0, java.lang.Integer.MAX_VALUE, slot)); 2110 children.add(new Property("created", "dateTime", "The date that this appointment was initially created. This could be different to the meta.lastModified value on the initial entry, as this could have been before the resource was created on the FHIR server, and should remain unchanged over the lifespan of the appointment.", 0, 1, created)); 2111 children.add(new Property("comment", "string", "Additional comments about the appointment.", 0, 1, comment)); 2112 children.add(new Property("incomingReferral", "Reference(ReferralRequest)", "The referral request this appointment is allocated to assess (incoming referral).", 0, java.lang.Integer.MAX_VALUE, incomingReferral)); 2113 children.add(new Property("participant", "", "List of participants involved in the appointment.", 0, java.lang.Integer.MAX_VALUE, participant)); 2114 children.add(new Property("requestedPeriod", "Period", "A set of date ranges (potentially including times) that the appointment is preferred to be scheduled within. When using these values, the minutes duration should be provided to indicate the length of the appointment to fill and populate the start/end times for the actual allocated time.", 0, java.lang.Integer.MAX_VALUE, requestedPeriod)); 2115 } 2116 2117 @Override 2118 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 2119 switch (_hash) { 2120 case -1618432855: /*identifier*/ return new Property("identifier", "Identifier", "This records identifiers associated with this appointment concern that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).", 0, java.lang.Integer.MAX_VALUE, identifier); 2121 case -892481550: /*status*/ return new Property("status", "code", "The overall status of the Appointment. Each of the participants has their own participation status which indicates their involvement in the process, however this status indicates the shared status.", 0, 1, status); 2122 case 1281188563: /*serviceCategory*/ return new Property("serviceCategory", "CodeableConcept", "A broad categorisation of the service that is to be performed during this appointment.", 0, 1, serviceCategory); 2123 case -1928370289: /*serviceType*/ return new Property("serviceType", "CodeableConcept", "The specific service that is to be performed during this appointment.", 0, java.lang.Integer.MAX_VALUE, serviceType); 2124 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); 2125 case -1596426375: /*appointmentType*/ return new Property("appointmentType", "CodeableConcept", "The style of appointment or patient that has been booked in the slot (not service type).", 0, 1, appointmentType); 2126 case -934964668: /*reason*/ return new Property("reason", "CodeableConcept", "The reason that this appointment is being scheduled. This is more clinical than administrative.", 0, java.lang.Integer.MAX_VALUE, reason); 2127 case -597168804: /*indication*/ return new Property("indication", "Reference(Condition|Procedure)", "Reason the appointment has been scheduled to take place, as specified using information from another resource. When the patient arrives and the encounter begins it may be used as the admission diagnosis. The indication will typically be a Condition (with other resources referenced in the evidence.detail), or a Procedure.", 0, java.lang.Integer.MAX_VALUE, indication); 2128 case -1165461084: /*priority*/ return new Property("priority", "unsignedInt", "The priority of the appointment. Can be used to make informed decisions if needing to re-prioritize appointments. (The iCal Standard specifies 0 as undefined, 1 as highest, 9 as lowest priority).", 0, 1, priority); 2129 case -1724546052: /*description*/ return new Property("description", "string", "The brief description of the appointment as would be shown on a subject line in a meeting request, or appointment list. Detailed or expanded information should be put in the comment field.", 0, 1, description); 2130 case -1248768647: /*supportingInformation*/ return new Property("supportingInformation", "Reference(Any)", "Additional information to support the appointment provided when making the appointment.", 0, java.lang.Integer.MAX_VALUE, supportingInformation); 2131 case 109757538: /*start*/ return new Property("start", "instant", "Date/Time that the appointment is to take place.", 0, 1, start); 2132 case 100571: /*end*/ return new Property("end", "instant", "Date/Time that the appointment is to conclude.", 0, 1, end); 2133 case -413630573: /*minutesDuration*/ return new Property("minutesDuration", "positiveInt", "Number of minutes that the appointment is to take. This can be less than the duration between the start and end times (where actual time of appointment is only an estimate or is a planned appointment request).", 0, 1, minutesDuration); 2134 case 3533310: /*slot*/ return new Property("slot", "Reference(Slot)", "The slots from the participants' schedules that will be filled by the appointment.", 0, java.lang.Integer.MAX_VALUE, slot); 2135 case 1028554472: /*created*/ return new Property("created", "dateTime", "The date that this appointment was initially created. This could be different to the meta.lastModified value on the initial entry, as this could have been before the resource was created on the FHIR server, and should remain unchanged over the lifespan of the appointment.", 0, 1, created); 2136 case 950398559: /*comment*/ return new Property("comment", "string", "Additional comments about the appointment.", 0, 1, comment); 2137 case -1258204701: /*incomingReferral*/ return new Property("incomingReferral", "Reference(ReferralRequest)", "The referral request this appointment is allocated to assess (incoming referral).", 0, java.lang.Integer.MAX_VALUE, incomingReferral); 2138 case 767422259: /*participant*/ return new Property("participant", "", "List of participants involved in the appointment.", 0, java.lang.Integer.MAX_VALUE, participant); 2139 case -897241393: /*requestedPeriod*/ return new Property("requestedPeriod", "Period", "A set of date ranges (potentially including times) that the appointment is preferred to be scheduled within. When using these values, the minutes duration should be provided to indicate the length of the appointment to fill and populate the start/end times for the actual allocated time.", 0, java.lang.Integer.MAX_VALUE, requestedPeriod); 2140 default: return super.getNamedProperty(_hash, _name, _checkValid); 2141 } 2142 2143 } 2144 2145 @Override 2146 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2147 switch (hash) { 2148 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 2149 case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<AppointmentStatus> 2150 case 1281188563: /*serviceCategory*/ return this.serviceCategory == null ? new Base[0] : new Base[] {this.serviceCategory}; // CodeableConcept 2151 case -1928370289: /*serviceType*/ return this.serviceType == null ? new Base[0] : this.serviceType.toArray(new Base[this.serviceType.size()]); // CodeableConcept 2152 case -1694759682: /*specialty*/ return this.specialty == null ? new Base[0] : this.specialty.toArray(new Base[this.specialty.size()]); // CodeableConcept 2153 case -1596426375: /*appointmentType*/ return this.appointmentType == null ? new Base[0] : new Base[] {this.appointmentType}; // CodeableConcept 2154 case -934964668: /*reason*/ return this.reason == null ? new Base[0] : this.reason.toArray(new Base[this.reason.size()]); // CodeableConcept 2155 case -597168804: /*indication*/ return this.indication == null ? new Base[0] : this.indication.toArray(new Base[this.indication.size()]); // Reference 2156 case -1165461084: /*priority*/ return this.priority == null ? new Base[0] : new Base[] {this.priority}; // UnsignedIntType 2157 case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // StringType 2158 case -1248768647: /*supportingInformation*/ return this.supportingInformation == null ? new Base[0] : this.supportingInformation.toArray(new Base[this.supportingInformation.size()]); // Reference 2159 case 109757538: /*start*/ return this.start == null ? new Base[0] : new Base[] {this.start}; // InstantType 2160 case 100571: /*end*/ return this.end == null ? new Base[0] : new Base[] {this.end}; // InstantType 2161 case -413630573: /*minutesDuration*/ return this.minutesDuration == null ? new Base[0] : new Base[] {this.minutesDuration}; // PositiveIntType 2162 case 3533310: /*slot*/ return this.slot == null ? new Base[0] : this.slot.toArray(new Base[this.slot.size()]); // Reference 2163 case 1028554472: /*created*/ return this.created == null ? new Base[0] : new Base[] {this.created}; // DateTimeType 2164 case 950398559: /*comment*/ return this.comment == null ? new Base[0] : new Base[] {this.comment}; // StringType 2165 case -1258204701: /*incomingReferral*/ return this.incomingReferral == null ? new Base[0] : this.incomingReferral.toArray(new Base[this.incomingReferral.size()]); // Reference 2166 case 767422259: /*participant*/ return this.participant == null ? new Base[0] : this.participant.toArray(new Base[this.participant.size()]); // AppointmentParticipantComponent 2167 case -897241393: /*requestedPeriod*/ return this.requestedPeriod == null ? new Base[0] : this.requestedPeriod.toArray(new Base[this.requestedPeriod.size()]); // Period 2168 default: return super.getProperty(hash, name, checkValid); 2169 } 2170 2171 } 2172 2173 @Override 2174 public Base setProperty(int hash, String name, Base value) throws FHIRException { 2175 switch (hash) { 2176 case -1618432855: // identifier 2177 this.getIdentifier().add(castToIdentifier(value)); // Identifier 2178 return value; 2179 case -892481550: // status 2180 value = new AppointmentStatusEnumFactory().fromType(castToCode(value)); 2181 this.status = (Enumeration) value; // Enumeration<AppointmentStatus> 2182 return value; 2183 case 1281188563: // serviceCategory 2184 this.serviceCategory = castToCodeableConcept(value); // CodeableConcept 2185 return value; 2186 case -1928370289: // serviceType 2187 this.getServiceType().add(castToCodeableConcept(value)); // CodeableConcept 2188 return value; 2189 case -1694759682: // specialty 2190 this.getSpecialty().add(castToCodeableConcept(value)); // CodeableConcept 2191 return value; 2192 case -1596426375: // appointmentType 2193 this.appointmentType = castToCodeableConcept(value); // CodeableConcept 2194 return value; 2195 case -934964668: // reason 2196 this.getReason().add(castToCodeableConcept(value)); // CodeableConcept 2197 return value; 2198 case -597168804: // indication 2199 this.getIndication().add(castToReference(value)); // Reference 2200 return value; 2201 case -1165461084: // priority 2202 this.priority = castToUnsignedInt(value); // UnsignedIntType 2203 return value; 2204 case -1724546052: // description 2205 this.description = castToString(value); // StringType 2206 return value; 2207 case -1248768647: // supportingInformation 2208 this.getSupportingInformation().add(castToReference(value)); // Reference 2209 return value; 2210 case 109757538: // start 2211 this.start = castToInstant(value); // InstantType 2212 return value; 2213 case 100571: // end 2214 this.end = castToInstant(value); // InstantType 2215 return value; 2216 case -413630573: // minutesDuration 2217 this.minutesDuration = castToPositiveInt(value); // PositiveIntType 2218 return value; 2219 case 3533310: // slot 2220 this.getSlot().add(castToReference(value)); // Reference 2221 return value; 2222 case 1028554472: // created 2223 this.created = castToDateTime(value); // DateTimeType 2224 return value; 2225 case 950398559: // comment 2226 this.comment = castToString(value); // StringType 2227 return value; 2228 case -1258204701: // incomingReferral 2229 this.getIncomingReferral().add(castToReference(value)); // Reference 2230 return value; 2231 case 767422259: // participant 2232 this.getParticipant().add((AppointmentParticipantComponent) value); // AppointmentParticipantComponent 2233 return value; 2234 case -897241393: // requestedPeriod 2235 this.getRequestedPeriod().add(castToPeriod(value)); // Period 2236 return value; 2237 default: return super.setProperty(hash, name, value); 2238 } 2239 2240 } 2241 2242 @Override 2243 public Base setProperty(String name, Base value) throws FHIRException { 2244 if (name.equals("identifier")) { 2245 this.getIdentifier().add(castToIdentifier(value)); 2246 } else if (name.equals("status")) { 2247 value = new AppointmentStatusEnumFactory().fromType(castToCode(value)); 2248 this.status = (Enumeration) value; // Enumeration<AppointmentStatus> 2249 } else if (name.equals("serviceCategory")) { 2250 this.serviceCategory = castToCodeableConcept(value); // CodeableConcept 2251 } else if (name.equals("serviceType")) { 2252 this.getServiceType().add(castToCodeableConcept(value)); 2253 } else if (name.equals("specialty")) { 2254 this.getSpecialty().add(castToCodeableConcept(value)); 2255 } else if (name.equals("appointmentType")) { 2256 this.appointmentType = castToCodeableConcept(value); // CodeableConcept 2257 } else if (name.equals("reason")) { 2258 this.getReason().add(castToCodeableConcept(value)); 2259 } else if (name.equals("indication")) { 2260 this.getIndication().add(castToReference(value)); 2261 } else if (name.equals("priority")) { 2262 this.priority = castToUnsignedInt(value); // UnsignedIntType 2263 } else if (name.equals("description")) { 2264 this.description = castToString(value); // StringType 2265 } else if (name.equals("supportingInformation")) { 2266 this.getSupportingInformation().add(castToReference(value)); 2267 } else if (name.equals("start")) { 2268 this.start = castToInstant(value); // InstantType 2269 } else if (name.equals("end")) { 2270 this.end = castToInstant(value); // InstantType 2271 } else if (name.equals("minutesDuration")) { 2272 this.minutesDuration = castToPositiveInt(value); // PositiveIntType 2273 } else if (name.equals("slot")) { 2274 this.getSlot().add(castToReference(value)); 2275 } else if (name.equals("created")) { 2276 this.created = castToDateTime(value); // DateTimeType 2277 } else if (name.equals("comment")) { 2278 this.comment = castToString(value); // StringType 2279 } else if (name.equals("incomingReferral")) { 2280 this.getIncomingReferral().add(castToReference(value)); 2281 } else if (name.equals("participant")) { 2282 this.getParticipant().add((AppointmentParticipantComponent) value); 2283 } else if (name.equals("requestedPeriod")) { 2284 this.getRequestedPeriod().add(castToPeriod(value)); 2285 } else 2286 return super.setProperty(name, value); 2287 return value; 2288 } 2289 2290 @Override 2291 public Base makeProperty(int hash, String name) throws FHIRException { 2292 switch (hash) { 2293 case -1618432855: return addIdentifier(); 2294 case -892481550: return getStatusElement(); 2295 case 1281188563: return getServiceCategory(); 2296 case -1928370289: return addServiceType(); 2297 case -1694759682: return addSpecialty(); 2298 case -1596426375: return getAppointmentType(); 2299 case -934964668: return addReason(); 2300 case -597168804: return addIndication(); 2301 case -1165461084: return getPriorityElement(); 2302 case -1724546052: return getDescriptionElement(); 2303 case -1248768647: return addSupportingInformation(); 2304 case 109757538: return getStartElement(); 2305 case 100571: return getEndElement(); 2306 case -413630573: return getMinutesDurationElement(); 2307 case 3533310: return addSlot(); 2308 case 1028554472: return getCreatedElement(); 2309 case 950398559: return getCommentElement(); 2310 case -1258204701: return addIncomingReferral(); 2311 case 767422259: return addParticipant(); 2312 case -897241393: return addRequestedPeriod(); 2313 default: return super.makeProperty(hash, name); 2314 } 2315 2316 } 2317 2318 @Override 2319 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2320 switch (hash) { 2321 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 2322 case -892481550: /*status*/ return new String[] {"code"}; 2323 case 1281188563: /*serviceCategory*/ return new String[] {"CodeableConcept"}; 2324 case -1928370289: /*serviceType*/ return new String[] {"CodeableConcept"}; 2325 case -1694759682: /*specialty*/ return new String[] {"CodeableConcept"}; 2326 case -1596426375: /*appointmentType*/ return new String[] {"CodeableConcept"}; 2327 case -934964668: /*reason*/ return new String[] {"CodeableConcept"}; 2328 case -597168804: /*indication*/ return new String[] {"Reference"}; 2329 case -1165461084: /*priority*/ return new String[] {"unsignedInt"}; 2330 case -1724546052: /*description*/ return new String[] {"string"}; 2331 case -1248768647: /*supportingInformation*/ return new String[] {"Reference"}; 2332 case 109757538: /*start*/ return new String[] {"instant"}; 2333 case 100571: /*end*/ return new String[] {"instant"}; 2334 case -413630573: /*minutesDuration*/ return new String[] {"positiveInt"}; 2335 case 3533310: /*slot*/ return new String[] {"Reference"}; 2336 case 1028554472: /*created*/ return new String[] {"dateTime"}; 2337 case 950398559: /*comment*/ return new String[] {"string"}; 2338 case -1258204701: /*incomingReferral*/ return new String[] {"Reference"}; 2339 case 767422259: /*participant*/ return new String[] {}; 2340 case -897241393: /*requestedPeriod*/ return new String[] {"Period"}; 2341 default: return super.getTypesForProperty(hash, name); 2342 } 2343 2344 } 2345 2346 @Override 2347 public Base addChild(String name) throws FHIRException { 2348 if (name.equals("identifier")) { 2349 return addIdentifier(); 2350 } 2351 else if (name.equals("status")) { 2352 throw new FHIRException("Cannot call addChild on a singleton property Appointment.status"); 2353 } 2354 else if (name.equals("serviceCategory")) { 2355 this.serviceCategory = new CodeableConcept(); 2356 return this.serviceCategory; 2357 } 2358 else if (name.equals("serviceType")) { 2359 return addServiceType(); 2360 } 2361 else if (name.equals("specialty")) { 2362 return addSpecialty(); 2363 } 2364 else if (name.equals("appointmentType")) { 2365 this.appointmentType = new CodeableConcept(); 2366 return this.appointmentType; 2367 } 2368 else if (name.equals("reason")) { 2369 return addReason(); 2370 } 2371 else if (name.equals("indication")) { 2372 return addIndication(); 2373 } 2374 else if (name.equals("priority")) { 2375 throw new FHIRException("Cannot call addChild on a singleton property Appointment.priority"); 2376 } 2377 else if (name.equals("description")) { 2378 throw new FHIRException("Cannot call addChild on a singleton property Appointment.description"); 2379 } 2380 else if (name.equals("supportingInformation")) { 2381 return addSupportingInformation(); 2382 } 2383 else if (name.equals("start")) { 2384 throw new FHIRException("Cannot call addChild on a singleton property Appointment.start"); 2385 } 2386 else if (name.equals("end")) { 2387 throw new FHIRException("Cannot call addChild on a singleton property Appointment.end"); 2388 } 2389 else if (name.equals("minutesDuration")) { 2390 throw new FHIRException("Cannot call addChild on a singleton property Appointment.minutesDuration"); 2391 } 2392 else if (name.equals("slot")) { 2393 return addSlot(); 2394 } 2395 else if (name.equals("created")) { 2396 throw new FHIRException("Cannot call addChild on a singleton property Appointment.created"); 2397 } 2398 else if (name.equals("comment")) { 2399 throw new FHIRException("Cannot call addChild on a singleton property Appointment.comment"); 2400 } 2401 else if (name.equals("incomingReferral")) { 2402 return addIncomingReferral(); 2403 } 2404 else if (name.equals("participant")) { 2405 return addParticipant(); 2406 } 2407 else if (name.equals("requestedPeriod")) { 2408 return addRequestedPeriod(); 2409 } 2410 else 2411 return super.addChild(name); 2412 } 2413 2414 public String fhirType() { 2415 return "Appointment"; 2416 2417 } 2418 2419 public Appointment copy() { 2420 Appointment dst = new Appointment(); 2421 copyValues(dst); 2422 if (identifier != null) { 2423 dst.identifier = new ArrayList<Identifier>(); 2424 for (Identifier i : identifier) 2425 dst.identifier.add(i.copy()); 2426 }; 2427 dst.status = status == null ? null : status.copy(); 2428 dst.serviceCategory = serviceCategory == null ? null : serviceCategory.copy(); 2429 if (serviceType != null) { 2430 dst.serviceType = new ArrayList<CodeableConcept>(); 2431 for (CodeableConcept i : serviceType) 2432 dst.serviceType.add(i.copy()); 2433 }; 2434 if (specialty != null) { 2435 dst.specialty = new ArrayList<CodeableConcept>(); 2436 for (CodeableConcept i : specialty) 2437 dst.specialty.add(i.copy()); 2438 }; 2439 dst.appointmentType = appointmentType == null ? null : appointmentType.copy(); 2440 if (reason != null) { 2441 dst.reason = new ArrayList<CodeableConcept>(); 2442 for (CodeableConcept i : reason) 2443 dst.reason.add(i.copy()); 2444 }; 2445 if (indication != null) { 2446 dst.indication = new ArrayList<Reference>(); 2447 for (Reference i : indication) 2448 dst.indication.add(i.copy()); 2449 }; 2450 dst.priority = priority == null ? null : priority.copy(); 2451 dst.description = description == null ? null : description.copy(); 2452 if (supportingInformation != null) { 2453 dst.supportingInformation = new ArrayList<Reference>(); 2454 for (Reference i : supportingInformation) 2455 dst.supportingInformation.add(i.copy()); 2456 }; 2457 dst.start = start == null ? null : start.copy(); 2458 dst.end = end == null ? null : end.copy(); 2459 dst.minutesDuration = minutesDuration == null ? null : minutesDuration.copy(); 2460 if (slot != null) { 2461 dst.slot = new ArrayList<Reference>(); 2462 for (Reference i : slot) 2463 dst.slot.add(i.copy()); 2464 }; 2465 dst.created = created == null ? null : created.copy(); 2466 dst.comment = comment == null ? null : comment.copy(); 2467 if (incomingReferral != null) { 2468 dst.incomingReferral = new ArrayList<Reference>(); 2469 for (Reference i : incomingReferral) 2470 dst.incomingReferral.add(i.copy()); 2471 }; 2472 if (participant != null) { 2473 dst.participant = new ArrayList<AppointmentParticipantComponent>(); 2474 for (AppointmentParticipantComponent i : participant) 2475 dst.participant.add(i.copy()); 2476 }; 2477 if (requestedPeriod != null) { 2478 dst.requestedPeriod = new ArrayList<Period>(); 2479 for (Period i : requestedPeriod) 2480 dst.requestedPeriod.add(i.copy()); 2481 }; 2482 return dst; 2483 } 2484 2485 protected Appointment typedCopy() { 2486 return copy(); 2487 } 2488 2489 @Override 2490 public boolean equalsDeep(Base other_) { 2491 if (!super.equalsDeep(other_)) 2492 return false; 2493 if (!(other_ instanceof Appointment)) 2494 return false; 2495 Appointment o = (Appointment) other_; 2496 return compareDeep(identifier, o.identifier, true) && compareDeep(status, o.status, true) && compareDeep(serviceCategory, o.serviceCategory, true) 2497 && compareDeep(serviceType, o.serviceType, true) && compareDeep(specialty, o.specialty, true) && compareDeep(appointmentType, o.appointmentType, true) 2498 && compareDeep(reason, o.reason, true) && compareDeep(indication, o.indication, true) && compareDeep(priority, o.priority, true) 2499 && compareDeep(description, o.description, true) && compareDeep(supportingInformation, o.supportingInformation, true) 2500 && compareDeep(start, o.start, true) && compareDeep(end, o.end, true) && compareDeep(minutesDuration, o.minutesDuration, true) 2501 && compareDeep(slot, o.slot, true) && compareDeep(created, o.created, true) && compareDeep(comment, o.comment, true) 2502 && compareDeep(incomingReferral, o.incomingReferral, true) && compareDeep(participant, o.participant, true) 2503 && compareDeep(requestedPeriod, o.requestedPeriod, true); 2504 } 2505 2506 @Override 2507 public boolean equalsShallow(Base other_) { 2508 if (!super.equalsShallow(other_)) 2509 return false; 2510 if (!(other_ instanceof Appointment)) 2511 return false; 2512 Appointment o = (Appointment) other_; 2513 return compareValues(status, o.status, true) && compareValues(priority, o.priority, true) && compareValues(description, o.description, true) 2514 && compareValues(start, o.start, true) && compareValues(end, o.end, true) && compareValues(minutesDuration, o.minutesDuration, true) 2515 && compareValues(created, o.created, true) && compareValues(comment, o.comment, true); 2516 } 2517 2518 public boolean isEmpty() { 2519 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, status, serviceCategory 2520 , serviceType, specialty, appointmentType, reason, indication, priority, description 2521 , supportingInformation, start, end, minutesDuration, slot, created, comment, incomingReferral 2522 , participant, requestedPeriod); 2523 } 2524 2525 @Override 2526 public ResourceType getResourceType() { 2527 return ResourceType.Appointment; 2528 } 2529 2530 /** 2531 * Search parameter: <b>date</b> 2532 * <p> 2533 * Description: <b>Appointment date/time.</b><br> 2534 * Type: <b>date</b><br> 2535 * Path: <b>Appointment.start</b><br> 2536 * </p> 2537 */ 2538 @SearchParamDefinition(name="date", path="Appointment.start", description="Appointment date/time.", type="date" ) 2539 public static final String SP_DATE = "date"; 2540 /** 2541 * <b>Fluent Client</b> search parameter constant for <b>date</b> 2542 * <p> 2543 * Description: <b>Appointment date/time.</b><br> 2544 * Type: <b>date</b><br> 2545 * Path: <b>Appointment.start</b><br> 2546 * </p> 2547 */ 2548 public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE); 2549 2550 /** 2551 * Search parameter: <b>actor</b> 2552 * <p> 2553 * Description: <b>Any one of the individuals participating in the appointment</b><br> 2554 * Type: <b>reference</b><br> 2555 * Path: <b>Appointment.participant.actor</b><br> 2556 * </p> 2557 */ 2558 @SearchParamDefinition(name="actor", path="Appointment.participant.actor", description="Any one of the individuals participating in the appointment", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Device"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Patient"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Practitioner"), @ca.uhn.fhir.model.api.annotation.Compartment(name="RelatedPerson") }, target={Device.class, HealthcareService.class, Location.class, Patient.class, Practitioner.class, RelatedPerson.class } ) 2559 public static final String SP_ACTOR = "actor"; 2560 /** 2561 * <b>Fluent Client</b> search parameter constant for <b>actor</b> 2562 * <p> 2563 * Description: <b>Any one of the individuals participating in the appointment</b><br> 2564 * Type: <b>reference</b><br> 2565 * Path: <b>Appointment.participant.actor</b><br> 2566 * </p> 2567 */ 2568 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ACTOR = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ACTOR); 2569 2570/** 2571 * Constant for fluent queries to be used to add include statements. Specifies 2572 * the path value of "<b>Appointment:actor</b>". 2573 */ 2574 public static final ca.uhn.fhir.model.api.Include INCLUDE_ACTOR = new ca.uhn.fhir.model.api.Include("Appointment:actor").toLocked(); 2575 2576 /** 2577 * Search parameter: <b>identifier</b> 2578 * <p> 2579 * Description: <b>An Identifier of the Appointment</b><br> 2580 * Type: <b>token</b><br> 2581 * Path: <b>Appointment.identifier</b><br> 2582 * </p> 2583 */ 2584 @SearchParamDefinition(name="identifier", path="Appointment.identifier", description="An Identifier of the Appointment", type="token" ) 2585 public static final String SP_IDENTIFIER = "identifier"; 2586 /** 2587 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 2588 * <p> 2589 * Description: <b>An Identifier of the Appointment</b><br> 2590 * Type: <b>token</b><br> 2591 * Path: <b>Appointment.identifier</b><br> 2592 * </p> 2593 */ 2594 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 2595 2596 /** 2597 * Search parameter: <b>practitioner</b> 2598 * <p> 2599 * Description: <b>One of the individuals of the appointment is this practitioner</b><br> 2600 * Type: <b>reference</b><br> 2601 * Path: <b>Appointment.participant.actor</b><br> 2602 * </p> 2603 */ 2604 @SearchParamDefinition(name="practitioner", path="Appointment.participant.actor", description="One of the individuals of the appointment is this practitioner", type="reference", target={Practitioner.class } ) 2605 public static final String SP_PRACTITIONER = "practitioner"; 2606 /** 2607 * <b>Fluent Client</b> search parameter constant for <b>practitioner</b> 2608 * <p> 2609 * Description: <b>One of the individuals of the appointment is this practitioner</b><br> 2610 * Type: <b>reference</b><br> 2611 * Path: <b>Appointment.participant.actor</b><br> 2612 * </p> 2613 */ 2614 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PRACTITIONER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PRACTITIONER); 2615 2616/** 2617 * Constant for fluent queries to be used to add include statements. Specifies 2618 * the path value of "<b>Appointment:practitioner</b>". 2619 */ 2620 public static final ca.uhn.fhir.model.api.Include INCLUDE_PRACTITIONER = new ca.uhn.fhir.model.api.Include("Appointment:practitioner").toLocked(); 2621 2622 /** 2623 * Search parameter: <b>incomingreferral</b> 2624 * <p> 2625 * Description: <b>The ReferralRequest provided as information to allocate to the Encounter</b><br> 2626 * Type: <b>reference</b><br> 2627 * Path: <b>Appointment.incomingReferral</b><br> 2628 * </p> 2629 */ 2630 @SearchParamDefinition(name="incomingreferral", path="Appointment.incomingReferral", description="The ReferralRequest provided as information to allocate to the Encounter", type="reference", target={ReferralRequest.class } ) 2631 public static final String SP_INCOMINGREFERRAL = "incomingreferral"; 2632 /** 2633 * <b>Fluent Client</b> search parameter constant for <b>incomingreferral</b> 2634 * <p> 2635 * Description: <b>The ReferralRequest provided as information to allocate to the Encounter</b><br> 2636 * Type: <b>reference</b><br> 2637 * Path: <b>Appointment.incomingReferral</b><br> 2638 * </p> 2639 */ 2640 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam INCOMINGREFERRAL = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_INCOMINGREFERRAL); 2641 2642/** 2643 * Constant for fluent queries to be used to add include statements. Specifies 2644 * the path value of "<b>Appointment:incomingreferral</b>". 2645 */ 2646 public static final ca.uhn.fhir.model.api.Include INCLUDE_INCOMINGREFERRAL = new ca.uhn.fhir.model.api.Include("Appointment:incomingreferral").toLocked(); 2647 2648 /** 2649 * Search parameter: <b>part-status</b> 2650 * <p> 2651 * Description: <b>The Participation status of the subject, or other participant on the appointment. Can be used to locate participants that have not responded to meeting requests.</b><br> 2652 * Type: <b>token</b><br> 2653 * Path: <b>Appointment.participant.status</b><br> 2654 * </p> 2655 */ 2656 @SearchParamDefinition(name="part-status", path="Appointment.participant.status", description="The Participation status of the subject, or other participant on the appointment. Can be used to locate participants that have not responded to meeting requests.", type="token" ) 2657 public static final String SP_PART_STATUS = "part-status"; 2658 /** 2659 * <b>Fluent Client</b> search parameter constant for <b>part-status</b> 2660 * <p> 2661 * Description: <b>The Participation status of the subject, or other participant on the appointment. Can be used to locate participants that have not responded to meeting requests.</b><br> 2662 * Type: <b>token</b><br> 2663 * Path: <b>Appointment.participant.status</b><br> 2664 * </p> 2665 */ 2666 public static final ca.uhn.fhir.rest.gclient.TokenClientParam PART_STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_PART_STATUS); 2667 2668 /** 2669 * Search parameter: <b>patient</b> 2670 * <p> 2671 * Description: <b>One of the individuals of the appointment is this patient</b><br> 2672 * Type: <b>reference</b><br> 2673 * Path: <b>Appointment.participant.actor</b><br> 2674 * </p> 2675 */ 2676 @SearchParamDefinition(name="patient", path="Appointment.participant.actor", description="One of the individuals of the appointment is this patient", type="reference", target={Patient.class } ) 2677 public static final String SP_PATIENT = "patient"; 2678 /** 2679 * <b>Fluent Client</b> search parameter constant for <b>patient</b> 2680 * <p> 2681 * Description: <b>One of the individuals of the appointment is this patient</b><br> 2682 * Type: <b>reference</b><br> 2683 * Path: <b>Appointment.participant.actor</b><br> 2684 * </p> 2685 */ 2686 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PATIENT); 2687 2688/** 2689 * Constant for fluent queries to be used to add include statements. Specifies 2690 * the path value of "<b>Appointment:patient</b>". 2691 */ 2692 public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("Appointment:patient").toLocked(); 2693 2694 /** 2695 * Search parameter: <b>appointment-type</b> 2696 * <p> 2697 * Description: <b>The style of appointment or patient that has been booked in the slot (not service type)</b><br> 2698 * Type: <b>token</b><br> 2699 * Path: <b>Appointment.appointmentType</b><br> 2700 * </p> 2701 */ 2702 @SearchParamDefinition(name="appointment-type", path="Appointment.appointmentType", description="The style of appointment or patient that has been booked in the slot (not service type)", type="token" ) 2703 public static final String SP_APPOINTMENT_TYPE = "appointment-type"; 2704 /** 2705 * <b>Fluent Client</b> search parameter constant for <b>appointment-type</b> 2706 * <p> 2707 * Description: <b>The style of appointment or patient that has been booked in the slot (not service type)</b><br> 2708 * Type: <b>token</b><br> 2709 * Path: <b>Appointment.appointmentType</b><br> 2710 * </p> 2711 */ 2712 public static final ca.uhn.fhir.rest.gclient.TokenClientParam APPOINTMENT_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_APPOINTMENT_TYPE); 2713 2714 /** 2715 * Search parameter: <b>service-type</b> 2716 * <p> 2717 * Description: <b>The specific service that is to be performed during this appointment</b><br> 2718 * Type: <b>token</b><br> 2719 * Path: <b>Appointment.serviceType</b><br> 2720 * </p> 2721 */ 2722 @SearchParamDefinition(name="service-type", path="Appointment.serviceType", description="The specific service that is to be performed during this appointment", type="token" ) 2723 public static final String SP_SERVICE_TYPE = "service-type"; 2724 /** 2725 * <b>Fluent Client</b> search parameter constant for <b>service-type</b> 2726 * <p> 2727 * Description: <b>The specific service that is to be performed during this appointment</b><br> 2728 * Type: <b>token</b><br> 2729 * Path: <b>Appointment.serviceType</b><br> 2730 * </p> 2731 */ 2732 public static final ca.uhn.fhir.rest.gclient.TokenClientParam SERVICE_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_SERVICE_TYPE); 2733 2734 /** 2735 * Search parameter: <b>location</b> 2736 * <p> 2737 * Description: <b>This location is listed in the participants of the appointment</b><br> 2738 * Type: <b>reference</b><br> 2739 * Path: <b>Appointment.participant.actor</b><br> 2740 * </p> 2741 */ 2742 @SearchParamDefinition(name="location", path="Appointment.participant.actor", description="This location is listed in the participants of the appointment", type="reference", target={Location.class } ) 2743 public static final String SP_LOCATION = "location"; 2744 /** 2745 * <b>Fluent Client</b> search parameter constant for <b>location</b> 2746 * <p> 2747 * Description: <b>This location is listed in the participants of the appointment</b><br> 2748 * Type: <b>reference</b><br> 2749 * Path: <b>Appointment.participant.actor</b><br> 2750 * </p> 2751 */ 2752 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam LOCATION = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_LOCATION); 2753 2754/** 2755 * Constant for fluent queries to be used to add include statements. Specifies 2756 * the path value of "<b>Appointment:location</b>". 2757 */ 2758 public static final ca.uhn.fhir.model.api.Include INCLUDE_LOCATION = new ca.uhn.fhir.model.api.Include("Appointment:location").toLocked(); 2759 2760 /** 2761 * Search parameter: <b>status</b> 2762 * <p> 2763 * Description: <b>The overall status of the appointment</b><br> 2764 * Type: <b>token</b><br> 2765 * Path: <b>Appointment.status</b><br> 2766 * </p> 2767 */ 2768 @SearchParamDefinition(name="status", path="Appointment.status", description="The overall status of the appointment", type="token" ) 2769 public static final String SP_STATUS = "status"; 2770 /** 2771 * <b>Fluent Client</b> search parameter constant for <b>status</b> 2772 * <p> 2773 * Description: <b>The overall status of the appointment</b><br> 2774 * Type: <b>token</b><br> 2775 * Path: <b>Appointment.status</b><br> 2776 * </p> 2777 */ 2778 public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS); 2779 2780 2781}