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