001package org.hl7.fhir.r5.model; 002 003 004/* 005 Copyright (c) 2011+, HL7, Inc. 006 All rights reserved. 007 008 Redistribution and use in source and binary forms, with or without modification, \ 009 are permitted provided that the following conditions are met: 010 011 * Redistributions of source code must retain the above copyright notice, this \ 012 list of conditions and the following disclaimer. 013 * Redistributions in binary form must reproduce the above copyright notice, \ 014 this list of conditions and the following disclaimer in the documentation \ 015 and/or other materials provided with the distribution. 016 * Neither the name of HL7 nor the names of its contributors may be used to 017 endorse or promote products derived from this software without specific 018 prior written permission. 019 020 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \ 021 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \ 022 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \ 023 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \ 024 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT \ 025 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR \ 026 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, \ 027 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) \ 028 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE \ 029 POSSIBILITY OF SUCH DAMAGE. 030 */ 031 032// Generated on Thu, Mar 23, 2023 19:59+1100 for FHIR v5.0.0 033 034import java.util.ArrayList; 035import java.util.Date; 036import java.util.List; 037import org.hl7.fhir.utilities.Utilities; 038import org.hl7.fhir.r5.model.Enumerations.*; 039import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 040import org.hl7.fhir.exceptions.FHIRException; 041import org.hl7.fhir.instance.model.api.ICompositeType; 042import ca.uhn.fhir.model.api.annotation.ResourceDef; 043import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 044import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 045import ca.uhn.fhir.model.api.annotation.Child; 046import ca.uhn.fhir.model.api.annotation.ChildOrder; 047import ca.uhn.fhir.model.api.annotation.Description; 048import ca.uhn.fhir.model.api.annotation.Block; 049 050/** 051 * A 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). 052 */ 053@ResourceDef(name="Appointment", profile="http://hl7.org/fhir/StructureDefinition/Appointment") 054public class Appointment extends DomainResource { 055 056 public enum AppointmentStatus { 057 /** 058 * None of the participant(s) have finalized their acceptance of the appointment request, and the start/end time might not be set yet. 059 */ 060 PROPOSED, 061 /** 062 * Some or all of the participant(s) have not finalized their acceptance of the appointment request. 063 */ 064 PENDING, 065 /** 066 * All participant(s) have been considered and the appointment is confirmed to go ahead at the date/times specified. 067 */ 068 BOOKED, 069 /** 070 * The patient/patients has/have arrived and is/are waiting to be seen. 071 */ 072 ARRIVED, 073 /** 074 * The planning stages of the appointment are now complete, the encounter resource will exist and will track further status changes. Note that an encounter may exist before the appointment status is fulfilled for many reasons. 075 */ 076 FULFILLED, 077 /** 078 * The appointment has been cancelled. 079 */ 080 CANCELLED, 081 /** 082 * Some or all of the participant(s) have not/did not appear for the appointment (usually the patient). 083 */ 084 NOSHOW, 085 /** 086 * This instance should not have been part of this patient's medical record. 087 */ 088 ENTEREDINERROR, 089 /** 090 * When checked in, all pre-encounter administrative work is complete, and the encounter may begin. (where multiple patients are involved, they are all present). 091 */ 092 CHECKEDIN, 093 /** 094 * The appointment has been placed on a waitlist, to be scheduled/confirmed in the future when a slot/service is available.\nA specific time might or might not be pre-allocated. 095 */ 096 WAITLIST, 097 /** 098 * added to help the parsers with the generic types 099 */ 100 NULL; 101 public static AppointmentStatus fromCode(String codeString) throws FHIRException { 102 if (codeString == null || "".equals(codeString)) 103 return null; 104 if ("proposed".equals(codeString)) 105 return PROPOSED; 106 if ("pending".equals(codeString)) 107 return PENDING; 108 if ("booked".equals(codeString)) 109 return BOOKED; 110 if ("arrived".equals(codeString)) 111 return ARRIVED; 112 if ("fulfilled".equals(codeString)) 113 return FULFILLED; 114 if ("cancelled".equals(codeString)) 115 return CANCELLED; 116 if ("noshow".equals(codeString)) 117 return NOSHOW; 118 if ("entered-in-error".equals(codeString)) 119 return ENTEREDINERROR; 120 if ("checked-in".equals(codeString)) 121 return CHECKEDIN; 122 if ("waitlist".equals(codeString)) 123 return WAITLIST; 124 if (Configuration.isAcceptInvalidEnums()) 125 return null; 126 else 127 throw new FHIRException("Unknown AppointmentStatus code '"+codeString+"'"); 128 } 129 public String toCode() { 130 switch (this) { 131 case PROPOSED: return "proposed"; 132 case PENDING: return "pending"; 133 case BOOKED: return "booked"; 134 case ARRIVED: return "arrived"; 135 case FULFILLED: return "fulfilled"; 136 case CANCELLED: return "cancelled"; 137 case NOSHOW: return "noshow"; 138 case ENTEREDINERROR: return "entered-in-error"; 139 case CHECKEDIN: return "checked-in"; 140 case WAITLIST: return "waitlist"; 141 case NULL: return null; 142 default: return "?"; 143 } 144 } 145 public String getSystem() { 146 switch (this) { 147 case PROPOSED: return "http://hl7.org/fhir/appointmentstatus"; 148 case PENDING: return "http://hl7.org/fhir/appointmentstatus"; 149 case BOOKED: return "http://hl7.org/fhir/appointmentstatus"; 150 case ARRIVED: return "http://hl7.org/fhir/appointmentstatus"; 151 case FULFILLED: return "http://hl7.org/fhir/appointmentstatus"; 152 case CANCELLED: return "http://hl7.org/fhir/appointmentstatus"; 153 case NOSHOW: return "http://hl7.org/fhir/appointmentstatus"; 154 case ENTEREDINERROR: return "http://hl7.org/fhir/appointmentstatus"; 155 case CHECKEDIN: return "http://hl7.org/fhir/appointmentstatus"; 156 case WAITLIST: return "http://hl7.org/fhir/appointmentstatus"; 157 case NULL: return null; 158 default: return "?"; 159 } 160 } 161 public String getDefinition() { 162 switch (this) { 163 case PROPOSED: return "None of the participant(s) have finalized their acceptance of the appointment request, and the start/end time might not be set yet."; 164 case PENDING: return "Some or all of the participant(s) have not finalized their acceptance of the appointment request."; 165 case BOOKED: return "All participant(s) have been considered and the appointment is confirmed to go ahead at the date/times specified."; 166 case ARRIVED: return "The patient/patients has/have arrived and is/are waiting to be seen."; 167 case FULFILLED: return "The planning stages of the appointment are now complete, the encounter resource will exist and will track further status changes. Note that an encounter may exist before the appointment status is fulfilled for many reasons."; 168 case CANCELLED: return "The appointment has been cancelled."; 169 case NOSHOW: return "Some or all of the participant(s) have not/did not appear for the appointment (usually the patient)."; 170 case ENTEREDINERROR: return "This instance should not have been part of this patient's medical record."; 171 case CHECKEDIN: return "When checked in, all pre-encounter administrative work is complete, and the encounter may begin. (where multiple patients are involved, they are all present)."; 172 case WAITLIST: return "The appointment has been placed on a waitlist, to be scheduled/confirmed in the future when a slot/service is available.\nA specific time might or might not be pre-allocated."; 173 case NULL: return null; 174 default: return "?"; 175 } 176 } 177 public String getDisplay() { 178 switch (this) { 179 case PROPOSED: return "Proposed"; 180 case PENDING: return "Pending"; 181 case BOOKED: return "Booked"; 182 case ARRIVED: return "Arrived"; 183 case FULFILLED: return "Fulfilled"; 184 case CANCELLED: return "Cancelled"; 185 case NOSHOW: return "No Show"; 186 case ENTEREDINERROR: return "Entered in error"; 187 case CHECKEDIN: return "Checked In"; 188 case WAITLIST: return "Waitlisted"; 189 case NULL: return null; 190 default: return "?"; 191 } 192 } 193 } 194 195 public static class AppointmentStatusEnumFactory implements EnumFactory<AppointmentStatus> { 196 public AppointmentStatus fromCode(String codeString) throws IllegalArgumentException { 197 if (codeString == null || "".equals(codeString)) 198 if (codeString == null || "".equals(codeString)) 199 return null; 200 if ("proposed".equals(codeString)) 201 return AppointmentStatus.PROPOSED; 202 if ("pending".equals(codeString)) 203 return AppointmentStatus.PENDING; 204 if ("booked".equals(codeString)) 205 return AppointmentStatus.BOOKED; 206 if ("arrived".equals(codeString)) 207 return AppointmentStatus.ARRIVED; 208 if ("fulfilled".equals(codeString)) 209 return AppointmentStatus.FULFILLED; 210 if ("cancelled".equals(codeString)) 211 return AppointmentStatus.CANCELLED; 212 if ("noshow".equals(codeString)) 213 return AppointmentStatus.NOSHOW; 214 if ("entered-in-error".equals(codeString)) 215 return AppointmentStatus.ENTEREDINERROR; 216 if ("checked-in".equals(codeString)) 217 return AppointmentStatus.CHECKEDIN; 218 if ("waitlist".equals(codeString)) 219 return AppointmentStatus.WAITLIST; 220 throw new IllegalArgumentException("Unknown AppointmentStatus code '"+codeString+"'"); 221 } 222 public Enumeration<AppointmentStatus> fromType(PrimitiveType<?> code) throws FHIRException { 223 if (code == null) 224 return null; 225 if (code.isEmpty()) 226 return new Enumeration<AppointmentStatus>(this, AppointmentStatus.NULL, code); 227 String codeString = ((PrimitiveType) code).asStringValue(); 228 if (codeString == null || "".equals(codeString)) 229 return new Enumeration<AppointmentStatus>(this, AppointmentStatus.NULL, code); 230 if ("proposed".equals(codeString)) 231 return new Enumeration<AppointmentStatus>(this, AppointmentStatus.PROPOSED, code); 232 if ("pending".equals(codeString)) 233 return new Enumeration<AppointmentStatus>(this, AppointmentStatus.PENDING, code); 234 if ("booked".equals(codeString)) 235 return new Enumeration<AppointmentStatus>(this, AppointmentStatus.BOOKED, code); 236 if ("arrived".equals(codeString)) 237 return new Enumeration<AppointmentStatus>(this, AppointmentStatus.ARRIVED, code); 238 if ("fulfilled".equals(codeString)) 239 return new Enumeration<AppointmentStatus>(this, AppointmentStatus.FULFILLED, code); 240 if ("cancelled".equals(codeString)) 241 return new Enumeration<AppointmentStatus>(this, AppointmentStatus.CANCELLED, code); 242 if ("noshow".equals(codeString)) 243 return new Enumeration<AppointmentStatus>(this, AppointmentStatus.NOSHOW, code); 244 if ("entered-in-error".equals(codeString)) 245 return new Enumeration<AppointmentStatus>(this, AppointmentStatus.ENTEREDINERROR, code); 246 if ("checked-in".equals(codeString)) 247 return new Enumeration<AppointmentStatus>(this, AppointmentStatus.CHECKEDIN, code); 248 if ("waitlist".equals(codeString)) 249 return new Enumeration<AppointmentStatus>(this, AppointmentStatus.WAITLIST, code); 250 throw new FHIRException("Unknown AppointmentStatus code '"+codeString+"'"); 251 } 252 public String toCode(AppointmentStatus code) { 253 if (code == AppointmentStatus.NULL) 254 return null; 255 if (code == AppointmentStatus.PROPOSED) 256 return "proposed"; 257 if (code == AppointmentStatus.PENDING) 258 return "pending"; 259 if (code == AppointmentStatus.BOOKED) 260 return "booked"; 261 if (code == AppointmentStatus.ARRIVED) 262 return "arrived"; 263 if (code == AppointmentStatus.FULFILLED) 264 return "fulfilled"; 265 if (code == AppointmentStatus.CANCELLED) 266 return "cancelled"; 267 if (code == AppointmentStatus.NOSHOW) 268 return "noshow"; 269 if (code == AppointmentStatus.ENTEREDINERROR) 270 return "entered-in-error"; 271 if (code == AppointmentStatus.CHECKEDIN) 272 return "checked-in"; 273 if (code == AppointmentStatus.WAITLIST) 274 return "waitlist"; 275 return "?"; 276 } 277 public String toSystem(AppointmentStatus code) { 278 return code.getSystem(); 279 } 280 } 281 282 public enum ParticipationStatus { 283 /** 284 * The participant has accepted the appointment. 285 */ 286 ACCEPTED, 287 /** 288 * The participant has declined the appointment and will not participate in the appointment. 289 */ 290 DECLINED, 291 /** 292 * 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. 293 */ 294 TENTATIVE, 295 /** 296 * The participant needs to indicate if they accept the appointment by changing this status to one of the other statuses. 297 */ 298 NEEDSACTION, 299 /** 300 * added to help the parsers with the generic types 301 */ 302 NULL; 303 public static ParticipationStatus fromCode(String codeString) throws FHIRException { 304 if (codeString == null || "".equals(codeString)) 305 return null; 306 if ("accepted".equals(codeString)) 307 return ACCEPTED; 308 if ("declined".equals(codeString)) 309 return DECLINED; 310 if ("tentative".equals(codeString)) 311 return TENTATIVE; 312 if ("needs-action".equals(codeString)) 313 return NEEDSACTION; 314 if (Configuration.isAcceptInvalidEnums()) 315 return null; 316 else 317 throw new FHIRException("Unknown ParticipationStatus code '"+codeString+"'"); 318 } 319 public String toCode() { 320 switch (this) { 321 case ACCEPTED: return "accepted"; 322 case DECLINED: return "declined"; 323 case TENTATIVE: return "tentative"; 324 case NEEDSACTION: return "needs-action"; 325 case NULL: return null; 326 default: return "?"; 327 } 328 } 329 public String getSystem() { 330 switch (this) { 331 case ACCEPTED: return "http://hl7.org/fhir/participationstatus"; 332 case DECLINED: return "http://hl7.org/fhir/participationstatus"; 333 case TENTATIVE: return "http://hl7.org/fhir/participationstatus"; 334 case NEEDSACTION: return "http://hl7.org/fhir/participationstatus"; 335 case NULL: return null; 336 default: return "?"; 337 } 338 } 339 public String getDefinition() { 340 switch (this) { 341 case ACCEPTED: return "The participant has accepted the appointment."; 342 case DECLINED: return "The participant has declined the appointment and will not participate in the appointment."; 343 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."; 344 case NEEDSACTION: return "The participant needs to indicate if they accept the appointment by changing this status to one of the other statuses."; 345 case NULL: return null; 346 default: return "?"; 347 } 348 } 349 public String getDisplay() { 350 switch (this) { 351 case ACCEPTED: return "Accepted"; 352 case DECLINED: return "Declined"; 353 case TENTATIVE: return "Tentative"; 354 case NEEDSACTION: return "Needs Action"; 355 case NULL: return null; 356 default: return "?"; 357 } 358 } 359 } 360 361 public static class ParticipationStatusEnumFactory implements EnumFactory<ParticipationStatus> { 362 public ParticipationStatus fromCode(String codeString) throws IllegalArgumentException { 363 if (codeString == null || "".equals(codeString)) 364 if (codeString == null || "".equals(codeString)) 365 return null; 366 if ("accepted".equals(codeString)) 367 return ParticipationStatus.ACCEPTED; 368 if ("declined".equals(codeString)) 369 return ParticipationStatus.DECLINED; 370 if ("tentative".equals(codeString)) 371 return ParticipationStatus.TENTATIVE; 372 if ("needs-action".equals(codeString)) 373 return ParticipationStatus.NEEDSACTION; 374 throw new IllegalArgumentException("Unknown ParticipationStatus code '"+codeString+"'"); 375 } 376 public Enumeration<ParticipationStatus> fromType(PrimitiveType<?> code) throws FHIRException { 377 if (code == null) 378 return null; 379 if (code.isEmpty()) 380 return new Enumeration<ParticipationStatus>(this, ParticipationStatus.NULL, code); 381 String codeString = ((PrimitiveType) code).asStringValue(); 382 if (codeString == null || "".equals(codeString)) 383 return new Enumeration<ParticipationStatus>(this, ParticipationStatus.NULL, code); 384 if ("accepted".equals(codeString)) 385 return new Enumeration<ParticipationStatus>(this, ParticipationStatus.ACCEPTED, code); 386 if ("declined".equals(codeString)) 387 return new Enumeration<ParticipationStatus>(this, ParticipationStatus.DECLINED, code); 388 if ("tentative".equals(codeString)) 389 return new Enumeration<ParticipationStatus>(this, ParticipationStatus.TENTATIVE, code); 390 if ("needs-action".equals(codeString)) 391 return new Enumeration<ParticipationStatus>(this, ParticipationStatus.NEEDSACTION, code); 392 throw new FHIRException("Unknown ParticipationStatus code '"+codeString+"'"); 393 } 394 public String toCode(ParticipationStatus code) { 395 if (code == ParticipationStatus.NULL) 396 return null; 397 if (code == ParticipationStatus.ACCEPTED) 398 return "accepted"; 399 if (code == ParticipationStatus.DECLINED) 400 return "declined"; 401 if (code == ParticipationStatus.TENTATIVE) 402 return "tentative"; 403 if (code == ParticipationStatus.NEEDSACTION) 404 return "needs-action"; 405 return "?"; 406 } 407 public String toSystem(ParticipationStatus code) { 408 return code.getSystem(); 409 } 410 } 411 412 @Block() 413 public static class AppointmentParticipantComponent extends BackboneElement implements IBaseBackboneElement { 414 /** 415 * Role of participant in the appointment. 416 */ 417 @Child(name = "type", type = {CodeableConcept.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 418 @Description(shortDefinition="Role of participant in the appointment", formalDefinition="Role of participant in the appointment." ) 419 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/encounter-participant-type") 420 protected List<CodeableConcept> type; 421 422 /** 423 * Participation period of the actor. 424 */ 425 @Child(name = "period", type = {Period.class}, order=2, min=0, max=1, modifier=false, summary=false) 426 @Description(shortDefinition="Participation period of the actor", formalDefinition="Participation period of the actor." ) 427 protected Period period; 428 429 /** 430 * The individual, device, location, or service participating in the appointment. 431 */ 432 @Child(name = "actor", type = {Patient.class, Group.class, Practitioner.class, PractitionerRole.class, CareTeam.class, RelatedPerson.class, Device.class, HealthcareService.class, Location.class}, order=3, min=0, max=1, modifier=false, summary=true) 433 @Description(shortDefinition="The individual, device, location, or service participating in the appointment", formalDefinition="The individual, device, location, or service participating in the appointment." ) 434 protected Reference actor; 435 436 /** 437 * Whether this participant is required to be present at the meeting. If false, the participant is optional. 438 */ 439 @Child(name = "required", type = {BooleanType.class}, order=4, min=0, max=1, modifier=false, summary=true) 440 @Description(shortDefinition="The participant is required to attend (optional when false)", formalDefinition="Whether this participant is required to be present at the meeting. If false, the participant is optional." ) 441 protected BooleanType required; 442 443 /** 444 * Participation status of the actor. 445 */ 446 @Child(name = "status", type = {CodeType.class}, order=5, min=1, max=1, modifier=false, summary=true) 447 @Description(shortDefinition="accepted | declined | tentative | needs-action", formalDefinition="Participation status of the actor." ) 448 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/participationstatus") 449 protected Enumeration<ParticipationStatus> status; 450 451 private static final long serialVersionUID = 1537536134L; 452 453 /** 454 * Constructor 455 */ 456 public AppointmentParticipantComponent() { 457 super(); 458 } 459 460 /** 461 * Constructor 462 */ 463 public AppointmentParticipantComponent(ParticipationStatus status) { 464 super(); 465 this.setStatus(status); 466 } 467 468 /** 469 * @return {@link #type} (Role of participant in the appointment.) 470 */ 471 public List<CodeableConcept> getType() { 472 if (this.type == null) 473 this.type = new ArrayList<CodeableConcept>(); 474 return this.type; 475 } 476 477 /** 478 * @return Returns a reference to <code>this</code> for easy method chaining 479 */ 480 public AppointmentParticipantComponent setType(List<CodeableConcept> theType) { 481 this.type = theType; 482 return this; 483 } 484 485 public boolean hasType() { 486 if (this.type == null) 487 return false; 488 for (CodeableConcept item : this.type) 489 if (!item.isEmpty()) 490 return true; 491 return false; 492 } 493 494 public CodeableConcept addType() { //3 495 CodeableConcept t = new CodeableConcept(); 496 if (this.type == null) 497 this.type = new ArrayList<CodeableConcept>(); 498 this.type.add(t); 499 return t; 500 } 501 502 public AppointmentParticipantComponent addType(CodeableConcept t) { //3 503 if (t == null) 504 return this; 505 if (this.type == null) 506 this.type = new ArrayList<CodeableConcept>(); 507 this.type.add(t); 508 return this; 509 } 510 511 /** 512 * @return The first repetition of repeating field {@link #type}, creating it if it does not already exist {3} 513 */ 514 public CodeableConcept getTypeFirstRep() { 515 if (getType().isEmpty()) { 516 addType(); 517 } 518 return getType().get(0); 519 } 520 521 /** 522 * @return {@link #period} (Participation period of the actor.) 523 */ 524 public Period getPeriod() { 525 if (this.period == null) 526 if (Configuration.errorOnAutoCreate()) 527 throw new Error("Attempt to auto-create AppointmentParticipantComponent.period"); 528 else if (Configuration.doAutoCreate()) 529 this.period = new Period(); // cc 530 return this.period; 531 } 532 533 public boolean hasPeriod() { 534 return this.period != null && !this.period.isEmpty(); 535 } 536 537 /** 538 * @param value {@link #period} (Participation period of the actor.) 539 */ 540 public AppointmentParticipantComponent setPeriod(Period value) { 541 this.period = value; 542 return this; 543 } 544 545 /** 546 * @return {@link #actor} (The individual, device, location, or service participating in the appointment.) 547 */ 548 public Reference getActor() { 549 if (this.actor == null) 550 if (Configuration.errorOnAutoCreate()) 551 throw new Error("Attempt to auto-create AppointmentParticipantComponent.actor"); 552 else if (Configuration.doAutoCreate()) 553 this.actor = new Reference(); // cc 554 return this.actor; 555 } 556 557 public boolean hasActor() { 558 return this.actor != null && !this.actor.isEmpty(); 559 } 560 561 /** 562 * @param value {@link #actor} (The individual, device, location, or service participating in the appointment.) 563 */ 564 public AppointmentParticipantComponent setActor(Reference value) { 565 this.actor = value; 566 return this; 567 } 568 569 /** 570 * @return {@link #required} (Whether this participant is required to be present at the meeting. If false, the participant is optional.). This is the underlying object with id, value and extensions. The accessor "getRequired" gives direct access to the value 571 */ 572 public BooleanType getRequiredElement() { 573 if (this.required == null) 574 if (Configuration.errorOnAutoCreate()) 575 throw new Error("Attempt to auto-create AppointmentParticipantComponent.required"); 576 else if (Configuration.doAutoCreate()) 577 this.required = new BooleanType(); // bb 578 return this.required; 579 } 580 581 public boolean hasRequiredElement() { 582 return this.required != null && !this.required.isEmpty(); 583 } 584 585 public boolean hasRequired() { 586 return this.required != null && !this.required.isEmpty(); 587 } 588 589 /** 590 * @param value {@link #required} (Whether this participant is required to be present at the meeting. If false, the participant is optional.). This is the underlying object with id, value and extensions. The accessor "getRequired" gives direct access to the value 591 */ 592 public AppointmentParticipantComponent setRequiredElement(BooleanType value) { 593 this.required = value; 594 return this; 595 } 596 597 /** 598 * @return Whether this participant is required to be present at the meeting. If false, the participant is optional. 599 */ 600 public boolean getRequired() { 601 return this.required == null || this.required.isEmpty() ? false : this.required.getValue(); 602 } 603 604 /** 605 * @param value Whether this participant is required to be present at the meeting. If false, the participant is optional. 606 */ 607 public AppointmentParticipantComponent setRequired(boolean value) { 608 if (this.required == null) 609 this.required = new BooleanType(); 610 this.required.setValue(value); 611 return this; 612 } 613 614 /** 615 * @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 616 */ 617 public Enumeration<ParticipationStatus> getStatusElement() { 618 if (this.status == null) 619 if (Configuration.errorOnAutoCreate()) 620 throw new Error("Attempt to auto-create AppointmentParticipantComponent.status"); 621 else if (Configuration.doAutoCreate()) 622 this.status = new Enumeration<ParticipationStatus>(new ParticipationStatusEnumFactory()); // bb 623 return this.status; 624 } 625 626 public boolean hasStatusElement() { 627 return this.status != null && !this.status.isEmpty(); 628 } 629 630 public boolean hasStatus() { 631 return this.status != null && !this.status.isEmpty(); 632 } 633 634 /** 635 * @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 636 */ 637 public AppointmentParticipantComponent setStatusElement(Enumeration<ParticipationStatus> value) { 638 this.status = value; 639 return this; 640 } 641 642 /** 643 * @return Participation status of the actor. 644 */ 645 public ParticipationStatus getStatus() { 646 return this.status == null ? null : this.status.getValue(); 647 } 648 649 /** 650 * @param value Participation status of the actor. 651 */ 652 public AppointmentParticipantComponent setStatus(ParticipationStatus value) { 653 if (this.status == null) 654 this.status = new Enumeration<ParticipationStatus>(new ParticipationStatusEnumFactory()); 655 this.status.setValue(value); 656 return this; 657 } 658 659 protected void listChildren(List<Property> children) { 660 super.listChildren(children); 661 children.add(new Property("type", "CodeableConcept", "Role of participant in the appointment.", 0, java.lang.Integer.MAX_VALUE, type)); 662 children.add(new Property("period", "Period", "Participation period of the actor.", 0, 1, period)); 663 children.add(new Property("actor", "Reference(Patient|Group|Practitioner|PractitionerRole|CareTeam|RelatedPerson|Device|HealthcareService|Location)", "The individual, device, location, or service participating in the appointment.", 0, 1, actor)); 664 children.add(new Property("required", "boolean", "Whether this participant is required to be present at the meeting. If false, the participant is optional.", 0, 1, required)); 665 children.add(new Property("status", "code", "Participation status of the actor.", 0, 1, status)); 666 } 667 668 @Override 669 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 670 switch (_hash) { 671 case 3575610: /*type*/ return new Property("type", "CodeableConcept", "Role of participant in the appointment.", 0, java.lang.Integer.MAX_VALUE, type); 672 case -991726143: /*period*/ return new Property("period", "Period", "Participation period of the actor.", 0, 1, period); 673 case 92645877: /*actor*/ return new Property("actor", "Reference(Patient|Group|Practitioner|PractitionerRole|CareTeam|RelatedPerson|Device|HealthcareService|Location)", "The individual, device, location, or service participating in the appointment.", 0, 1, actor); 674 case -393139297: /*required*/ return new Property("required", "boolean", "Whether this participant is required to be present at the meeting. If false, the participant is optional.", 0, 1, required); 675 case -892481550: /*status*/ return new Property("status", "code", "Participation status of the actor.", 0, 1, status); 676 default: return super.getNamedProperty(_hash, _name, _checkValid); 677 } 678 679 } 680 681 @Override 682 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 683 switch (hash) { 684 case 3575610: /*type*/ return this.type == null ? new Base[0] : this.type.toArray(new Base[this.type.size()]); // CodeableConcept 685 case -991726143: /*period*/ return this.period == null ? new Base[0] : new Base[] {this.period}; // Period 686 case 92645877: /*actor*/ return this.actor == null ? new Base[0] : new Base[] {this.actor}; // Reference 687 case -393139297: /*required*/ return this.required == null ? new Base[0] : new Base[] {this.required}; // BooleanType 688 case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<ParticipationStatus> 689 default: return super.getProperty(hash, name, checkValid); 690 } 691 692 } 693 694 @Override 695 public Base setProperty(int hash, String name, Base value) throws FHIRException { 696 switch (hash) { 697 case 3575610: // type 698 this.getType().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 699 return value; 700 case -991726143: // period 701 this.period = TypeConvertor.castToPeriod(value); // Period 702 return value; 703 case 92645877: // actor 704 this.actor = TypeConvertor.castToReference(value); // Reference 705 return value; 706 case -393139297: // required 707 this.required = TypeConvertor.castToBoolean(value); // BooleanType 708 return value; 709 case -892481550: // status 710 value = new ParticipationStatusEnumFactory().fromType(TypeConvertor.castToCode(value)); 711 this.status = (Enumeration) value; // Enumeration<ParticipationStatus> 712 return value; 713 default: return super.setProperty(hash, name, value); 714 } 715 716 } 717 718 @Override 719 public Base setProperty(String name, Base value) throws FHIRException { 720 if (name.equals("type")) { 721 this.getType().add(TypeConvertor.castToCodeableConcept(value)); 722 } else if (name.equals("period")) { 723 this.period = TypeConvertor.castToPeriod(value); // Period 724 } else if (name.equals("actor")) { 725 this.actor = TypeConvertor.castToReference(value); // Reference 726 } else if (name.equals("required")) { 727 this.required = TypeConvertor.castToBoolean(value); // BooleanType 728 } else if (name.equals("status")) { 729 value = new ParticipationStatusEnumFactory().fromType(TypeConvertor.castToCode(value)); 730 this.status = (Enumeration) value; // Enumeration<ParticipationStatus> 731 } else 732 return super.setProperty(name, value); 733 return value; 734 } 735 736 @Override 737 public void removeChild(String name, Base value) throws FHIRException { 738 if (name.equals("type")) { 739 this.getType().remove(value); 740 } else if (name.equals("period")) { 741 this.period = null; 742 } else if (name.equals("actor")) { 743 this.actor = null; 744 } else if (name.equals("required")) { 745 this.required = null; 746 } else if (name.equals("status")) { 747 value = new ParticipationStatusEnumFactory().fromType(TypeConvertor.castToCode(value)); 748 this.status = (Enumeration) value; // Enumeration<ParticipationStatus> 749 } else 750 super.removeChild(name, value); 751 752 } 753 754 @Override 755 public Base makeProperty(int hash, String name) throws FHIRException { 756 switch (hash) { 757 case 3575610: return addType(); 758 case -991726143: return getPeriod(); 759 case 92645877: return getActor(); 760 case -393139297: return getRequiredElement(); 761 case -892481550: return getStatusElement(); 762 default: return super.makeProperty(hash, name); 763 } 764 765 } 766 767 @Override 768 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 769 switch (hash) { 770 case 3575610: /*type*/ return new String[] {"CodeableConcept"}; 771 case -991726143: /*period*/ return new String[] {"Period"}; 772 case 92645877: /*actor*/ return new String[] {"Reference"}; 773 case -393139297: /*required*/ return new String[] {"boolean"}; 774 case -892481550: /*status*/ return new String[] {"code"}; 775 default: return super.getTypesForProperty(hash, name); 776 } 777 778 } 779 780 @Override 781 public Base addChild(String name) throws FHIRException { 782 if (name.equals("type")) { 783 return addType(); 784 } 785 else if (name.equals("period")) { 786 this.period = new Period(); 787 return this.period; 788 } 789 else if (name.equals("actor")) { 790 this.actor = new Reference(); 791 return this.actor; 792 } 793 else if (name.equals("required")) { 794 throw new FHIRException("Cannot call addChild on a singleton property Appointment.participant.required"); 795 } 796 else if (name.equals("status")) { 797 throw new FHIRException("Cannot call addChild on a singleton property Appointment.participant.status"); 798 } 799 else 800 return super.addChild(name); 801 } 802 803 public AppointmentParticipantComponent copy() { 804 AppointmentParticipantComponent dst = new AppointmentParticipantComponent(); 805 copyValues(dst); 806 return dst; 807 } 808 809 public void copyValues(AppointmentParticipantComponent dst) { 810 super.copyValues(dst); 811 if (type != null) { 812 dst.type = new ArrayList<CodeableConcept>(); 813 for (CodeableConcept i : type) 814 dst.type.add(i.copy()); 815 }; 816 dst.period = period == null ? null : period.copy(); 817 dst.actor = actor == null ? null : actor.copy(); 818 dst.required = required == null ? null : required.copy(); 819 dst.status = status == null ? null : status.copy(); 820 } 821 822 @Override 823 public boolean equalsDeep(Base other_) { 824 if (!super.equalsDeep(other_)) 825 return false; 826 if (!(other_ instanceof AppointmentParticipantComponent)) 827 return false; 828 AppointmentParticipantComponent o = (AppointmentParticipantComponent) other_; 829 return compareDeep(type, o.type, true) && compareDeep(period, o.period, true) && compareDeep(actor, o.actor, true) 830 && compareDeep(required, o.required, true) && compareDeep(status, o.status, true); 831 } 832 833 @Override 834 public boolean equalsShallow(Base other_) { 835 if (!super.equalsShallow(other_)) 836 return false; 837 if (!(other_ instanceof AppointmentParticipantComponent)) 838 return false; 839 AppointmentParticipantComponent o = (AppointmentParticipantComponent) other_; 840 return compareValues(required, o.required, true) && compareValues(status, o.status, true); 841 } 842 843 public boolean isEmpty() { 844 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(type, period, actor, required 845 , status); 846 } 847 848 public String fhirType() { 849 return "Appointment.participant"; 850 851 } 852 853 } 854 855 @Block() 856 public static class AppointmentRecurrenceTemplateComponent extends BackboneElement implements IBaseBackboneElement { 857 /** 858 * The timezone of the recurring appointment occurrences. 859 */ 860 @Child(name = "timezone", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=false, summary=false) 861 @Description(shortDefinition="The timezone of the occurrences", formalDefinition="The timezone of the recurring appointment occurrences." ) 862 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/timezones") 863 protected CodeableConcept timezone; 864 865 /** 866 * How often the appointment series should recur. 867 */ 868 @Child(name = "recurrenceType", type = {CodeableConcept.class}, order=2, min=1, max=1, modifier=false, summary=false) 869 @Description(shortDefinition="The frequency of the recurrence", formalDefinition="How often the appointment series should recur." ) 870 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/appointment-recurrrence-type") 871 protected CodeableConcept recurrenceType; 872 873 /** 874 * Recurring appointments will not occur after this date. 875 */ 876 @Child(name = "lastOccurrenceDate", type = {DateType.class}, order=3, min=0, max=1, modifier=false, summary=false) 877 @Description(shortDefinition="The date when the recurrence should end", formalDefinition="Recurring appointments will not occur after this date." ) 878 protected DateType lastOccurrenceDate; 879 880 /** 881 * How many appointments are planned in the recurrence. 882 */ 883 @Child(name = "occurrenceCount", type = {PositiveIntType.class}, order=4, min=0, max=1, modifier=false, summary=false) 884 @Description(shortDefinition="The number of planned occurrences", formalDefinition="How many appointments are planned in the recurrence." ) 885 protected PositiveIntType occurrenceCount; 886 887 /** 888 * The list of specific dates that will have appointments generated. 889 */ 890 @Child(name = "occurrenceDate", type = {DateType.class}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 891 @Description(shortDefinition="Specific dates for a recurring set of appointments (no template)", formalDefinition="The list of specific dates that will have appointments generated." ) 892 protected List<DateType> occurrenceDate; 893 894 /** 895 * Information about weekly recurring appointments. 896 */ 897 @Child(name = "weeklyTemplate", type = {}, order=6, min=0, max=1, modifier=false, summary=false) 898 @Description(shortDefinition="Information about weekly recurring appointments", formalDefinition="Information about weekly recurring appointments." ) 899 protected AppointmentRecurrenceTemplateWeeklyTemplateComponent weeklyTemplate; 900 901 /** 902 * Information about monthly recurring appointments. 903 */ 904 @Child(name = "monthlyTemplate", type = {}, order=7, min=0, max=1, modifier=false, summary=false) 905 @Description(shortDefinition="Information about monthly recurring appointments", formalDefinition="Information about monthly recurring appointments." ) 906 protected AppointmentRecurrenceTemplateMonthlyTemplateComponent monthlyTemplate; 907 908 /** 909 * Information about yearly recurring appointments. 910 */ 911 @Child(name = "yearlyTemplate", type = {}, order=8, min=0, max=1, modifier=false, summary=false) 912 @Description(shortDefinition="Information about yearly recurring appointments", formalDefinition="Information about yearly recurring appointments." ) 913 protected AppointmentRecurrenceTemplateYearlyTemplateComponent yearlyTemplate; 914 915 /** 916 * Any dates, such as holidays, that should be excluded from the recurrence. 917 */ 918 @Child(name = "excludingDate", type = {DateType.class}, order=9, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 919 @Description(shortDefinition="Any dates that should be excluded from the series", formalDefinition="Any dates, such as holidays, that should be excluded from the recurrence." ) 920 protected List<DateType> excludingDate; 921 922 /** 923 * Any dates, such as holidays, that should be excluded from the recurrence. 924 */ 925 @Child(name = "excludingRecurrenceId", type = {PositiveIntType.class}, order=10, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 926 @Description(shortDefinition="Any recurrence IDs that should be excluded from the recurrence", formalDefinition="Any dates, such as holidays, that should be excluded from the recurrence." ) 927 protected List<PositiveIntType> excludingRecurrenceId; 928 929 private static final long serialVersionUID = -1582999176L; 930 931 /** 932 * Constructor 933 */ 934 public AppointmentRecurrenceTemplateComponent() { 935 super(); 936 } 937 938 /** 939 * Constructor 940 */ 941 public AppointmentRecurrenceTemplateComponent(CodeableConcept recurrenceType) { 942 super(); 943 this.setRecurrenceType(recurrenceType); 944 } 945 946 /** 947 * @return {@link #timezone} (The timezone of the recurring appointment occurrences.) 948 */ 949 public CodeableConcept getTimezone() { 950 if (this.timezone == null) 951 if (Configuration.errorOnAutoCreate()) 952 throw new Error("Attempt to auto-create AppointmentRecurrenceTemplateComponent.timezone"); 953 else if (Configuration.doAutoCreate()) 954 this.timezone = new CodeableConcept(); // cc 955 return this.timezone; 956 } 957 958 public boolean hasTimezone() { 959 return this.timezone != null && !this.timezone.isEmpty(); 960 } 961 962 /** 963 * @param value {@link #timezone} (The timezone of the recurring appointment occurrences.) 964 */ 965 public AppointmentRecurrenceTemplateComponent setTimezone(CodeableConcept value) { 966 this.timezone = value; 967 return this; 968 } 969 970 /** 971 * @return {@link #recurrenceType} (How often the appointment series should recur.) 972 */ 973 public CodeableConcept getRecurrenceType() { 974 if (this.recurrenceType == null) 975 if (Configuration.errorOnAutoCreate()) 976 throw new Error("Attempt to auto-create AppointmentRecurrenceTemplateComponent.recurrenceType"); 977 else if (Configuration.doAutoCreate()) 978 this.recurrenceType = new CodeableConcept(); // cc 979 return this.recurrenceType; 980 } 981 982 public boolean hasRecurrenceType() { 983 return this.recurrenceType != null && !this.recurrenceType.isEmpty(); 984 } 985 986 /** 987 * @param value {@link #recurrenceType} (How often the appointment series should recur.) 988 */ 989 public AppointmentRecurrenceTemplateComponent setRecurrenceType(CodeableConcept value) { 990 this.recurrenceType = value; 991 return this; 992 } 993 994 /** 995 * @return {@link #lastOccurrenceDate} (Recurring appointments will not occur after this date.). This is the underlying object with id, value and extensions. The accessor "getLastOccurrenceDate" gives direct access to the value 996 */ 997 public DateType getLastOccurrenceDateElement() { 998 if (this.lastOccurrenceDate == null) 999 if (Configuration.errorOnAutoCreate()) 1000 throw new Error("Attempt to auto-create AppointmentRecurrenceTemplateComponent.lastOccurrenceDate"); 1001 else if (Configuration.doAutoCreate()) 1002 this.lastOccurrenceDate = new DateType(); // bb 1003 return this.lastOccurrenceDate; 1004 } 1005 1006 public boolean hasLastOccurrenceDateElement() { 1007 return this.lastOccurrenceDate != null && !this.lastOccurrenceDate.isEmpty(); 1008 } 1009 1010 public boolean hasLastOccurrenceDate() { 1011 return this.lastOccurrenceDate != null && !this.lastOccurrenceDate.isEmpty(); 1012 } 1013 1014 /** 1015 * @param value {@link #lastOccurrenceDate} (Recurring appointments will not occur after this date.). This is the underlying object with id, value and extensions. The accessor "getLastOccurrenceDate" gives direct access to the value 1016 */ 1017 public AppointmentRecurrenceTemplateComponent setLastOccurrenceDateElement(DateType value) { 1018 this.lastOccurrenceDate = value; 1019 return this; 1020 } 1021 1022 /** 1023 * @return Recurring appointments will not occur after this date. 1024 */ 1025 public Date getLastOccurrenceDate() { 1026 return this.lastOccurrenceDate == null ? null : this.lastOccurrenceDate.getValue(); 1027 } 1028 1029 /** 1030 * @param value Recurring appointments will not occur after this date. 1031 */ 1032 public AppointmentRecurrenceTemplateComponent setLastOccurrenceDate(Date value) { 1033 if (value == null) 1034 this.lastOccurrenceDate = null; 1035 else { 1036 if (this.lastOccurrenceDate == null) 1037 this.lastOccurrenceDate = new DateType(); 1038 this.lastOccurrenceDate.setValue(value); 1039 } 1040 return this; 1041 } 1042 1043 /** 1044 * @return {@link #occurrenceCount} (How many appointments are planned in the recurrence.). This is the underlying object with id, value and extensions. The accessor "getOccurrenceCount" gives direct access to the value 1045 */ 1046 public PositiveIntType getOccurrenceCountElement() { 1047 if (this.occurrenceCount == null) 1048 if (Configuration.errorOnAutoCreate()) 1049 throw new Error("Attempt to auto-create AppointmentRecurrenceTemplateComponent.occurrenceCount"); 1050 else if (Configuration.doAutoCreate()) 1051 this.occurrenceCount = new PositiveIntType(); // bb 1052 return this.occurrenceCount; 1053 } 1054 1055 public boolean hasOccurrenceCountElement() { 1056 return this.occurrenceCount != null && !this.occurrenceCount.isEmpty(); 1057 } 1058 1059 public boolean hasOccurrenceCount() { 1060 return this.occurrenceCount != null && !this.occurrenceCount.isEmpty(); 1061 } 1062 1063 /** 1064 * @param value {@link #occurrenceCount} (How many appointments are planned in the recurrence.). This is the underlying object with id, value and extensions. The accessor "getOccurrenceCount" gives direct access to the value 1065 */ 1066 public AppointmentRecurrenceTemplateComponent setOccurrenceCountElement(PositiveIntType value) { 1067 this.occurrenceCount = value; 1068 return this; 1069 } 1070 1071 /** 1072 * @return How many appointments are planned in the recurrence. 1073 */ 1074 public int getOccurrenceCount() { 1075 return this.occurrenceCount == null || this.occurrenceCount.isEmpty() ? 0 : this.occurrenceCount.getValue(); 1076 } 1077 1078 /** 1079 * @param value How many appointments are planned in the recurrence. 1080 */ 1081 public AppointmentRecurrenceTemplateComponent setOccurrenceCount(int value) { 1082 if (this.occurrenceCount == null) 1083 this.occurrenceCount = new PositiveIntType(); 1084 this.occurrenceCount.setValue(value); 1085 return this; 1086 } 1087 1088 /** 1089 * @return {@link #occurrenceDate} (The list of specific dates that will have appointments generated.) 1090 */ 1091 public List<DateType> getOccurrenceDate() { 1092 if (this.occurrenceDate == null) 1093 this.occurrenceDate = new ArrayList<DateType>(); 1094 return this.occurrenceDate; 1095 } 1096 1097 /** 1098 * @return Returns a reference to <code>this</code> for easy method chaining 1099 */ 1100 public AppointmentRecurrenceTemplateComponent setOccurrenceDate(List<DateType> theOccurrenceDate) { 1101 this.occurrenceDate = theOccurrenceDate; 1102 return this; 1103 } 1104 1105 public boolean hasOccurrenceDate() { 1106 if (this.occurrenceDate == null) 1107 return false; 1108 for (DateType item : this.occurrenceDate) 1109 if (!item.isEmpty()) 1110 return true; 1111 return false; 1112 } 1113 1114 /** 1115 * @return {@link #occurrenceDate} (The list of specific dates that will have appointments generated.) 1116 */ 1117 public DateType addOccurrenceDateElement() {//2 1118 DateType t = new DateType(); 1119 if (this.occurrenceDate == null) 1120 this.occurrenceDate = new ArrayList<DateType>(); 1121 this.occurrenceDate.add(t); 1122 return t; 1123 } 1124 1125 /** 1126 * @param value {@link #occurrenceDate} (The list of specific dates that will have appointments generated.) 1127 */ 1128 public AppointmentRecurrenceTemplateComponent addOccurrenceDate(Date value) { //1 1129 DateType t = new DateType(); 1130 t.setValue(value); 1131 if (this.occurrenceDate == null) 1132 this.occurrenceDate = new ArrayList<DateType>(); 1133 this.occurrenceDate.add(t); 1134 return this; 1135 } 1136 1137 /** 1138 * @param value {@link #occurrenceDate} (The list of specific dates that will have appointments generated.) 1139 */ 1140 public boolean hasOccurrenceDate(Date value) { 1141 if (this.occurrenceDate == null) 1142 return false; 1143 for (DateType v : this.occurrenceDate) 1144 if (v.getValue().equals(value)) // date 1145 return true; 1146 return false; 1147 } 1148 1149 /** 1150 * @return {@link #weeklyTemplate} (Information about weekly recurring appointments.) 1151 */ 1152 public AppointmentRecurrenceTemplateWeeklyTemplateComponent getWeeklyTemplate() { 1153 if (this.weeklyTemplate == null) 1154 if (Configuration.errorOnAutoCreate()) 1155 throw new Error("Attempt to auto-create AppointmentRecurrenceTemplateComponent.weeklyTemplate"); 1156 else if (Configuration.doAutoCreate()) 1157 this.weeklyTemplate = new AppointmentRecurrenceTemplateWeeklyTemplateComponent(); // cc 1158 return this.weeklyTemplate; 1159 } 1160 1161 public boolean hasWeeklyTemplate() { 1162 return this.weeklyTemplate != null && !this.weeklyTemplate.isEmpty(); 1163 } 1164 1165 /** 1166 * @param value {@link #weeklyTemplate} (Information about weekly recurring appointments.) 1167 */ 1168 public AppointmentRecurrenceTemplateComponent setWeeklyTemplate(AppointmentRecurrenceTemplateWeeklyTemplateComponent value) { 1169 this.weeklyTemplate = value; 1170 return this; 1171 } 1172 1173 /** 1174 * @return {@link #monthlyTemplate} (Information about monthly recurring appointments.) 1175 */ 1176 public AppointmentRecurrenceTemplateMonthlyTemplateComponent getMonthlyTemplate() { 1177 if (this.monthlyTemplate == null) 1178 if (Configuration.errorOnAutoCreate()) 1179 throw new Error("Attempt to auto-create AppointmentRecurrenceTemplateComponent.monthlyTemplate"); 1180 else if (Configuration.doAutoCreate()) 1181 this.monthlyTemplate = new AppointmentRecurrenceTemplateMonthlyTemplateComponent(); // cc 1182 return this.monthlyTemplate; 1183 } 1184 1185 public boolean hasMonthlyTemplate() { 1186 return this.monthlyTemplate != null && !this.monthlyTemplate.isEmpty(); 1187 } 1188 1189 /** 1190 * @param value {@link #monthlyTemplate} (Information about monthly recurring appointments.) 1191 */ 1192 public AppointmentRecurrenceTemplateComponent setMonthlyTemplate(AppointmentRecurrenceTemplateMonthlyTemplateComponent value) { 1193 this.monthlyTemplate = value; 1194 return this; 1195 } 1196 1197 /** 1198 * @return {@link #yearlyTemplate} (Information about yearly recurring appointments.) 1199 */ 1200 public AppointmentRecurrenceTemplateYearlyTemplateComponent getYearlyTemplate() { 1201 if (this.yearlyTemplate == null) 1202 if (Configuration.errorOnAutoCreate()) 1203 throw new Error("Attempt to auto-create AppointmentRecurrenceTemplateComponent.yearlyTemplate"); 1204 else if (Configuration.doAutoCreate()) 1205 this.yearlyTemplate = new AppointmentRecurrenceTemplateYearlyTemplateComponent(); // cc 1206 return this.yearlyTemplate; 1207 } 1208 1209 public boolean hasYearlyTemplate() { 1210 return this.yearlyTemplate != null && !this.yearlyTemplate.isEmpty(); 1211 } 1212 1213 /** 1214 * @param value {@link #yearlyTemplate} (Information about yearly recurring appointments.) 1215 */ 1216 public AppointmentRecurrenceTemplateComponent setYearlyTemplate(AppointmentRecurrenceTemplateYearlyTemplateComponent value) { 1217 this.yearlyTemplate = value; 1218 return this; 1219 } 1220 1221 /** 1222 * @return {@link #excludingDate} (Any dates, such as holidays, that should be excluded from the recurrence.) 1223 */ 1224 public List<DateType> getExcludingDate() { 1225 if (this.excludingDate == null) 1226 this.excludingDate = new ArrayList<DateType>(); 1227 return this.excludingDate; 1228 } 1229 1230 /** 1231 * @return Returns a reference to <code>this</code> for easy method chaining 1232 */ 1233 public AppointmentRecurrenceTemplateComponent setExcludingDate(List<DateType> theExcludingDate) { 1234 this.excludingDate = theExcludingDate; 1235 return this; 1236 } 1237 1238 public boolean hasExcludingDate() { 1239 if (this.excludingDate == null) 1240 return false; 1241 for (DateType item : this.excludingDate) 1242 if (!item.isEmpty()) 1243 return true; 1244 return false; 1245 } 1246 1247 /** 1248 * @return {@link #excludingDate} (Any dates, such as holidays, that should be excluded from the recurrence.) 1249 */ 1250 public DateType addExcludingDateElement() {//2 1251 DateType t = new DateType(); 1252 if (this.excludingDate == null) 1253 this.excludingDate = new ArrayList<DateType>(); 1254 this.excludingDate.add(t); 1255 return t; 1256 } 1257 1258 /** 1259 * @param value {@link #excludingDate} (Any dates, such as holidays, that should be excluded from the recurrence.) 1260 */ 1261 public AppointmentRecurrenceTemplateComponent addExcludingDate(Date value) { //1 1262 DateType t = new DateType(); 1263 t.setValue(value); 1264 if (this.excludingDate == null) 1265 this.excludingDate = new ArrayList<DateType>(); 1266 this.excludingDate.add(t); 1267 return this; 1268 } 1269 1270 /** 1271 * @param value {@link #excludingDate} (Any dates, such as holidays, that should be excluded from the recurrence.) 1272 */ 1273 public boolean hasExcludingDate(Date value) { 1274 if (this.excludingDate == null) 1275 return false; 1276 for (DateType v : this.excludingDate) 1277 if (v.getValue().equals(value)) // date 1278 return true; 1279 return false; 1280 } 1281 1282 /** 1283 * @return {@link #excludingRecurrenceId} (Any dates, such as holidays, that should be excluded from the recurrence.) 1284 */ 1285 public List<PositiveIntType> getExcludingRecurrenceId() { 1286 if (this.excludingRecurrenceId == null) 1287 this.excludingRecurrenceId = new ArrayList<PositiveIntType>(); 1288 return this.excludingRecurrenceId; 1289 } 1290 1291 /** 1292 * @return Returns a reference to <code>this</code> for easy method chaining 1293 */ 1294 public AppointmentRecurrenceTemplateComponent setExcludingRecurrenceId(List<PositiveIntType> theExcludingRecurrenceId) { 1295 this.excludingRecurrenceId = theExcludingRecurrenceId; 1296 return this; 1297 } 1298 1299 public boolean hasExcludingRecurrenceId() { 1300 if (this.excludingRecurrenceId == null) 1301 return false; 1302 for (PositiveIntType item : this.excludingRecurrenceId) 1303 if (!item.isEmpty()) 1304 return true; 1305 return false; 1306 } 1307 1308 /** 1309 * @return {@link #excludingRecurrenceId} (Any dates, such as holidays, that should be excluded from the recurrence.) 1310 */ 1311 public PositiveIntType addExcludingRecurrenceIdElement() {//2 1312 PositiveIntType t = new PositiveIntType(); 1313 if (this.excludingRecurrenceId == null) 1314 this.excludingRecurrenceId = new ArrayList<PositiveIntType>(); 1315 this.excludingRecurrenceId.add(t); 1316 return t; 1317 } 1318 1319 /** 1320 * @param value {@link #excludingRecurrenceId} (Any dates, such as holidays, that should be excluded from the recurrence.) 1321 */ 1322 public AppointmentRecurrenceTemplateComponent addExcludingRecurrenceId(int value) { //1 1323 PositiveIntType t = new PositiveIntType(); 1324 t.setValue(value); 1325 if (this.excludingRecurrenceId == null) 1326 this.excludingRecurrenceId = new ArrayList<PositiveIntType>(); 1327 this.excludingRecurrenceId.add(t); 1328 return this; 1329 } 1330 1331 /** 1332 * @param value {@link #excludingRecurrenceId} (Any dates, such as holidays, that should be excluded from the recurrence.) 1333 */ 1334 public boolean hasExcludingRecurrenceId(int value) { 1335 if (this.excludingRecurrenceId == null) 1336 return false; 1337 for (PositiveIntType v : this.excludingRecurrenceId) 1338 if (v.getValue().equals(value)) // positiveInt 1339 return true; 1340 return false; 1341 } 1342 1343 protected void listChildren(List<Property> children) { 1344 super.listChildren(children); 1345 children.add(new Property("timezone", "CodeableConcept", "The timezone of the recurring appointment occurrences.", 0, 1, timezone)); 1346 children.add(new Property("recurrenceType", "CodeableConcept", "How often the appointment series should recur.", 0, 1, recurrenceType)); 1347 children.add(new Property("lastOccurrenceDate", "date", "Recurring appointments will not occur after this date.", 0, 1, lastOccurrenceDate)); 1348 children.add(new Property("occurrenceCount", "positiveInt", "How many appointments are planned in the recurrence.", 0, 1, occurrenceCount)); 1349 children.add(new Property("occurrenceDate", "date", "The list of specific dates that will have appointments generated.", 0, java.lang.Integer.MAX_VALUE, occurrenceDate)); 1350 children.add(new Property("weeklyTemplate", "", "Information about weekly recurring appointments.", 0, 1, weeklyTemplate)); 1351 children.add(new Property("monthlyTemplate", "", "Information about monthly recurring appointments.", 0, 1, monthlyTemplate)); 1352 children.add(new Property("yearlyTemplate", "", "Information about yearly recurring appointments.", 0, 1, yearlyTemplate)); 1353 children.add(new Property("excludingDate", "date", "Any dates, such as holidays, that should be excluded from the recurrence.", 0, java.lang.Integer.MAX_VALUE, excludingDate)); 1354 children.add(new Property("excludingRecurrenceId", "positiveInt", "Any dates, such as holidays, that should be excluded from the recurrence.", 0, java.lang.Integer.MAX_VALUE, excludingRecurrenceId)); 1355 } 1356 1357 @Override 1358 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1359 switch (_hash) { 1360 case -2076227591: /*timezone*/ return new Property("timezone", "CodeableConcept", "The timezone of the recurring appointment occurrences.", 0, 1, timezone); 1361 case -381221238: /*recurrenceType*/ return new Property("recurrenceType", "CodeableConcept", "How often the appointment series should recur.", 0, 1, recurrenceType); 1362 case -1262346923: /*lastOccurrenceDate*/ return new Property("lastOccurrenceDate", "date", "Recurring appointments will not occur after this date.", 0, 1, lastOccurrenceDate); 1363 case 1834480062: /*occurrenceCount*/ return new Property("occurrenceCount", "positiveInt", "How many appointments are planned in the recurrence.", 0, 1, occurrenceCount); 1364 case 1721761055: /*occurrenceDate*/ return new Property("occurrenceDate", "date", "The list of specific dates that will have appointments generated.", 0, java.lang.Integer.MAX_VALUE, occurrenceDate); 1365 case 887136283: /*weeklyTemplate*/ return new Property("weeklyTemplate", "", "Information about weekly recurring appointments.", 0, 1, weeklyTemplate); 1366 case 2142528423: /*monthlyTemplate*/ return new Property("monthlyTemplate", "", "Information about monthly recurring appointments.", 0, 1, monthlyTemplate); 1367 case -334069468: /*yearlyTemplate*/ return new Property("yearlyTemplate", "", "Information about yearly recurring appointments.", 0, 1, yearlyTemplate); 1368 case 596601957: /*excludingDate*/ return new Property("excludingDate", "date", "Any dates, such as holidays, that should be excluded from the recurrence.", 0, java.lang.Integer.MAX_VALUE, excludingDate); 1369 case -797577694: /*excludingRecurrenceId*/ return new Property("excludingRecurrenceId", "positiveInt", "Any dates, such as holidays, that should be excluded from the recurrence.", 0, java.lang.Integer.MAX_VALUE, excludingRecurrenceId); 1370 default: return super.getNamedProperty(_hash, _name, _checkValid); 1371 } 1372 1373 } 1374 1375 @Override 1376 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1377 switch (hash) { 1378 case -2076227591: /*timezone*/ return this.timezone == null ? new Base[0] : new Base[] {this.timezone}; // CodeableConcept 1379 case -381221238: /*recurrenceType*/ return this.recurrenceType == null ? new Base[0] : new Base[] {this.recurrenceType}; // CodeableConcept 1380 case -1262346923: /*lastOccurrenceDate*/ return this.lastOccurrenceDate == null ? new Base[0] : new Base[] {this.lastOccurrenceDate}; // DateType 1381 case 1834480062: /*occurrenceCount*/ return this.occurrenceCount == null ? new Base[0] : new Base[] {this.occurrenceCount}; // PositiveIntType 1382 case 1721761055: /*occurrenceDate*/ return this.occurrenceDate == null ? new Base[0] : this.occurrenceDate.toArray(new Base[this.occurrenceDate.size()]); // DateType 1383 case 887136283: /*weeklyTemplate*/ return this.weeklyTemplate == null ? new Base[0] : new Base[] {this.weeklyTemplate}; // AppointmentRecurrenceTemplateWeeklyTemplateComponent 1384 case 2142528423: /*monthlyTemplate*/ return this.monthlyTemplate == null ? new Base[0] : new Base[] {this.monthlyTemplate}; // AppointmentRecurrenceTemplateMonthlyTemplateComponent 1385 case -334069468: /*yearlyTemplate*/ return this.yearlyTemplate == null ? new Base[0] : new Base[] {this.yearlyTemplate}; // AppointmentRecurrenceTemplateYearlyTemplateComponent 1386 case 596601957: /*excludingDate*/ return this.excludingDate == null ? new Base[0] : this.excludingDate.toArray(new Base[this.excludingDate.size()]); // DateType 1387 case -797577694: /*excludingRecurrenceId*/ return this.excludingRecurrenceId == null ? new Base[0] : this.excludingRecurrenceId.toArray(new Base[this.excludingRecurrenceId.size()]); // PositiveIntType 1388 default: return super.getProperty(hash, name, checkValid); 1389 } 1390 1391 } 1392 1393 @Override 1394 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1395 switch (hash) { 1396 case -2076227591: // timezone 1397 this.timezone = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1398 return value; 1399 case -381221238: // recurrenceType 1400 this.recurrenceType = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1401 return value; 1402 case -1262346923: // lastOccurrenceDate 1403 this.lastOccurrenceDate = TypeConvertor.castToDate(value); // DateType 1404 return value; 1405 case 1834480062: // occurrenceCount 1406 this.occurrenceCount = TypeConvertor.castToPositiveInt(value); // PositiveIntType 1407 return value; 1408 case 1721761055: // occurrenceDate 1409 this.getOccurrenceDate().add(TypeConvertor.castToDate(value)); // DateType 1410 return value; 1411 case 887136283: // weeklyTemplate 1412 this.weeklyTemplate = (AppointmentRecurrenceTemplateWeeklyTemplateComponent) value; // AppointmentRecurrenceTemplateWeeklyTemplateComponent 1413 return value; 1414 case 2142528423: // monthlyTemplate 1415 this.monthlyTemplate = (AppointmentRecurrenceTemplateMonthlyTemplateComponent) value; // AppointmentRecurrenceTemplateMonthlyTemplateComponent 1416 return value; 1417 case -334069468: // yearlyTemplate 1418 this.yearlyTemplate = (AppointmentRecurrenceTemplateYearlyTemplateComponent) value; // AppointmentRecurrenceTemplateYearlyTemplateComponent 1419 return value; 1420 case 596601957: // excludingDate 1421 this.getExcludingDate().add(TypeConvertor.castToDate(value)); // DateType 1422 return value; 1423 case -797577694: // excludingRecurrenceId 1424 this.getExcludingRecurrenceId().add(TypeConvertor.castToPositiveInt(value)); // PositiveIntType 1425 return value; 1426 default: return super.setProperty(hash, name, value); 1427 } 1428 1429 } 1430 1431 @Override 1432 public Base setProperty(String name, Base value) throws FHIRException { 1433 if (name.equals("timezone")) { 1434 this.timezone = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1435 } else if (name.equals("recurrenceType")) { 1436 this.recurrenceType = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1437 } else if (name.equals("lastOccurrenceDate")) { 1438 this.lastOccurrenceDate = TypeConvertor.castToDate(value); // DateType 1439 } else if (name.equals("occurrenceCount")) { 1440 this.occurrenceCount = TypeConvertor.castToPositiveInt(value); // PositiveIntType 1441 } else if (name.equals("occurrenceDate")) { 1442 this.getOccurrenceDate().add(TypeConvertor.castToDate(value)); 1443 } else if (name.equals("weeklyTemplate")) { 1444 this.weeklyTemplate = (AppointmentRecurrenceTemplateWeeklyTemplateComponent) value; // AppointmentRecurrenceTemplateWeeklyTemplateComponent 1445 } else if (name.equals("monthlyTemplate")) { 1446 this.monthlyTemplate = (AppointmentRecurrenceTemplateMonthlyTemplateComponent) value; // AppointmentRecurrenceTemplateMonthlyTemplateComponent 1447 } else if (name.equals("yearlyTemplate")) { 1448 this.yearlyTemplate = (AppointmentRecurrenceTemplateYearlyTemplateComponent) value; // AppointmentRecurrenceTemplateYearlyTemplateComponent 1449 } else if (name.equals("excludingDate")) { 1450 this.getExcludingDate().add(TypeConvertor.castToDate(value)); 1451 } else if (name.equals("excludingRecurrenceId")) { 1452 this.getExcludingRecurrenceId().add(TypeConvertor.castToPositiveInt(value)); 1453 } else 1454 return super.setProperty(name, value); 1455 return value; 1456 } 1457 1458 @Override 1459 public void removeChild(String name, Base value) throws FHIRException { 1460 if (name.equals("timezone")) { 1461 this.timezone = null; 1462 } else if (name.equals("recurrenceType")) { 1463 this.recurrenceType = null; 1464 } else if (name.equals("lastOccurrenceDate")) { 1465 this.lastOccurrenceDate = null; 1466 } else if (name.equals("occurrenceCount")) { 1467 this.occurrenceCount = null; 1468 } else if (name.equals("occurrenceDate")) { 1469 this.getOccurrenceDate().remove(value); 1470 } else if (name.equals("weeklyTemplate")) { 1471 this.weeklyTemplate = (AppointmentRecurrenceTemplateWeeklyTemplateComponent) value; // AppointmentRecurrenceTemplateWeeklyTemplateComponent 1472 } else if (name.equals("monthlyTemplate")) { 1473 this.monthlyTemplate = (AppointmentRecurrenceTemplateMonthlyTemplateComponent) value; // AppointmentRecurrenceTemplateMonthlyTemplateComponent 1474 } else if (name.equals("yearlyTemplate")) { 1475 this.yearlyTemplate = (AppointmentRecurrenceTemplateYearlyTemplateComponent) value; // AppointmentRecurrenceTemplateYearlyTemplateComponent 1476 } else if (name.equals("excludingDate")) { 1477 this.getExcludingDate().remove(value); 1478 } else if (name.equals("excludingRecurrenceId")) { 1479 this.getExcludingRecurrenceId().remove(value); 1480 } else 1481 super.removeChild(name, value); 1482 1483 } 1484 1485 @Override 1486 public Base makeProperty(int hash, String name) throws FHIRException { 1487 switch (hash) { 1488 case -2076227591: return getTimezone(); 1489 case -381221238: return getRecurrenceType(); 1490 case -1262346923: return getLastOccurrenceDateElement(); 1491 case 1834480062: return getOccurrenceCountElement(); 1492 case 1721761055: return addOccurrenceDateElement(); 1493 case 887136283: return getWeeklyTemplate(); 1494 case 2142528423: return getMonthlyTemplate(); 1495 case -334069468: return getYearlyTemplate(); 1496 case 596601957: return addExcludingDateElement(); 1497 case -797577694: return addExcludingRecurrenceIdElement(); 1498 default: return super.makeProperty(hash, name); 1499 } 1500 1501 } 1502 1503 @Override 1504 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1505 switch (hash) { 1506 case -2076227591: /*timezone*/ return new String[] {"CodeableConcept"}; 1507 case -381221238: /*recurrenceType*/ return new String[] {"CodeableConcept"}; 1508 case -1262346923: /*lastOccurrenceDate*/ return new String[] {"date"}; 1509 case 1834480062: /*occurrenceCount*/ return new String[] {"positiveInt"}; 1510 case 1721761055: /*occurrenceDate*/ return new String[] {"date"}; 1511 case 887136283: /*weeklyTemplate*/ return new String[] {}; 1512 case 2142528423: /*monthlyTemplate*/ return new String[] {}; 1513 case -334069468: /*yearlyTemplate*/ return new String[] {}; 1514 case 596601957: /*excludingDate*/ return new String[] {"date"}; 1515 case -797577694: /*excludingRecurrenceId*/ return new String[] {"positiveInt"}; 1516 default: return super.getTypesForProperty(hash, name); 1517 } 1518 1519 } 1520 1521 @Override 1522 public Base addChild(String name) throws FHIRException { 1523 if (name.equals("timezone")) { 1524 this.timezone = new CodeableConcept(); 1525 return this.timezone; 1526 } 1527 else if (name.equals("recurrenceType")) { 1528 this.recurrenceType = new CodeableConcept(); 1529 return this.recurrenceType; 1530 } 1531 else if (name.equals("lastOccurrenceDate")) { 1532 throw new FHIRException("Cannot call addChild on a singleton property Appointment.recurrenceTemplate.lastOccurrenceDate"); 1533 } 1534 else if (name.equals("occurrenceCount")) { 1535 throw new FHIRException("Cannot call addChild on a singleton property Appointment.recurrenceTemplate.occurrenceCount"); 1536 } 1537 else if (name.equals("occurrenceDate")) { 1538 throw new FHIRException("Cannot call addChild on a singleton property Appointment.recurrenceTemplate.occurrenceDate"); 1539 } 1540 else if (name.equals("weeklyTemplate")) { 1541 this.weeklyTemplate = new AppointmentRecurrenceTemplateWeeklyTemplateComponent(); 1542 return this.weeklyTemplate; 1543 } 1544 else if (name.equals("monthlyTemplate")) { 1545 this.monthlyTemplate = new AppointmentRecurrenceTemplateMonthlyTemplateComponent(); 1546 return this.monthlyTemplate; 1547 } 1548 else if (name.equals("yearlyTemplate")) { 1549 this.yearlyTemplate = new AppointmentRecurrenceTemplateYearlyTemplateComponent(); 1550 return this.yearlyTemplate; 1551 } 1552 else if (name.equals("excludingDate")) { 1553 throw new FHIRException("Cannot call addChild on a singleton property Appointment.recurrenceTemplate.excludingDate"); 1554 } 1555 else if (name.equals("excludingRecurrenceId")) { 1556 throw new FHIRException("Cannot call addChild on a singleton property Appointment.recurrenceTemplate.excludingRecurrenceId"); 1557 } 1558 else 1559 return super.addChild(name); 1560 } 1561 1562 public AppointmentRecurrenceTemplateComponent copy() { 1563 AppointmentRecurrenceTemplateComponent dst = new AppointmentRecurrenceTemplateComponent(); 1564 copyValues(dst); 1565 return dst; 1566 } 1567 1568 public void copyValues(AppointmentRecurrenceTemplateComponent dst) { 1569 super.copyValues(dst); 1570 dst.timezone = timezone == null ? null : timezone.copy(); 1571 dst.recurrenceType = recurrenceType == null ? null : recurrenceType.copy(); 1572 dst.lastOccurrenceDate = lastOccurrenceDate == null ? null : lastOccurrenceDate.copy(); 1573 dst.occurrenceCount = occurrenceCount == null ? null : occurrenceCount.copy(); 1574 if (occurrenceDate != null) { 1575 dst.occurrenceDate = new ArrayList<DateType>(); 1576 for (DateType i : occurrenceDate) 1577 dst.occurrenceDate.add(i.copy()); 1578 }; 1579 dst.weeklyTemplate = weeklyTemplate == null ? null : weeklyTemplate.copy(); 1580 dst.monthlyTemplate = monthlyTemplate == null ? null : monthlyTemplate.copy(); 1581 dst.yearlyTemplate = yearlyTemplate == null ? null : yearlyTemplate.copy(); 1582 if (excludingDate != null) { 1583 dst.excludingDate = new ArrayList<DateType>(); 1584 for (DateType i : excludingDate) 1585 dst.excludingDate.add(i.copy()); 1586 }; 1587 if (excludingRecurrenceId != null) { 1588 dst.excludingRecurrenceId = new ArrayList<PositiveIntType>(); 1589 for (PositiveIntType i : excludingRecurrenceId) 1590 dst.excludingRecurrenceId.add(i.copy()); 1591 }; 1592 } 1593 1594 @Override 1595 public boolean equalsDeep(Base other_) { 1596 if (!super.equalsDeep(other_)) 1597 return false; 1598 if (!(other_ instanceof AppointmentRecurrenceTemplateComponent)) 1599 return false; 1600 AppointmentRecurrenceTemplateComponent o = (AppointmentRecurrenceTemplateComponent) other_; 1601 return compareDeep(timezone, o.timezone, true) && compareDeep(recurrenceType, o.recurrenceType, true) 1602 && compareDeep(lastOccurrenceDate, o.lastOccurrenceDate, true) && compareDeep(occurrenceCount, o.occurrenceCount, true) 1603 && compareDeep(occurrenceDate, o.occurrenceDate, true) && compareDeep(weeklyTemplate, o.weeklyTemplate, true) 1604 && compareDeep(monthlyTemplate, o.monthlyTemplate, true) && compareDeep(yearlyTemplate, o.yearlyTemplate, true) 1605 && compareDeep(excludingDate, o.excludingDate, true) && compareDeep(excludingRecurrenceId, o.excludingRecurrenceId, true) 1606 ; 1607 } 1608 1609 @Override 1610 public boolean equalsShallow(Base other_) { 1611 if (!super.equalsShallow(other_)) 1612 return false; 1613 if (!(other_ instanceof AppointmentRecurrenceTemplateComponent)) 1614 return false; 1615 AppointmentRecurrenceTemplateComponent o = (AppointmentRecurrenceTemplateComponent) other_; 1616 return compareValues(lastOccurrenceDate, o.lastOccurrenceDate, true) && compareValues(occurrenceCount, o.occurrenceCount, true) 1617 && compareValues(occurrenceDate, o.occurrenceDate, true) && compareValues(excludingDate, o.excludingDate, true) 1618 && compareValues(excludingRecurrenceId, o.excludingRecurrenceId, true); 1619 } 1620 1621 public boolean isEmpty() { 1622 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(timezone, recurrenceType, lastOccurrenceDate 1623 , occurrenceCount, occurrenceDate, weeklyTemplate, monthlyTemplate, yearlyTemplate 1624 , excludingDate, excludingRecurrenceId); 1625 } 1626 1627 public String fhirType() { 1628 return "Appointment.recurrenceTemplate"; 1629 1630 } 1631 1632 } 1633 1634 @Block() 1635 public static class AppointmentRecurrenceTemplateWeeklyTemplateComponent extends BackboneElement implements IBaseBackboneElement { 1636 /** 1637 * Indicates that recurring appointments should occur on Mondays. 1638 */ 1639 @Child(name = "monday", type = {BooleanType.class}, order=1, min=0, max=1, modifier=false, summary=false) 1640 @Description(shortDefinition="Recurs on Mondays", formalDefinition="Indicates that recurring appointments should occur on Mondays." ) 1641 protected BooleanType monday; 1642 1643 /** 1644 * Indicates that recurring appointments should occur on Tuesdays. 1645 */ 1646 @Child(name = "tuesday", type = {BooleanType.class}, order=2, min=0, max=1, modifier=false, summary=false) 1647 @Description(shortDefinition="Recurs on Tuesday", formalDefinition="Indicates that recurring appointments should occur on Tuesdays." ) 1648 protected BooleanType tuesday; 1649 1650 /** 1651 * Indicates that recurring appointments should occur on Wednesdays. 1652 */ 1653 @Child(name = "wednesday", type = {BooleanType.class}, order=3, min=0, max=1, modifier=false, summary=false) 1654 @Description(shortDefinition="Recurs on Wednesday", formalDefinition="Indicates that recurring appointments should occur on Wednesdays." ) 1655 protected BooleanType wednesday; 1656 1657 /** 1658 * Indicates that recurring appointments should occur on Thursdays. 1659 */ 1660 @Child(name = "thursday", type = {BooleanType.class}, order=4, min=0, max=1, modifier=false, summary=false) 1661 @Description(shortDefinition="Recurs on Thursday", formalDefinition="Indicates that recurring appointments should occur on Thursdays." ) 1662 protected BooleanType thursday; 1663 1664 /** 1665 * Indicates that recurring appointments should occur on Fridays. 1666 */ 1667 @Child(name = "friday", type = {BooleanType.class}, order=5, min=0, max=1, modifier=false, summary=false) 1668 @Description(shortDefinition="Recurs on Friday", formalDefinition="Indicates that recurring appointments should occur on Fridays." ) 1669 protected BooleanType friday; 1670 1671 /** 1672 * Indicates that recurring appointments should occur on Saturdays. 1673 */ 1674 @Child(name = "saturday", type = {BooleanType.class}, order=6, min=0, max=1, modifier=false, summary=false) 1675 @Description(shortDefinition="Recurs on Saturday", formalDefinition="Indicates that recurring appointments should occur on Saturdays." ) 1676 protected BooleanType saturday; 1677 1678 /** 1679 * Indicates that recurring appointments should occur on Sundays. 1680 */ 1681 @Child(name = "sunday", type = {BooleanType.class}, order=7, min=0, max=1, modifier=false, summary=false) 1682 @Description(shortDefinition="Recurs on Sunday", formalDefinition="Indicates that recurring appointments should occur on Sundays." ) 1683 protected BooleanType sunday; 1684 1685 /** 1686 * The interval defines if the recurrence is every nth week. The default is every week, so it is expected that this value will be 2 or more. 1687 1688e.g. For recurring every second week this interval would be 2, or every third week the interval would be 3. 1689 */ 1690 @Child(name = "weekInterval", type = {PositiveIntType.class}, order=8, min=0, max=1, modifier=false, summary=false) 1691 @Description(shortDefinition="Recurs every nth week", formalDefinition="The interval defines if the recurrence is every nth week. The default is every week, so it is expected that this value will be 2 or more.\r\re.g. For recurring every second week this interval would be 2, or every third week the interval would be 3." ) 1692 protected PositiveIntType weekInterval; 1693 1694 private static final long serialVersionUID = 588795188L; 1695 1696 /** 1697 * Constructor 1698 */ 1699 public AppointmentRecurrenceTemplateWeeklyTemplateComponent() { 1700 super(); 1701 } 1702 1703 /** 1704 * @return {@link #monday} (Indicates that recurring appointments should occur on Mondays.). This is the underlying object with id, value and extensions. The accessor "getMonday" gives direct access to the value 1705 */ 1706 public BooleanType getMondayElement() { 1707 if (this.monday == null) 1708 if (Configuration.errorOnAutoCreate()) 1709 throw new Error("Attempt to auto-create AppointmentRecurrenceTemplateWeeklyTemplateComponent.monday"); 1710 else if (Configuration.doAutoCreate()) 1711 this.monday = new BooleanType(); // bb 1712 return this.monday; 1713 } 1714 1715 public boolean hasMondayElement() { 1716 return this.monday != null && !this.monday.isEmpty(); 1717 } 1718 1719 public boolean hasMonday() { 1720 return this.monday != null && !this.monday.isEmpty(); 1721 } 1722 1723 /** 1724 * @param value {@link #monday} (Indicates that recurring appointments should occur on Mondays.). This is the underlying object with id, value and extensions. The accessor "getMonday" gives direct access to the value 1725 */ 1726 public AppointmentRecurrenceTemplateWeeklyTemplateComponent setMondayElement(BooleanType value) { 1727 this.monday = value; 1728 return this; 1729 } 1730 1731 /** 1732 * @return Indicates that recurring appointments should occur on Mondays. 1733 */ 1734 public boolean getMonday() { 1735 return this.monday == null || this.monday.isEmpty() ? false : this.monday.getValue(); 1736 } 1737 1738 /** 1739 * @param value Indicates that recurring appointments should occur on Mondays. 1740 */ 1741 public AppointmentRecurrenceTemplateWeeklyTemplateComponent setMonday(boolean value) { 1742 if (this.monday == null) 1743 this.monday = new BooleanType(); 1744 this.monday.setValue(value); 1745 return this; 1746 } 1747 1748 /** 1749 * @return {@link #tuesday} (Indicates that recurring appointments should occur on Tuesdays.). This is the underlying object with id, value and extensions. The accessor "getTuesday" gives direct access to the value 1750 */ 1751 public BooleanType getTuesdayElement() { 1752 if (this.tuesday == null) 1753 if (Configuration.errorOnAutoCreate()) 1754 throw new Error("Attempt to auto-create AppointmentRecurrenceTemplateWeeklyTemplateComponent.tuesday"); 1755 else if (Configuration.doAutoCreate()) 1756 this.tuesday = new BooleanType(); // bb 1757 return this.tuesday; 1758 } 1759 1760 public boolean hasTuesdayElement() { 1761 return this.tuesday != null && !this.tuesday.isEmpty(); 1762 } 1763 1764 public boolean hasTuesday() { 1765 return this.tuesday != null && !this.tuesday.isEmpty(); 1766 } 1767 1768 /** 1769 * @param value {@link #tuesday} (Indicates that recurring appointments should occur on Tuesdays.). This is the underlying object with id, value and extensions. The accessor "getTuesday" gives direct access to the value 1770 */ 1771 public AppointmentRecurrenceTemplateWeeklyTemplateComponent setTuesdayElement(BooleanType value) { 1772 this.tuesday = value; 1773 return this; 1774 } 1775 1776 /** 1777 * @return Indicates that recurring appointments should occur on Tuesdays. 1778 */ 1779 public boolean getTuesday() { 1780 return this.tuesday == null || this.tuesday.isEmpty() ? false : this.tuesday.getValue(); 1781 } 1782 1783 /** 1784 * @param value Indicates that recurring appointments should occur on Tuesdays. 1785 */ 1786 public AppointmentRecurrenceTemplateWeeklyTemplateComponent setTuesday(boolean value) { 1787 if (this.tuesday == null) 1788 this.tuesday = new BooleanType(); 1789 this.tuesday.setValue(value); 1790 return this; 1791 } 1792 1793 /** 1794 * @return {@link #wednesday} (Indicates that recurring appointments should occur on Wednesdays.). This is the underlying object with id, value and extensions. The accessor "getWednesday" gives direct access to the value 1795 */ 1796 public BooleanType getWednesdayElement() { 1797 if (this.wednesday == null) 1798 if (Configuration.errorOnAutoCreate()) 1799 throw new Error("Attempt to auto-create AppointmentRecurrenceTemplateWeeklyTemplateComponent.wednesday"); 1800 else if (Configuration.doAutoCreate()) 1801 this.wednesday = new BooleanType(); // bb 1802 return this.wednesday; 1803 } 1804 1805 public boolean hasWednesdayElement() { 1806 return this.wednesday != null && !this.wednesday.isEmpty(); 1807 } 1808 1809 public boolean hasWednesday() { 1810 return this.wednesday != null && !this.wednesday.isEmpty(); 1811 } 1812 1813 /** 1814 * @param value {@link #wednesday} (Indicates that recurring appointments should occur on Wednesdays.). This is the underlying object with id, value and extensions. The accessor "getWednesday" gives direct access to the value 1815 */ 1816 public AppointmentRecurrenceTemplateWeeklyTemplateComponent setWednesdayElement(BooleanType value) { 1817 this.wednesday = value; 1818 return this; 1819 } 1820 1821 /** 1822 * @return Indicates that recurring appointments should occur on Wednesdays. 1823 */ 1824 public boolean getWednesday() { 1825 return this.wednesday == null || this.wednesday.isEmpty() ? false : this.wednesday.getValue(); 1826 } 1827 1828 /** 1829 * @param value Indicates that recurring appointments should occur on Wednesdays. 1830 */ 1831 public AppointmentRecurrenceTemplateWeeklyTemplateComponent setWednesday(boolean value) { 1832 if (this.wednesday == null) 1833 this.wednesday = new BooleanType(); 1834 this.wednesday.setValue(value); 1835 return this; 1836 } 1837 1838 /** 1839 * @return {@link #thursday} (Indicates that recurring appointments should occur on Thursdays.). This is the underlying object with id, value and extensions. The accessor "getThursday" gives direct access to the value 1840 */ 1841 public BooleanType getThursdayElement() { 1842 if (this.thursday == null) 1843 if (Configuration.errorOnAutoCreate()) 1844 throw new Error("Attempt to auto-create AppointmentRecurrenceTemplateWeeklyTemplateComponent.thursday"); 1845 else if (Configuration.doAutoCreate()) 1846 this.thursday = new BooleanType(); // bb 1847 return this.thursday; 1848 } 1849 1850 public boolean hasThursdayElement() { 1851 return this.thursday != null && !this.thursday.isEmpty(); 1852 } 1853 1854 public boolean hasThursday() { 1855 return this.thursday != null && !this.thursday.isEmpty(); 1856 } 1857 1858 /** 1859 * @param value {@link #thursday} (Indicates that recurring appointments should occur on Thursdays.). This is the underlying object with id, value and extensions. The accessor "getThursday" gives direct access to the value 1860 */ 1861 public AppointmentRecurrenceTemplateWeeklyTemplateComponent setThursdayElement(BooleanType value) { 1862 this.thursday = value; 1863 return this; 1864 } 1865 1866 /** 1867 * @return Indicates that recurring appointments should occur on Thursdays. 1868 */ 1869 public boolean getThursday() { 1870 return this.thursday == null || this.thursday.isEmpty() ? false : this.thursday.getValue(); 1871 } 1872 1873 /** 1874 * @param value Indicates that recurring appointments should occur on Thursdays. 1875 */ 1876 public AppointmentRecurrenceTemplateWeeklyTemplateComponent setThursday(boolean value) { 1877 if (this.thursday == null) 1878 this.thursday = new BooleanType(); 1879 this.thursday.setValue(value); 1880 return this; 1881 } 1882 1883 /** 1884 * @return {@link #friday} (Indicates that recurring appointments should occur on Fridays.). This is the underlying object with id, value and extensions. The accessor "getFriday" gives direct access to the value 1885 */ 1886 public BooleanType getFridayElement() { 1887 if (this.friday == null) 1888 if (Configuration.errorOnAutoCreate()) 1889 throw new Error("Attempt to auto-create AppointmentRecurrenceTemplateWeeklyTemplateComponent.friday"); 1890 else if (Configuration.doAutoCreate()) 1891 this.friday = new BooleanType(); // bb 1892 return this.friday; 1893 } 1894 1895 public boolean hasFridayElement() { 1896 return this.friday != null && !this.friday.isEmpty(); 1897 } 1898 1899 public boolean hasFriday() { 1900 return this.friday != null && !this.friday.isEmpty(); 1901 } 1902 1903 /** 1904 * @param value {@link #friday} (Indicates that recurring appointments should occur on Fridays.). This is the underlying object with id, value and extensions. The accessor "getFriday" gives direct access to the value 1905 */ 1906 public AppointmentRecurrenceTemplateWeeklyTemplateComponent setFridayElement(BooleanType value) { 1907 this.friday = value; 1908 return this; 1909 } 1910 1911 /** 1912 * @return Indicates that recurring appointments should occur on Fridays. 1913 */ 1914 public boolean getFriday() { 1915 return this.friday == null || this.friday.isEmpty() ? false : this.friday.getValue(); 1916 } 1917 1918 /** 1919 * @param value Indicates that recurring appointments should occur on Fridays. 1920 */ 1921 public AppointmentRecurrenceTemplateWeeklyTemplateComponent setFriday(boolean value) { 1922 if (this.friday == null) 1923 this.friday = new BooleanType(); 1924 this.friday.setValue(value); 1925 return this; 1926 } 1927 1928 /** 1929 * @return {@link #saturday} (Indicates that recurring appointments should occur on Saturdays.). This is the underlying object with id, value and extensions. The accessor "getSaturday" gives direct access to the value 1930 */ 1931 public BooleanType getSaturdayElement() { 1932 if (this.saturday == null) 1933 if (Configuration.errorOnAutoCreate()) 1934 throw new Error("Attempt to auto-create AppointmentRecurrenceTemplateWeeklyTemplateComponent.saturday"); 1935 else if (Configuration.doAutoCreate()) 1936 this.saturday = new BooleanType(); // bb 1937 return this.saturday; 1938 } 1939 1940 public boolean hasSaturdayElement() { 1941 return this.saturday != null && !this.saturday.isEmpty(); 1942 } 1943 1944 public boolean hasSaturday() { 1945 return this.saturday != null && !this.saturday.isEmpty(); 1946 } 1947 1948 /** 1949 * @param value {@link #saturday} (Indicates that recurring appointments should occur on Saturdays.). This is the underlying object with id, value and extensions. The accessor "getSaturday" gives direct access to the value 1950 */ 1951 public AppointmentRecurrenceTemplateWeeklyTemplateComponent setSaturdayElement(BooleanType value) { 1952 this.saturday = value; 1953 return this; 1954 } 1955 1956 /** 1957 * @return Indicates that recurring appointments should occur on Saturdays. 1958 */ 1959 public boolean getSaturday() { 1960 return this.saturday == null || this.saturday.isEmpty() ? false : this.saturday.getValue(); 1961 } 1962 1963 /** 1964 * @param value Indicates that recurring appointments should occur on Saturdays. 1965 */ 1966 public AppointmentRecurrenceTemplateWeeklyTemplateComponent setSaturday(boolean value) { 1967 if (this.saturday == null) 1968 this.saturday = new BooleanType(); 1969 this.saturday.setValue(value); 1970 return this; 1971 } 1972 1973 /** 1974 * @return {@link #sunday} (Indicates that recurring appointments should occur on Sundays.). This is the underlying object with id, value and extensions. The accessor "getSunday" gives direct access to the value 1975 */ 1976 public BooleanType getSundayElement() { 1977 if (this.sunday == null) 1978 if (Configuration.errorOnAutoCreate()) 1979 throw new Error("Attempt to auto-create AppointmentRecurrenceTemplateWeeklyTemplateComponent.sunday"); 1980 else if (Configuration.doAutoCreate()) 1981 this.sunday = new BooleanType(); // bb 1982 return this.sunday; 1983 } 1984 1985 public boolean hasSundayElement() { 1986 return this.sunday != null && !this.sunday.isEmpty(); 1987 } 1988 1989 public boolean hasSunday() { 1990 return this.sunday != null && !this.sunday.isEmpty(); 1991 } 1992 1993 /** 1994 * @param value {@link #sunday} (Indicates that recurring appointments should occur on Sundays.). This is the underlying object with id, value and extensions. The accessor "getSunday" gives direct access to the value 1995 */ 1996 public AppointmentRecurrenceTemplateWeeklyTemplateComponent setSundayElement(BooleanType value) { 1997 this.sunday = value; 1998 return this; 1999 } 2000 2001 /** 2002 * @return Indicates that recurring appointments should occur on Sundays. 2003 */ 2004 public boolean getSunday() { 2005 return this.sunday == null || this.sunday.isEmpty() ? false : this.sunday.getValue(); 2006 } 2007 2008 /** 2009 * @param value Indicates that recurring appointments should occur on Sundays. 2010 */ 2011 public AppointmentRecurrenceTemplateWeeklyTemplateComponent setSunday(boolean value) { 2012 if (this.sunday == null) 2013 this.sunday = new BooleanType(); 2014 this.sunday.setValue(value); 2015 return this; 2016 } 2017 2018 /** 2019 * @return {@link #weekInterval} (The interval defines if the recurrence is every nth week. The default is every week, so it is expected that this value will be 2 or more. 2020 2021e.g. For recurring every second week this interval would be 2, or every third week the interval would be 3.). This is the underlying object with id, value and extensions. The accessor "getWeekInterval" gives direct access to the value 2022 */ 2023 public PositiveIntType getWeekIntervalElement() { 2024 if (this.weekInterval == null) 2025 if (Configuration.errorOnAutoCreate()) 2026 throw new Error("Attempt to auto-create AppointmentRecurrenceTemplateWeeklyTemplateComponent.weekInterval"); 2027 else if (Configuration.doAutoCreate()) 2028 this.weekInterval = new PositiveIntType(); // bb 2029 return this.weekInterval; 2030 } 2031 2032 public boolean hasWeekIntervalElement() { 2033 return this.weekInterval != null && !this.weekInterval.isEmpty(); 2034 } 2035 2036 public boolean hasWeekInterval() { 2037 return this.weekInterval != null && !this.weekInterval.isEmpty(); 2038 } 2039 2040 /** 2041 * @param value {@link #weekInterval} (The interval defines if the recurrence is every nth week. The default is every week, so it is expected that this value will be 2 or more. 2042 2043e.g. For recurring every second week this interval would be 2, or every third week the interval would be 3.). This is the underlying object with id, value and extensions. The accessor "getWeekInterval" gives direct access to the value 2044 */ 2045 public AppointmentRecurrenceTemplateWeeklyTemplateComponent setWeekIntervalElement(PositiveIntType value) { 2046 this.weekInterval = value; 2047 return this; 2048 } 2049 2050 /** 2051 * @return The interval defines if the recurrence is every nth week. The default is every week, so it is expected that this value will be 2 or more. 2052 2053e.g. For recurring every second week this interval would be 2, or every third week the interval would be 3. 2054 */ 2055 public int getWeekInterval() { 2056 return this.weekInterval == null || this.weekInterval.isEmpty() ? 0 : this.weekInterval.getValue(); 2057 } 2058 2059 /** 2060 * @param value The interval defines if the recurrence is every nth week. The default is every week, so it is expected that this value will be 2 or more. 2061 2062e.g. For recurring every second week this interval would be 2, or every third week the interval would be 3. 2063 */ 2064 public AppointmentRecurrenceTemplateWeeklyTemplateComponent setWeekInterval(int value) { 2065 if (this.weekInterval == null) 2066 this.weekInterval = new PositiveIntType(); 2067 this.weekInterval.setValue(value); 2068 return this; 2069 } 2070 2071 protected void listChildren(List<Property> children) { 2072 super.listChildren(children); 2073 children.add(new Property("monday", "boolean", "Indicates that recurring appointments should occur on Mondays.", 0, 1, monday)); 2074 children.add(new Property("tuesday", "boolean", "Indicates that recurring appointments should occur on Tuesdays.", 0, 1, tuesday)); 2075 children.add(new Property("wednesday", "boolean", "Indicates that recurring appointments should occur on Wednesdays.", 0, 1, wednesday)); 2076 children.add(new Property("thursday", "boolean", "Indicates that recurring appointments should occur on Thursdays.", 0, 1, thursday)); 2077 children.add(new Property("friday", "boolean", "Indicates that recurring appointments should occur on Fridays.", 0, 1, friday)); 2078 children.add(new Property("saturday", "boolean", "Indicates that recurring appointments should occur on Saturdays.", 0, 1, saturday)); 2079 children.add(new Property("sunday", "boolean", "Indicates that recurring appointments should occur on Sundays.", 0, 1, sunday)); 2080 children.add(new Property("weekInterval", "positiveInt", "The interval defines if the recurrence is every nth week. The default is every week, so it is expected that this value will be 2 or more.\r\re.g. For recurring every second week this interval would be 2, or every third week the interval would be 3.", 0, 1, weekInterval)); 2081 } 2082 2083 @Override 2084 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 2085 switch (_hash) { 2086 case -1068502768: /*monday*/ return new Property("monday", "boolean", "Indicates that recurring appointments should occur on Mondays.", 0, 1, monday); 2087 case -977343923: /*tuesday*/ return new Property("tuesday", "boolean", "Indicates that recurring appointments should occur on Tuesdays.", 0, 1, tuesday); 2088 case 1393530710: /*wednesday*/ return new Property("wednesday", "boolean", "Indicates that recurring appointments should occur on Wednesdays.", 0, 1, wednesday); 2089 case 1572055514: /*thursday*/ return new Property("thursday", "boolean", "Indicates that recurring appointments should occur on Thursdays.", 0, 1, thursday); 2090 case -1266285217: /*friday*/ return new Property("friday", "boolean", "Indicates that recurring appointments should occur on Fridays.", 0, 1, friday); 2091 case -2114201671: /*saturday*/ return new Property("saturday", "boolean", "Indicates that recurring appointments should occur on Saturdays.", 0, 1, saturday); 2092 case -891186736: /*sunday*/ return new Property("sunday", "boolean", "Indicates that recurring appointments should occur on Sundays.", 0, 1, sunday); 2093 case -784550695: /*weekInterval*/ return new Property("weekInterval", "positiveInt", "The interval defines if the recurrence is every nth week. The default is every week, so it is expected that this value will be 2 or more.\r\re.g. For recurring every second week this interval would be 2, or every third week the interval would be 3.", 0, 1, weekInterval); 2094 default: return super.getNamedProperty(_hash, _name, _checkValid); 2095 } 2096 2097 } 2098 2099 @Override 2100 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2101 switch (hash) { 2102 case -1068502768: /*monday*/ return this.monday == null ? new Base[0] : new Base[] {this.monday}; // BooleanType 2103 case -977343923: /*tuesday*/ return this.tuesday == null ? new Base[0] : new Base[] {this.tuesday}; // BooleanType 2104 case 1393530710: /*wednesday*/ return this.wednesday == null ? new Base[0] : new Base[] {this.wednesday}; // BooleanType 2105 case 1572055514: /*thursday*/ return this.thursday == null ? new Base[0] : new Base[] {this.thursday}; // BooleanType 2106 case -1266285217: /*friday*/ return this.friday == null ? new Base[0] : new Base[] {this.friday}; // BooleanType 2107 case -2114201671: /*saturday*/ return this.saturday == null ? new Base[0] : new Base[] {this.saturday}; // BooleanType 2108 case -891186736: /*sunday*/ return this.sunday == null ? new Base[0] : new Base[] {this.sunday}; // BooleanType 2109 case -784550695: /*weekInterval*/ return this.weekInterval == null ? new Base[0] : new Base[] {this.weekInterval}; // PositiveIntType 2110 default: return super.getProperty(hash, name, checkValid); 2111 } 2112 2113 } 2114 2115 @Override 2116 public Base setProperty(int hash, String name, Base value) throws FHIRException { 2117 switch (hash) { 2118 case -1068502768: // monday 2119 this.monday = TypeConvertor.castToBoolean(value); // BooleanType 2120 return value; 2121 case -977343923: // tuesday 2122 this.tuesday = TypeConvertor.castToBoolean(value); // BooleanType 2123 return value; 2124 case 1393530710: // wednesday 2125 this.wednesday = TypeConvertor.castToBoolean(value); // BooleanType 2126 return value; 2127 case 1572055514: // thursday 2128 this.thursday = TypeConvertor.castToBoolean(value); // BooleanType 2129 return value; 2130 case -1266285217: // friday 2131 this.friday = TypeConvertor.castToBoolean(value); // BooleanType 2132 return value; 2133 case -2114201671: // saturday 2134 this.saturday = TypeConvertor.castToBoolean(value); // BooleanType 2135 return value; 2136 case -891186736: // sunday 2137 this.sunday = TypeConvertor.castToBoolean(value); // BooleanType 2138 return value; 2139 case -784550695: // weekInterval 2140 this.weekInterval = TypeConvertor.castToPositiveInt(value); // PositiveIntType 2141 return value; 2142 default: return super.setProperty(hash, name, value); 2143 } 2144 2145 } 2146 2147 @Override 2148 public Base setProperty(String name, Base value) throws FHIRException { 2149 if (name.equals("monday")) { 2150 this.monday = TypeConvertor.castToBoolean(value); // BooleanType 2151 } else if (name.equals("tuesday")) { 2152 this.tuesday = TypeConvertor.castToBoolean(value); // BooleanType 2153 } else if (name.equals("wednesday")) { 2154 this.wednesday = TypeConvertor.castToBoolean(value); // BooleanType 2155 } else if (name.equals("thursday")) { 2156 this.thursday = TypeConvertor.castToBoolean(value); // BooleanType 2157 } else if (name.equals("friday")) { 2158 this.friday = TypeConvertor.castToBoolean(value); // BooleanType 2159 } else if (name.equals("saturday")) { 2160 this.saturday = TypeConvertor.castToBoolean(value); // BooleanType 2161 } else if (name.equals("sunday")) { 2162 this.sunday = TypeConvertor.castToBoolean(value); // BooleanType 2163 } else if (name.equals("weekInterval")) { 2164 this.weekInterval = TypeConvertor.castToPositiveInt(value); // PositiveIntType 2165 } else 2166 return super.setProperty(name, value); 2167 return value; 2168 } 2169 2170 @Override 2171 public void removeChild(String name, Base value) throws FHIRException { 2172 if (name.equals("monday")) { 2173 this.monday = null; 2174 } else if (name.equals("tuesday")) { 2175 this.tuesday = null; 2176 } else if (name.equals("wednesday")) { 2177 this.wednesday = null; 2178 } else if (name.equals("thursday")) { 2179 this.thursday = null; 2180 } else if (name.equals("friday")) { 2181 this.friday = null; 2182 } else if (name.equals("saturday")) { 2183 this.saturday = null; 2184 } else if (name.equals("sunday")) { 2185 this.sunday = null; 2186 } else if (name.equals("weekInterval")) { 2187 this.weekInterval = null; 2188 } else 2189 super.removeChild(name, value); 2190 2191 } 2192 2193 @Override 2194 public Base makeProperty(int hash, String name) throws FHIRException { 2195 switch (hash) { 2196 case -1068502768: return getMondayElement(); 2197 case -977343923: return getTuesdayElement(); 2198 case 1393530710: return getWednesdayElement(); 2199 case 1572055514: return getThursdayElement(); 2200 case -1266285217: return getFridayElement(); 2201 case -2114201671: return getSaturdayElement(); 2202 case -891186736: return getSundayElement(); 2203 case -784550695: return getWeekIntervalElement(); 2204 default: return super.makeProperty(hash, name); 2205 } 2206 2207 } 2208 2209 @Override 2210 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2211 switch (hash) { 2212 case -1068502768: /*monday*/ return new String[] {"boolean"}; 2213 case -977343923: /*tuesday*/ return new String[] {"boolean"}; 2214 case 1393530710: /*wednesday*/ return new String[] {"boolean"}; 2215 case 1572055514: /*thursday*/ return new String[] {"boolean"}; 2216 case -1266285217: /*friday*/ return new String[] {"boolean"}; 2217 case -2114201671: /*saturday*/ return new String[] {"boolean"}; 2218 case -891186736: /*sunday*/ return new String[] {"boolean"}; 2219 case -784550695: /*weekInterval*/ return new String[] {"positiveInt"}; 2220 default: return super.getTypesForProperty(hash, name); 2221 } 2222 2223 } 2224 2225 @Override 2226 public Base addChild(String name) throws FHIRException { 2227 if (name.equals("monday")) { 2228 throw new FHIRException("Cannot call addChild on a singleton property Appointment.recurrenceTemplate.weeklyTemplate.monday"); 2229 } 2230 else if (name.equals("tuesday")) { 2231 throw new FHIRException("Cannot call addChild on a singleton property Appointment.recurrenceTemplate.weeklyTemplate.tuesday"); 2232 } 2233 else if (name.equals("wednesday")) { 2234 throw new FHIRException("Cannot call addChild on a singleton property Appointment.recurrenceTemplate.weeklyTemplate.wednesday"); 2235 } 2236 else if (name.equals("thursday")) { 2237 throw new FHIRException("Cannot call addChild on a singleton property Appointment.recurrenceTemplate.weeklyTemplate.thursday"); 2238 } 2239 else if (name.equals("friday")) { 2240 throw new FHIRException("Cannot call addChild on a singleton property Appointment.recurrenceTemplate.weeklyTemplate.friday"); 2241 } 2242 else if (name.equals("saturday")) { 2243 throw new FHIRException("Cannot call addChild on a singleton property Appointment.recurrenceTemplate.weeklyTemplate.saturday"); 2244 } 2245 else if (name.equals("sunday")) { 2246 throw new FHIRException("Cannot call addChild on a singleton property Appointment.recurrenceTemplate.weeklyTemplate.sunday"); 2247 } 2248 else if (name.equals("weekInterval")) { 2249 throw new FHIRException("Cannot call addChild on a singleton property Appointment.recurrenceTemplate.weeklyTemplate.weekInterval"); 2250 } 2251 else 2252 return super.addChild(name); 2253 } 2254 2255 public AppointmentRecurrenceTemplateWeeklyTemplateComponent copy() { 2256 AppointmentRecurrenceTemplateWeeklyTemplateComponent dst = new AppointmentRecurrenceTemplateWeeklyTemplateComponent(); 2257 copyValues(dst); 2258 return dst; 2259 } 2260 2261 public void copyValues(AppointmentRecurrenceTemplateWeeklyTemplateComponent dst) { 2262 super.copyValues(dst); 2263 dst.monday = monday == null ? null : monday.copy(); 2264 dst.tuesday = tuesday == null ? null : tuesday.copy(); 2265 dst.wednesday = wednesday == null ? null : wednesday.copy(); 2266 dst.thursday = thursday == null ? null : thursday.copy(); 2267 dst.friday = friday == null ? null : friday.copy(); 2268 dst.saturday = saturday == null ? null : saturday.copy(); 2269 dst.sunday = sunday == null ? null : sunday.copy(); 2270 dst.weekInterval = weekInterval == null ? null : weekInterval.copy(); 2271 } 2272 2273 @Override 2274 public boolean equalsDeep(Base other_) { 2275 if (!super.equalsDeep(other_)) 2276 return false; 2277 if (!(other_ instanceof AppointmentRecurrenceTemplateWeeklyTemplateComponent)) 2278 return false; 2279 AppointmentRecurrenceTemplateWeeklyTemplateComponent o = (AppointmentRecurrenceTemplateWeeklyTemplateComponent) other_; 2280 return compareDeep(monday, o.monday, true) && compareDeep(tuesday, o.tuesday, true) && compareDeep(wednesday, o.wednesday, true) 2281 && compareDeep(thursday, o.thursday, true) && compareDeep(friday, o.friday, true) && compareDeep(saturday, o.saturday, true) 2282 && compareDeep(sunday, o.sunday, true) && compareDeep(weekInterval, o.weekInterval, true); 2283 } 2284 2285 @Override 2286 public boolean equalsShallow(Base other_) { 2287 if (!super.equalsShallow(other_)) 2288 return false; 2289 if (!(other_ instanceof AppointmentRecurrenceTemplateWeeklyTemplateComponent)) 2290 return false; 2291 AppointmentRecurrenceTemplateWeeklyTemplateComponent o = (AppointmentRecurrenceTemplateWeeklyTemplateComponent) other_; 2292 return compareValues(monday, o.monday, true) && compareValues(tuesday, o.tuesday, true) && compareValues(wednesday, o.wednesday, true) 2293 && compareValues(thursday, o.thursday, true) && compareValues(friday, o.friday, true) && compareValues(saturday, o.saturday, true) 2294 && compareValues(sunday, o.sunday, true) && compareValues(weekInterval, o.weekInterval, true); 2295 } 2296 2297 public boolean isEmpty() { 2298 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(monday, tuesday, wednesday 2299 , thursday, friday, saturday, sunday, weekInterval); 2300 } 2301 2302 public String fhirType() { 2303 return "Appointment.recurrenceTemplate.weeklyTemplate"; 2304 2305 } 2306 2307 } 2308 2309 @Block() 2310 public static class AppointmentRecurrenceTemplateMonthlyTemplateComponent extends BackboneElement implements IBaseBackboneElement { 2311 /** 2312 * Indicates that appointments in the series of recurring appointments should occur on a specific day of the month. 2313 */ 2314 @Child(name = "dayOfMonth", type = {PositiveIntType.class}, order=1, min=0, max=1, modifier=false, summary=false) 2315 @Description(shortDefinition="Recurs on a specific day of the month", formalDefinition="Indicates that appointments in the series of recurring appointments should occur on a specific day of the month." ) 2316 protected PositiveIntType dayOfMonth; 2317 2318 /** 2319 * Indicates which week within a month the appointments in the series of recurring appointments should occur on. 2320 */ 2321 @Child(name = "nthWeekOfMonth", type = {Coding.class}, order=2, min=0, max=1, modifier=false, summary=false) 2322 @Description(shortDefinition="Indicates which week of the month the appointment should occur", formalDefinition="Indicates which week within a month the appointments in the series of recurring appointments should occur on." ) 2323 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/week-of-month") 2324 protected Coding nthWeekOfMonth; 2325 2326 /** 2327 * Indicates which day of the week the recurring appointments should occur each nth week. 2328 */ 2329 @Child(name = "dayOfWeek", type = {Coding.class}, order=3, min=0, max=1, modifier=false, summary=false) 2330 @Description(shortDefinition="Indicates which day of the week the appointment should occur", formalDefinition="Indicates which day of the week the recurring appointments should occur each nth week." ) 2331 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/days-of-week") 2332 protected Coding dayOfWeek; 2333 2334 /** 2335 * Indicates that recurring appointments should occur every nth month. 2336 */ 2337 @Child(name = "monthInterval", type = {PositiveIntType.class}, order=4, min=1, max=1, modifier=false, summary=false) 2338 @Description(shortDefinition="Recurs every nth month", formalDefinition="Indicates that recurring appointments should occur every nth month." ) 2339 protected PositiveIntType monthInterval; 2340 2341 private static final long serialVersionUID = -1234046272L; 2342 2343 /** 2344 * Constructor 2345 */ 2346 public AppointmentRecurrenceTemplateMonthlyTemplateComponent() { 2347 super(); 2348 } 2349 2350 /** 2351 * Constructor 2352 */ 2353 public AppointmentRecurrenceTemplateMonthlyTemplateComponent(int monthInterval) { 2354 super(); 2355 this.setMonthInterval(monthInterval); 2356 } 2357 2358 /** 2359 * @return {@link #dayOfMonth} (Indicates that appointments in the series of recurring appointments should occur on a specific day of the month.). This is the underlying object with id, value and extensions. The accessor "getDayOfMonth" gives direct access to the value 2360 */ 2361 public PositiveIntType getDayOfMonthElement() { 2362 if (this.dayOfMonth == null) 2363 if (Configuration.errorOnAutoCreate()) 2364 throw new Error("Attempt to auto-create AppointmentRecurrenceTemplateMonthlyTemplateComponent.dayOfMonth"); 2365 else if (Configuration.doAutoCreate()) 2366 this.dayOfMonth = new PositiveIntType(); // bb 2367 return this.dayOfMonth; 2368 } 2369 2370 public boolean hasDayOfMonthElement() { 2371 return this.dayOfMonth != null && !this.dayOfMonth.isEmpty(); 2372 } 2373 2374 public boolean hasDayOfMonth() { 2375 return this.dayOfMonth != null && !this.dayOfMonth.isEmpty(); 2376 } 2377 2378 /** 2379 * @param value {@link #dayOfMonth} (Indicates that appointments in the series of recurring appointments should occur on a specific day of the month.). This is the underlying object with id, value and extensions. The accessor "getDayOfMonth" gives direct access to the value 2380 */ 2381 public AppointmentRecurrenceTemplateMonthlyTemplateComponent setDayOfMonthElement(PositiveIntType value) { 2382 this.dayOfMonth = value; 2383 return this; 2384 } 2385 2386 /** 2387 * @return Indicates that appointments in the series of recurring appointments should occur on a specific day of the month. 2388 */ 2389 public int getDayOfMonth() { 2390 return this.dayOfMonth == null || this.dayOfMonth.isEmpty() ? 0 : this.dayOfMonth.getValue(); 2391 } 2392 2393 /** 2394 * @param value Indicates that appointments in the series of recurring appointments should occur on a specific day of the month. 2395 */ 2396 public AppointmentRecurrenceTemplateMonthlyTemplateComponent setDayOfMonth(int value) { 2397 if (this.dayOfMonth == null) 2398 this.dayOfMonth = new PositiveIntType(); 2399 this.dayOfMonth.setValue(value); 2400 return this; 2401 } 2402 2403 /** 2404 * @return {@link #nthWeekOfMonth} (Indicates which week within a month the appointments in the series of recurring appointments should occur on.) 2405 */ 2406 public Coding getNthWeekOfMonth() { 2407 if (this.nthWeekOfMonth == null) 2408 if (Configuration.errorOnAutoCreate()) 2409 throw new Error("Attempt to auto-create AppointmentRecurrenceTemplateMonthlyTemplateComponent.nthWeekOfMonth"); 2410 else if (Configuration.doAutoCreate()) 2411 this.nthWeekOfMonth = new Coding(); // cc 2412 return this.nthWeekOfMonth; 2413 } 2414 2415 public boolean hasNthWeekOfMonth() { 2416 return this.nthWeekOfMonth != null && !this.nthWeekOfMonth.isEmpty(); 2417 } 2418 2419 /** 2420 * @param value {@link #nthWeekOfMonth} (Indicates which week within a month the appointments in the series of recurring appointments should occur on.) 2421 */ 2422 public AppointmentRecurrenceTemplateMonthlyTemplateComponent setNthWeekOfMonth(Coding value) { 2423 this.nthWeekOfMonth = value; 2424 return this; 2425 } 2426 2427 /** 2428 * @return {@link #dayOfWeek} (Indicates which day of the week the recurring appointments should occur each nth week.) 2429 */ 2430 public Coding getDayOfWeek() { 2431 if (this.dayOfWeek == null) 2432 if (Configuration.errorOnAutoCreate()) 2433 throw new Error("Attempt to auto-create AppointmentRecurrenceTemplateMonthlyTemplateComponent.dayOfWeek"); 2434 else if (Configuration.doAutoCreate()) 2435 this.dayOfWeek = new Coding(); // cc 2436 return this.dayOfWeek; 2437 } 2438 2439 public boolean hasDayOfWeek() { 2440 return this.dayOfWeek != null && !this.dayOfWeek.isEmpty(); 2441 } 2442 2443 /** 2444 * @param value {@link #dayOfWeek} (Indicates which day of the week the recurring appointments should occur each nth week.) 2445 */ 2446 public AppointmentRecurrenceTemplateMonthlyTemplateComponent setDayOfWeek(Coding value) { 2447 this.dayOfWeek = value; 2448 return this; 2449 } 2450 2451 /** 2452 * @return {@link #monthInterval} (Indicates that recurring appointments should occur every nth month.). This is the underlying object with id, value and extensions. The accessor "getMonthInterval" gives direct access to the value 2453 */ 2454 public PositiveIntType getMonthIntervalElement() { 2455 if (this.monthInterval == null) 2456 if (Configuration.errorOnAutoCreate()) 2457 throw new Error("Attempt to auto-create AppointmentRecurrenceTemplateMonthlyTemplateComponent.monthInterval"); 2458 else if (Configuration.doAutoCreate()) 2459 this.monthInterval = new PositiveIntType(); // bb 2460 return this.monthInterval; 2461 } 2462 2463 public boolean hasMonthIntervalElement() { 2464 return this.monthInterval != null && !this.monthInterval.isEmpty(); 2465 } 2466 2467 public boolean hasMonthInterval() { 2468 return this.monthInterval != null && !this.monthInterval.isEmpty(); 2469 } 2470 2471 /** 2472 * @param value {@link #monthInterval} (Indicates that recurring appointments should occur every nth month.). This is the underlying object with id, value and extensions. The accessor "getMonthInterval" gives direct access to the value 2473 */ 2474 public AppointmentRecurrenceTemplateMonthlyTemplateComponent setMonthIntervalElement(PositiveIntType value) { 2475 this.monthInterval = value; 2476 return this; 2477 } 2478 2479 /** 2480 * @return Indicates that recurring appointments should occur every nth month. 2481 */ 2482 public int getMonthInterval() { 2483 return this.monthInterval == null || this.monthInterval.isEmpty() ? 0 : this.monthInterval.getValue(); 2484 } 2485 2486 /** 2487 * @param value Indicates that recurring appointments should occur every nth month. 2488 */ 2489 public AppointmentRecurrenceTemplateMonthlyTemplateComponent setMonthInterval(int value) { 2490 if (this.monthInterval == null) 2491 this.monthInterval = new PositiveIntType(); 2492 this.monthInterval.setValue(value); 2493 return this; 2494 } 2495 2496 protected void listChildren(List<Property> children) { 2497 super.listChildren(children); 2498 children.add(new Property("dayOfMonth", "positiveInt", "Indicates that appointments in the series of recurring appointments should occur on a specific day of the month.", 0, 1, dayOfMonth)); 2499 children.add(new Property("nthWeekOfMonth", "Coding", "Indicates which week within a month the appointments in the series of recurring appointments should occur on.", 0, 1, nthWeekOfMonth)); 2500 children.add(new Property("dayOfWeek", "Coding", "Indicates which day of the week the recurring appointments should occur each nth week.", 0, 1, dayOfWeek)); 2501 children.add(new Property("monthInterval", "positiveInt", "Indicates that recurring appointments should occur every nth month.", 0, 1, monthInterval)); 2502 } 2503 2504 @Override 2505 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 2506 switch (_hash) { 2507 case -1181204563: /*dayOfMonth*/ return new Property("dayOfMonth", "positiveInt", "Indicates that appointments in the series of recurring appointments should occur on a specific day of the month.", 0, 1, dayOfMonth); 2508 case 724728723: /*nthWeekOfMonth*/ return new Property("nthWeekOfMonth", "Coding", "Indicates which week within a month the appointments in the series of recurring appointments should occur on.", 0, 1, nthWeekOfMonth); 2509 case -730552025: /*dayOfWeek*/ return new Property("dayOfWeek", "Coding", "Indicates which day of the week the recurring appointments should occur each nth week.", 0, 1, dayOfWeek); 2510 case -251401371: /*monthInterval*/ return new Property("monthInterval", "positiveInt", "Indicates that recurring appointments should occur every nth month.", 0, 1, monthInterval); 2511 default: return super.getNamedProperty(_hash, _name, _checkValid); 2512 } 2513 2514 } 2515 2516 @Override 2517 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2518 switch (hash) { 2519 case -1181204563: /*dayOfMonth*/ return this.dayOfMonth == null ? new Base[0] : new Base[] {this.dayOfMonth}; // PositiveIntType 2520 case 724728723: /*nthWeekOfMonth*/ return this.nthWeekOfMonth == null ? new Base[0] : new Base[] {this.nthWeekOfMonth}; // Coding 2521 case -730552025: /*dayOfWeek*/ return this.dayOfWeek == null ? new Base[0] : new Base[] {this.dayOfWeek}; // Coding 2522 case -251401371: /*monthInterval*/ return this.monthInterval == null ? new Base[0] : new Base[] {this.monthInterval}; // PositiveIntType 2523 default: return super.getProperty(hash, name, checkValid); 2524 } 2525 2526 } 2527 2528 @Override 2529 public Base setProperty(int hash, String name, Base value) throws FHIRException { 2530 switch (hash) { 2531 case -1181204563: // dayOfMonth 2532 this.dayOfMonth = TypeConvertor.castToPositiveInt(value); // PositiveIntType 2533 return value; 2534 case 724728723: // nthWeekOfMonth 2535 this.nthWeekOfMonth = TypeConvertor.castToCoding(value); // Coding 2536 return value; 2537 case -730552025: // dayOfWeek 2538 this.dayOfWeek = TypeConvertor.castToCoding(value); // Coding 2539 return value; 2540 case -251401371: // monthInterval 2541 this.monthInterval = TypeConvertor.castToPositiveInt(value); // PositiveIntType 2542 return value; 2543 default: return super.setProperty(hash, name, value); 2544 } 2545 2546 } 2547 2548 @Override 2549 public Base setProperty(String name, Base value) throws FHIRException { 2550 if (name.equals("dayOfMonth")) { 2551 this.dayOfMonth = TypeConvertor.castToPositiveInt(value); // PositiveIntType 2552 } else if (name.equals("nthWeekOfMonth")) { 2553 this.nthWeekOfMonth = TypeConvertor.castToCoding(value); // Coding 2554 } else if (name.equals("dayOfWeek")) { 2555 this.dayOfWeek = TypeConvertor.castToCoding(value); // Coding 2556 } else if (name.equals("monthInterval")) { 2557 this.monthInterval = TypeConvertor.castToPositiveInt(value); // PositiveIntType 2558 } else 2559 return super.setProperty(name, value); 2560 return value; 2561 } 2562 2563 @Override 2564 public void removeChild(String name, Base value) throws FHIRException { 2565 if (name.equals("dayOfMonth")) { 2566 this.dayOfMonth = null; 2567 } else if (name.equals("nthWeekOfMonth")) { 2568 this.nthWeekOfMonth = null; 2569 } else if (name.equals("dayOfWeek")) { 2570 this.dayOfWeek = null; 2571 } else if (name.equals("monthInterval")) { 2572 this.monthInterval = null; 2573 } else 2574 super.removeChild(name, value); 2575 2576 } 2577 2578 @Override 2579 public Base makeProperty(int hash, String name) throws FHIRException { 2580 switch (hash) { 2581 case -1181204563: return getDayOfMonthElement(); 2582 case 724728723: return getNthWeekOfMonth(); 2583 case -730552025: return getDayOfWeek(); 2584 case -251401371: return getMonthIntervalElement(); 2585 default: return super.makeProperty(hash, name); 2586 } 2587 2588 } 2589 2590 @Override 2591 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2592 switch (hash) { 2593 case -1181204563: /*dayOfMonth*/ return new String[] {"positiveInt"}; 2594 case 724728723: /*nthWeekOfMonth*/ return new String[] {"Coding"}; 2595 case -730552025: /*dayOfWeek*/ return new String[] {"Coding"}; 2596 case -251401371: /*monthInterval*/ return new String[] {"positiveInt"}; 2597 default: return super.getTypesForProperty(hash, name); 2598 } 2599 2600 } 2601 2602 @Override 2603 public Base addChild(String name) throws FHIRException { 2604 if (name.equals("dayOfMonth")) { 2605 throw new FHIRException("Cannot call addChild on a singleton property Appointment.recurrenceTemplate.monthlyTemplate.dayOfMonth"); 2606 } 2607 else if (name.equals("nthWeekOfMonth")) { 2608 this.nthWeekOfMonth = new Coding(); 2609 return this.nthWeekOfMonth; 2610 } 2611 else if (name.equals("dayOfWeek")) { 2612 this.dayOfWeek = new Coding(); 2613 return this.dayOfWeek; 2614 } 2615 else if (name.equals("monthInterval")) { 2616 throw new FHIRException("Cannot call addChild on a singleton property Appointment.recurrenceTemplate.monthlyTemplate.monthInterval"); 2617 } 2618 else 2619 return super.addChild(name); 2620 } 2621 2622 public AppointmentRecurrenceTemplateMonthlyTemplateComponent copy() { 2623 AppointmentRecurrenceTemplateMonthlyTemplateComponent dst = new AppointmentRecurrenceTemplateMonthlyTemplateComponent(); 2624 copyValues(dst); 2625 return dst; 2626 } 2627 2628 public void copyValues(AppointmentRecurrenceTemplateMonthlyTemplateComponent dst) { 2629 super.copyValues(dst); 2630 dst.dayOfMonth = dayOfMonth == null ? null : dayOfMonth.copy(); 2631 dst.nthWeekOfMonth = nthWeekOfMonth == null ? null : nthWeekOfMonth.copy(); 2632 dst.dayOfWeek = dayOfWeek == null ? null : dayOfWeek.copy(); 2633 dst.monthInterval = monthInterval == null ? null : monthInterval.copy(); 2634 } 2635 2636 @Override 2637 public boolean equalsDeep(Base other_) { 2638 if (!super.equalsDeep(other_)) 2639 return false; 2640 if (!(other_ instanceof AppointmentRecurrenceTemplateMonthlyTemplateComponent)) 2641 return false; 2642 AppointmentRecurrenceTemplateMonthlyTemplateComponent o = (AppointmentRecurrenceTemplateMonthlyTemplateComponent) other_; 2643 return compareDeep(dayOfMonth, o.dayOfMonth, true) && compareDeep(nthWeekOfMonth, o.nthWeekOfMonth, true) 2644 && compareDeep(dayOfWeek, o.dayOfWeek, true) && compareDeep(monthInterval, o.monthInterval, true) 2645 ; 2646 } 2647 2648 @Override 2649 public boolean equalsShallow(Base other_) { 2650 if (!super.equalsShallow(other_)) 2651 return false; 2652 if (!(other_ instanceof AppointmentRecurrenceTemplateMonthlyTemplateComponent)) 2653 return false; 2654 AppointmentRecurrenceTemplateMonthlyTemplateComponent o = (AppointmentRecurrenceTemplateMonthlyTemplateComponent) other_; 2655 return compareValues(dayOfMonth, o.dayOfMonth, true) && compareValues(monthInterval, o.monthInterval, true) 2656 ; 2657 } 2658 2659 public boolean isEmpty() { 2660 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(dayOfMonth, nthWeekOfMonth 2661 , dayOfWeek, monthInterval); 2662 } 2663 2664 public String fhirType() { 2665 return "Appointment.recurrenceTemplate.monthlyTemplate"; 2666 2667 } 2668 2669 } 2670 2671 @Block() 2672 public static class AppointmentRecurrenceTemplateYearlyTemplateComponent extends BackboneElement implements IBaseBackboneElement { 2673 /** 2674 * Appointment recurs every nth year. 2675 */ 2676 @Child(name = "yearInterval", type = {PositiveIntType.class}, order=1, min=1, max=1, modifier=false, summary=false) 2677 @Description(shortDefinition="Recurs every nth year", formalDefinition="Appointment recurs every nth year." ) 2678 protected PositiveIntType yearInterval; 2679 2680 private static final long serialVersionUID = -120794476L; 2681 2682 /** 2683 * Constructor 2684 */ 2685 public AppointmentRecurrenceTemplateYearlyTemplateComponent() { 2686 super(); 2687 } 2688 2689 /** 2690 * Constructor 2691 */ 2692 public AppointmentRecurrenceTemplateYearlyTemplateComponent(int yearInterval) { 2693 super(); 2694 this.setYearInterval(yearInterval); 2695 } 2696 2697 /** 2698 * @return {@link #yearInterval} (Appointment recurs every nth year.). This is the underlying object with id, value and extensions. The accessor "getYearInterval" gives direct access to the value 2699 */ 2700 public PositiveIntType getYearIntervalElement() { 2701 if (this.yearInterval == null) 2702 if (Configuration.errorOnAutoCreate()) 2703 throw new Error("Attempt to auto-create AppointmentRecurrenceTemplateYearlyTemplateComponent.yearInterval"); 2704 else if (Configuration.doAutoCreate()) 2705 this.yearInterval = new PositiveIntType(); // bb 2706 return this.yearInterval; 2707 } 2708 2709 public boolean hasYearIntervalElement() { 2710 return this.yearInterval != null && !this.yearInterval.isEmpty(); 2711 } 2712 2713 public boolean hasYearInterval() { 2714 return this.yearInterval != null && !this.yearInterval.isEmpty(); 2715 } 2716 2717 /** 2718 * @param value {@link #yearInterval} (Appointment recurs every nth year.). This is the underlying object with id, value and extensions. The accessor "getYearInterval" gives direct access to the value 2719 */ 2720 public AppointmentRecurrenceTemplateYearlyTemplateComponent setYearIntervalElement(PositiveIntType value) { 2721 this.yearInterval = value; 2722 return this; 2723 } 2724 2725 /** 2726 * @return Appointment recurs every nth year. 2727 */ 2728 public int getYearInterval() { 2729 return this.yearInterval == null || this.yearInterval.isEmpty() ? 0 : this.yearInterval.getValue(); 2730 } 2731 2732 /** 2733 * @param value Appointment recurs every nth year. 2734 */ 2735 public AppointmentRecurrenceTemplateYearlyTemplateComponent setYearInterval(int value) { 2736 if (this.yearInterval == null) 2737 this.yearInterval = new PositiveIntType(); 2738 this.yearInterval.setValue(value); 2739 return this; 2740 } 2741 2742 protected void listChildren(List<Property> children) { 2743 super.listChildren(children); 2744 children.add(new Property("yearInterval", "positiveInt", "Appointment recurs every nth year.", 0, 1, yearInterval)); 2745 } 2746 2747 @Override 2748 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 2749 switch (_hash) { 2750 case 492389410: /*yearInterval*/ return new Property("yearInterval", "positiveInt", "Appointment recurs every nth year.", 0, 1, yearInterval); 2751 default: return super.getNamedProperty(_hash, _name, _checkValid); 2752 } 2753 2754 } 2755 2756 @Override 2757 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2758 switch (hash) { 2759 case 492389410: /*yearInterval*/ return this.yearInterval == null ? new Base[0] : new Base[] {this.yearInterval}; // PositiveIntType 2760 default: return super.getProperty(hash, name, checkValid); 2761 } 2762 2763 } 2764 2765 @Override 2766 public Base setProperty(int hash, String name, Base value) throws FHIRException { 2767 switch (hash) { 2768 case 492389410: // yearInterval 2769 this.yearInterval = TypeConvertor.castToPositiveInt(value); // PositiveIntType 2770 return value; 2771 default: return super.setProperty(hash, name, value); 2772 } 2773 2774 } 2775 2776 @Override 2777 public Base setProperty(String name, Base value) throws FHIRException { 2778 if (name.equals("yearInterval")) { 2779 this.yearInterval = TypeConvertor.castToPositiveInt(value); // PositiveIntType 2780 } else 2781 return super.setProperty(name, value); 2782 return value; 2783 } 2784 2785 @Override 2786 public void removeChild(String name, Base value) throws FHIRException { 2787 if (name.equals("yearInterval")) { 2788 this.yearInterval = null; 2789 } else 2790 super.removeChild(name, value); 2791 2792 } 2793 2794 @Override 2795 public Base makeProperty(int hash, String name) throws FHIRException { 2796 switch (hash) { 2797 case 492389410: return getYearIntervalElement(); 2798 default: return super.makeProperty(hash, name); 2799 } 2800 2801 } 2802 2803 @Override 2804 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2805 switch (hash) { 2806 case 492389410: /*yearInterval*/ return new String[] {"positiveInt"}; 2807 default: return super.getTypesForProperty(hash, name); 2808 } 2809 2810 } 2811 2812 @Override 2813 public Base addChild(String name) throws FHIRException { 2814 if (name.equals("yearInterval")) { 2815 throw new FHIRException("Cannot call addChild on a singleton property Appointment.recurrenceTemplate.yearlyTemplate.yearInterval"); 2816 } 2817 else 2818 return super.addChild(name); 2819 } 2820 2821 public AppointmentRecurrenceTemplateYearlyTemplateComponent copy() { 2822 AppointmentRecurrenceTemplateYearlyTemplateComponent dst = new AppointmentRecurrenceTemplateYearlyTemplateComponent(); 2823 copyValues(dst); 2824 return dst; 2825 } 2826 2827 public void copyValues(AppointmentRecurrenceTemplateYearlyTemplateComponent dst) { 2828 super.copyValues(dst); 2829 dst.yearInterval = yearInterval == null ? null : yearInterval.copy(); 2830 } 2831 2832 @Override 2833 public boolean equalsDeep(Base other_) { 2834 if (!super.equalsDeep(other_)) 2835 return false; 2836 if (!(other_ instanceof AppointmentRecurrenceTemplateYearlyTemplateComponent)) 2837 return false; 2838 AppointmentRecurrenceTemplateYearlyTemplateComponent o = (AppointmentRecurrenceTemplateYearlyTemplateComponent) other_; 2839 return compareDeep(yearInterval, o.yearInterval, true); 2840 } 2841 2842 @Override 2843 public boolean equalsShallow(Base other_) { 2844 if (!super.equalsShallow(other_)) 2845 return false; 2846 if (!(other_ instanceof AppointmentRecurrenceTemplateYearlyTemplateComponent)) 2847 return false; 2848 AppointmentRecurrenceTemplateYearlyTemplateComponent o = (AppointmentRecurrenceTemplateYearlyTemplateComponent) other_; 2849 return compareValues(yearInterval, o.yearInterval, true); 2850 } 2851 2852 public boolean isEmpty() { 2853 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(yearInterval); 2854 } 2855 2856 public String fhirType() { 2857 return "Appointment.recurrenceTemplate.yearlyTemplate"; 2858 2859 } 2860 2861 } 2862 2863 /** 2864 * 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). 2865 */ 2866 @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 2867 @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)." ) 2868 protected List<Identifier> identifier; 2869 2870 /** 2871 * 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. 2872 */ 2873 @Child(name = "status", type = {CodeType.class}, order=1, min=1, max=1, modifier=true, summary=true) 2874 @Description(shortDefinition="proposed | pending | booked | arrived | fulfilled | cancelled | noshow | entered-in-error | checked-in | waitlist", 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." ) 2875 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/appointmentstatus") 2876 protected Enumeration<AppointmentStatus> status; 2877 2878 /** 2879 * The coded reason for the appointment being cancelled. This is often used in reporting/billing/futher processing to determine if further actions are required, or specific fees apply. 2880 */ 2881 @Child(name = "cancellationReason", type = {CodeableConcept.class}, order=2, min=0, max=1, modifier=false, summary=true) 2882 @Description(shortDefinition="The coded reason for the appointment being cancelled", formalDefinition="The coded reason for the appointment being cancelled. This is often used in reporting/billing/futher processing to determine if further actions are required, or specific fees apply." ) 2883 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/appointment-cancellation-reason") 2884 protected CodeableConcept cancellationReason; 2885 2886 /** 2887 * Concepts representing classification of patient encounter such as ambulatory (outpatient), inpatient, emergency, home health or others due to local variations. 2888 */ 2889 @Child(name = "class", type = {CodeableConcept.class}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 2890 @Description(shortDefinition="Classification when becoming an encounter", formalDefinition="Concepts representing classification of patient encounter such as ambulatory (outpatient), inpatient, emergency, home health or others due to local variations." ) 2891 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://terminology.hl7.org/ValueSet/EncounterClass") 2892 protected List<CodeableConcept> class_; 2893 2894 /** 2895 * A broad categorization of the service that is to be performed during this appointment. 2896 */ 2897 @Child(name = "serviceCategory", type = {CodeableConcept.class}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 2898 @Description(shortDefinition="A broad categorization of the service that is to be performed during this appointment", formalDefinition="A broad categorization of the service that is to be performed during this appointment." ) 2899 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/service-category") 2900 protected List<CodeableConcept> serviceCategory; 2901 2902 /** 2903 * The specific service that is to be performed during this appointment. 2904 */ 2905 @Child(name = "serviceType", type = {CodeableReference.class}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 2906 @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." ) 2907 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/service-type") 2908 protected List<CodeableReference> serviceType; 2909 2910 /** 2911 * The specialty of a practitioner that would be required to perform the service requested in this appointment. 2912 */ 2913 @Child(name = "specialty", type = {CodeableConcept.class}, order=6, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 2914 @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." ) 2915 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/c80-practice-codes") 2916 protected List<CodeableConcept> specialty; 2917 2918 /** 2919 * The style of appointment or patient that has been booked in the slot (not service type). 2920 */ 2921 @Child(name = "appointmentType", type = {CodeableConcept.class}, order=7, min=0, max=1, modifier=false, summary=true) 2922 @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)." ) 2923 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://terminology.hl7.org/ValueSet/v2-0276") 2924 protected CodeableConcept appointmentType; 2925 2926 /** 2927 * The reason that this appointment is being scheduled. This is more clinical than administrative. This can be coded, or 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. 2928 */ 2929 @Child(name = "reason", type = {CodeableReference.class}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 2930 @Description(shortDefinition="Reason this appointment is scheduled", formalDefinition="The reason that this appointment is being scheduled. This is more clinical than administrative. This can be coded, or 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." ) 2931 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/encounter-reason") 2932 protected List<CodeableReference> reason; 2933 2934 /** 2935 * 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). 2936 */ 2937 @Child(name = "priority", type = {CodeableConcept.class}, order=9, min=0, max=1, modifier=false, summary=false) 2938 @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)." ) 2939 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://terminology.hl7.org/ValueSet/v3-ActPriority") 2940 protected CodeableConcept priority; 2941 2942 /** 2943 * 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 note field. 2944 */ 2945 @Child(name = "description", type = {StringType.class}, order=10, min=0, max=1, modifier=false, summary=false) 2946 @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 note field." ) 2947 protected StringType description; 2948 2949 /** 2950 * Appointment replaced by this Appointment in cases where there is a cancellation, the details of the cancellation can be found in the cancellationReason property (on the referenced resource). 2951 */ 2952 @Child(name = "replaces", type = {Appointment.class}, order=11, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 2953 @Description(shortDefinition="Appointment replaced by this Appointment", formalDefinition="Appointment replaced by this Appointment in cases where there is a cancellation, the details of the cancellation can be found in the cancellationReason property (on the referenced resource)." ) 2954 protected List<Reference> replaces; 2955 2956 /** 2957 * Connection details of a virtual service (e.g. conference call). 2958 */ 2959 @Child(name = "virtualService", type = {VirtualServiceDetail.class}, order=12, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 2960 @Description(shortDefinition="Connection details of a virtual service (e.g. conference call)", formalDefinition="Connection details of a virtual service (e.g. conference call)." ) 2961 protected List<VirtualServiceDetail> virtualService; 2962 2963 /** 2964 * Additional information to support the appointment provided when making the appointment. 2965 */ 2966 @Child(name = "supportingInformation", type = {Reference.class}, order=13, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 2967 @Description(shortDefinition="Additional information to support the appointment", formalDefinition="Additional information to support the appointment provided when making the appointment." ) 2968 protected List<Reference> supportingInformation; 2969 2970 /** 2971 * The previous appointment in a series of related appointments. 2972 */ 2973 @Child(name = "previousAppointment", type = {Appointment.class}, order=14, min=0, max=1, modifier=false, summary=false) 2974 @Description(shortDefinition="The previous appointment in a series", formalDefinition="The previous appointment in a series of related appointments." ) 2975 protected Reference previousAppointment; 2976 2977 /** 2978 * The originating appointment in a recurring set of related appointments. 2979 */ 2980 @Child(name = "originatingAppointment", type = {Appointment.class}, order=15, min=0, max=1, modifier=false, summary=false) 2981 @Description(shortDefinition="The originating appointment in a recurring set of appointments", formalDefinition="The originating appointment in a recurring set of related appointments." ) 2982 protected Reference originatingAppointment; 2983 2984 /** 2985 * Date/Time that the appointment is to take place. 2986 */ 2987 @Child(name = "start", type = {InstantType.class}, order=16, min=0, max=1, modifier=false, summary=true) 2988 @Description(shortDefinition="When appointment is to take place", formalDefinition="Date/Time that the appointment is to take place." ) 2989 protected InstantType start; 2990 2991 /** 2992 * Date/Time that the appointment is to conclude. 2993 */ 2994 @Child(name = "end", type = {InstantType.class}, order=17, min=0, max=1, modifier=false, summary=true) 2995 @Description(shortDefinition="When appointment is to conclude", formalDefinition="Date/Time that the appointment is to conclude." ) 2996 protected InstantType end; 2997 2998 /** 2999 * Number of minutes that the appointment is to take. This can be less than the duration between the start and end times. For example, where the actual time of appointment is only an estimate or if a 30 minute appointment is being requested, but any time would work. Also, if there is, for example, a planned 15 minute break in the middle of a long appointment, the duration may be 15 minutes less than the difference between the start and end. 3000 */ 3001 @Child(name = "minutesDuration", type = {PositiveIntType.class}, order=18, min=0, max=1, modifier=false, summary=false) 3002 @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. For example, where the actual time of appointment is only an estimate or if a 30 minute appointment is being requested, but any time would work. Also, if there is, for example, a planned 15 minute break in the middle of a long appointment, the duration may be 15 minutes less than the difference between the start and end." ) 3003 protected PositiveIntType minutesDuration; 3004 3005 /** 3006 * A set of date ranges (potentially including times) that the appointment is preferred to be scheduled within. 3007 3008The duration (usually in minutes) could also be provided to indicate the length of the appointment to fill and populate the start/end times for the actual allocated time. However, in other situations the duration may be calculated by the scheduling system. 3009 */ 3010 @Child(name = "requestedPeriod", type = {Period.class}, order=19, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 3011 @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.\n\nThe duration (usually in minutes) could also be provided to indicate the length of the appointment to fill and populate the start/end times for the actual allocated time. However, in other situations the duration may be calculated by the scheduling system." ) 3012 protected List<Period> requestedPeriod; 3013 3014 /** 3015 * The slots from the participants' schedules that will be filled by the appointment. 3016 */ 3017 @Child(name = "slot", type = {Slot.class}, order=20, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 3018 @Description(shortDefinition="The slots that this appointment is filling", formalDefinition="The slots from the participants' schedules that will be filled by the appointment." ) 3019 protected List<Reference> slot; 3020 3021 /** 3022 * The set of accounts that is expected to be used for billing the activities that result from this Appointment. 3023 */ 3024 @Child(name = "account", type = {Account.class}, order=21, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 3025 @Description(shortDefinition="The set of accounts that may be used for billing for this Appointment", formalDefinition="The set of accounts that is expected to be used for billing the activities that result from this Appointment." ) 3026 protected List<Reference> account; 3027 3028 /** 3029 * 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. 3030 */ 3031 @Child(name = "created", type = {DateTimeType.class}, order=22, min=0, max=1, modifier=false, summary=false) 3032 @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." ) 3033 protected DateTimeType created; 3034 3035 /** 3036 * The date/time describing when the appointment was cancelled. 3037 */ 3038 @Child(name = "cancellationDate", type = {DateTimeType.class}, order=23, min=0, max=1, modifier=false, summary=false) 3039 @Description(shortDefinition="When the appointment was cancelled", formalDefinition="The date/time describing when the appointment was cancelled." ) 3040 protected DateTimeType cancellationDate; 3041 3042 /** 3043 * Additional notes/comments about the appointment. 3044 */ 3045 @Child(name = "note", type = {Annotation.class}, order=24, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 3046 @Description(shortDefinition="Additional comments", formalDefinition="Additional notes/comments about the appointment." ) 3047 protected List<Annotation> note; 3048 3049 /** 3050 * While Appointment.note contains information for internal use, Appointment.patientInstructions is used to capture patient facing information about the Appointment (e.g. please bring your referral or fast from 8pm night before). 3051 */ 3052 @Child(name = "patientInstruction", type = {CodeableReference.class}, order=25, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 3053 @Description(shortDefinition="Detailed information and instructions for the patient", formalDefinition="While Appointment.note contains information for internal use, Appointment.patientInstructions is used to capture patient facing information about the Appointment (e.g. please bring your referral or fast from 8pm night before)." ) 3054 protected List<CodeableReference> patientInstruction; 3055 3056 /** 3057 * The request this appointment is allocated to assess (e.g. incoming referral or procedure request). 3058 */ 3059 @Child(name = "basedOn", type = {CarePlan.class, DeviceRequest.class, MedicationRequest.class, ServiceRequest.class}, order=26, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 3060 @Description(shortDefinition="The request this appointment is allocated to assess", formalDefinition="The request this appointment is allocated to assess (e.g. incoming referral or procedure request)." ) 3061 protected List<Reference> basedOn; 3062 3063 /** 3064 * The patient or group associated with the appointment, if they are to be present (usually) then they should also be included in the participant backbone element. 3065 */ 3066 @Child(name = "subject", type = {Patient.class, Group.class}, order=27, min=0, max=1, modifier=false, summary=true) 3067 @Description(shortDefinition="The patient or group associated with the appointment", formalDefinition="The patient or group associated with the appointment, if they are to be present (usually) then they should also be included in the participant backbone element." ) 3068 protected Reference subject; 3069 3070 /** 3071 * List of participants involved in the appointment. 3072 */ 3073 @Child(name = "participant", type = {}, order=28, min=1, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 3074 @Description(shortDefinition="Participants involved in appointment", formalDefinition="List of participants involved in the appointment." ) 3075 protected List<AppointmentParticipantComponent> participant; 3076 3077 /** 3078 * The sequence number that identifies a specific appointment in a recurring pattern. 3079 */ 3080 @Child(name = "recurrenceId", type = {PositiveIntType.class}, order=29, min=0, max=1, modifier=false, summary=false) 3081 @Description(shortDefinition="The sequence number in the recurrence", formalDefinition="The sequence number that identifies a specific appointment in a recurring pattern." ) 3082 protected PositiveIntType recurrenceId; 3083 3084 /** 3085 * This appointment varies from the recurring pattern. 3086 */ 3087 @Child(name = "occurrenceChanged", type = {BooleanType.class}, order=30, min=0, max=1, modifier=false, summary=false) 3088 @Description(shortDefinition="Indicates that this appointment varies from a recurrence pattern", formalDefinition="This appointment varies from the recurring pattern." ) 3089 protected BooleanType occurrenceChanged; 3090 3091 /** 3092 * The details of the recurrence pattern or template that is used to generate recurring appointments. 3093 */ 3094 @Child(name = "recurrenceTemplate", type = {}, order=31, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 3095 @Description(shortDefinition="Details of the recurrence pattern/template used to generate occurrences", formalDefinition="The details of the recurrence pattern or template that is used to generate recurring appointments." ) 3096 protected List<AppointmentRecurrenceTemplateComponent> recurrenceTemplate; 3097 3098 private static final long serialVersionUID = 883088259L; 3099 3100 /** 3101 * Constructor 3102 */ 3103 public Appointment() { 3104 super(); 3105 } 3106 3107 /** 3108 * Constructor 3109 */ 3110 public Appointment(AppointmentStatus status, AppointmentParticipantComponent participant) { 3111 super(); 3112 this.setStatus(status); 3113 this.addParticipant(participant); 3114 } 3115 3116 /** 3117 * @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).) 3118 */ 3119 public List<Identifier> getIdentifier() { 3120 if (this.identifier == null) 3121 this.identifier = new ArrayList<Identifier>(); 3122 return this.identifier; 3123 } 3124 3125 /** 3126 * @return Returns a reference to <code>this</code> for easy method chaining 3127 */ 3128 public Appointment setIdentifier(List<Identifier> theIdentifier) { 3129 this.identifier = theIdentifier; 3130 return this; 3131 } 3132 3133 public boolean hasIdentifier() { 3134 if (this.identifier == null) 3135 return false; 3136 for (Identifier item : this.identifier) 3137 if (!item.isEmpty()) 3138 return true; 3139 return false; 3140 } 3141 3142 public Identifier addIdentifier() { //3 3143 Identifier t = new Identifier(); 3144 if (this.identifier == null) 3145 this.identifier = new ArrayList<Identifier>(); 3146 this.identifier.add(t); 3147 return t; 3148 } 3149 3150 public Appointment addIdentifier(Identifier t) { //3 3151 if (t == null) 3152 return this; 3153 if (this.identifier == null) 3154 this.identifier = new ArrayList<Identifier>(); 3155 this.identifier.add(t); 3156 return this; 3157 } 3158 3159 /** 3160 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3} 3161 */ 3162 public Identifier getIdentifierFirstRep() { 3163 if (getIdentifier().isEmpty()) { 3164 addIdentifier(); 3165 } 3166 return getIdentifier().get(0); 3167 } 3168 3169 /** 3170 * @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 3171 */ 3172 public Enumeration<AppointmentStatus> getStatusElement() { 3173 if (this.status == null) 3174 if (Configuration.errorOnAutoCreate()) 3175 throw new Error("Attempt to auto-create Appointment.status"); 3176 else if (Configuration.doAutoCreate()) 3177 this.status = new Enumeration<AppointmentStatus>(new AppointmentStatusEnumFactory()); // bb 3178 return this.status; 3179 } 3180 3181 public boolean hasStatusElement() { 3182 return this.status != null && !this.status.isEmpty(); 3183 } 3184 3185 public boolean hasStatus() { 3186 return this.status != null && !this.status.isEmpty(); 3187 } 3188 3189 /** 3190 * @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 3191 */ 3192 public Appointment setStatusElement(Enumeration<AppointmentStatus> value) { 3193 this.status = value; 3194 return this; 3195 } 3196 3197 /** 3198 * @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. 3199 */ 3200 public AppointmentStatus getStatus() { 3201 return this.status == null ? null : this.status.getValue(); 3202 } 3203 3204 /** 3205 * @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. 3206 */ 3207 public Appointment setStatus(AppointmentStatus value) { 3208 if (this.status == null) 3209 this.status = new Enumeration<AppointmentStatus>(new AppointmentStatusEnumFactory()); 3210 this.status.setValue(value); 3211 return this; 3212 } 3213 3214 /** 3215 * @return {@link #cancellationReason} (The coded reason for the appointment being cancelled. This is often used in reporting/billing/futher processing to determine if further actions are required, or specific fees apply.) 3216 */ 3217 public CodeableConcept getCancellationReason() { 3218 if (this.cancellationReason == null) 3219 if (Configuration.errorOnAutoCreate()) 3220 throw new Error("Attempt to auto-create Appointment.cancellationReason"); 3221 else if (Configuration.doAutoCreate()) 3222 this.cancellationReason = new CodeableConcept(); // cc 3223 return this.cancellationReason; 3224 } 3225 3226 public boolean hasCancellationReason() { 3227 return this.cancellationReason != null && !this.cancellationReason.isEmpty(); 3228 } 3229 3230 /** 3231 * @param value {@link #cancellationReason} (The coded reason for the appointment being cancelled. This is often used in reporting/billing/futher processing to determine if further actions are required, or specific fees apply.) 3232 */ 3233 public Appointment setCancellationReason(CodeableConcept value) { 3234 this.cancellationReason = value; 3235 return this; 3236 } 3237 3238 /** 3239 * @return {@link #class_} (Concepts representing classification of patient encounter such as ambulatory (outpatient), inpatient, emergency, home health or others due to local variations.) 3240 */ 3241 public List<CodeableConcept> getClass_() { 3242 if (this.class_ == null) 3243 this.class_ = new ArrayList<CodeableConcept>(); 3244 return this.class_; 3245 } 3246 3247 /** 3248 * @return Returns a reference to <code>this</code> for easy method chaining 3249 */ 3250 public Appointment setClass_(List<CodeableConcept> theClass_) { 3251 this.class_ = theClass_; 3252 return this; 3253 } 3254 3255 public boolean hasClass_() { 3256 if (this.class_ == null) 3257 return false; 3258 for (CodeableConcept item : this.class_) 3259 if (!item.isEmpty()) 3260 return true; 3261 return false; 3262 } 3263 3264 public CodeableConcept addClass_() { //3 3265 CodeableConcept t = new CodeableConcept(); 3266 if (this.class_ == null) 3267 this.class_ = new ArrayList<CodeableConcept>(); 3268 this.class_.add(t); 3269 return t; 3270 } 3271 3272 public Appointment addClass_(CodeableConcept t) { //3 3273 if (t == null) 3274 return this; 3275 if (this.class_ == null) 3276 this.class_ = new ArrayList<CodeableConcept>(); 3277 this.class_.add(t); 3278 return this; 3279 } 3280 3281 /** 3282 * @return The first repetition of repeating field {@link #class_}, creating it if it does not already exist {3} 3283 */ 3284 public CodeableConcept getClass_FirstRep() { 3285 if (getClass_().isEmpty()) { 3286 addClass_(); 3287 } 3288 return getClass_().get(0); 3289 } 3290 3291 /** 3292 * @return {@link #serviceCategory} (A broad categorization of the service that is to be performed during this appointment.) 3293 */ 3294 public List<CodeableConcept> getServiceCategory() { 3295 if (this.serviceCategory == null) 3296 this.serviceCategory = new ArrayList<CodeableConcept>(); 3297 return this.serviceCategory; 3298 } 3299 3300 /** 3301 * @return Returns a reference to <code>this</code> for easy method chaining 3302 */ 3303 public Appointment setServiceCategory(List<CodeableConcept> theServiceCategory) { 3304 this.serviceCategory = theServiceCategory; 3305 return this; 3306 } 3307 3308 public boolean hasServiceCategory() { 3309 if (this.serviceCategory == null) 3310 return false; 3311 for (CodeableConcept item : this.serviceCategory) 3312 if (!item.isEmpty()) 3313 return true; 3314 return false; 3315 } 3316 3317 public CodeableConcept addServiceCategory() { //3 3318 CodeableConcept t = new CodeableConcept(); 3319 if (this.serviceCategory == null) 3320 this.serviceCategory = new ArrayList<CodeableConcept>(); 3321 this.serviceCategory.add(t); 3322 return t; 3323 } 3324 3325 public Appointment addServiceCategory(CodeableConcept t) { //3 3326 if (t == null) 3327 return this; 3328 if (this.serviceCategory == null) 3329 this.serviceCategory = new ArrayList<CodeableConcept>(); 3330 this.serviceCategory.add(t); 3331 return this; 3332 } 3333 3334 /** 3335 * @return The first repetition of repeating field {@link #serviceCategory}, creating it if it does not already exist {3} 3336 */ 3337 public CodeableConcept getServiceCategoryFirstRep() { 3338 if (getServiceCategory().isEmpty()) { 3339 addServiceCategory(); 3340 } 3341 return getServiceCategory().get(0); 3342 } 3343 3344 /** 3345 * @return {@link #serviceType} (The specific service that is to be performed during this appointment.) 3346 */ 3347 public List<CodeableReference> getServiceType() { 3348 if (this.serviceType == null) 3349 this.serviceType = new ArrayList<CodeableReference>(); 3350 return this.serviceType; 3351 } 3352 3353 /** 3354 * @return Returns a reference to <code>this</code> for easy method chaining 3355 */ 3356 public Appointment setServiceType(List<CodeableReference> theServiceType) { 3357 this.serviceType = theServiceType; 3358 return this; 3359 } 3360 3361 public boolean hasServiceType() { 3362 if (this.serviceType == null) 3363 return false; 3364 for (CodeableReference item : this.serviceType) 3365 if (!item.isEmpty()) 3366 return true; 3367 return false; 3368 } 3369 3370 public CodeableReference addServiceType() { //3 3371 CodeableReference t = new CodeableReference(); 3372 if (this.serviceType == null) 3373 this.serviceType = new ArrayList<CodeableReference>(); 3374 this.serviceType.add(t); 3375 return t; 3376 } 3377 3378 public Appointment addServiceType(CodeableReference t) { //3 3379 if (t == null) 3380 return this; 3381 if (this.serviceType == null) 3382 this.serviceType = new ArrayList<CodeableReference>(); 3383 this.serviceType.add(t); 3384 return this; 3385 } 3386 3387 /** 3388 * @return The first repetition of repeating field {@link #serviceType}, creating it if it does not already exist {3} 3389 */ 3390 public CodeableReference getServiceTypeFirstRep() { 3391 if (getServiceType().isEmpty()) { 3392 addServiceType(); 3393 } 3394 return getServiceType().get(0); 3395 } 3396 3397 /** 3398 * @return {@link #specialty} (The specialty of a practitioner that would be required to perform the service requested in this appointment.) 3399 */ 3400 public List<CodeableConcept> getSpecialty() { 3401 if (this.specialty == null) 3402 this.specialty = new ArrayList<CodeableConcept>(); 3403 return this.specialty; 3404 } 3405 3406 /** 3407 * @return Returns a reference to <code>this</code> for easy method chaining 3408 */ 3409 public Appointment setSpecialty(List<CodeableConcept> theSpecialty) { 3410 this.specialty = theSpecialty; 3411 return this; 3412 } 3413 3414 public boolean hasSpecialty() { 3415 if (this.specialty == null) 3416 return false; 3417 for (CodeableConcept item : this.specialty) 3418 if (!item.isEmpty()) 3419 return true; 3420 return false; 3421 } 3422 3423 public CodeableConcept addSpecialty() { //3 3424 CodeableConcept t = new CodeableConcept(); 3425 if (this.specialty == null) 3426 this.specialty = new ArrayList<CodeableConcept>(); 3427 this.specialty.add(t); 3428 return t; 3429 } 3430 3431 public Appointment addSpecialty(CodeableConcept t) { //3 3432 if (t == null) 3433 return this; 3434 if (this.specialty == null) 3435 this.specialty = new ArrayList<CodeableConcept>(); 3436 this.specialty.add(t); 3437 return this; 3438 } 3439 3440 /** 3441 * @return The first repetition of repeating field {@link #specialty}, creating it if it does not already exist {3} 3442 */ 3443 public CodeableConcept getSpecialtyFirstRep() { 3444 if (getSpecialty().isEmpty()) { 3445 addSpecialty(); 3446 } 3447 return getSpecialty().get(0); 3448 } 3449 3450 /** 3451 * @return {@link #appointmentType} (The style of appointment or patient that has been booked in the slot (not service type).) 3452 */ 3453 public CodeableConcept getAppointmentType() { 3454 if (this.appointmentType == null) 3455 if (Configuration.errorOnAutoCreate()) 3456 throw new Error("Attempt to auto-create Appointment.appointmentType"); 3457 else if (Configuration.doAutoCreate()) 3458 this.appointmentType = new CodeableConcept(); // cc 3459 return this.appointmentType; 3460 } 3461 3462 public boolean hasAppointmentType() { 3463 return this.appointmentType != null && !this.appointmentType.isEmpty(); 3464 } 3465 3466 /** 3467 * @param value {@link #appointmentType} (The style of appointment or patient that has been booked in the slot (not service type).) 3468 */ 3469 public Appointment setAppointmentType(CodeableConcept value) { 3470 this.appointmentType = value; 3471 return this; 3472 } 3473 3474 /** 3475 * @return {@link #reason} (The reason that this appointment is being scheduled. This is more clinical than administrative. This can be coded, or 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.) 3476 */ 3477 public List<CodeableReference> getReason() { 3478 if (this.reason == null) 3479 this.reason = new ArrayList<CodeableReference>(); 3480 return this.reason; 3481 } 3482 3483 /** 3484 * @return Returns a reference to <code>this</code> for easy method chaining 3485 */ 3486 public Appointment setReason(List<CodeableReference> theReason) { 3487 this.reason = theReason; 3488 return this; 3489 } 3490 3491 public boolean hasReason() { 3492 if (this.reason == null) 3493 return false; 3494 for (CodeableReference item : this.reason) 3495 if (!item.isEmpty()) 3496 return true; 3497 return false; 3498 } 3499 3500 public CodeableReference addReason() { //3 3501 CodeableReference t = new CodeableReference(); 3502 if (this.reason == null) 3503 this.reason = new ArrayList<CodeableReference>(); 3504 this.reason.add(t); 3505 return t; 3506 } 3507 3508 public Appointment addReason(CodeableReference t) { //3 3509 if (t == null) 3510 return this; 3511 if (this.reason == null) 3512 this.reason = new ArrayList<CodeableReference>(); 3513 this.reason.add(t); 3514 return this; 3515 } 3516 3517 /** 3518 * @return The first repetition of repeating field {@link #reason}, creating it if it does not already exist {3} 3519 */ 3520 public CodeableReference getReasonFirstRep() { 3521 if (getReason().isEmpty()) { 3522 addReason(); 3523 } 3524 return getReason().get(0); 3525 } 3526 3527 /** 3528 * @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).) 3529 */ 3530 public CodeableConcept getPriority() { 3531 if (this.priority == null) 3532 if (Configuration.errorOnAutoCreate()) 3533 throw new Error("Attempt to auto-create Appointment.priority"); 3534 else if (Configuration.doAutoCreate()) 3535 this.priority = new CodeableConcept(); // cc 3536 return this.priority; 3537 } 3538 3539 public boolean hasPriority() { 3540 return this.priority != null && !this.priority.isEmpty(); 3541 } 3542 3543 /** 3544 * @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).) 3545 */ 3546 public Appointment setPriority(CodeableConcept value) { 3547 this.priority = value; 3548 return this; 3549 } 3550 3551 /** 3552 * @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 note field.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 3553 */ 3554 public StringType getDescriptionElement() { 3555 if (this.description == null) 3556 if (Configuration.errorOnAutoCreate()) 3557 throw new Error("Attempt to auto-create Appointment.description"); 3558 else if (Configuration.doAutoCreate()) 3559 this.description = new StringType(); // bb 3560 return this.description; 3561 } 3562 3563 public boolean hasDescriptionElement() { 3564 return this.description != null && !this.description.isEmpty(); 3565 } 3566 3567 public boolean hasDescription() { 3568 return this.description != null && !this.description.isEmpty(); 3569 } 3570 3571 /** 3572 * @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 note field.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 3573 */ 3574 public Appointment setDescriptionElement(StringType value) { 3575 this.description = value; 3576 return this; 3577 } 3578 3579 /** 3580 * @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 note field. 3581 */ 3582 public String getDescription() { 3583 return this.description == null ? null : this.description.getValue(); 3584 } 3585 3586 /** 3587 * @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 note field. 3588 */ 3589 public Appointment setDescription(String value) { 3590 if (Utilities.noString(value)) 3591 this.description = null; 3592 else { 3593 if (this.description == null) 3594 this.description = new StringType(); 3595 this.description.setValue(value); 3596 } 3597 return this; 3598 } 3599 3600 /** 3601 * @return {@link #replaces} (Appointment replaced by this Appointment in cases where there is a cancellation, the details of the cancellation can be found in the cancellationReason property (on the referenced resource).) 3602 */ 3603 public List<Reference> getReplaces() { 3604 if (this.replaces == null) 3605 this.replaces = new ArrayList<Reference>(); 3606 return this.replaces; 3607 } 3608 3609 /** 3610 * @return Returns a reference to <code>this</code> for easy method chaining 3611 */ 3612 public Appointment setReplaces(List<Reference> theReplaces) { 3613 this.replaces = theReplaces; 3614 return this; 3615 } 3616 3617 public boolean hasReplaces() { 3618 if (this.replaces == null) 3619 return false; 3620 for (Reference item : this.replaces) 3621 if (!item.isEmpty()) 3622 return true; 3623 return false; 3624 } 3625 3626 public Reference addReplaces() { //3 3627 Reference t = new Reference(); 3628 if (this.replaces == null) 3629 this.replaces = new ArrayList<Reference>(); 3630 this.replaces.add(t); 3631 return t; 3632 } 3633 3634 public Appointment addReplaces(Reference t) { //3 3635 if (t == null) 3636 return this; 3637 if (this.replaces == null) 3638 this.replaces = new ArrayList<Reference>(); 3639 this.replaces.add(t); 3640 return this; 3641 } 3642 3643 /** 3644 * @return The first repetition of repeating field {@link #replaces}, creating it if it does not already exist {3} 3645 */ 3646 public Reference getReplacesFirstRep() { 3647 if (getReplaces().isEmpty()) { 3648 addReplaces(); 3649 } 3650 return getReplaces().get(0); 3651 } 3652 3653 /** 3654 * @return {@link #virtualService} (Connection details of a virtual service (e.g. conference call).) 3655 */ 3656 public List<VirtualServiceDetail> getVirtualService() { 3657 if (this.virtualService == null) 3658 this.virtualService = new ArrayList<VirtualServiceDetail>(); 3659 return this.virtualService; 3660 } 3661 3662 /** 3663 * @return Returns a reference to <code>this</code> for easy method chaining 3664 */ 3665 public Appointment setVirtualService(List<VirtualServiceDetail> theVirtualService) { 3666 this.virtualService = theVirtualService; 3667 return this; 3668 } 3669 3670 public boolean hasVirtualService() { 3671 if (this.virtualService == null) 3672 return false; 3673 for (VirtualServiceDetail item : this.virtualService) 3674 if (!item.isEmpty()) 3675 return true; 3676 return false; 3677 } 3678 3679 public VirtualServiceDetail addVirtualService() { //3 3680 VirtualServiceDetail t = new VirtualServiceDetail(); 3681 if (this.virtualService == null) 3682 this.virtualService = new ArrayList<VirtualServiceDetail>(); 3683 this.virtualService.add(t); 3684 return t; 3685 } 3686 3687 public Appointment addVirtualService(VirtualServiceDetail t) { //3 3688 if (t == null) 3689 return this; 3690 if (this.virtualService == null) 3691 this.virtualService = new ArrayList<VirtualServiceDetail>(); 3692 this.virtualService.add(t); 3693 return this; 3694 } 3695 3696 /** 3697 * @return The first repetition of repeating field {@link #virtualService}, creating it if it does not already exist {3} 3698 */ 3699 public VirtualServiceDetail getVirtualServiceFirstRep() { 3700 if (getVirtualService().isEmpty()) { 3701 addVirtualService(); 3702 } 3703 return getVirtualService().get(0); 3704 } 3705 3706 /** 3707 * @return {@link #supportingInformation} (Additional information to support the appointment provided when making the appointment.) 3708 */ 3709 public List<Reference> getSupportingInformation() { 3710 if (this.supportingInformation == null) 3711 this.supportingInformation = new ArrayList<Reference>(); 3712 return this.supportingInformation; 3713 } 3714 3715 /** 3716 * @return Returns a reference to <code>this</code> for easy method chaining 3717 */ 3718 public Appointment setSupportingInformation(List<Reference> theSupportingInformation) { 3719 this.supportingInformation = theSupportingInformation; 3720 return this; 3721 } 3722 3723 public boolean hasSupportingInformation() { 3724 if (this.supportingInformation == null) 3725 return false; 3726 for (Reference item : this.supportingInformation) 3727 if (!item.isEmpty()) 3728 return true; 3729 return false; 3730 } 3731 3732 public Reference addSupportingInformation() { //3 3733 Reference t = new Reference(); 3734 if (this.supportingInformation == null) 3735 this.supportingInformation = new ArrayList<Reference>(); 3736 this.supportingInformation.add(t); 3737 return t; 3738 } 3739 3740 public Appointment addSupportingInformation(Reference t) { //3 3741 if (t == null) 3742 return this; 3743 if (this.supportingInformation == null) 3744 this.supportingInformation = new ArrayList<Reference>(); 3745 this.supportingInformation.add(t); 3746 return this; 3747 } 3748 3749 /** 3750 * @return The first repetition of repeating field {@link #supportingInformation}, creating it if it does not already exist {3} 3751 */ 3752 public Reference getSupportingInformationFirstRep() { 3753 if (getSupportingInformation().isEmpty()) { 3754 addSupportingInformation(); 3755 } 3756 return getSupportingInformation().get(0); 3757 } 3758 3759 /** 3760 * @return {@link #previousAppointment} (The previous appointment in a series of related appointments.) 3761 */ 3762 public Reference getPreviousAppointment() { 3763 if (this.previousAppointment == null) 3764 if (Configuration.errorOnAutoCreate()) 3765 throw new Error("Attempt to auto-create Appointment.previousAppointment"); 3766 else if (Configuration.doAutoCreate()) 3767 this.previousAppointment = new Reference(); // cc 3768 return this.previousAppointment; 3769 } 3770 3771 public boolean hasPreviousAppointment() { 3772 return this.previousAppointment != null && !this.previousAppointment.isEmpty(); 3773 } 3774 3775 /** 3776 * @param value {@link #previousAppointment} (The previous appointment in a series of related appointments.) 3777 */ 3778 public Appointment setPreviousAppointment(Reference value) { 3779 this.previousAppointment = value; 3780 return this; 3781 } 3782 3783 /** 3784 * @return {@link #originatingAppointment} (The originating appointment in a recurring set of related appointments.) 3785 */ 3786 public Reference getOriginatingAppointment() { 3787 if (this.originatingAppointment == null) 3788 if (Configuration.errorOnAutoCreate()) 3789 throw new Error("Attempt to auto-create Appointment.originatingAppointment"); 3790 else if (Configuration.doAutoCreate()) 3791 this.originatingAppointment = new Reference(); // cc 3792 return this.originatingAppointment; 3793 } 3794 3795 public boolean hasOriginatingAppointment() { 3796 return this.originatingAppointment != null && !this.originatingAppointment.isEmpty(); 3797 } 3798 3799 /** 3800 * @param value {@link #originatingAppointment} (The originating appointment in a recurring set of related appointments.) 3801 */ 3802 public Appointment setOriginatingAppointment(Reference value) { 3803 this.originatingAppointment = value; 3804 return this; 3805 } 3806 3807 /** 3808 * @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 3809 */ 3810 public InstantType getStartElement() { 3811 if (this.start == null) 3812 if (Configuration.errorOnAutoCreate()) 3813 throw new Error("Attempt to auto-create Appointment.start"); 3814 else if (Configuration.doAutoCreate()) 3815 this.start = new InstantType(); // bb 3816 return this.start; 3817 } 3818 3819 public boolean hasStartElement() { 3820 return this.start != null && !this.start.isEmpty(); 3821 } 3822 3823 public boolean hasStart() { 3824 return this.start != null && !this.start.isEmpty(); 3825 } 3826 3827 /** 3828 * @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 3829 */ 3830 public Appointment setStartElement(InstantType value) { 3831 this.start = value; 3832 return this; 3833 } 3834 3835 /** 3836 * @return Date/Time that the appointment is to take place. 3837 */ 3838 public Date getStart() { 3839 return this.start == null ? null : this.start.getValue(); 3840 } 3841 3842 /** 3843 * @param value Date/Time that the appointment is to take place. 3844 */ 3845 public Appointment setStart(Date value) { 3846 if (value == null) 3847 this.start = null; 3848 else { 3849 if (this.start == null) 3850 this.start = new InstantType(); 3851 this.start.setValue(value); 3852 } 3853 return this; 3854 } 3855 3856 /** 3857 * @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 3858 */ 3859 public InstantType getEndElement() { 3860 if (this.end == null) 3861 if (Configuration.errorOnAutoCreate()) 3862 throw new Error("Attempt to auto-create Appointment.end"); 3863 else if (Configuration.doAutoCreate()) 3864 this.end = new InstantType(); // bb 3865 return this.end; 3866 } 3867 3868 public boolean hasEndElement() { 3869 return this.end != null && !this.end.isEmpty(); 3870 } 3871 3872 public boolean hasEnd() { 3873 return this.end != null && !this.end.isEmpty(); 3874 } 3875 3876 /** 3877 * @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 3878 */ 3879 public Appointment setEndElement(InstantType value) { 3880 this.end = value; 3881 return this; 3882 } 3883 3884 /** 3885 * @return Date/Time that the appointment is to conclude. 3886 */ 3887 public Date getEnd() { 3888 return this.end == null ? null : this.end.getValue(); 3889 } 3890 3891 /** 3892 * @param value Date/Time that the appointment is to conclude. 3893 */ 3894 public Appointment setEnd(Date value) { 3895 if (value == null) 3896 this.end = null; 3897 else { 3898 if (this.end == null) 3899 this.end = new InstantType(); 3900 this.end.setValue(value); 3901 } 3902 return this; 3903 } 3904 3905 /** 3906 * @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. For example, where the actual time of appointment is only an estimate or if a 30 minute appointment is being requested, but any time would work. Also, if there is, for example, a planned 15 minute break in the middle of a long appointment, the duration may be 15 minutes less than the difference between the start and end.). This is the underlying object with id, value and extensions. The accessor "getMinutesDuration" gives direct access to the value 3907 */ 3908 public PositiveIntType getMinutesDurationElement() { 3909 if (this.minutesDuration == null) 3910 if (Configuration.errorOnAutoCreate()) 3911 throw new Error("Attempt to auto-create Appointment.minutesDuration"); 3912 else if (Configuration.doAutoCreate()) 3913 this.minutesDuration = new PositiveIntType(); // bb 3914 return this.minutesDuration; 3915 } 3916 3917 public boolean hasMinutesDurationElement() { 3918 return this.minutesDuration != null && !this.minutesDuration.isEmpty(); 3919 } 3920 3921 public boolean hasMinutesDuration() { 3922 return this.minutesDuration != null && !this.minutesDuration.isEmpty(); 3923 } 3924 3925 /** 3926 * @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. For example, where the actual time of appointment is only an estimate or if a 30 minute appointment is being requested, but any time would work. Also, if there is, for example, a planned 15 minute break in the middle of a long appointment, the duration may be 15 minutes less than the difference between the start and end.). This is the underlying object with id, value and extensions. The accessor "getMinutesDuration" gives direct access to the value 3927 */ 3928 public Appointment setMinutesDurationElement(PositiveIntType value) { 3929 this.minutesDuration = value; 3930 return this; 3931 } 3932 3933 /** 3934 * @return Number of minutes that the appointment is to take. This can be less than the duration between the start and end times. For example, where the actual time of appointment is only an estimate or if a 30 minute appointment is being requested, but any time would work. Also, if there is, for example, a planned 15 minute break in the middle of a long appointment, the duration may be 15 minutes less than the difference between the start and end. 3935 */ 3936 public int getMinutesDuration() { 3937 return this.minutesDuration == null || this.minutesDuration.isEmpty() ? 0 : this.minutesDuration.getValue(); 3938 } 3939 3940 /** 3941 * @param value Number of minutes that the appointment is to take. This can be less than the duration between the start and end times. For example, where the actual time of appointment is only an estimate or if a 30 minute appointment is being requested, but any time would work. Also, if there is, for example, a planned 15 minute break in the middle of a long appointment, the duration may be 15 minutes less than the difference between the start and end. 3942 */ 3943 public Appointment setMinutesDuration(int value) { 3944 if (this.minutesDuration == null) 3945 this.minutesDuration = new PositiveIntType(); 3946 this.minutesDuration.setValue(value); 3947 return this; 3948 } 3949 3950 /** 3951 * @return {@link #requestedPeriod} (A set of date ranges (potentially including times) that the appointment is preferred to be scheduled within. 3952 3953The duration (usually in minutes) could also be provided to indicate the length of the appointment to fill and populate the start/end times for the actual allocated time. However, in other situations the duration may be calculated by the scheduling system.) 3954 */ 3955 public List<Period> getRequestedPeriod() { 3956 if (this.requestedPeriod == null) 3957 this.requestedPeriod = new ArrayList<Period>(); 3958 return this.requestedPeriod; 3959 } 3960 3961 /** 3962 * @return Returns a reference to <code>this</code> for easy method chaining 3963 */ 3964 public Appointment setRequestedPeriod(List<Period> theRequestedPeriod) { 3965 this.requestedPeriod = theRequestedPeriod; 3966 return this; 3967 } 3968 3969 public boolean hasRequestedPeriod() { 3970 if (this.requestedPeriod == null) 3971 return false; 3972 for (Period item : this.requestedPeriod) 3973 if (!item.isEmpty()) 3974 return true; 3975 return false; 3976 } 3977 3978 public Period addRequestedPeriod() { //3 3979 Period t = new Period(); 3980 if (this.requestedPeriod == null) 3981 this.requestedPeriod = new ArrayList<Period>(); 3982 this.requestedPeriod.add(t); 3983 return t; 3984 } 3985 3986 public Appointment addRequestedPeriod(Period t) { //3 3987 if (t == null) 3988 return this; 3989 if (this.requestedPeriod == null) 3990 this.requestedPeriod = new ArrayList<Period>(); 3991 this.requestedPeriod.add(t); 3992 return this; 3993 } 3994 3995 /** 3996 * @return The first repetition of repeating field {@link #requestedPeriod}, creating it if it does not already exist {3} 3997 */ 3998 public Period getRequestedPeriodFirstRep() { 3999 if (getRequestedPeriod().isEmpty()) { 4000 addRequestedPeriod(); 4001 } 4002 return getRequestedPeriod().get(0); 4003 } 4004 4005 /** 4006 * @return {@link #slot} (The slots from the participants' schedules that will be filled by the appointment.) 4007 */ 4008 public List<Reference> getSlot() { 4009 if (this.slot == null) 4010 this.slot = new ArrayList<Reference>(); 4011 return this.slot; 4012 } 4013 4014 /** 4015 * @return Returns a reference to <code>this</code> for easy method chaining 4016 */ 4017 public Appointment setSlot(List<Reference> theSlot) { 4018 this.slot = theSlot; 4019 return this; 4020 } 4021 4022 public boolean hasSlot() { 4023 if (this.slot == null) 4024 return false; 4025 for (Reference item : this.slot) 4026 if (!item.isEmpty()) 4027 return true; 4028 return false; 4029 } 4030 4031 public Reference addSlot() { //3 4032 Reference t = new Reference(); 4033 if (this.slot == null) 4034 this.slot = new ArrayList<Reference>(); 4035 this.slot.add(t); 4036 return t; 4037 } 4038 4039 public Appointment addSlot(Reference t) { //3 4040 if (t == null) 4041 return this; 4042 if (this.slot == null) 4043 this.slot = new ArrayList<Reference>(); 4044 this.slot.add(t); 4045 return this; 4046 } 4047 4048 /** 4049 * @return The first repetition of repeating field {@link #slot}, creating it if it does not already exist {3} 4050 */ 4051 public Reference getSlotFirstRep() { 4052 if (getSlot().isEmpty()) { 4053 addSlot(); 4054 } 4055 return getSlot().get(0); 4056 } 4057 4058 /** 4059 * @return {@link #account} (The set of accounts that is expected to be used for billing the activities that result from this Appointment.) 4060 */ 4061 public List<Reference> getAccount() { 4062 if (this.account == null) 4063 this.account = new ArrayList<Reference>(); 4064 return this.account; 4065 } 4066 4067 /** 4068 * @return Returns a reference to <code>this</code> for easy method chaining 4069 */ 4070 public Appointment setAccount(List<Reference> theAccount) { 4071 this.account = theAccount; 4072 return this; 4073 } 4074 4075 public boolean hasAccount() { 4076 if (this.account == null) 4077 return false; 4078 for (Reference item : this.account) 4079 if (!item.isEmpty()) 4080 return true; 4081 return false; 4082 } 4083 4084 public Reference addAccount() { //3 4085 Reference t = new Reference(); 4086 if (this.account == null) 4087 this.account = new ArrayList<Reference>(); 4088 this.account.add(t); 4089 return t; 4090 } 4091 4092 public Appointment addAccount(Reference t) { //3 4093 if (t == null) 4094 return this; 4095 if (this.account == null) 4096 this.account = new ArrayList<Reference>(); 4097 this.account.add(t); 4098 return this; 4099 } 4100 4101 /** 4102 * @return The first repetition of repeating field {@link #account}, creating it if it does not already exist {3} 4103 */ 4104 public Reference getAccountFirstRep() { 4105 if (getAccount().isEmpty()) { 4106 addAccount(); 4107 } 4108 return getAccount().get(0); 4109 } 4110 4111 /** 4112 * @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 4113 */ 4114 public DateTimeType getCreatedElement() { 4115 if (this.created == null) 4116 if (Configuration.errorOnAutoCreate()) 4117 throw new Error("Attempt to auto-create Appointment.created"); 4118 else if (Configuration.doAutoCreate()) 4119 this.created = new DateTimeType(); // bb 4120 return this.created; 4121 } 4122 4123 public boolean hasCreatedElement() { 4124 return this.created != null && !this.created.isEmpty(); 4125 } 4126 4127 public boolean hasCreated() { 4128 return this.created != null && !this.created.isEmpty(); 4129 } 4130 4131 /** 4132 * @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 4133 */ 4134 public Appointment setCreatedElement(DateTimeType value) { 4135 this.created = value; 4136 return this; 4137 } 4138 4139 /** 4140 * @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. 4141 */ 4142 public Date getCreated() { 4143 return this.created == null ? null : this.created.getValue(); 4144 } 4145 4146 /** 4147 * @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. 4148 */ 4149 public Appointment setCreated(Date value) { 4150 if (value == null) 4151 this.created = null; 4152 else { 4153 if (this.created == null) 4154 this.created = new DateTimeType(); 4155 this.created.setValue(value); 4156 } 4157 return this; 4158 } 4159 4160 /** 4161 * @return {@link #cancellationDate} (The date/time describing when the appointment was cancelled.). This is the underlying object with id, value and extensions. The accessor "getCancellationDate" gives direct access to the value 4162 */ 4163 public DateTimeType getCancellationDateElement() { 4164 if (this.cancellationDate == null) 4165 if (Configuration.errorOnAutoCreate()) 4166 throw new Error("Attempt to auto-create Appointment.cancellationDate"); 4167 else if (Configuration.doAutoCreate()) 4168 this.cancellationDate = new DateTimeType(); // bb 4169 return this.cancellationDate; 4170 } 4171 4172 public boolean hasCancellationDateElement() { 4173 return this.cancellationDate != null && !this.cancellationDate.isEmpty(); 4174 } 4175 4176 public boolean hasCancellationDate() { 4177 return this.cancellationDate != null && !this.cancellationDate.isEmpty(); 4178 } 4179 4180 /** 4181 * @param value {@link #cancellationDate} (The date/time describing when the appointment was cancelled.). This is the underlying object with id, value and extensions. The accessor "getCancellationDate" gives direct access to the value 4182 */ 4183 public Appointment setCancellationDateElement(DateTimeType value) { 4184 this.cancellationDate = value; 4185 return this; 4186 } 4187 4188 /** 4189 * @return The date/time describing when the appointment was cancelled. 4190 */ 4191 public Date getCancellationDate() { 4192 return this.cancellationDate == null ? null : this.cancellationDate.getValue(); 4193 } 4194 4195 /** 4196 * @param value The date/time describing when the appointment was cancelled. 4197 */ 4198 public Appointment setCancellationDate(Date value) { 4199 if (value == null) 4200 this.cancellationDate = null; 4201 else { 4202 if (this.cancellationDate == null) 4203 this.cancellationDate = new DateTimeType(); 4204 this.cancellationDate.setValue(value); 4205 } 4206 return this; 4207 } 4208 4209 /** 4210 * @return {@link #note} (Additional notes/comments about the appointment.) 4211 */ 4212 public List<Annotation> getNote() { 4213 if (this.note == null) 4214 this.note = new ArrayList<Annotation>(); 4215 return this.note; 4216 } 4217 4218 /** 4219 * @return Returns a reference to <code>this</code> for easy method chaining 4220 */ 4221 public Appointment setNote(List<Annotation> theNote) { 4222 this.note = theNote; 4223 return this; 4224 } 4225 4226 public boolean hasNote() { 4227 if (this.note == null) 4228 return false; 4229 for (Annotation item : this.note) 4230 if (!item.isEmpty()) 4231 return true; 4232 return false; 4233 } 4234 4235 public Annotation addNote() { //3 4236 Annotation t = new Annotation(); 4237 if (this.note == null) 4238 this.note = new ArrayList<Annotation>(); 4239 this.note.add(t); 4240 return t; 4241 } 4242 4243 public Appointment addNote(Annotation t) { //3 4244 if (t == null) 4245 return this; 4246 if (this.note == null) 4247 this.note = new ArrayList<Annotation>(); 4248 this.note.add(t); 4249 return this; 4250 } 4251 4252 /** 4253 * @return The first repetition of repeating field {@link #note}, creating it if it does not already exist {3} 4254 */ 4255 public Annotation getNoteFirstRep() { 4256 if (getNote().isEmpty()) { 4257 addNote(); 4258 } 4259 return getNote().get(0); 4260 } 4261 4262 /** 4263 * @return {@link #patientInstruction} (While Appointment.note contains information for internal use, Appointment.patientInstructions is used to capture patient facing information about the Appointment (e.g. please bring your referral or fast from 8pm night before).) 4264 */ 4265 public List<CodeableReference> getPatientInstruction() { 4266 if (this.patientInstruction == null) 4267 this.patientInstruction = new ArrayList<CodeableReference>(); 4268 return this.patientInstruction; 4269 } 4270 4271 /** 4272 * @return Returns a reference to <code>this</code> for easy method chaining 4273 */ 4274 public Appointment setPatientInstruction(List<CodeableReference> thePatientInstruction) { 4275 this.patientInstruction = thePatientInstruction; 4276 return this; 4277 } 4278 4279 public boolean hasPatientInstruction() { 4280 if (this.patientInstruction == null) 4281 return false; 4282 for (CodeableReference item : this.patientInstruction) 4283 if (!item.isEmpty()) 4284 return true; 4285 return false; 4286 } 4287 4288 public CodeableReference addPatientInstruction() { //3 4289 CodeableReference t = new CodeableReference(); 4290 if (this.patientInstruction == null) 4291 this.patientInstruction = new ArrayList<CodeableReference>(); 4292 this.patientInstruction.add(t); 4293 return t; 4294 } 4295 4296 public Appointment addPatientInstruction(CodeableReference t) { //3 4297 if (t == null) 4298 return this; 4299 if (this.patientInstruction == null) 4300 this.patientInstruction = new ArrayList<CodeableReference>(); 4301 this.patientInstruction.add(t); 4302 return this; 4303 } 4304 4305 /** 4306 * @return The first repetition of repeating field {@link #patientInstruction}, creating it if it does not already exist {3} 4307 */ 4308 public CodeableReference getPatientInstructionFirstRep() { 4309 if (getPatientInstruction().isEmpty()) { 4310 addPatientInstruction(); 4311 } 4312 return getPatientInstruction().get(0); 4313 } 4314 4315 /** 4316 * @return {@link #basedOn} (The request this appointment is allocated to assess (e.g. incoming referral or procedure request).) 4317 */ 4318 public List<Reference> getBasedOn() { 4319 if (this.basedOn == null) 4320 this.basedOn = new ArrayList<Reference>(); 4321 return this.basedOn; 4322 } 4323 4324 /** 4325 * @return Returns a reference to <code>this</code> for easy method chaining 4326 */ 4327 public Appointment setBasedOn(List<Reference> theBasedOn) { 4328 this.basedOn = theBasedOn; 4329 return this; 4330 } 4331 4332 public boolean hasBasedOn() { 4333 if (this.basedOn == null) 4334 return false; 4335 for (Reference item : this.basedOn) 4336 if (!item.isEmpty()) 4337 return true; 4338 return false; 4339 } 4340 4341 public Reference addBasedOn() { //3 4342 Reference t = new Reference(); 4343 if (this.basedOn == null) 4344 this.basedOn = new ArrayList<Reference>(); 4345 this.basedOn.add(t); 4346 return t; 4347 } 4348 4349 public Appointment addBasedOn(Reference t) { //3 4350 if (t == null) 4351 return this; 4352 if (this.basedOn == null) 4353 this.basedOn = new ArrayList<Reference>(); 4354 this.basedOn.add(t); 4355 return this; 4356 } 4357 4358 /** 4359 * @return The first repetition of repeating field {@link #basedOn}, creating it if it does not already exist {3} 4360 */ 4361 public Reference getBasedOnFirstRep() { 4362 if (getBasedOn().isEmpty()) { 4363 addBasedOn(); 4364 } 4365 return getBasedOn().get(0); 4366 } 4367 4368 /** 4369 * @return {@link #subject} (The patient or group associated with the appointment, if they are to be present (usually) then they should also be included in the participant backbone element.) 4370 */ 4371 public Reference getSubject() { 4372 if (this.subject == null) 4373 if (Configuration.errorOnAutoCreate()) 4374 throw new Error("Attempt to auto-create Appointment.subject"); 4375 else if (Configuration.doAutoCreate()) 4376 this.subject = new Reference(); // cc 4377 return this.subject; 4378 } 4379 4380 public boolean hasSubject() { 4381 return this.subject != null && !this.subject.isEmpty(); 4382 } 4383 4384 /** 4385 * @param value {@link #subject} (The patient or group associated with the appointment, if they are to be present (usually) then they should also be included in the participant backbone element.) 4386 */ 4387 public Appointment setSubject(Reference value) { 4388 this.subject = value; 4389 return this; 4390 } 4391 4392 /** 4393 * @return {@link #participant} (List of participants involved in the appointment.) 4394 */ 4395 public List<AppointmentParticipantComponent> getParticipant() { 4396 if (this.participant == null) 4397 this.participant = new ArrayList<AppointmentParticipantComponent>(); 4398 return this.participant; 4399 } 4400 4401 /** 4402 * @return Returns a reference to <code>this</code> for easy method chaining 4403 */ 4404 public Appointment setParticipant(List<AppointmentParticipantComponent> theParticipant) { 4405 this.participant = theParticipant; 4406 return this; 4407 } 4408 4409 public boolean hasParticipant() { 4410 if (this.participant == null) 4411 return false; 4412 for (AppointmentParticipantComponent item : this.participant) 4413 if (!item.isEmpty()) 4414 return true; 4415 return false; 4416 } 4417 4418 public AppointmentParticipantComponent addParticipant() { //3 4419 AppointmentParticipantComponent t = new AppointmentParticipantComponent(); 4420 if (this.participant == null) 4421 this.participant = new ArrayList<AppointmentParticipantComponent>(); 4422 this.participant.add(t); 4423 return t; 4424 } 4425 4426 public Appointment addParticipant(AppointmentParticipantComponent t) { //3 4427 if (t == null) 4428 return this; 4429 if (this.participant == null) 4430 this.participant = new ArrayList<AppointmentParticipantComponent>(); 4431 this.participant.add(t); 4432 return this; 4433 } 4434 4435 /** 4436 * @return The first repetition of repeating field {@link #participant}, creating it if it does not already exist {3} 4437 */ 4438 public AppointmentParticipantComponent getParticipantFirstRep() { 4439 if (getParticipant().isEmpty()) { 4440 addParticipant(); 4441 } 4442 return getParticipant().get(0); 4443 } 4444 4445 /** 4446 * @return {@link #recurrenceId} (The sequence number that identifies a specific appointment in a recurring pattern.). This is the underlying object with id, value and extensions. The accessor "getRecurrenceId" gives direct access to the value 4447 */ 4448 public PositiveIntType getRecurrenceIdElement() { 4449 if (this.recurrenceId == null) 4450 if (Configuration.errorOnAutoCreate()) 4451 throw new Error("Attempt to auto-create Appointment.recurrenceId"); 4452 else if (Configuration.doAutoCreate()) 4453 this.recurrenceId = new PositiveIntType(); // bb 4454 return this.recurrenceId; 4455 } 4456 4457 public boolean hasRecurrenceIdElement() { 4458 return this.recurrenceId != null && !this.recurrenceId.isEmpty(); 4459 } 4460 4461 public boolean hasRecurrenceId() { 4462 return this.recurrenceId != null && !this.recurrenceId.isEmpty(); 4463 } 4464 4465 /** 4466 * @param value {@link #recurrenceId} (The sequence number that identifies a specific appointment in a recurring pattern.). This is the underlying object with id, value and extensions. The accessor "getRecurrenceId" gives direct access to the value 4467 */ 4468 public Appointment setRecurrenceIdElement(PositiveIntType value) { 4469 this.recurrenceId = value; 4470 return this; 4471 } 4472 4473 /** 4474 * @return The sequence number that identifies a specific appointment in a recurring pattern. 4475 */ 4476 public int getRecurrenceId() { 4477 return this.recurrenceId == null || this.recurrenceId.isEmpty() ? 0 : this.recurrenceId.getValue(); 4478 } 4479 4480 /** 4481 * @param value The sequence number that identifies a specific appointment in a recurring pattern. 4482 */ 4483 public Appointment setRecurrenceId(int value) { 4484 if (this.recurrenceId == null) 4485 this.recurrenceId = new PositiveIntType(); 4486 this.recurrenceId.setValue(value); 4487 return this; 4488 } 4489 4490 /** 4491 * @return {@link #occurrenceChanged} (This appointment varies from the recurring pattern.). This is the underlying object with id, value and extensions. The accessor "getOccurrenceChanged" gives direct access to the value 4492 */ 4493 public BooleanType getOccurrenceChangedElement() { 4494 if (this.occurrenceChanged == null) 4495 if (Configuration.errorOnAutoCreate()) 4496 throw new Error("Attempt to auto-create Appointment.occurrenceChanged"); 4497 else if (Configuration.doAutoCreate()) 4498 this.occurrenceChanged = new BooleanType(); // bb 4499 return this.occurrenceChanged; 4500 } 4501 4502 public boolean hasOccurrenceChangedElement() { 4503 return this.occurrenceChanged != null && !this.occurrenceChanged.isEmpty(); 4504 } 4505 4506 public boolean hasOccurrenceChanged() { 4507 return this.occurrenceChanged != null && !this.occurrenceChanged.isEmpty(); 4508 } 4509 4510 /** 4511 * @param value {@link #occurrenceChanged} (This appointment varies from the recurring pattern.). This is the underlying object with id, value and extensions. The accessor "getOccurrenceChanged" gives direct access to the value 4512 */ 4513 public Appointment setOccurrenceChangedElement(BooleanType value) { 4514 this.occurrenceChanged = value; 4515 return this; 4516 } 4517 4518 /** 4519 * @return This appointment varies from the recurring pattern. 4520 */ 4521 public boolean getOccurrenceChanged() { 4522 return this.occurrenceChanged == null || this.occurrenceChanged.isEmpty() ? false : this.occurrenceChanged.getValue(); 4523 } 4524 4525 /** 4526 * @param value This appointment varies from the recurring pattern. 4527 */ 4528 public Appointment setOccurrenceChanged(boolean value) { 4529 if (this.occurrenceChanged == null) 4530 this.occurrenceChanged = new BooleanType(); 4531 this.occurrenceChanged.setValue(value); 4532 return this; 4533 } 4534 4535 /** 4536 * @return {@link #recurrenceTemplate} (The details of the recurrence pattern or template that is used to generate recurring appointments.) 4537 */ 4538 public List<AppointmentRecurrenceTemplateComponent> getRecurrenceTemplate() { 4539 if (this.recurrenceTemplate == null) 4540 this.recurrenceTemplate = new ArrayList<AppointmentRecurrenceTemplateComponent>(); 4541 return this.recurrenceTemplate; 4542 } 4543 4544 /** 4545 * @return Returns a reference to <code>this</code> for easy method chaining 4546 */ 4547 public Appointment setRecurrenceTemplate(List<AppointmentRecurrenceTemplateComponent> theRecurrenceTemplate) { 4548 this.recurrenceTemplate = theRecurrenceTemplate; 4549 return this; 4550 } 4551 4552 public boolean hasRecurrenceTemplate() { 4553 if (this.recurrenceTemplate == null) 4554 return false; 4555 for (AppointmentRecurrenceTemplateComponent item : this.recurrenceTemplate) 4556 if (!item.isEmpty()) 4557 return true; 4558 return false; 4559 } 4560 4561 public AppointmentRecurrenceTemplateComponent addRecurrenceTemplate() { //3 4562 AppointmentRecurrenceTemplateComponent t = new AppointmentRecurrenceTemplateComponent(); 4563 if (this.recurrenceTemplate == null) 4564 this.recurrenceTemplate = new ArrayList<AppointmentRecurrenceTemplateComponent>(); 4565 this.recurrenceTemplate.add(t); 4566 return t; 4567 } 4568 4569 public Appointment addRecurrenceTemplate(AppointmentRecurrenceTemplateComponent t) { //3 4570 if (t == null) 4571 return this; 4572 if (this.recurrenceTemplate == null) 4573 this.recurrenceTemplate = new ArrayList<AppointmentRecurrenceTemplateComponent>(); 4574 this.recurrenceTemplate.add(t); 4575 return this; 4576 } 4577 4578 /** 4579 * @return The first repetition of repeating field {@link #recurrenceTemplate}, creating it if it does not already exist {3} 4580 */ 4581 public AppointmentRecurrenceTemplateComponent getRecurrenceTemplateFirstRep() { 4582 if (getRecurrenceTemplate().isEmpty()) { 4583 addRecurrenceTemplate(); 4584 } 4585 return getRecurrenceTemplate().get(0); 4586 } 4587 4588 protected void listChildren(List<Property> children) { 4589 super.listChildren(children); 4590 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)); 4591 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)); 4592 children.add(new Property("cancellationReason", "CodeableConcept", "The coded reason for the appointment being cancelled. This is often used in reporting/billing/futher processing to determine if further actions are required, or specific fees apply.", 0, 1, cancellationReason)); 4593 children.add(new Property("class", "CodeableConcept", "Concepts representing classification of patient encounter such as ambulatory (outpatient), inpatient, emergency, home health or others due to local variations.", 0, java.lang.Integer.MAX_VALUE, class_)); 4594 children.add(new Property("serviceCategory", "CodeableConcept", "A broad categorization of the service that is to be performed during this appointment.", 0, java.lang.Integer.MAX_VALUE, serviceCategory)); 4595 children.add(new Property("serviceType", "CodeableReference(HealthcareService)", "The specific service that is to be performed during this appointment.", 0, java.lang.Integer.MAX_VALUE, serviceType)); 4596 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)); 4597 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)); 4598 children.add(new Property("reason", "CodeableReference(Condition|Procedure|Observation|ImmunizationRecommendation)", "The reason that this appointment is being scheduled. This is more clinical than administrative. This can be coded, or 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, reason)); 4599 children.add(new Property("priority", "CodeableConcept", "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)); 4600 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 note field.", 0, 1, description)); 4601 children.add(new Property("replaces", "Reference(Appointment)", "Appointment replaced by this Appointment in cases where there is a cancellation, the details of the cancellation can be found in the cancellationReason property (on the referenced resource).", 0, java.lang.Integer.MAX_VALUE, replaces)); 4602 children.add(new Property("virtualService", "VirtualServiceDetail", "Connection details of a virtual service (e.g. conference call).", 0, java.lang.Integer.MAX_VALUE, virtualService)); 4603 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)); 4604 children.add(new Property("previousAppointment", "Reference(Appointment)", "The previous appointment in a series of related appointments.", 0, 1, previousAppointment)); 4605 children.add(new Property("originatingAppointment", "Reference(Appointment)", "The originating appointment in a recurring set of related appointments.", 0, 1, originatingAppointment)); 4606 children.add(new Property("start", "instant", "Date/Time that the appointment is to take place.", 0, 1, start)); 4607 children.add(new Property("end", "instant", "Date/Time that the appointment is to conclude.", 0, 1, end)); 4608 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. For example, where the actual time of appointment is only an estimate or if a 30 minute appointment is being requested, but any time would work. Also, if there is, for example, a planned 15 minute break in the middle of a long appointment, the duration may be 15 minutes less than the difference between the start and end.", 0, 1, minutesDuration)); 4609 children.add(new Property("requestedPeriod", "Period", "A set of date ranges (potentially including times) that the appointment is preferred to be scheduled within.\n\nThe duration (usually in minutes) could also be provided to indicate the length of the appointment to fill and populate the start/end times for the actual allocated time. However, in other situations the duration may be calculated by the scheduling system.", 0, java.lang.Integer.MAX_VALUE, requestedPeriod)); 4610 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)); 4611 children.add(new Property("account", "Reference(Account)", "The set of accounts that is expected to be used for billing the activities that result from this Appointment.", 0, java.lang.Integer.MAX_VALUE, account)); 4612 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)); 4613 children.add(new Property("cancellationDate", "dateTime", "The date/time describing when the appointment was cancelled.", 0, 1, cancellationDate)); 4614 children.add(new Property("note", "Annotation", "Additional notes/comments about the appointment.", 0, java.lang.Integer.MAX_VALUE, note)); 4615 children.add(new Property("patientInstruction", "CodeableReference(DocumentReference|Binary|Communication)", "While Appointment.note contains information for internal use, Appointment.patientInstructions is used to capture patient facing information about the Appointment (e.g. please bring your referral or fast from 8pm night before).", 0, java.lang.Integer.MAX_VALUE, patientInstruction)); 4616 children.add(new Property("basedOn", "Reference(CarePlan|DeviceRequest|MedicationRequest|ServiceRequest)", "The request this appointment is allocated to assess (e.g. incoming referral or procedure request).", 0, java.lang.Integer.MAX_VALUE, basedOn)); 4617 children.add(new Property("subject", "Reference(Patient|Group)", "The patient or group associated with the appointment, if they are to be present (usually) then they should also be included in the participant backbone element.", 0, 1, subject)); 4618 children.add(new Property("participant", "", "List of participants involved in the appointment.", 0, java.lang.Integer.MAX_VALUE, participant)); 4619 children.add(new Property("recurrenceId", "positiveInt", "The sequence number that identifies a specific appointment in a recurring pattern.", 0, 1, recurrenceId)); 4620 children.add(new Property("occurrenceChanged", "boolean", "This appointment varies from the recurring pattern.", 0, 1, occurrenceChanged)); 4621 children.add(new Property("recurrenceTemplate", "", "The details of the recurrence pattern or template that is used to generate recurring appointments.", 0, java.lang.Integer.MAX_VALUE, recurrenceTemplate)); 4622 } 4623 4624 @Override 4625 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 4626 switch (_hash) { 4627 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); 4628 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); 4629 case 2135095591: /*cancellationReason*/ return new Property("cancellationReason", "CodeableConcept", "The coded reason for the appointment being cancelled. This is often used in reporting/billing/futher processing to determine if further actions are required, or specific fees apply.", 0, 1, cancellationReason); 4630 case 94742904: /*class*/ return new Property("class", "CodeableConcept", "Concepts representing classification of patient encounter such as ambulatory (outpatient), inpatient, emergency, home health or others due to local variations.", 0, java.lang.Integer.MAX_VALUE, class_); 4631 case 1281188563: /*serviceCategory*/ return new Property("serviceCategory", "CodeableConcept", "A broad categorization of the service that is to be performed during this appointment.", 0, java.lang.Integer.MAX_VALUE, serviceCategory); 4632 case -1928370289: /*serviceType*/ return new Property("serviceType", "CodeableReference(HealthcareService)", "The specific service that is to be performed during this appointment.", 0, java.lang.Integer.MAX_VALUE, serviceType); 4633 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); 4634 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); 4635 case -934964668: /*reason*/ return new Property("reason", "CodeableReference(Condition|Procedure|Observation|ImmunizationRecommendation)", "The reason that this appointment is being scheduled. This is more clinical than administrative. This can be coded, or 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, reason); 4636 case -1165461084: /*priority*/ return new Property("priority", "CodeableConcept", "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); 4637 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 note field.", 0, 1, description); 4638 case -430332865: /*replaces*/ return new Property("replaces", "Reference(Appointment)", "Appointment replaced by this Appointment in cases where there is a cancellation, the details of the cancellation can be found in the cancellationReason property (on the referenced resource).", 0, java.lang.Integer.MAX_VALUE, replaces); 4639 case 1420774698: /*virtualService*/ return new Property("virtualService", "VirtualServiceDetail", "Connection details of a virtual service (e.g. conference call).", 0, java.lang.Integer.MAX_VALUE, virtualService); 4640 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); 4641 case -1676044248: /*previousAppointment*/ return new Property("previousAppointment", "Reference(Appointment)", "The previous appointment in a series of related appointments.", 0, 1, previousAppointment); 4642 case 1841882230: /*originatingAppointment*/ return new Property("originatingAppointment", "Reference(Appointment)", "The originating appointment in a recurring set of related appointments.", 0, 1, originatingAppointment); 4643 case 109757538: /*start*/ return new Property("start", "instant", "Date/Time that the appointment is to take place.", 0, 1, start); 4644 case 100571: /*end*/ return new Property("end", "instant", "Date/Time that the appointment is to conclude.", 0, 1, end); 4645 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. For example, where the actual time of appointment is only an estimate or if a 30 minute appointment is being requested, but any time would work. Also, if there is, for example, a planned 15 minute break in the middle of a long appointment, the duration may be 15 minutes less than the difference between the start and end.", 0, 1, minutesDuration); 4646 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.\n\nThe duration (usually in minutes) could also be provided to indicate the length of the appointment to fill and populate the start/end times for the actual allocated time. However, in other situations the duration may be calculated by the scheduling system.", 0, java.lang.Integer.MAX_VALUE, requestedPeriod); 4647 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); 4648 case -1177318867: /*account*/ return new Property("account", "Reference(Account)", "The set of accounts that is expected to be used for billing the activities that result from this Appointment.", 0, java.lang.Integer.MAX_VALUE, account); 4649 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); 4650 case 806269777: /*cancellationDate*/ return new Property("cancellationDate", "dateTime", "The date/time describing when the appointment was cancelled.", 0, 1, cancellationDate); 4651 case 3387378: /*note*/ return new Property("note", "Annotation", "Additional notes/comments about the appointment.", 0, java.lang.Integer.MAX_VALUE, note); 4652 case 737543241: /*patientInstruction*/ return new Property("patientInstruction", "CodeableReference(DocumentReference|Binary|Communication)", "While Appointment.note contains information for internal use, Appointment.patientInstructions is used to capture patient facing information about the Appointment (e.g. please bring your referral or fast from 8pm night before).", 0, java.lang.Integer.MAX_VALUE, patientInstruction); 4653 case -332612366: /*basedOn*/ return new Property("basedOn", "Reference(CarePlan|DeviceRequest|MedicationRequest|ServiceRequest)", "The request this appointment is allocated to assess (e.g. incoming referral or procedure request).", 0, java.lang.Integer.MAX_VALUE, basedOn); 4654 case -1867885268: /*subject*/ return new Property("subject", "Reference(Patient|Group)", "The patient or group associated with the appointment, if they are to be present (usually) then they should also be included in the participant backbone element.", 0, 1, subject); 4655 case 767422259: /*participant*/ return new Property("participant", "", "List of participants involved in the appointment.", 0, java.lang.Integer.MAX_VALUE, participant); 4656 case -362407829: /*recurrenceId*/ return new Property("recurrenceId", "positiveInt", "The sequence number that identifies a specific appointment in a recurring pattern.", 0, 1, recurrenceId); 4657 case 1779864483: /*occurrenceChanged*/ return new Property("occurrenceChanged", "boolean", "This appointment varies from the recurring pattern.", 0, 1, occurrenceChanged); 4658 case 597629898: /*recurrenceTemplate*/ return new Property("recurrenceTemplate", "", "The details of the recurrence pattern or template that is used to generate recurring appointments.", 0, java.lang.Integer.MAX_VALUE, recurrenceTemplate); 4659 default: return super.getNamedProperty(_hash, _name, _checkValid); 4660 } 4661 4662 } 4663 4664 @Override 4665 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 4666 switch (hash) { 4667 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 4668 case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<AppointmentStatus> 4669 case 2135095591: /*cancellationReason*/ return this.cancellationReason == null ? new Base[0] : new Base[] {this.cancellationReason}; // CodeableConcept 4670 case 94742904: /*class*/ return this.class_ == null ? new Base[0] : this.class_.toArray(new Base[this.class_.size()]); // CodeableConcept 4671 case 1281188563: /*serviceCategory*/ return this.serviceCategory == null ? new Base[0] : this.serviceCategory.toArray(new Base[this.serviceCategory.size()]); // CodeableConcept 4672 case -1928370289: /*serviceType*/ return this.serviceType == null ? new Base[0] : this.serviceType.toArray(new Base[this.serviceType.size()]); // CodeableReference 4673 case -1694759682: /*specialty*/ return this.specialty == null ? new Base[0] : this.specialty.toArray(new Base[this.specialty.size()]); // CodeableConcept 4674 case -1596426375: /*appointmentType*/ return this.appointmentType == null ? new Base[0] : new Base[] {this.appointmentType}; // CodeableConcept 4675 case -934964668: /*reason*/ return this.reason == null ? new Base[0] : this.reason.toArray(new Base[this.reason.size()]); // CodeableReference 4676 case -1165461084: /*priority*/ return this.priority == null ? new Base[0] : new Base[] {this.priority}; // CodeableConcept 4677 case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // StringType 4678 case -430332865: /*replaces*/ return this.replaces == null ? new Base[0] : this.replaces.toArray(new Base[this.replaces.size()]); // Reference 4679 case 1420774698: /*virtualService*/ return this.virtualService == null ? new Base[0] : this.virtualService.toArray(new Base[this.virtualService.size()]); // VirtualServiceDetail 4680 case -1248768647: /*supportingInformation*/ return this.supportingInformation == null ? new Base[0] : this.supportingInformation.toArray(new Base[this.supportingInformation.size()]); // Reference 4681 case -1676044248: /*previousAppointment*/ return this.previousAppointment == null ? new Base[0] : new Base[] {this.previousAppointment}; // Reference 4682 case 1841882230: /*originatingAppointment*/ return this.originatingAppointment == null ? new Base[0] : new Base[] {this.originatingAppointment}; // Reference 4683 case 109757538: /*start*/ return this.start == null ? new Base[0] : new Base[] {this.start}; // InstantType 4684 case 100571: /*end*/ return this.end == null ? new Base[0] : new Base[] {this.end}; // InstantType 4685 case -413630573: /*minutesDuration*/ return this.minutesDuration == null ? new Base[0] : new Base[] {this.minutesDuration}; // PositiveIntType 4686 case -897241393: /*requestedPeriod*/ return this.requestedPeriod == null ? new Base[0] : this.requestedPeriod.toArray(new Base[this.requestedPeriod.size()]); // Period 4687 case 3533310: /*slot*/ return this.slot == null ? new Base[0] : this.slot.toArray(new Base[this.slot.size()]); // Reference 4688 case -1177318867: /*account*/ return this.account == null ? new Base[0] : this.account.toArray(new Base[this.account.size()]); // Reference 4689 case 1028554472: /*created*/ return this.created == null ? new Base[0] : new Base[] {this.created}; // DateTimeType 4690 case 806269777: /*cancellationDate*/ return this.cancellationDate == null ? new Base[0] : new Base[] {this.cancellationDate}; // DateTimeType 4691 case 3387378: /*note*/ return this.note == null ? new Base[0] : this.note.toArray(new Base[this.note.size()]); // Annotation 4692 case 737543241: /*patientInstruction*/ return this.patientInstruction == null ? new Base[0] : this.patientInstruction.toArray(new Base[this.patientInstruction.size()]); // CodeableReference 4693 case -332612366: /*basedOn*/ return this.basedOn == null ? new Base[0] : this.basedOn.toArray(new Base[this.basedOn.size()]); // Reference 4694 case -1867885268: /*subject*/ return this.subject == null ? new Base[0] : new Base[] {this.subject}; // Reference 4695 case 767422259: /*participant*/ return this.participant == null ? new Base[0] : this.participant.toArray(new Base[this.participant.size()]); // AppointmentParticipantComponent 4696 case -362407829: /*recurrenceId*/ return this.recurrenceId == null ? new Base[0] : new Base[] {this.recurrenceId}; // PositiveIntType 4697 case 1779864483: /*occurrenceChanged*/ return this.occurrenceChanged == null ? new Base[0] : new Base[] {this.occurrenceChanged}; // BooleanType 4698 case 597629898: /*recurrenceTemplate*/ return this.recurrenceTemplate == null ? new Base[0] : this.recurrenceTemplate.toArray(new Base[this.recurrenceTemplate.size()]); // AppointmentRecurrenceTemplateComponent 4699 default: return super.getProperty(hash, name, checkValid); 4700 } 4701 4702 } 4703 4704 @Override 4705 public Base setProperty(int hash, String name, Base value) throws FHIRException { 4706 switch (hash) { 4707 case -1618432855: // identifier 4708 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier 4709 return value; 4710 case -892481550: // status 4711 value = new AppointmentStatusEnumFactory().fromType(TypeConvertor.castToCode(value)); 4712 this.status = (Enumeration) value; // Enumeration<AppointmentStatus> 4713 return value; 4714 case 2135095591: // cancellationReason 4715 this.cancellationReason = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 4716 return value; 4717 case 94742904: // class 4718 this.getClass_().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 4719 return value; 4720 case 1281188563: // serviceCategory 4721 this.getServiceCategory().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 4722 return value; 4723 case -1928370289: // serviceType 4724 this.getServiceType().add(TypeConvertor.castToCodeableReference(value)); // CodeableReference 4725 return value; 4726 case -1694759682: // specialty 4727 this.getSpecialty().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 4728 return value; 4729 case -1596426375: // appointmentType 4730 this.appointmentType = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 4731 return value; 4732 case -934964668: // reason 4733 this.getReason().add(TypeConvertor.castToCodeableReference(value)); // CodeableReference 4734 return value; 4735 case -1165461084: // priority 4736 this.priority = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 4737 return value; 4738 case -1724546052: // description 4739 this.description = TypeConvertor.castToString(value); // StringType 4740 return value; 4741 case -430332865: // replaces 4742 this.getReplaces().add(TypeConvertor.castToReference(value)); // Reference 4743 return value; 4744 case 1420774698: // virtualService 4745 this.getVirtualService().add(TypeConvertor.castToVirtualServiceDetail(value)); // VirtualServiceDetail 4746 return value; 4747 case -1248768647: // supportingInformation 4748 this.getSupportingInformation().add(TypeConvertor.castToReference(value)); // Reference 4749 return value; 4750 case -1676044248: // previousAppointment 4751 this.previousAppointment = TypeConvertor.castToReference(value); // Reference 4752 return value; 4753 case 1841882230: // originatingAppointment 4754 this.originatingAppointment = TypeConvertor.castToReference(value); // Reference 4755 return value; 4756 case 109757538: // start 4757 this.start = TypeConvertor.castToInstant(value); // InstantType 4758 return value; 4759 case 100571: // end 4760 this.end = TypeConvertor.castToInstant(value); // InstantType 4761 return value; 4762 case -413630573: // minutesDuration 4763 this.minutesDuration = TypeConvertor.castToPositiveInt(value); // PositiveIntType 4764 return value; 4765 case -897241393: // requestedPeriod 4766 this.getRequestedPeriod().add(TypeConvertor.castToPeriod(value)); // Period 4767 return value; 4768 case 3533310: // slot 4769 this.getSlot().add(TypeConvertor.castToReference(value)); // Reference 4770 return value; 4771 case -1177318867: // account 4772 this.getAccount().add(TypeConvertor.castToReference(value)); // Reference 4773 return value; 4774 case 1028554472: // created 4775 this.created = TypeConvertor.castToDateTime(value); // DateTimeType 4776 return value; 4777 case 806269777: // cancellationDate 4778 this.cancellationDate = TypeConvertor.castToDateTime(value); // DateTimeType 4779 return value; 4780 case 3387378: // note 4781 this.getNote().add(TypeConvertor.castToAnnotation(value)); // Annotation 4782 return value; 4783 case 737543241: // patientInstruction 4784 this.getPatientInstruction().add(TypeConvertor.castToCodeableReference(value)); // CodeableReference 4785 return value; 4786 case -332612366: // basedOn 4787 this.getBasedOn().add(TypeConvertor.castToReference(value)); // Reference 4788 return value; 4789 case -1867885268: // subject 4790 this.subject = TypeConvertor.castToReference(value); // Reference 4791 return value; 4792 case 767422259: // participant 4793 this.getParticipant().add((AppointmentParticipantComponent) value); // AppointmentParticipantComponent 4794 return value; 4795 case -362407829: // recurrenceId 4796 this.recurrenceId = TypeConvertor.castToPositiveInt(value); // PositiveIntType 4797 return value; 4798 case 1779864483: // occurrenceChanged 4799 this.occurrenceChanged = TypeConvertor.castToBoolean(value); // BooleanType 4800 return value; 4801 case 597629898: // recurrenceTemplate 4802 this.getRecurrenceTemplate().add((AppointmentRecurrenceTemplateComponent) value); // AppointmentRecurrenceTemplateComponent 4803 return value; 4804 default: return super.setProperty(hash, name, value); 4805 } 4806 4807 } 4808 4809 @Override 4810 public Base setProperty(String name, Base value) throws FHIRException { 4811 if (name.equals("identifier")) { 4812 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); 4813 } else if (name.equals("status")) { 4814 value = new AppointmentStatusEnumFactory().fromType(TypeConvertor.castToCode(value)); 4815 this.status = (Enumeration) value; // Enumeration<AppointmentStatus> 4816 } else if (name.equals("cancellationReason")) { 4817 this.cancellationReason = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 4818 } else if (name.equals("class")) { 4819 this.getClass_().add(TypeConvertor.castToCodeableConcept(value)); 4820 } else if (name.equals("serviceCategory")) { 4821 this.getServiceCategory().add(TypeConvertor.castToCodeableConcept(value)); 4822 } else if (name.equals("serviceType")) { 4823 this.getServiceType().add(TypeConvertor.castToCodeableReference(value)); 4824 } else if (name.equals("specialty")) { 4825 this.getSpecialty().add(TypeConvertor.castToCodeableConcept(value)); 4826 } else if (name.equals("appointmentType")) { 4827 this.appointmentType = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 4828 } else if (name.equals("reason")) { 4829 this.getReason().add(TypeConvertor.castToCodeableReference(value)); 4830 } else if (name.equals("priority")) { 4831 this.priority = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 4832 } else if (name.equals("description")) { 4833 this.description = TypeConvertor.castToString(value); // StringType 4834 } else if (name.equals("replaces")) { 4835 this.getReplaces().add(TypeConvertor.castToReference(value)); 4836 } else if (name.equals("virtualService")) { 4837 this.getVirtualService().add(TypeConvertor.castToVirtualServiceDetail(value)); 4838 } else if (name.equals("supportingInformation")) { 4839 this.getSupportingInformation().add(TypeConvertor.castToReference(value)); 4840 } else if (name.equals("previousAppointment")) { 4841 this.previousAppointment = TypeConvertor.castToReference(value); // Reference 4842 } else if (name.equals("originatingAppointment")) { 4843 this.originatingAppointment = TypeConvertor.castToReference(value); // Reference 4844 } else if (name.equals("start")) { 4845 this.start = TypeConvertor.castToInstant(value); // InstantType 4846 } else if (name.equals("end")) { 4847 this.end = TypeConvertor.castToInstant(value); // InstantType 4848 } else if (name.equals("minutesDuration")) { 4849 this.minutesDuration = TypeConvertor.castToPositiveInt(value); // PositiveIntType 4850 } else if (name.equals("requestedPeriod")) { 4851 this.getRequestedPeriod().add(TypeConvertor.castToPeriod(value)); 4852 } else if (name.equals("slot")) { 4853 this.getSlot().add(TypeConvertor.castToReference(value)); 4854 } else if (name.equals("account")) { 4855 this.getAccount().add(TypeConvertor.castToReference(value)); 4856 } else if (name.equals("created")) { 4857 this.created = TypeConvertor.castToDateTime(value); // DateTimeType 4858 } else if (name.equals("cancellationDate")) { 4859 this.cancellationDate = TypeConvertor.castToDateTime(value); // DateTimeType 4860 } else if (name.equals("note")) { 4861 this.getNote().add(TypeConvertor.castToAnnotation(value)); 4862 } else if (name.equals("patientInstruction")) { 4863 this.getPatientInstruction().add(TypeConvertor.castToCodeableReference(value)); 4864 } else if (name.equals("basedOn")) { 4865 this.getBasedOn().add(TypeConvertor.castToReference(value)); 4866 } else if (name.equals("subject")) { 4867 this.subject = TypeConvertor.castToReference(value); // Reference 4868 } else if (name.equals("participant")) { 4869 this.getParticipant().add((AppointmentParticipantComponent) value); 4870 } else if (name.equals("recurrenceId")) { 4871 this.recurrenceId = TypeConvertor.castToPositiveInt(value); // PositiveIntType 4872 } else if (name.equals("occurrenceChanged")) { 4873 this.occurrenceChanged = TypeConvertor.castToBoolean(value); // BooleanType 4874 } else if (name.equals("recurrenceTemplate")) { 4875 this.getRecurrenceTemplate().add((AppointmentRecurrenceTemplateComponent) value); 4876 } else 4877 return super.setProperty(name, value); 4878 return value; 4879 } 4880 4881 @Override 4882 public void removeChild(String name, Base value) throws FHIRException { 4883 if (name.equals("identifier")) { 4884 this.getIdentifier().remove(value); 4885 } else if (name.equals("status")) { 4886 value = new AppointmentStatusEnumFactory().fromType(TypeConvertor.castToCode(value)); 4887 this.status = (Enumeration) value; // Enumeration<AppointmentStatus> 4888 } else if (name.equals("cancellationReason")) { 4889 this.cancellationReason = null; 4890 } else if (name.equals("class")) { 4891 this.getClass_().remove(value); 4892 } else if (name.equals("serviceCategory")) { 4893 this.getServiceCategory().remove(value); 4894 } else if (name.equals("serviceType")) { 4895 this.getServiceType().remove(value); 4896 } else if (name.equals("specialty")) { 4897 this.getSpecialty().remove(value); 4898 } else if (name.equals("appointmentType")) { 4899 this.appointmentType = null; 4900 } else if (name.equals("reason")) { 4901 this.getReason().remove(value); 4902 } else if (name.equals("priority")) { 4903 this.priority = null; 4904 } else if (name.equals("description")) { 4905 this.description = null; 4906 } else if (name.equals("replaces")) { 4907 this.getReplaces().remove(value); 4908 } else if (name.equals("virtualService")) { 4909 this.getVirtualService().remove(value); 4910 } else if (name.equals("supportingInformation")) { 4911 this.getSupportingInformation().remove(value); 4912 } else if (name.equals("previousAppointment")) { 4913 this.previousAppointment = null; 4914 } else if (name.equals("originatingAppointment")) { 4915 this.originatingAppointment = null; 4916 } else if (name.equals("start")) { 4917 this.start = null; 4918 } else if (name.equals("end")) { 4919 this.end = null; 4920 } else if (name.equals("minutesDuration")) { 4921 this.minutesDuration = null; 4922 } else if (name.equals("requestedPeriod")) { 4923 this.getRequestedPeriod().remove(value); 4924 } else if (name.equals("slot")) { 4925 this.getSlot().remove(value); 4926 } else if (name.equals("account")) { 4927 this.getAccount().remove(value); 4928 } else if (name.equals("created")) { 4929 this.created = null; 4930 } else if (name.equals("cancellationDate")) { 4931 this.cancellationDate = null; 4932 } else if (name.equals("note")) { 4933 this.getNote().remove(value); 4934 } else if (name.equals("patientInstruction")) { 4935 this.getPatientInstruction().remove(value); 4936 } else if (name.equals("basedOn")) { 4937 this.getBasedOn().remove(value); 4938 } else if (name.equals("subject")) { 4939 this.subject = null; 4940 } else if (name.equals("participant")) { 4941 this.getParticipant().remove((AppointmentParticipantComponent) value); 4942 } else if (name.equals("recurrenceId")) { 4943 this.recurrenceId = null; 4944 } else if (name.equals("occurrenceChanged")) { 4945 this.occurrenceChanged = null; 4946 } else if (name.equals("recurrenceTemplate")) { 4947 this.getRecurrenceTemplate().remove((AppointmentRecurrenceTemplateComponent) value); 4948 } else 4949 super.removeChild(name, value); 4950 4951 } 4952 4953 @Override 4954 public Base makeProperty(int hash, String name) throws FHIRException { 4955 switch (hash) { 4956 case -1618432855: return addIdentifier(); 4957 case -892481550: return getStatusElement(); 4958 case 2135095591: return getCancellationReason(); 4959 case 94742904: return addClass_(); 4960 case 1281188563: return addServiceCategory(); 4961 case -1928370289: return addServiceType(); 4962 case -1694759682: return addSpecialty(); 4963 case -1596426375: return getAppointmentType(); 4964 case -934964668: return addReason(); 4965 case -1165461084: return getPriority(); 4966 case -1724546052: return getDescriptionElement(); 4967 case -430332865: return addReplaces(); 4968 case 1420774698: return addVirtualService(); 4969 case -1248768647: return addSupportingInformation(); 4970 case -1676044248: return getPreviousAppointment(); 4971 case 1841882230: return getOriginatingAppointment(); 4972 case 109757538: return getStartElement(); 4973 case 100571: return getEndElement(); 4974 case -413630573: return getMinutesDurationElement(); 4975 case -897241393: return addRequestedPeriod(); 4976 case 3533310: return addSlot(); 4977 case -1177318867: return addAccount(); 4978 case 1028554472: return getCreatedElement(); 4979 case 806269777: return getCancellationDateElement(); 4980 case 3387378: return addNote(); 4981 case 737543241: return addPatientInstruction(); 4982 case -332612366: return addBasedOn(); 4983 case -1867885268: return getSubject(); 4984 case 767422259: return addParticipant(); 4985 case -362407829: return getRecurrenceIdElement(); 4986 case 1779864483: return getOccurrenceChangedElement(); 4987 case 597629898: return addRecurrenceTemplate(); 4988 default: return super.makeProperty(hash, name); 4989 } 4990 4991 } 4992 4993 @Override 4994 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 4995 switch (hash) { 4996 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 4997 case -892481550: /*status*/ return new String[] {"code"}; 4998 case 2135095591: /*cancellationReason*/ return new String[] {"CodeableConcept"}; 4999 case 94742904: /*class*/ return new String[] {"CodeableConcept"}; 5000 case 1281188563: /*serviceCategory*/ return new String[] {"CodeableConcept"}; 5001 case -1928370289: /*serviceType*/ return new String[] {"CodeableReference"}; 5002 case -1694759682: /*specialty*/ return new String[] {"CodeableConcept"}; 5003 case -1596426375: /*appointmentType*/ return new String[] {"CodeableConcept"}; 5004 case -934964668: /*reason*/ return new String[] {"CodeableReference"}; 5005 case -1165461084: /*priority*/ return new String[] {"CodeableConcept"}; 5006 case -1724546052: /*description*/ return new String[] {"string"}; 5007 case -430332865: /*replaces*/ return new String[] {"Reference"}; 5008 case 1420774698: /*virtualService*/ return new String[] {"VirtualServiceDetail"}; 5009 case -1248768647: /*supportingInformation*/ return new String[] {"Reference"}; 5010 case -1676044248: /*previousAppointment*/ return new String[] {"Reference"}; 5011 case 1841882230: /*originatingAppointment*/ return new String[] {"Reference"}; 5012 case 109757538: /*start*/ return new String[] {"instant"}; 5013 case 100571: /*end*/ return new String[] {"instant"}; 5014 case -413630573: /*minutesDuration*/ return new String[] {"positiveInt"}; 5015 case -897241393: /*requestedPeriod*/ return new String[] {"Period"}; 5016 case 3533310: /*slot*/ return new String[] {"Reference"}; 5017 case -1177318867: /*account*/ return new String[] {"Reference"}; 5018 case 1028554472: /*created*/ return new String[] {"dateTime"}; 5019 case 806269777: /*cancellationDate*/ return new String[] {"dateTime"}; 5020 case 3387378: /*note*/ return new String[] {"Annotation"}; 5021 case 737543241: /*patientInstruction*/ return new String[] {"CodeableReference"}; 5022 case -332612366: /*basedOn*/ return new String[] {"Reference"}; 5023 case -1867885268: /*subject*/ return new String[] {"Reference"}; 5024 case 767422259: /*participant*/ return new String[] {}; 5025 case -362407829: /*recurrenceId*/ return new String[] {"positiveInt"}; 5026 case 1779864483: /*occurrenceChanged*/ return new String[] {"boolean"}; 5027 case 597629898: /*recurrenceTemplate*/ return new String[] {}; 5028 default: return super.getTypesForProperty(hash, name); 5029 } 5030 5031 } 5032 5033 @Override 5034 public Base addChild(String name) throws FHIRException { 5035 if (name.equals("identifier")) { 5036 return addIdentifier(); 5037 } 5038 else if (name.equals("status")) { 5039 throw new FHIRException("Cannot call addChild on a singleton property Appointment.status"); 5040 } 5041 else if (name.equals("cancellationReason")) { 5042 this.cancellationReason = new CodeableConcept(); 5043 return this.cancellationReason; 5044 } 5045 else if (name.equals("class")) { 5046 return addClass_(); 5047 } 5048 else if (name.equals("serviceCategory")) { 5049 return addServiceCategory(); 5050 } 5051 else if (name.equals("serviceType")) { 5052 return addServiceType(); 5053 } 5054 else if (name.equals("specialty")) { 5055 return addSpecialty(); 5056 } 5057 else if (name.equals("appointmentType")) { 5058 this.appointmentType = new CodeableConcept(); 5059 return this.appointmentType; 5060 } 5061 else if (name.equals("reason")) { 5062 return addReason(); 5063 } 5064 else if (name.equals("priority")) { 5065 this.priority = new CodeableConcept(); 5066 return this.priority; 5067 } 5068 else if (name.equals("description")) { 5069 throw new FHIRException("Cannot call addChild on a singleton property Appointment.description"); 5070 } 5071 else if (name.equals("replaces")) { 5072 return addReplaces(); 5073 } 5074 else if (name.equals("virtualService")) { 5075 return addVirtualService(); 5076 } 5077 else if (name.equals("supportingInformation")) { 5078 return addSupportingInformation(); 5079 } 5080 else if (name.equals("previousAppointment")) { 5081 this.previousAppointment = new Reference(); 5082 return this.previousAppointment; 5083 } 5084 else if (name.equals("originatingAppointment")) { 5085 this.originatingAppointment = new Reference(); 5086 return this.originatingAppointment; 5087 } 5088 else if (name.equals("start")) { 5089 throw new FHIRException("Cannot call addChild on a singleton property Appointment.start"); 5090 } 5091 else if (name.equals("end")) { 5092 throw new FHIRException("Cannot call addChild on a singleton property Appointment.end"); 5093 } 5094 else if (name.equals("minutesDuration")) { 5095 throw new FHIRException("Cannot call addChild on a singleton property Appointment.minutesDuration"); 5096 } 5097 else if (name.equals("requestedPeriod")) { 5098 return addRequestedPeriod(); 5099 } 5100 else if (name.equals("slot")) { 5101 return addSlot(); 5102 } 5103 else if (name.equals("account")) { 5104 return addAccount(); 5105 } 5106 else if (name.equals("created")) { 5107 throw new FHIRException("Cannot call addChild on a singleton property Appointment.created"); 5108 } 5109 else if (name.equals("cancellationDate")) { 5110 throw new FHIRException("Cannot call addChild on a singleton property Appointment.cancellationDate"); 5111 } 5112 else if (name.equals("note")) { 5113 return addNote(); 5114 } 5115 else if (name.equals("patientInstruction")) { 5116 return addPatientInstruction(); 5117 } 5118 else if (name.equals("basedOn")) { 5119 return addBasedOn(); 5120 } 5121 else if (name.equals("subject")) { 5122 this.subject = new Reference(); 5123 return this.subject; 5124 } 5125 else if (name.equals("participant")) { 5126 return addParticipant(); 5127 } 5128 else if (name.equals("recurrenceId")) { 5129 throw new FHIRException("Cannot call addChild on a singleton property Appointment.recurrenceId"); 5130 } 5131 else if (name.equals("occurrenceChanged")) { 5132 throw new FHIRException("Cannot call addChild on a singleton property Appointment.occurrenceChanged"); 5133 } 5134 else if (name.equals("recurrenceTemplate")) { 5135 return addRecurrenceTemplate(); 5136 } 5137 else 5138 return super.addChild(name); 5139 } 5140 5141 public String fhirType() { 5142 return "Appointment"; 5143 5144 } 5145 5146 public Appointment copy() { 5147 Appointment dst = new Appointment(); 5148 copyValues(dst); 5149 return dst; 5150 } 5151 5152 public void copyValues(Appointment dst) { 5153 super.copyValues(dst); 5154 if (identifier != null) { 5155 dst.identifier = new ArrayList<Identifier>(); 5156 for (Identifier i : identifier) 5157 dst.identifier.add(i.copy()); 5158 }; 5159 dst.status = status == null ? null : status.copy(); 5160 dst.cancellationReason = cancellationReason == null ? null : cancellationReason.copy(); 5161 if (class_ != null) { 5162 dst.class_ = new ArrayList<CodeableConcept>(); 5163 for (CodeableConcept i : class_) 5164 dst.class_.add(i.copy()); 5165 }; 5166 if (serviceCategory != null) { 5167 dst.serviceCategory = new ArrayList<CodeableConcept>(); 5168 for (CodeableConcept i : serviceCategory) 5169 dst.serviceCategory.add(i.copy()); 5170 }; 5171 if (serviceType != null) { 5172 dst.serviceType = new ArrayList<CodeableReference>(); 5173 for (CodeableReference i : serviceType) 5174 dst.serviceType.add(i.copy()); 5175 }; 5176 if (specialty != null) { 5177 dst.specialty = new ArrayList<CodeableConcept>(); 5178 for (CodeableConcept i : specialty) 5179 dst.specialty.add(i.copy()); 5180 }; 5181 dst.appointmentType = appointmentType == null ? null : appointmentType.copy(); 5182 if (reason != null) { 5183 dst.reason = new ArrayList<CodeableReference>(); 5184 for (CodeableReference i : reason) 5185 dst.reason.add(i.copy()); 5186 }; 5187 dst.priority = priority == null ? null : priority.copy(); 5188 dst.description = description == null ? null : description.copy(); 5189 if (replaces != null) { 5190 dst.replaces = new ArrayList<Reference>(); 5191 for (Reference i : replaces) 5192 dst.replaces.add(i.copy()); 5193 }; 5194 if (virtualService != null) { 5195 dst.virtualService = new ArrayList<VirtualServiceDetail>(); 5196 for (VirtualServiceDetail i : virtualService) 5197 dst.virtualService.add(i.copy()); 5198 }; 5199 if (supportingInformation != null) { 5200 dst.supportingInformation = new ArrayList<Reference>(); 5201 for (Reference i : supportingInformation) 5202 dst.supportingInformation.add(i.copy()); 5203 }; 5204 dst.previousAppointment = previousAppointment == null ? null : previousAppointment.copy(); 5205 dst.originatingAppointment = originatingAppointment == null ? null : originatingAppointment.copy(); 5206 dst.start = start == null ? null : start.copy(); 5207 dst.end = end == null ? null : end.copy(); 5208 dst.minutesDuration = minutesDuration == null ? null : minutesDuration.copy(); 5209 if (requestedPeriod != null) { 5210 dst.requestedPeriod = new ArrayList<Period>(); 5211 for (Period i : requestedPeriod) 5212 dst.requestedPeriod.add(i.copy()); 5213 }; 5214 if (slot != null) { 5215 dst.slot = new ArrayList<Reference>(); 5216 for (Reference i : slot) 5217 dst.slot.add(i.copy()); 5218 }; 5219 if (account != null) { 5220 dst.account = new ArrayList<Reference>(); 5221 for (Reference i : account) 5222 dst.account.add(i.copy()); 5223 }; 5224 dst.created = created == null ? null : created.copy(); 5225 dst.cancellationDate = cancellationDate == null ? null : cancellationDate.copy(); 5226 if (note != null) { 5227 dst.note = new ArrayList<Annotation>(); 5228 for (Annotation i : note) 5229 dst.note.add(i.copy()); 5230 }; 5231 if (patientInstruction != null) { 5232 dst.patientInstruction = new ArrayList<CodeableReference>(); 5233 for (CodeableReference i : patientInstruction) 5234 dst.patientInstruction.add(i.copy()); 5235 }; 5236 if (basedOn != null) { 5237 dst.basedOn = new ArrayList<Reference>(); 5238 for (Reference i : basedOn) 5239 dst.basedOn.add(i.copy()); 5240 }; 5241 dst.subject = subject == null ? null : subject.copy(); 5242 if (participant != null) { 5243 dst.participant = new ArrayList<AppointmentParticipantComponent>(); 5244 for (AppointmentParticipantComponent i : participant) 5245 dst.participant.add(i.copy()); 5246 }; 5247 dst.recurrenceId = recurrenceId == null ? null : recurrenceId.copy(); 5248 dst.occurrenceChanged = occurrenceChanged == null ? null : occurrenceChanged.copy(); 5249 if (recurrenceTemplate != null) { 5250 dst.recurrenceTemplate = new ArrayList<AppointmentRecurrenceTemplateComponent>(); 5251 for (AppointmentRecurrenceTemplateComponent i : recurrenceTemplate) 5252 dst.recurrenceTemplate.add(i.copy()); 5253 }; 5254 } 5255 5256 protected Appointment typedCopy() { 5257 return copy(); 5258 } 5259 5260 @Override 5261 public boolean equalsDeep(Base other_) { 5262 if (!super.equalsDeep(other_)) 5263 return false; 5264 if (!(other_ instanceof Appointment)) 5265 return false; 5266 Appointment o = (Appointment) other_; 5267 return compareDeep(identifier, o.identifier, true) && compareDeep(status, o.status, true) && compareDeep(cancellationReason, o.cancellationReason, true) 5268 && compareDeep(class_, o.class_, true) && compareDeep(serviceCategory, o.serviceCategory, true) 5269 && compareDeep(serviceType, o.serviceType, true) && compareDeep(specialty, o.specialty, true) && compareDeep(appointmentType, o.appointmentType, true) 5270 && compareDeep(reason, o.reason, true) && compareDeep(priority, o.priority, true) && compareDeep(description, o.description, true) 5271 && compareDeep(replaces, o.replaces, true) && compareDeep(virtualService, o.virtualService, true) 5272 && compareDeep(supportingInformation, o.supportingInformation, true) && compareDeep(previousAppointment, o.previousAppointment, true) 5273 && compareDeep(originatingAppointment, o.originatingAppointment, true) && compareDeep(start, o.start, true) 5274 && compareDeep(end, o.end, true) && compareDeep(minutesDuration, o.minutesDuration, true) && compareDeep(requestedPeriod, o.requestedPeriod, true) 5275 && compareDeep(slot, o.slot, true) && compareDeep(account, o.account, true) && compareDeep(created, o.created, true) 5276 && compareDeep(cancellationDate, o.cancellationDate, true) && compareDeep(note, o.note, true) && compareDeep(patientInstruction, o.patientInstruction, true) 5277 && compareDeep(basedOn, o.basedOn, true) && compareDeep(subject, o.subject, true) && compareDeep(participant, o.participant, true) 5278 && compareDeep(recurrenceId, o.recurrenceId, true) && compareDeep(occurrenceChanged, o.occurrenceChanged, true) 5279 && compareDeep(recurrenceTemplate, o.recurrenceTemplate, true); 5280 } 5281 5282 @Override 5283 public boolean equalsShallow(Base other_) { 5284 if (!super.equalsShallow(other_)) 5285 return false; 5286 if (!(other_ instanceof Appointment)) 5287 return false; 5288 Appointment o = (Appointment) other_; 5289 return compareValues(status, o.status, true) && compareValues(description, o.description, true) && compareValues(start, o.start, true) 5290 && compareValues(end, o.end, true) && compareValues(minutesDuration, o.minutesDuration, true) && compareValues(created, o.created, true) 5291 && compareValues(cancellationDate, o.cancellationDate, true) && compareValues(recurrenceId, o.recurrenceId, true) 5292 && compareValues(occurrenceChanged, o.occurrenceChanged, true); 5293 } 5294 5295 public boolean isEmpty() { 5296 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, status, cancellationReason 5297 , class_, serviceCategory, serviceType, specialty, appointmentType, reason, priority 5298 , description, replaces, virtualService, supportingInformation, previousAppointment 5299 , originatingAppointment, start, end, minutesDuration, requestedPeriod, slot, account 5300 , created, cancellationDate, note, patientInstruction, basedOn, subject, participant 5301 , recurrenceId, occurrenceChanged, recurrenceTemplate); 5302 } 5303 5304 @Override 5305 public ResourceType getResourceType() { 5306 return ResourceType.Appointment; 5307 } 5308 5309 /** 5310 * Search parameter: <b>actor</b> 5311 * <p> 5312 * Description: <b>Any one of the individuals participating in the appointment</b><br> 5313 * Type: <b>reference</b><br> 5314 * Path: <b>Appointment.participant.actor</b><br> 5315 * </p> 5316 */ 5317 @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="Base FHIR compartment definition for Device"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Patient"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Practitioner"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for RelatedPerson") }, target={CareTeam.class, Device.class, Group.class, HealthcareService.class, Location.class, Patient.class, Practitioner.class, PractitionerRole.class, RelatedPerson.class } ) 5318 public static final String SP_ACTOR = "actor"; 5319 /** 5320 * <b>Fluent Client</b> search parameter constant for <b>actor</b> 5321 * <p> 5322 * Description: <b>Any one of the individuals participating in the appointment</b><br> 5323 * Type: <b>reference</b><br> 5324 * Path: <b>Appointment.participant.actor</b><br> 5325 * </p> 5326 */ 5327 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ACTOR = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ACTOR); 5328 5329/** 5330 * Constant for fluent queries to be used to add include statements. Specifies 5331 * the path value of "<b>Appointment:actor</b>". 5332 */ 5333 public static final ca.uhn.fhir.model.api.Include INCLUDE_ACTOR = new ca.uhn.fhir.model.api.Include("Appointment:actor").toLocked(); 5334 5335 /** 5336 * Search parameter: <b>appointment-type</b> 5337 * <p> 5338 * Description: <b>The style of appointment or patient that has been booked in the slot (not service type)</b><br> 5339 * Type: <b>token</b><br> 5340 * Path: <b>Appointment.appointmentType</b><br> 5341 * </p> 5342 */ 5343 @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" ) 5344 public static final String SP_APPOINTMENT_TYPE = "appointment-type"; 5345 /** 5346 * <b>Fluent Client</b> search parameter constant for <b>appointment-type</b> 5347 * <p> 5348 * Description: <b>The style of appointment or patient that has been booked in the slot (not service type)</b><br> 5349 * Type: <b>token</b><br> 5350 * Path: <b>Appointment.appointmentType</b><br> 5351 * </p> 5352 */ 5353 public static final ca.uhn.fhir.rest.gclient.TokenClientParam APPOINTMENT_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_APPOINTMENT_TYPE); 5354 5355 /** 5356 * Search parameter: <b>based-on</b> 5357 * <p> 5358 * Description: <b>The service request this appointment is allocated to assess</b><br> 5359 * Type: <b>reference</b><br> 5360 * Path: <b>Appointment.basedOn</b><br> 5361 * </p> 5362 */ 5363 @SearchParamDefinition(name="based-on", path="Appointment.basedOn", description="The service request this appointment is allocated to assess", type="reference", target={CarePlan.class, DeviceRequest.class, MedicationRequest.class, ServiceRequest.class } ) 5364 public static final String SP_BASED_ON = "based-on"; 5365 /** 5366 * <b>Fluent Client</b> search parameter constant for <b>based-on</b> 5367 * <p> 5368 * Description: <b>The service request this appointment is allocated to assess</b><br> 5369 * Type: <b>reference</b><br> 5370 * Path: <b>Appointment.basedOn</b><br> 5371 * </p> 5372 */ 5373 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam BASED_ON = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_BASED_ON); 5374 5375/** 5376 * Constant for fluent queries to be used to add include statements. Specifies 5377 * the path value of "<b>Appointment:based-on</b>". 5378 */ 5379 public static final ca.uhn.fhir.model.api.Include INCLUDE_BASED_ON = new ca.uhn.fhir.model.api.Include("Appointment:based-on").toLocked(); 5380 5381 /** 5382 * Search parameter: <b>group</b> 5383 * <p> 5384 * Description: <b>One of the individuals of the appointment is this patient</b><br> 5385 * Type: <b>reference</b><br> 5386 * Path: <b>Appointment.participant.actor.where(resolve() is Group) | Appointment.subject.where(resolve() is Group)</b><br> 5387 * </p> 5388 */ 5389 @SearchParamDefinition(name="group", path="Appointment.participant.actor.where(resolve() is Group) | Appointment.subject.where(resolve() is Group)", description="One of the individuals of the appointment is this patient", type="reference", target={Group.class } ) 5390 public static final String SP_GROUP = "group"; 5391 /** 5392 * <b>Fluent Client</b> search parameter constant for <b>group</b> 5393 * <p> 5394 * Description: <b>One of the individuals of the appointment is this patient</b><br> 5395 * Type: <b>reference</b><br> 5396 * Path: <b>Appointment.participant.actor.where(resolve() is Group) | Appointment.subject.where(resolve() is Group)</b><br> 5397 * </p> 5398 */ 5399 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam GROUP = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_GROUP); 5400 5401/** 5402 * Constant for fluent queries to be used to add include statements. Specifies 5403 * the path value of "<b>Appointment:group</b>". 5404 */ 5405 public static final ca.uhn.fhir.model.api.Include INCLUDE_GROUP = new ca.uhn.fhir.model.api.Include("Appointment:group").toLocked(); 5406 5407 /** 5408 * Search parameter: <b>location</b> 5409 * <p> 5410 * Description: <b>This location is listed in the participants of the appointment</b><br> 5411 * Type: <b>reference</b><br> 5412 * Path: <b>Appointment.participant.actor.where(resolve() is Location)</b><br> 5413 * </p> 5414 */ 5415 @SearchParamDefinition(name="location", path="Appointment.participant.actor.where(resolve() is Location)", description="This location is listed in the participants of the appointment", type="reference", target={Location.class } ) 5416 public static final String SP_LOCATION = "location"; 5417 /** 5418 * <b>Fluent Client</b> search parameter constant for <b>location</b> 5419 * <p> 5420 * Description: <b>This location is listed in the participants of the appointment</b><br> 5421 * Type: <b>reference</b><br> 5422 * Path: <b>Appointment.participant.actor.where(resolve() is Location)</b><br> 5423 * </p> 5424 */ 5425 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam LOCATION = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_LOCATION); 5426 5427/** 5428 * Constant for fluent queries to be used to add include statements. Specifies 5429 * the path value of "<b>Appointment:location</b>". 5430 */ 5431 public static final ca.uhn.fhir.model.api.Include INCLUDE_LOCATION = new ca.uhn.fhir.model.api.Include("Appointment:location").toLocked(); 5432 5433 /** 5434 * Search parameter: <b>part-status</b> 5435 * <p> 5436 * 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> 5437 * Type: <b>token</b><br> 5438 * Path: <b>Appointment.participant.status</b><br> 5439 * </p> 5440 */ 5441 @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" ) 5442 public static final String SP_PART_STATUS = "part-status"; 5443 /** 5444 * <b>Fluent Client</b> search parameter constant for <b>part-status</b> 5445 * <p> 5446 * 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> 5447 * Type: <b>token</b><br> 5448 * Path: <b>Appointment.participant.status</b><br> 5449 * </p> 5450 */ 5451 public static final ca.uhn.fhir.rest.gclient.TokenClientParam PART_STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_PART_STATUS); 5452 5453 /** 5454 * Search parameter: <b>practitioner</b> 5455 * <p> 5456 * Description: <b>One of the individuals of the appointment is this practitioner</b><br> 5457 * Type: <b>reference</b><br> 5458 * Path: <b>Appointment.participant.actor.where(resolve() is Practitioner)</b><br> 5459 * </p> 5460 */ 5461 @SearchParamDefinition(name="practitioner", path="Appointment.participant.actor.where(resolve() is Practitioner)", description="One of the individuals of the appointment is this practitioner", type="reference", target={Practitioner.class } ) 5462 public static final String SP_PRACTITIONER = "practitioner"; 5463 /** 5464 * <b>Fluent Client</b> search parameter constant for <b>practitioner</b> 5465 * <p> 5466 * Description: <b>One of the individuals of the appointment is this practitioner</b><br> 5467 * Type: <b>reference</b><br> 5468 * Path: <b>Appointment.participant.actor.where(resolve() is Practitioner)</b><br> 5469 * </p> 5470 */ 5471 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PRACTITIONER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PRACTITIONER); 5472 5473/** 5474 * Constant for fluent queries to be used to add include statements. Specifies 5475 * the path value of "<b>Appointment:practitioner</b>". 5476 */ 5477 public static final ca.uhn.fhir.model.api.Include INCLUDE_PRACTITIONER = new ca.uhn.fhir.model.api.Include("Appointment:practitioner").toLocked(); 5478 5479 /** 5480 * Search parameter: <b>reason-code</b> 5481 * <p> 5482 * Description: <b>Reference to a concept (by class)</b><br> 5483 * Type: <b>token</b><br> 5484 * Path: <b>Appointment.reason.concept</b><br> 5485 * </p> 5486 */ 5487 @SearchParamDefinition(name="reason-code", path="Appointment.reason.concept", description="Reference to a concept (by class)", type="token" ) 5488 public static final String SP_REASON_CODE = "reason-code"; 5489 /** 5490 * <b>Fluent Client</b> search parameter constant for <b>reason-code</b> 5491 * <p> 5492 * Description: <b>Reference to a concept (by class)</b><br> 5493 * Type: <b>token</b><br> 5494 * Path: <b>Appointment.reason.concept</b><br> 5495 * </p> 5496 */ 5497 public static final ca.uhn.fhir.rest.gclient.TokenClientParam REASON_CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_REASON_CODE); 5498 5499 /** 5500 * Search parameter: <b>reason-reference</b> 5501 * <p> 5502 * Description: <b>Reference to a resource (by instance)</b><br> 5503 * Type: <b>reference</b><br> 5504 * Path: <b>Appointment.reason.reference</b><br> 5505 * </p> 5506 */ 5507 @SearchParamDefinition(name="reason-reference", path="Appointment.reason.reference", description="Reference to a resource (by instance)", type="reference", target={Condition.class, ImmunizationRecommendation.class, Observation.class, Procedure.class } ) 5508 public static final String SP_REASON_REFERENCE = "reason-reference"; 5509 /** 5510 * <b>Fluent Client</b> search parameter constant for <b>reason-reference</b> 5511 * <p> 5512 * Description: <b>Reference to a resource (by instance)</b><br> 5513 * Type: <b>reference</b><br> 5514 * Path: <b>Appointment.reason.reference</b><br> 5515 * </p> 5516 */ 5517 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam REASON_REFERENCE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_REASON_REFERENCE); 5518 5519/** 5520 * Constant for fluent queries to be used to add include statements. Specifies 5521 * the path value of "<b>Appointment:reason-reference</b>". 5522 */ 5523 public static final ca.uhn.fhir.model.api.Include INCLUDE_REASON_REFERENCE = new ca.uhn.fhir.model.api.Include("Appointment:reason-reference").toLocked(); 5524 5525 /** 5526 * Search parameter: <b>requested-period</b> 5527 * <p> 5528 * Description: <b>During what period was the Appointment requested to take place</b><br> 5529 * Type: <b>date</b><br> 5530 * Path: <b>requestedPeriod</b><br> 5531 * </p> 5532 */ 5533 @SearchParamDefinition(name="requested-period", path="requestedPeriod", description="During what period was the Appointment requested to take place", type="date" ) 5534 public static final String SP_REQUESTED_PERIOD = "requested-period"; 5535 /** 5536 * <b>Fluent Client</b> search parameter constant for <b>requested-period</b> 5537 * <p> 5538 * Description: <b>During what period was the Appointment requested to take place</b><br> 5539 * Type: <b>date</b><br> 5540 * Path: <b>requestedPeriod</b><br> 5541 * </p> 5542 */ 5543 public static final ca.uhn.fhir.rest.gclient.DateClientParam REQUESTED_PERIOD = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_REQUESTED_PERIOD); 5544 5545 /** 5546 * Search parameter: <b>service-category</b> 5547 * <p> 5548 * Description: <b>A broad categorization of the service that is to be performed during this appointment</b><br> 5549 * Type: <b>token</b><br> 5550 * Path: <b>Appointment.serviceCategory</b><br> 5551 * </p> 5552 */ 5553 @SearchParamDefinition(name="service-category", path="Appointment.serviceCategory", description="A broad categorization of the service that is to be performed during this appointment", type="token" ) 5554 public static final String SP_SERVICE_CATEGORY = "service-category"; 5555 /** 5556 * <b>Fluent Client</b> search parameter constant for <b>service-category</b> 5557 * <p> 5558 * Description: <b>A broad categorization of the service that is to be performed during this appointment</b><br> 5559 * Type: <b>token</b><br> 5560 * Path: <b>Appointment.serviceCategory</b><br> 5561 * </p> 5562 */ 5563 public static final ca.uhn.fhir.rest.gclient.TokenClientParam SERVICE_CATEGORY = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_SERVICE_CATEGORY); 5564 5565 /** 5566 * Search parameter: <b>service-type-reference</b> 5567 * <p> 5568 * Description: <b>The specific service (by HealthcareService) that is to be performed during this appointment</b><br> 5569 * Type: <b>reference</b><br> 5570 * Path: <b>Appointment.serviceType.reference</b><br> 5571 * </p> 5572 */ 5573 @SearchParamDefinition(name="service-type-reference", path="Appointment.serviceType.reference", description="The specific service (by HealthcareService) that is to be performed during this appointment", type="reference", target={HealthcareService.class } ) 5574 public static final String SP_SERVICE_TYPE_REFERENCE = "service-type-reference"; 5575 /** 5576 * <b>Fluent Client</b> search parameter constant for <b>service-type-reference</b> 5577 * <p> 5578 * Description: <b>The specific service (by HealthcareService) that is to be performed during this appointment</b><br> 5579 * Type: <b>reference</b><br> 5580 * Path: <b>Appointment.serviceType.reference</b><br> 5581 * </p> 5582 */ 5583 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SERVICE_TYPE_REFERENCE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SERVICE_TYPE_REFERENCE); 5584 5585/** 5586 * Constant for fluent queries to be used to add include statements. Specifies 5587 * the path value of "<b>Appointment:service-type-reference</b>". 5588 */ 5589 public static final ca.uhn.fhir.model.api.Include INCLUDE_SERVICE_TYPE_REFERENCE = new ca.uhn.fhir.model.api.Include("Appointment:service-type-reference").toLocked(); 5590 5591 /** 5592 * Search parameter: <b>service-type</b> 5593 * <p> 5594 * Description: <b>The specific service (by coding) that is to be performed during this appointment</b><br> 5595 * Type: <b>token</b><br> 5596 * Path: <b>Appointment.serviceType.concept</b><br> 5597 * </p> 5598 */ 5599 @SearchParamDefinition(name="service-type", path="Appointment.serviceType.concept", description="The specific service (by coding) that is to be performed during this appointment", type="token" ) 5600 public static final String SP_SERVICE_TYPE = "service-type"; 5601 /** 5602 * <b>Fluent Client</b> search parameter constant for <b>service-type</b> 5603 * <p> 5604 * Description: <b>The specific service (by coding) that is to be performed during this appointment</b><br> 5605 * Type: <b>token</b><br> 5606 * Path: <b>Appointment.serviceType.concept</b><br> 5607 * </p> 5608 */ 5609 public static final ca.uhn.fhir.rest.gclient.TokenClientParam SERVICE_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_SERVICE_TYPE); 5610 5611 /** 5612 * Search parameter: <b>slot</b> 5613 * <p> 5614 * Description: <b>The slots that this appointment is filling</b><br> 5615 * Type: <b>reference</b><br> 5616 * Path: <b>Appointment.slot</b><br> 5617 * </p> 5618 */ 5619 @SearchParamDefinition(name="slot", path="Appointment.slot", description="The slots that this appointment is filling", type="reference", target={Slot.class } ) 5620 public static final String SP_SLOT = "slot"; 5621 /** 5622 * <b>Fluent Client</b> search parameter constant for <b>slot</b> 5623 * <p> 5624 * Description: <b>The slots that this appointment is filling</b><br> 5625 * Type: <b>reference</b><br> 5626 * Path: <b>Appointment.slot</b><br> 5627 * </p> 5628 */ 5629 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SLOT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SLOT); 5630 5631/** 5632 * Constant for fluent queries to be used to add include statements. Specifies 5633 * the path value of "<b>Appointment:slot</b>". 5634 */ 5635 public static final ca.uhn.fhir.model.api.Include INCLUDE_SLOT = new ca.uhn.fhir.model.api.Include("Appointment:slot").toLocked(); 5636 5637 /** 5638 * Search parameter: <b>specialty</b> 5639 * <p> 5640 * Description: <b>The specialty of a practitioner that would be required to perform the service requested in this appointment</b><br> 5641 * Type: <b>token</b><br> 5642 * Path: <b>Appointment.specialty</b><br> 5643 * </p> 5644 */ 5645 @SearchParamDefinition(name="specialty", path="Appointment.specialty", description="The specialty of a practitioner that would be required to perform the service requested in this appointment", type="token" ) 5646 public static final String SP_SPECIALTY = "specialty"; 5647 /** 5648 * <b>Fluent Client</b> search parameter constant for <b>specialty</b> 5649 * <p> 5650 * Description: <b>The specialty of a practitioner that would be required to perform the service requested in this appointment</b><br> 5651 * Type: <b>token</b><br> 5652 * Path: <b>Appointment.specialty</b><br> 5653 * </p> 5654 */ 5655 public static final ca.uhn.fhir.rest.gclient.TokenClientParam SPECIALTY = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_SPECIALTY); 5656 5657 /** 5658 * Search parameter: <b>status</b> 5659 * <p> 5660 * Description: <b>The overall status of the appointment</b><br> 5661 * Type: <b>token</b><br> 5662 * Path: <b>Appointment.status</b><br> 5663 * </p> 5664 */ 5665 @SearchParamDefinition(name="status", path="Appointment.status", description="The overall status of the appointment", type="token" ) 5666 public static final String SP_STATUS = "status"; 5667 /** 5668 * <b>Fluent Client</b> search parameter constant for <b>status</b> 5669 * <p> 5670 * Description: <b>The overall status of the appointment</b><br> 5671 * Type: <b>token</b><br> 5672 * Path: <b>Appointment.status</b><br> 5673 * </p> 5674 */ 5675 public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS); 5676 5677 /** 5678 * Search parameter: <b>subject</b> 5679 * <p> 5680 * Description: <b>One of the individuals of the appointment is this patient</b><br> 5681 * Type: <b>reference</b><br> 5682 * Path: <b>Appointment.subject</b><br> 5683 * </p> 5684 */ 5685 @SearchParamDefinition(name="subject", path="Appointment.subject", description="One of the individuals of the appointment is this patient", type="reference", target={Group.class, Patient.class } ) 5686 public static final String SP_SUBJECT = "subject"; 5687 /** 5688 * <b>Fluent Client</b> search parameter constant for <b>subject</b> 5689 * <p> 5690 * Description: <b>One of the individuals of the appointment is this patient</b><br> 5691 * Type: <b>reference</b><br> 5692 * Path: <b>Appointment.subject</b><br> 5693 * </p> 5694 */ 5695 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SUBJECT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SUBJECT); 5696 5697/** 5698 * Constant for fluent queries to be used to add include statements. Specifies 5699 * the path value of "<b>Appointment:subject</b>". 5700 */ 5701 public static final ca.uhn.fhir.model.api.Include INCLUDE_SUBJECT = new ca.uhn.fhir.model.api.Include("Appointment:subject").toLocked(); 5702 5703 /** 5704 * Search parameter: <b>supporting-info</b> 5705 * <p> 5706 * Description: <b>Additional information to support the appointment</b><br> 5707 * Type: <b>reference</b><br> 5708 * Path: <b>Appointment.supportingInformation</b><br> 5709 * </p> 5710 */ 5711 @SearchParamDefinition(name="supporting-info", path="Appointment.supportingInformation", description="Additional information to support the appointment", type="reference", target={Account.class, ActivityDefinition.class, ActorDefinition.class, AdministrableProductDefinition.class, AdverseEvent.class, AllergyIntolerance.class, Appointment.class, AppointmentResponse.class, ArtifactAssessment.class, AuditEvent.class, Basic.class, Binary.class, BiologicallyDerivedProduct.class, BiologicallyDerivedProductDispense.class, BodyStructure.class, Bundle.class, CapabilityStatement.class, CarePlan.class, CareTeam.class, ChargeItem.class, ChargeItemDefinition.class, Citation.class, Claim.class, ClaimResponse.class, ClinicalImpression.class, ClinicalUseDefinition.class, CodeSystem.class, Communication.class, CommunicationRequest.class, CompartmentDefinition.class, Composition.class, ConceptMap.class, Condition.class, ConditionDefinition.class, Consent.class, Contract.class, Coverage.class, CoverageEligibilityRequest.class, CoverageEligibilityResponse.class, DetectedIssue.class, Device.class, DeviceAssociation.class, DeviceDefinition.class, DeviceDispense.class, DeviceMetric.class, DeviceRequest.class, DeviceUsage.class, DiagnosticReport.class, DocumentReference.class, Encounter.class, EncounterHistory.class, Endpoint.class, EnrollmentRequest.class, EnrollmentResponse.class, EpisodeOfCare.class, EventDefinition.class, Evidence.class, EvidenceReport.class, EvidenceVariable.class, ExampleScenario.class, ExplanationOfBenefit.class, FamilyMemberHistory.class, Flag.class, FormularyItem.class, GenomicStudy.class, Goal.class, GraphDefinition.class, Group.class, GuidanceResponse.class, HealthcareService.class, ImagingSelection.class, ImagingStudy.class, Immunization.class, ImmunizationEvaluation.class, ImmunizationRecommendation.class, ImplementationGuide.class, Ingredient.class, InsurancePlan.class, InventoryItem.class, InventoryReport.class, Invoice.class, Library.class, Linkage.class, ListResource.class, Location.class, ManufacturedItemDefinition.class, Measure.class, MeasureReport.class, Medication.class, MedicationAdministration.class, MedicationDispense.class, MedicationKnowledge.class, MedicationRequest.class, MedicationStatement.class, MedicinalProductDefinition.class, MessageDefinition.class, MessageHeader.class, MolecularSequence.class, NamingSystem.class, NutritionIntake.class, NutritionOrder.class, NutritionProduct.class, Observation.class, ObservationDefinition.class, OperationDefinition.class, OperationOutcome.class, Organization.class, OrganizationAffiliation.class, PackagedProductDefinition.class, Parameters.class, Patient.class, PaymentNotice.class, PaymentReconciliation.class, Permission.class, Person.class, PlanDefinition.class, Practitioner.class, PractitionerRole.class, Procedure.class, Provenance.class, Questionnaire.class, QuestionnaireResponse.class, RegulatedAuthorization.class, RelatedPerson.class, RequestOrchestration.class, Requirements.class, ResearchStudy.class, ResearchSubject.class, RiskAssessment.class, Schedule.class, SearchParameter.class, ServiceRequest.class, Slot.class, Specimen.class, SpecimenDefinition.class, StructureDefinition.class, StructureMap.class, Subscription.class, SubscriptionStatus.class, SubscriptionTopic.class, Substance.class, SubstanceDefinition.class, SubstanceNucleicAcid.class, SubstancePolymer.class, SubstanceProtein.class, SubstanceReferenceInformation.class, SubstanceSourceMaterial.class, SupplyDelivery.class, SupplyRequest.class, Task.class, TerminologyCapabilities.class, TestPlan.class, TestReport.class, TestScript.class, Transport.class, ValueSet.class, VerificationResult.class, VisionPrescription.class } ) 5712 public static final String SP_SUPPORTING_INFO = "supporting-info"; 5713 /** 5714 * <b>Fluent Client</b> search parameter constant for <b>supporting-info</b> 5715 * <p> 5716 * Description: <b>Additional information to support the appointment</b><br> 5717 * Type: <b>reference</b><br> 5718 * Path: <b>Appointment.supportingInformation</b><br> 5719 * </p> 5720 */ 5721 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SUPPORTING_INFO = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SUPPORTING_INFO); 5722 5723/** 5724 * Constant for fluent queries to be used to add include statements. Specifies 5725 * the path value of "<b>Appointment:supporting-info</b>". 5726 */ 5727 public static final ca.uhn.fhir.model.api.Include INCLUDE_SUPPORTING_INFO = new ca.uhn.fhir.model.api.Include("Appointment:supporting-info").toLocked(); 5728 5729 /** 5730 * Search parameter: <b>date</b> 5731 * <p> 5732 * Description: <b>Multiple Resources: 5733 5734* [AdverseEvent](adverseevent.html): When the event occurred 5735* [AllergyIntolerance](allergyintolerance.html): Date first version of the resource instance was recorded 5736* [Appointment](appointment.html): Appointment date/time. 5737* [AuditEvent](auditevent.html): Time when the event was recorded 5738* [CarePlan](careplan.html): Time period plan covers 5739* [CareTeam](careteam.html): A date within the coverage time period. 5740* [ClinicalImpression](clinicalimpression.html): When the assessment was documented 5741* [Composition](composition.html): Composition editing time 5742* [Consent](consent.html): When consent was agreed to 5743* [DiagnosticReport](diagnosticreport.html): The clinically relevant time of the report 5744* [DocumentReference](documentreference.html): When this document reference was created 5745* [Encounter](encounter.html): A date within the actualPeriod the Encounter lasted 5746* [EpisodeOfCare](episodeofcare.html): The provided date search value falls within the episode of care's period 5747* [FamilyMemberHistory](familymemberhistory.html): When history was recorded or last updated 5748* [Flag](flag.html): Time period when flag is active 5749* [Immunization](immunization.html): Vaccination (non)-Administration Date 5750* [ImmunizationEvaluation](immunizationevaluation.html): Date the evaluation was generated 5751* [ImmunizationRecommendation](immunizationrecommendation.html): Date recommendation(s) created 5752* [Invoice](invoice.html): Invoice date / posting date 5753* [List](list.html): When the list was prepared 5754* [MeasureReport](measurereport.html): The date of the measure report 5755* [NutritionIntake](nutritionintake.html): Date when patient was taking (or not taking) the medication 5756* [Observation](observation.html): Clinically relevant time/time-period for observation 5757* [Procedure](procedure.html): When the procedure occurred or is occurring 5758* [ResearchSubject](researchsubject.html): Start and end of participation 5759* [RiskAssessment](riskassessment.html): When was assessment made? 5760* [SupplyRequest](supplyrequest.html): When the request was made 5761</b><br> 5762 * Type: <b>date</b><br> 5763 * Path: <b>AdverseEvent.occurrence.ofType(dateTime) | AdverseEvent.occurrence.ofType(Period) | AdverseEvent.occurrence.ofType(Timing) | AllergyIntolerance.recordedDate | (start | requestedPeriod.start).first() | AuditEvent.recorded | CarePlan.period | ClinicalImpression.date | Composition.date | Consent.date | DiagnosticReport.effective.ofType(dateTime) | DiagnosticReport.effective.ofType(Period) | DocumentReference.date | Encounter.actualPeriod | EpisodeOfCare.period | FamilyMemberHistory.date | Flag.period | (Immunization.occurrence.ofType(dateTime)) | ImmunizationEvaluation.date | ImmunizationRecommendation.date | Invoice.date | List.date | MeasureReport.date | NutritionIntake.occurrence.ofType(dateTime) | NutritionIntake.occurrence.ofType(Period) | Observation.effective.ofType(dateTime) | Observation.effective.ofType(Period) | Observation.effective.ofType(Timing) | Observation.effective.ofType(instant) | Procedure.occurrence.ofType(dateTime) | Procedure.occurrence.ofType(Period) | Procedure.occurrence.ofType(Timing) | ResearchSubject.period | (RiskAssessment.occurrence.ofType(dateTime)) | SupplyRequest.authoredOn</b><br> 5764 * </p> 5765 */ 5766 @SearchParamDefinition(name="date", path="AdverseEvent.occurrence.ofType(dateTime) | AdverseEvent.occurrence.ofType(Period) | AdverseEvent.occurrence.ofType(Timing) | AllergyIntolerance.recordedDate | (start | requestedPeriod.start).first() | AuditEvent.recorded | CarePlan.period | ClinicalImpression.date | Composition.date | Consent.date | DiagnosticReport.effective.ofType(dateTime) | DiagnosticReport.effective.ofType(Period) | DocumentReference.date | Encounter.actualPeriod | EpisodeOfCare.period | FamilyMemberHistory.date | Flag.period | (Immunization.occurrence.ofType(dateTime)) | ImmunizationEvaluation.date | ImmunizationRecommendation.date | Invoice.date | List.date | MeasureReport.date | NutritionIntake.occurrence.ofType(dateTime) | NutritionIntake.occurrence.ofType(Period) | Observation.effective.ofType(dateTime) | Observation.effective.ofType(Period) | Observation.effective.ofType(Timing) | Observation.effective.ofType(instant) | Procedure.occurrence.ofType(dateTime) | Procedure.occurrence.ofType(Period) | Procedure.occurrence.ofType(Timing) | ResearchSubject.period | (RiskAssessment.occurrence.ofType(dateTime)) | SupplyRequest.authoredOn", description="Multiple Resources: \r\n\r\n* [AdverseEvent](adverseevent.html): When the event occurred\r\n* [AllergyIntolerance](allergyintolerance.html): Date first version of the resource instance was recorded\r\n* [Appointment](appointment.html): Appointment date/time.\r\n* [AuditEvent](auditevent.html): Time when the event was recorded\r\n* [CarePlan](careplan.html): Time period plan covers\r\n* [CareTeam](careteam.html): A date within the coverage time period.\r\n* [ClinicalImpression](clinicalimpression.html): When the assessment was documented\r\n* [Composition](composition.html): Composition editing time\r\n* [Consent](consent.html): When consent was agreed to\r\n* [DiagnosticReport](diagnosticreport.html): The clinically relevant time of the report\r\n* [DocumentReference](documentreference.html): When this document reference was created\r\n* [Encounter](encounter.html): A date within the actualPeriod the Encounter lasted\r\n* [EpisodeOfCare](episodeofcare.html): The provided date search value falls within the episode of care's period\r\n* [FamilyMemberHistory](familymemberhistory.html): When history was recorded or last updated\r\n* [Flag](flag.html): Time period when flag is active\r\n* [Immunization](immunization.html): Vaccination (non)-Administration Date\r\n* [ImmunizationEvaluation](immunizationevaluation.html): Date the evaluation was generated\r\n* [ImmunizationRecommendation](immunizationrecommendation.html): Date recommendation(s) created\r\n* [Invoice](invoice.html): Invoice date / posting date\r\n* [List](list.html): When the list was prepared\r\n* [MeasureReport](measurereport.html): The date of the measure report\r\n* [NutritionIntake](nutritionintake.html): Date when patient was taking (or not taking) the medication\r\n* [Observation](observation.html): Clinically relevant time/time-period for observation\r\n* [Procedure](procedure.html): When the procedure occurred or is occurring\r\n* [ResearchSubject](researchsubject.html): Start and end of participation\r\n* [RiskAssessment](riskassessment.html): When was assessment made?\r\n* [SupplyRequest](supplyrequest.html): When the request was made\r\n", type="date" ) 5767 public static final String SP_DATE = "date"; 5768 /** 5769 * <b>Fluent Client</b> search parameter constant for <b>date</b> 5770 * <p> 5771 * Description: <b>Multiple Resources: 5772 5773* [AdverseEvent](adverseevent.html): When the event occurred 5774* [AllergyIntolerance](allergyintolerance.html): Date first version of the resource instance was recorded 5775* [Appointment](appointment.html): Appointment date/time. 5776* [AuditEvent](auditevent.html): Time when the event was recorded 5777* [CarePlan](careplan.html): Time period plan covers 5778* [CareTeam](careteam.html): A date within the coverage time period. 5779* [ClinicalImpression](clinicalimpression.html): When the assessment was documented 5780* [Composition](composition.html): Composition editing time 5781* [Consent](consent.html): When consent was agreed to 5782* [DiagnosticReport](diagnosticreport.html): The clinically relevant time of the report 5783* [DocumentReference](documentreference.html): When this document reference was created 5784* [Encounter](encounter.html): A date within the actualPeriod the Encounter lasted 5785* [EpisodeOfCare](episodeofcare.html): The provided date search value falls within the episode of care's period 5786* [FamilyMemberHistory](familymemberhistory.html): When history was recorded or last updated 5787* [Flag](flag.html): Time period when flag is active 5788* [Immunization](immunization.html): Vaccination (non)-Administration Date 5789* [ImmunizationEvaluation](immunizationevaluation.html): Date the evaluation was generated 5790* [ImmunizationRecommendation](immunizationrecommendation.html): Date recommendation(s) created 5791* [Invoice](invoice.html): Invoice date / posting date 5792* [List](list.html): When the list was prepared 5793* [MeasureReport](measurereport.html): The date of the measure report 5794* [NutritionIntake](nutritionintake.html): Date when patient was taking (or not taking) the medication 5795* [Observation](observation.html): Clinically relevant time/time-period for observation 5796* [Procedure](procedure.html): When the procedure occurred or is occurring 5797* [ResearchSubject](researchsubject.html): Start and end of participation 5798* [RiskAssessment](riskassessment.html): When was assessment made? 5799* [SupplyRequest](supplyrequest.html): When the request was made 5800</b><br> 5801 * Type: <b>date</b><br> 5802 * Path: <b>AdverseEvent.occurrence.ofType(dateTime) | AdverseEvent.occurrence.ofType(Period) | AdverseEvent.occurrence.ofType(Timing) | AllergyIntolerance.recordedDate | (start | requestedPeriod.start).first() | AuditEvent.recorded | CarePlan.period | ClinicalImpression.date | Composition.date | Consent.date | DiagnosticReport.effective.ofType(dateTime) | DiagnosticReport.effective.ofType(Period) | DocumentReference.date | Encounter.actualPeriod | EpisodeOfCare.period | FamilyMemberHistory.date | Flag.period | (Immunization.occurrence.ofType(dateTime)) | ImmunizationEvaluation.date | ImmunizationRecommendation.date | Invoice.date | List.date | MeasureReport.date | NutritionIntake.occurrence.ofType(dateTime) | NutritionIntake.occurrence.ofType(Period) | Observation.effective.ofType(dateTime) | Observation.effective.ofType(Period) | Observation.effective.ofType(Timing) | Observation.effective.ofType(instant) | Procedure.occurrence.ofType(dateTime) | Procedure.occurrence.ofType(Period) | Procedure.occurrence.ofType(Timing) | ResearchSubject.period | (RiskAssessment.occurrence.ofType(dateTime)) | SupplyRequest.authoredOn</b><br> 5803 * </p> 5804 */ 5805 public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE); 5806 5807 /** 5808 * Search parameter: <b>identifier</b> 5809 * <p> 5810 * Description: <b>Multiple Resources: 5811 5812* [Account](account.html): Account number 5813* [AdverseEvent](adverseevent.html): Business identifier for the event 5814* [AllergyIntolerance](allergyintolerance.html): External ids for this item 5815* [Appointment](appointment.html): An Identifier of the Appointment 5816* [AppointmentResponse](appointmentresponse.html): An Identifier in this appointment response 5817* [Basic](basic.html): Business identifier 5818* [BodyStructure](bodystructure.html): Bodystructure identifier 5819* [CarePlan](careplan.html): External Ids for this plan 5820* [CareTeam](careteam.html): External Ids for this team 5821* [ChargeItem](chargeitem.html): Business Identifier for item 5822* [Claim](claim.html): The primary identifier of the financial resource 5823* [ClaimResponse](claimresponse.html): The identity of the ClaimResponse 5824* [ClinicalImpression](clinicalimpression.html): Business identifier 5825* [Communication](communication.html): Unique identifier 5826* [CommunicationRequest](communicationrequest.html): Unique identifier 5827* [Composition](composition.html): Version-independent identifier for the Composition 5828* [Condition](condition.html): A unique identifier of the condition record 5829* [Consent](consent.html): Identifier for this record (external references) 5830* [Contract](contract.html): The identity of the contract 5831* [Coverage](coverage.html): The primary identifier of the insured and the coverage 5832* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The business identifier of the Eligibility 5833* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The business identifier 5834* [DetectedIssue](detectedissue.html): Unique id for the detected issue 5835* [DeviceRequest](devicerequest.html): Business identifier for request/order 5836* [DeviceUsage](deviceusage.html): Search by identifier 5837* [DiagnosticReport](diagnosticreport.html): An identifier for the report 5838* [DocumentReference](documentreference.html): Identifier of the attachment binary 5839* [Encounter](encounter.html): Identifier(s) by which this encounter is known 5840* [EnrollmentRequest](enrollmentrequest.html): The business identifier of the Enrollment 5841* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare 5842* [ExplanationOfBenefit](explanationofbenefit.html): The business identifier of the Explanation of Benefit 5843* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier 5844* [Flag](flag.html): Business identifier 5845* [Goal](goal.html): External Ids for this goal 5846* [GuidanceResponse](guidanceresponse.html): The identifier of the guidance response 5847* [ImagingSelection](imagingselection.html): Identifiers for the imaging selection 5848* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID 5849* [Immunization](immunization.html): Business identifier 5850* [ImmunizationEvaluation](immunizationevaluation.html): ID of the evaluation 5851* [ImmunizationRecommendation](immunizationrecommendation.html): Business identifier 5852* [Invoice](invoice.html): Business Identifier for item 5853* [List](list.html): Business identifier 5854* [MeasureReport](measurereport.html): External identifier of the measure report to be returned 5855* [Medication](medication.html): Returns medications with this external identifier 5856* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier 5857* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier 5858* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier 5859* [MedicationStatement](medicationstatement.html): Return statements with this external identifier 5860* [MolecularSequence](molecularsequence.html): The unique identity for a particular sequence 5861* [NutritionIntake](nutritionintake.html): Return statements with this external identifier 5862* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier 5863* [Observation](observation.html): The unique id for a particular observation 5864* [Person](person.html): A person Identifier 5865* [Procedure](procedure.html): A unique identifier for a procedure 5866* [QuestionnaireResponse](questionnaireresponse.html): The unique identifier for the questionnaire response 5867* [RelatedPerson](relatedperson.html): An Identifier of the RelatedPerson 5868* [RequestOrchestration](requestorchestration.html): External identifiers for the request orchestration 5869* [ResearchSubject](researchsubject.html): Business Identifier for research subject in a study 5870* [RiskAssessment](riskassessment.html): Unique identifier for the assessment 5871* [ServiceRequest](servicerequest.html): Identifiers assigned to this order 5872* [Specimen](specimen.html): The unique identifier associated with the specimen 5873* [SupplyDelivery](supplydelivery.html): External identifier 5874* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest 5875* [Task](task.html): Search for a task instance by its business identifier 5876* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier 5877</b><br> 5878 * Type: <b>token</b><br> 5879 * Path: <b>Account.identifier | AdverseEvent.identifier | AllergyIntolerance.identifier | Appointment.identifier | AppointmentResponse.identifier | Basic.identifier | BodyStructure.identifier | CarePlan.identifier | CareTeam.identifier | ChargeItem.identifier | Claim.identifier | ClaimResponse.identifier | ClinicalImpression.identifier | Communication.identifier | CommunicationRequest.identifier | Composition.identifier | Condition.identifier | Consent.identifier | Contract.identifier | Coverage.identifier | CoverageEligibilityRequest.identifier | CoverageEligibilityResponse.identifier | DetectedIssue.identifier | DeviceRequest.identifier | DeviceUsage.identifier | DiagnosticReport.identifier | DocumentReference.identifier | Encounter.identifier | EnrollmentRequest.identifier | EpisodeOfCare.identifier | ExplanationOfBenefit.identifier | FamilyMemberHistory.identifier | Flag.identifier | Goal.identifier | GuidanceResponse.identifier | ImagingSelection.identifier | ImagingStudy.identifier | Immunization.identifier | ImmunizationEvaluation.identifier | ImmunizationRecommendation.identifier | Invoice.identifier | List.identifier | MeasureReport.identifier | Medication.identifier | MedicationAdministration.identifier | MedicationDispense.identifier | MedicationRequest.identifier | MedicationStatement.identifier | MolecularSequence.identifier | NutritionIntake.identifier | NutritionOrder.identifier | Observation.identifier | Person.identifier | Procedure.identifier | QuestionnaireResponse.identifier | RelatedPerson.identifier | RequestOrchestration.identifier | ResearchSubject.identifier | RiskAssessment.identifier | ServiceRequest.identifier | Specimen.identifier | SupplyDelivery.identifier | SupplyRequest.identifier | Task.identifier | VisionPrescription.identifier</b><br> 5880 * </p> 5881 */ 5882 @SearchParamDefinition(name="identifier", path="Account.identifier | AdverseEvent.identifier | AllergyIntolerance.identifier | Appointment.identifier | AppointmentResponse.identifier | Basic.identifier | BodyStructure.identifier | CarePlan.identifier | CareTeam.identifier | ChargeItem.identifier | Claim.identifier | ClaimResponse.identifier | ClinicalImpression.identifier | Communication.identifier | CommunicationRequest.identifier | Composition.identifier | Condition.identifier | Consent.identifier | Contract.identifier | Coverage.identifier | CoverageEligibilityRequest.identifier | CoverageEligibilityResponse.identifier | DetectedIssue.identifier | DeviceRequest.identifier | DeviceUsage.identifier | DiagnosticReport.identifier | DocumentReference.identifier | Encounter.identifier | EnrollmentRequest.identifier | EpisodeOfCare.identifier | ExplanationOfBenefit.identifier | FamilyMemberHistory.identifier | Flag.identifier | Goal.identifier | GuidanceResponse.identifier | ImagingSelection.identifier | ImagingStudy.identifier | Immunization.identifier | ImmunizationEvaluation.identifier | ImmunizationRecommendation.identifier | Invoice.identifier | List.identifier | MeasureReport.identifier | Medication.identifier | MedicationAdministration.identifier | MedicationDispense.identifier | MedicationRequest.identifier | MedicationStatement.identifier | MolecularSequence.identifier | NutritionIntake.identifier | NutritionOrder.identifier | Observation.identifier | Person.identifier | Procedure.identifier | QuestionnaireResponse.identifier | RelatedPerson.identifier | RequestOrchestration.identifier | ResearchSubject.identifier | RiskAssessment.identifier | ServiceRequest.identifier | Specimen.identifier | SupplyDelivery.identifier | SupplyRequest.identifier | Task.identifier | VisionPrescription.identifier", description="Multiple Resources: \r\n\r\n* [Account](account.html): Account number\r\n* [AdverseEvent](adverseevent.html): Business identifier for the event\r\n* [AllergyIntolerance](allergyintolerance.html): External ids for this item\r\n* [Appointment](appointment.html): An Identifier of the Appointment\r\n* [AppointmentResponse](appointmentresponse.html): An Identifier in this appointment response\r\n* [Basic](basic.html): Business identifier\r\n* [BodyStructure](bodystructure.html): Bodystructure identifier\r\n* [CarePlan](careplan.html): External Ids for this plan\r\n* [CareTeam](careteam.html): External Ids for this team\r\n* [ChargeItem](chargeitem.html): Business Identifier for item\r\n* [Claim](claim.html): The primary identifier of the financial resource\r\n* [ClaimResponse](claimresponse.html): The identity of the ClaimResponse\r\n* [ClinicalImpression](clinicalimpression.html): Business identifier\r\n* [Communication](communication.html): Unique identifier\r\n* [CommunicationRequest](communicationrequest.html): Unique identifier\r\n* [Composition](composition.html): Version-independent identifier for the Composition\r\n* [Condition](condition.html): A unique identifier of the condition record\r\n* [Consent](consent.html): Identifier for this record (external references)\r\n* [Contract](contract.html): The identity of the contract\r\n* [Coverage](coverage.html): The primary identifier of the insured and the coverage\r\n* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The business identifier of the Eligibility\r\n* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The business identifier\r\n* [DetectedIssue](detectedissue.html): Unique id for the detected issue\r\n* [DeviceRequest](devicerequest.html): Business identifier for request/order\r\n* [DeviceUsage](deviceusage.html): Search by identifier\r\n* [DiagnosticReport](diagnosticreport.html): An identifier for the report\r\n* [DocumentReference](documentreference.html): Identifier of the attachment binary\r\n* [Encounter](encounter.html): Identifier(s) by which this encounter is known\r\n* [EnrollmentRequest](enrollmentrequest.html): The business identifier of the Enrollment\r\n* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare\r\n* [ExplanationOfBenefit](explanationofbenefit.html): The business identifier of the Explanation of Benefit\r\n* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier\r\n* [Flag](flag.html): Business identifier\r\n* [Goal](goal.html): External Ids for this goal\r\n* [GuidanceResponse](guidanceresponse.html): The identifier of the guidance response\r\n* [ImagingSelection](imagingselection.html): Identifiers for the imaging selection\r\n* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID\r\n* [Immunization](immunization.html): Business identifier\r\n* [ImmunizationEvaluation](immunizationevaluation.html): ID of the evaluation\r\n* [ImmunizationRecommendation](immunizationrecommendation.html): Business identifier\r\n* [Invoice](invoice.html): Business Identifier for item\r\n* [List](list.html): Business identifier\r\n* [MeasureReport](measurereport.html): External identifier of the measure report to be returned\r\n* [Medication](medication.html): Returns medications with this external identifier\r\n* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier\r\n* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier\r\n* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier\r\n* [MedicationStatement](medicationstatement.html): Return statements with this external identifier\r\n* [MolecularSequence](molecularsequence.html): The unique identity for a particular sequence\r\n* [NutritionIntake](nutritionintake.html): Return statements with this external identifier\r\n* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier\r\n* [Observation](observation.html): The unique id for a particular observation\r\n* [Person](person.html): A person Identifier\r\n* [Procedure](procedure.html): A unique identifier for a procedure\r\n* [QuestionnaireResponse](questionnaireresponse.html): The unique identifier for the questionnaire response\r\n* [RelatedPerson](relatedperson.html): An Identifier of the RelatedPerson\r\n* [RequestOrchestration](requestorchestration.html): External identifiers for the request orchestration\r\n* [ResearchSubject](researchsubject.html): Business Identifier for research subject in a study\r\n* [RiskAssessment](riskassessment.html): Unique identifier for the assessment\r\n* [ServiceRequest](servicerequest.html): Identifiers assigned to this order\r\n* [Specimen](specimen.html): The unique identifier associated with the specimen\r\n* [SupplyDelivery](supplydelivery.html): External identifier\r\n* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest\r\n* [Task](task.html): Search for a task instance by its business identifier\r\n* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier\r\n", type="token" ) 5883 public static final String SP_IDENTIFIER = "identifier"; 5884 /** 5885 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 5886 * <p> 5887 * Description: <b>Multiple Resources: 5888 5889* [Account](account.html): Account number 5890* [AdverseEvent](adverseevent.html): Business identifier for the event 5891* [AllergyIntolerance](allergyintolerance.html): External ids for this item 5892* [Appointment](appointment.html): An Identifier of the Appointment 5893* [AppointmentResponse](appointmentresponse.html): An Identifier in this appointment response 5894* [Basic](basic.html): Business identifier 5895* [BodyStructure](bodystructure.html): Bodystructure identifier 5896* [CarePlan](careplan.html): External Ids for this plan 5897* [CareTeam](careteam.html): External Ids for this team 5898* [ChargeItem](chargeitem.html): Business Identifier for item 5899* [Claim](claim.html): The primary identifier of the financial resource 5900* [ClaimResponse](claimresponse.html): The identity of the ClaimResponse 5901* [ClinicalImpression](clinicalimpression.html): Business identifier 5902* [Communication](communication.html): Unique identifier 5903* [CommunicationRequest](communicationrequest.html): Unique identifier 5904* [Composition](composition.html): Version-independent identifier for the Composition 5905* [Condition](condition.html): A unique identifier of the condition record 5906* [Consent](consent.html): Identifier for this record (external references) 5907* [Contract](contract.html): The identity of the contract 5908* [Coverage](coverage.html): The primary identifier of the insured and the coverage 5909* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The business identifier of the Eligibility 5910* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The business identifier 5911* [DetectedIssue](detectedissue.html): Unique id for the detected issue 5912* [DeviceRequest](devicerequest.html): Business identifier for request/order 5913* [DeviceUsage](deviceusage.html): Search by identifier 5914* [DiagnosticReport](diagnosticreport.html): An identifier for the report 5915* [DocumentReference](documentreference.html): Identifier of the attachment binary 5916* [Encounter](encounter.html): Identifier(s) by which this encounter is known 5917* [EnrollmentRequest](enrollmentrequest.html): The business identifier of the Enrollment 5918* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare 5919* [ExplanationOfBenefit](explanationofbenefit.html): The business identifier of the Explanation of Benefit 5920* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier 5921* [Flag](flag.html): Business identifier 5922* [Goal](goal.html): External Ids for this goal 5923* [GuidanceResponse](guidanceresponse.html): The identifier of the guidance response 5924* [ImagingSelection](imagingselection.html): Identifiers for the imaging selection 5925* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID 5926* [Immunization](immunization.html): Business identifier 5927* [ImmunizationEvaluation](immunizationevaluation.html): ID of the evaluation 5928* [ImmunizationRecommendation](immunizationrecommendation.html): Business identifier 5929* [Invoice](invoice.html): Business Identifier for item 5930* [List](list.html): Business identifier 5931* [MeasureReport](measurereport.html): External identifier of the measure report to be returned 5932* [Medication](medication.html): Returns medications with this external identifier 5933* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier 5934* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier 5935* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier 5936* [MedicationStatement](medicationstatement.html): Return statements with this external identifier 5937* [MolecularSequence](molecularsequence.html): The unique identity for a particular sequence 5938* [NutritionIntake](nutritionintake.html): Return statements with this external identifier 5939* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier 5940* [Observation](observation.html): The unique id for a particular observation 5941* [Person](person.html): A person Identifier 5942* [Procedure](procedure.html): A unique identifier for a procedure 5943* [QuestionnaireResponse](questionnaireresponse.html): The unique identifier for the questionnaire response 5944* [RelatedPerson](relatedperson.html): An Identifier of the RelatedPerson 5945* [RequestOrchestration](requestorchestration.html): External identifiers for the request orchestration 5946* [ResearchSubject](researchsubject.html): Business Identifier for research subject in a study 5947* [RiskAssessment](riskassessment.html): Unique identifier for the assessment 5948* [ServiceRequest](servicerequest.html): Identifiers assigned to this order 5949* [Specimen](specimen.html): The unique identifier associated with the specimen 5950* [SupplyDelivery](supplydelivery.html): External identifier 5951* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest 5952* [Task](task.html): Search for a task instance by its business identifier 5953* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier 5954</b><br> 5955 * Type: <b>token</b><br> 5956 * Path: <b>Account.identifier | AdverseEvent.identifier | AllergyIntolerance.identifier | Appointment.identifier | AppointmentResponse.identifier | Basic.identifier | BodyStructure.identifier | CarePlan.identifier | CareTeam.identifier | ChargeItem.identifier | Claim.identifier | ClaimResponse.identifier | ClinicalImpression.identifier | Communication.identifier | CommunicationRequest.identifier | Composition.identifier | Condition.identifier | Consent.identifier | Contract.identifier | Coverage.identifier | CoverageEligibilityRequest.identifier | CoverageEligibilityResponse.identifier | DetectedIssue.identifier | DeviceRequest.identifier | DeviceUsage.identifier | DiagnosticReport.identifier | DocumentReference.identifier | Encounter.identifier | EnrollmentRequest.identifier | EpisodeOfCare.identifier | ExplanationOfBenefit.identifier | FamilyMemberHistory.identifier | Flag.identifier | Goal.identifier | GuidanceResponse.identifier | ImagingSelection.identifier | ImagingStudy.identifier | Immunization.identifier | ImmunizationEvaluation.identifier | ImmunizationRecommendation.identifier | Invoice.identifier | List.identifier | MeasureReport.identifier | Medication.identifier | MedicationAdministration.identifier | MedicationDispense.identifier | MedicationRequest.identifier | MedicationStatement.identifier | MolecularSequence.identifier | NutritionIntake.identifier | NutritionOrder.identifier | Observation.identifier | Person.identifier | Procedure.identifier | QuestionnaireResponse.identifier | RelatedPerson.identifier | RequestOrchestration.identifier | ResearchSubject.identifier | RiskAssessment.identifier | ServiceRequest.identifier | Specimen.identifier | SupplyDelivery.identifier | SupplyRequest.identifier | Task.identifier | VisionPrescription.identifier</b><br> 5957 * </p> 5958 */ 5959 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 5960 5961 /** 5962 * Search parameter: <b>patient</b> 5963 * <p> 5964 * Description: <b>Multiple Resources: 5965 5966* [Account](account.html): The entity that caused the expenses 5967* [AdverseEvent](adverseevent.html): Subject impacted by event 5968* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for 5969* [Appointment](appointment.html): One of the individuals of the appointment is this patient 5970* [AppointmentResponse](appointmentresponse.html): This Response is for this Patient 5971* [AuditEvent](auditevent.html): Where the activity involved patient data 5972* [Basic](basic.html): Identifies the focus of this resource 5973* [BodyStructure](bodystructure.html): Who this is about 5974* [CarePlan](careplan.html): Who the care plan is for 5975* [CareTeam](careteam.html): Who care team is for 5976* [ChargeItem](chargeitem.html): Individual service was done for/to 5977* [Claim](claim.html): Patient receiving the products or services 5978* [ClaimResponse](claimresponse.html): The subject of care 5979* [ClinicalImpression](clinicalimpression.html): Patient assessed 5980* [Communication](communication.html): Focus of message 5981* [CommunicationRequest](communicationrequest.html): Focus of message 5982* [Composition](composition.html): Who and/or what the composition is about 5983* [Condition](condition.html): Who has the condition? 5984* [Consent](consent.html): Who the consent applies to 5985* [Contract](contract.html): The identity of the subject of the contract (if a patient) 5986* [Coverage](coverage.html): Retrieve coverages for a patient 5987* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The reference to the patient 5988* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The reference to the patient 5989* [DetectedIssue](detectedissue.html): Associated patient 5990* [DeviceRequest](devicerequest.html): Individual the service is ordered for 5991* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device 5992* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient 5993* [DocumentReference](documentreference.html): Who/what is the subject of the document 5994* [Encounter](encounter.html): The patient present at the encounter 5995* [EnrollmentRequest](enrollmentrequest.html): The party to be enrolled 5996* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care 5997* [ExplanationOfBenefit](explanationofbenefit.html): The reference to the patient 5998* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for 5999* [Flag](flag.html): The identity of a subject to list flags for 6000* [Goal](goal.html): Who this goal is intended for 6001* [GuidanceResponse](guidanceresponse.html): The identity of a patient to search for guidance response results 6002* [ImagingSelection](imagingselection.html): Who the study is about 6003* [ImagingStudy](imagingstudy.html): Who the study is about 6004* [Immunization](immunization.html): The patient for the vaccination record 6005* [ImmunizationEvaluation](immunizationevaluation.html): The patient being evaluated 6006* [ImmunizationRecommendation](immunizationrecommendation.html): Who this profile is for 6007* [Invoice](invoice.html): Recipient(s) of goods and services 6008* [List](list.html): If all resources have the same subject 6009* [MeasureReport](measurereport.html): The identity of a patient to search for individual measure report results for 6010* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations for 6011* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses for 6012* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient 6013* [MedicationStatement](medicationstatement.html): Returns statements for a specific patient. 6014* [MolecularSequence](molecularsequence.html): The subject that the sequence is about 6015* [NutritionIntake](nutritionintake.html): Returns statements for a specific patient. 6016* [NutritionOrder](nutritionorder.html): The identity of the individual or set of individuals who requires the diet, formula or nutritional supplement 6017* [Observation](observation.html): The subject that the observation is about (if patient) 6018* [Person](person.html): The Person links to this Patient 6019* [Procedure](procedure.html): Search by subject - a patient 6020* [Provenance](provenance.html): Where the activity involved patient data 6021* [QuestionnaireResponse](questionnaireresponse.html): The patient that is the subject of the questionnaire response 6022* [RelatedPerson](relatedperson.html): The patient this related person is related to 6023* [RequestOrchestration](requestorchestration.html): The identity of a patient to search for request orchestrations 6024* [ResearchSubject](researchsubject.html): Who or what is part of study 6025* [RiskAssessment](riskassessment.html): Who/what does assessment apply to? 6026* [ServiceRequest](servicerequest.html): Search by subject - a patient 6027* [Specimen](specimen.html): The patient the specimen comes from 6028* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied 6029* [SupplyRequest](supplyrequest.html): The patient or subject for whom the supply is destined 6030* [Task](task.html): Search by patient 6031* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for 6032</b><br> 6033 * Type: <b>reference</b><br> 6034 * Path: <b>Account.subject.where(resolve() is Patient) | AdverseEvent.subject.where(resolve() is Patient) | AllergyIntolerance.patient | Appointment.participant.actor.where(resolve() is Patient) | Appointment.subject.where(resolve() is Patient) | AppointmentResponse.actor.where(resolve() is Patient) | AuditEvent.patient | Basic.subject.where(resolve() is Patient) | BodyStructure.patient | CarePlan.subject.where(resolve() is Patient) | CareTeam.subject.where(resolve() is Patient) | ChargeItem.subject.where(resolve() is Patient) | Claim.patient | ClaimResponse.patient | ClinicalImpression.subject.where(resolve() is Patient) | Communication.subject.where(resolve() is Patient) | CommunicationRequest.subject.where(resolve() is Patient) | Composition.subject.where(resolve() is Patient) | Condition.subject.where(resolve() is Patient) | Consent.subject.where(resolve() is Patient) | Contract.subject.where(resolve() is Patient) | Coverage.beneficiary | CoverageEligibilityRequest.patient | CoverageEligibilityResponse.patient | DetectedIssue.subject.where(resolve() is Patient) | DeviceRequest.subject.where(resolve() is Patient) | DeviceUsage.patient | DiagnosticReport.subject.where(resolve() is Patient) | DocumentReference.subject.where(resolve() is Patient) | Encounter.subject.where(resolve() is Patient) | EnrollmentRequest.candidate | EpisodeOfCare.patient | ExplanationOfBenefit.patient | FamilyMemberHistory.patient | Flag.subject.where(resolve() is Patient) | Goal.subject.where(resolve() is Patient) | GuidanceResponse.subject.where(resolve() is Patient) | ImagingSelection.subject.where(resolve() is Patient) | ImagingStudy.subject.where(resolve() is Patient) | Immunization.patient | ImmunizationEvaluation.patient | ImmunizationRecommendation.patient | Invoice.subject.where(resolve() is Patient) | List.subject.where(resolve() is Patient) | MeasureReport.subject.where(resolve() is Patient) | MedicationAdministration.subject.where(resolve() is Patient) | MedicationDispense.subject.where(resolve() is Patient) | MedicationRequest.subject.where(resolve() is Patient) | MedicationStatement.subject.where(resolve() is Patient) | MolecularSequence.subject.where(resolve() is Patient) | NutritionIntake.subject.where(resolve() is Patient) | NutritionOrder.subject.where(resolve() is Patient) | Observation.subject.where(resolve() is Patient) | Person.link.target.where(resolve() is Patient) | Procedure.subject.where(resolve() is Patient) | Provenance.patient | QuestionnaireResponse.subject.where(resolve() is Patient) | RelatedPerson.patient | RequestOrchestration.subject.where(resolve() is Patient) | ResearchSubject.subject.where(resolve() is Patient) | RiskAssessment.subject.where(resolve() is Patient) | ServiceRequest.subject.where(resolve() is Patient) | Specimen.subject.where(resolve() is Patient) | SupplyDelivery.patient | SupplyRequest.deliverFor | Task.for.where(resolve() is Patient) | VisionPrescription.patient</b><br> 6035 * </p> 6036 */ 6037 @SearchParamDefinition(name="patient", path="Account.subject.where(resolve() is Patient) | AdverseEvent.subject.where(resolve() is Patient) | AllergyIntolerance.patient | Appointment.participant.actor.where(resolve() is Patient) | Appointment.subject.where(resolve() is Patient) | AppointmentResponse.actor.where(resolve() is Patient) | AuditEvent.patient | Basic.subject.where(resolve() is Patient) | BodyStructure.patient | CarePlan.subject.where(resolve() is Patient) | CareTeam.subject.where(resolve() is Patient) | ChargeItem.subject.where(resolve() is Patient) | Claim.patient | ClaimResponse.patient | ClinicalImpression.subject.where(resolve() is Patient) | Communication.subject.where(resolve() is Patient) | CommunicationRequest.subject.where(resolve() is Patient) | Composition.subject.where(resolve() is Patient) | Condition.subject.where(resolve() is Patient) | Consent.subject.where(resolve() is Patient) | Contract.subject.where(resolve() is Patient) | Coverage.beneficiary | CoverageEligibilityRequest.patient | CoverageEligibilityResponse.patient | DetectedIssue.subject.where(resolve() is Patient) | DeviceRequest.subject.where(resolve() is Patient) | DeviceUsage.patient | DiagnosticReport.subject.where(resolve() is Patient) | DocumentReference.subject.where(resolve() is Patient) | Encounter.subject.where(resolve() is Patient) | EnrollmentRequest.candidate | EpisodeOfCare.patient | ExplanationOfBenefit.patient | FamilyMemberHistory.patient | Flag.subject.where(resolve() is Patient) | Goal.subject.where(resolve() is Patient) | GuidanceResponse.subject.where(resolve() is Patient) | ImagingSelection.subject.where(resolve() is Patient) | ImagingStudy.subject.where(resolve() is Patient) | Immunization.patient | ImmunizationEvaluation.patient | ImmunizationRecommendation.patient | Invoice.subject.where(resolve() is Patient) | List.subject.where(resolve() is Patient) | MeasureReport.subject.where(resolve() is Patient) | MedicationAdministration.subject.where(resolve() is Patient) | MedicationDispense.subject.where(resolve() is Patient) | MedicationRequest.subject.where(resolve() is Patient) | MedicationStatement.subject.where(resolve() is Patient) | MolecularSequence.subject.where(resolve() is Patient) | NutritionIntake.subject.where(resolve() is Patient) | NutritionOrder.subject.where(resolve() is Patient) | Observation.subject.where(resolve() is Patient) | Person.link.target.where(resolve() is Patient) | Procedure.subject.where(resolve() is Patient) | Provenance.patient | QuestionnaireResponse.subject.where(resolve() is Patient) | RelatedPerson.patient | RequestOrchestration.subject.where(resolve() is Patient) | ResearchSubject.subject.where(resolve() is Patient) | RiskAssessment.subject.where(resolve() is Patient) | ServiceRequest.subject.where(resolve() is Patient) | Specimen.subject.where(resolve() is Patient) | SupplyDelivery.patient | SupplyRequest.deliverFor | Task.for.where(resolve() is Patient) | VisionPrescription.patient", description="Multiple Resources: \r\n\r\n* [Account](account.html): The entity that caused the expenses\r\n* [AdverseEvent](adverseevent.html): Subject impacted by event\r\n* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for\r\n* [Appointment](appointment.html): One of the individuals of the appointment is this patient\r\n* [AppointmentResponse](appointmentresponse.html): This Response is for this Patient\r\n* [AuditEvent](auditevent.html): Where the activity involved patient data\r\n* [Basic](basic.html): Identifies the focus of this resource\r\n* [BodyStructure](bodystructure.html): Who this is about\r\n* [CarePlan](careplan.html): Who the care plan is for\r\n* [CareTeam](careteam.html): Who care team is for\r\n* [ChargeItem](chargeitem.html): Individual service was done for/to\r\n* [Claim](claim.html): Patient receiving the products or services\r\n* [ClaimResponse](claimresponse.html): The subject of care\r\n* [ClinicalImpression](clinicalimpression.html): Patient assessed\r\n* [Communication](communication.html): Focus of message\r\n* [CommunicationRequest](communicationrequest.html): Focus of message\r\n* [Composition](composition.html): Who and/or what the composition is about\r\n* [Condition](condition.html): Who has the condition?\r\n* [Consent](consent.html): Who the consent applies to\r\n* [Contract](contract.html): The identity of the subject of the contract (if a patient)\r\n* [Coverage](coverage.html): Retrieve coverages for a patient\r\n* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The reference to the patient\r\n* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The reference to the patient\r\n* [DetectedIssue](detectedissue.html): Associated patient\r\n* [DeviceRequest](devicerequest.html): Individual the service is ordered for\r\n* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device\r\n* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient\r\n* [DocumentReference](documentreference.html): Who/what is the subject of the document\r\n* [Encounter](encounter.html): The patient present at the encounter\r\n* [EnrollmentRequest](enrollmentrequest.html): The party to be enrolled\r\n* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care\r\n* [ExplanationOfBenefit](explanationofbenefit.html): The reference to the patient\r\n* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for\r\n* [Flag](flag.html): The identity of a subject to list flags for\r\n* [Goal](goal.html): Who this goal is intended for\r\n* [GuidanceResponse](guidanceresponse.html): The identity of a patient to search for guidance response results\r\n* [ImagingSelection](imagingselection.html): Who the study is about\r\n* [ImagingStudy](imagingstudy.html): Who the study is about\r\n* [Immunization](immunization.html): The patient for the vaccination record\r\n* [ImmunizationEvaluation](immunizationevaluation.html): The patient being evaluated\r\n* [ImmunizationRecommendation](immunizationrecommendation.html): Who this profile is for\r\n* [Invoice](invoice.html): Recipient(s) of goods and services\r\n* [List](list.html): If all resources have the same subject\r\n* [MeasureReport](measurereport.html): The identity of a patient to search for individual measure report results for\r\n* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations for\r\n* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses for\r\n* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient\r\n* [MedicationStatement](medicationstatement.html): Returns statements for a specific patient.\r\n* [MolecularSequence](molecularsequence.html): The subject that the sequence is about\r\n* [NutritionIntake](nutritionintake.html): Returns statements for a specific patient.\r\n* [NutritionOrder](nutritionorder.html): The identity of the individual or set of individuals who requires the diet, formula or nutritional supplement\r\n* [Observation](observation.html): The subject that the observation is about (if patient)\r\n* [Person](person.html): The Person links to this Patient\r\n* [Procedure](procedure.html): Search by subject - a patient\r\n* [Provenance](provenance.html): Where the activity involved patient data\r\n* [QuestionnaireResponse](questionnaireresponse.html): The patient that is the subject of the questionnaire response\r\n* [RelatedPerson](relatedperson.html): The patient this related person is related to\r\n* [RequestOrchestration](requestorchestration.html): The identity of a patient to search for request orchestrations\r\n* [ResearchSubject](researchsubject.html): Who or what is part of study\r\n* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?\r\n* [ServiceRequest](servicerequest.html): Search by subject - a patient\r\n* [Specimen](specimen.html): The patient the specimen comes from\r\n* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied\r\n* [SupplyRequest](supplyrequest.html): The patient or subject for whom the supply is destined\r\n* [Task](task.html): Search by patient\r\n* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for\r\n", type="reference", target={Patient.class } ) 6038 public static final String SP_PATIENT = "patient"; 6039 /** 6040 * <b>Fluent Client</b> search parameter constant for <b>patient</b> 6041 * <p> 6042 * Description: <b>Multiple Resources: 6043 6044* [Account](account.html): The entity that caused the expenses 6045* [AdverseEvent](adverseevent.html): Subject impacted by event 6046* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for 6047* [Appointment](appointment.html): One of the individuals of the appointment is this patient 6048* [AppointmentResponse](appointmentresponse.html): This Response is for this Patient 6049* [AuditEvent](auditevent.html): Where the activity involved patient data 6050* [Basic](basic.html): Identifies the focus of this resource 6051* [BodyStructure](bodystructure.html): Who this is about 6052* [CarePlan](careplan.html): Who the care plan is for 6053* [CareTeam](careteam.html): Who care team is for 6054* [ChargeItem](chargeitem.html): Individual service was done for/to 6055* [Claim](claim.html): Patient receiving the products or services 6056* [ClaimResponse](claimresponse.html): The subject of care 6057* [ClinicalImpression](clinicalimpression.html): Patient assessed 6058* [Communication](communication.html): Focus of message 6059* [CommunicationRequest](communicationrequest.html): Focus of message 6060* [Composition](composition.html): Who and/or what the composition is about 6061* [Condition](condition.html): Who has the condition? 6062* [Consent](consent.html): Who the consent applies to 6063* [Contract](contract.html): The identity of the subject of the contract (if a patient) 6064* [Coverage](coverage.html): Retrieve coverages for a patient 6065* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The reference to the patient 6066* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The reference to the patient 6067* [DetectedIssue](detectedissue.html): Associated patient 6068* [DeviceRequest](devicerequest.html): Individual the service is ordered for 6069* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device 6070* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient 6071* [DocumentReference](documentreference.html): Who/what is the subject of the document 6072* [Encounter](encounter.html): The patient present at the encounter 6073* [EnrollmentRequest](enrollmentrequest.html): The party to be enrolled 6074* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care 6075* [ExplanationOfBenefit](explanationofbenefit.html): The reference to the patient 6076* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for 6077* [Flag](flag.html): The identity of a subject to list flags for 6078* [Goal](goal.html): Who this goal is intended for 6079* [GuidanceResponse](guidanceresponse.html): The identity of a patient to search for guidance response results 6080* [ImagingSelection](imagingselection.html): Who the study is about 6081* [ImagingStudy](imagingstudy.html): Who the study is about 6082* [Immunization](immunization.html): The patient for the vaccination record 6083* [ImmunizationEvaluation](immunizationevaluation.html): The patient being evaluated 6084* [ImmunizationRecommendation](immunizationrecommendation.html): Who this profile is for 6085* [Invoice](invoice.html): Recipient(s) of goods and services 6086* [List](list.html): If all resources have the same subject 6087* [MeasureReport](measurereport.html): The identity of a patient to search for individual measure report results for 6088* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations for 6089* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses for 6090* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient 6091* [MedicationStatement](medicationstatement.html): Returns statements for a specific patient. 6092* [MolecularSequence](molecularsequence.html): The subject that the sequence is about 6093* [NutritionIntake](nutritionintake.html): Returns statements for a specific patient. 6094* [NutritionOrder](nutritionorder.html): The identity of the individual or set of individuals who requires the diet, formula or nutritional supplement 6095* [Observation](observation.html): The subject that the observation is about (if patient) 6096* [Person](person.html): The Person links to this Patient 6097* [Procedure](procedure.html): Search by subject - a patient 6098* [Provenance](provenance.html): Where the activity involved patient data 6099* [QuestionnaireResponse](questionnaireresponse.html): The patient that is the subject of the questionnaire response 6100* [RelatedPerson](relatedperson.html): The patient this related person is related to 6101* [RequestOrchestration](requestorchestration.html): The identity of a patient to search for request orchestrations 6102* [ResearchSubject](researchsubject.html): Who or what is part of study 6103* [RiskAssessment](riskassessment.html): Who/what does assessment apply to? 6104* [ServiceRequest](servicerequest.html): Search by subject - a patient 6105* [Specimen](specimen.html): The patient the specimen comes from 6106* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied 6107* [SupplyRequest](supplyrequest.html): The patient or subject for whom the supply is destined 6108* [Task](task.html): Search by patient 6109* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for 6110</b><br> 6111 * Type: <b>reference</b><br> 6112 * Path: <b>Account.subject.where(resolve() is Patient) | AdverseEvent.subject.where(resolve() is Patient) | AllergyIntolerance.patient | Appointment.participant.actor.where(resolve() is Patient) | Appointment.subject.where(resolve() is Patient) | AppointmentResponse.actor.where(resolve() is Patient) | AuditEvent.patient | Basic.subject.where(resolve() is Patient) | BodyStructure.patient | CarePlan.subject.where(resolve() is Patient) | CareTeam.subject.where(resolve() is Patient) | ChargeItem.subject.where(resolve() is Patient) | Claim.patient | ClaimResponse.patient | ClinicalImpression.subject.where(resolve() is Patient) | Communication.subject.where(resolve() is Patient) | CommunicationRequest.subject.where(resolve() is Patient) | Composition.subject.where(resolve() is Patient) | Condition.subject.where(resolve() is Patient) | Consent.subject.where(resolve() is Patient) | Contract.subject.where(resolve() is Patient) | Coverage.beneficiary | CoverageEligibilityRequest.patient | CoverageEligibilityResponse.patient | DetectedIssue.subject.where(resolve() is Patient) | DeviceRequest.subject.where(resolve() is Patient) | DeviceUsage.patient | DiagnosticReport.subject.where(resolve() is Patient) | DocumentReference.subject.where(resolve() is Patient) | Encounter.subject.where(resolve() is Patient) | EnrollmentRequest.candidate | EpisodeOfCare.patient | ExplanationOfBenefit.patient | FamilyMemberHistory.patient | Flag.subject.where(resolve() is Patient) | Goal.subject.where(resolve() is Patient) | GuidanceResponse.subject.where(resolve() is Patient) | ImagingSelection.subject.where(resolve() is Patient) | ImagingStudy.subject.where(resolve() is Patient) | Immunization.patient | ImmunizationEvaluation.patient | ImmunizationRecommendation.patient | Invoice.subject.where(resolve() is Patient) | List.subject.where(resolve() is Patient) | MeasureReport.subject.where(resolve() is Patient) | MedicationAdministration.subject.where(resolve() is Patient) | MedicationDispense.subject.where(resolve() is Patient) | MedicationRequest.subject.where(resolve() is Patient) | MedicationStatement.subject.where(resolve() is Patient) | MolecularSequence.subject.where(resolve() is Patient) | NutritionIntake.subject.where(resolve() is Patient) | NutritionOrder.subject.where(resolve() is Patient) | Observation.subject.where(resolve() is Patient) | Person.link.target.where(resolve() is Patient) | Procedure.subject.where(resolve() is Patient) | Provenance.patient | QuestionnaireResponse.subject.where(resolve() is Patient) | RelatedPerson.patient | RequestOrchestration.subject.where(resolve() is Patient) | ResearchSubject.subject.where(resolve() is Patient) | RiskAssessment.subject.where(resolve() is Patient) | ServiceRequest.subject.where(resolve() is Patient) | Specimen.subject.where(resolve() is Patient) | SupplyDelivery.patient | SupplyRequest.deliverFor | Task.for.where(resolve() is Patient) | VisionPrescription.patient</b><br> 6113 * </p> 6114 */ 6115 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PATIENT); 6116 6117/** 6118 * Constant for fluent queries to be used to add include statements. Specifies 6119 * the path value of "<b>Appointment:patient</b>". 6120 */ 6121 public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("Appointment:patient").toLocked(); 6122 6123 6124} 6125