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