001package org.hl7.fhir.r4.model; 002 003/* 004 Copyright (c) 2011+, HL7, Inc. 005 All rights reserved. 006 007 Redistribution and use in source and binary forms, with or without modification, 008 are permitted provided that the following conditions are met: 009 010 * Redistributions of source code must retain the above copyright notice, this 011 list of conditions and the following disclaimer. 012 * Redistributions in binary form must reproduce the above copyright notice, 013 this list of conditions and the following disclaimer in the documentation 014 and/or other materials provided with the distribution. 015 * Neither the name of HL7 nor the names of its contributors may be used to 016 endorse or promote products derived from this software without specific 017 prior written permission. 018 019 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 020 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 021 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 022 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 023 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 024 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 025 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 026 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 027 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 028 POSSIBILITY OF SUCH DAMAGE. 029 030*/ 031 032// Generated on Thu, Sep 13, 2018 09:04-0400 for FHIR v3.5.0 033 034import java.util.*; 035 036import org.hl7.fhir.utilities.Utilities; 037import ca.uhn.fhir.model.api.annotation.ResourceDef; 038import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 039import ca.uhn.fhir.model.api.annotation.Child; 040import ca.uhn.fhir.model.api.annotation.ChildOrder; 041import ca.uhn.fhir.model.api.annotation.Description; 042import ca.uhn.fhir.model.api.annotation.Block; 043import org.hl7.fhir.instance.model.api.*; 044import org.hl7.fhir.exceptions.FHIRException; 045/** 046 * A specific set of Roles/Locations/specialties/services that a practitioner may perform at an organization for a period of time. 047 */ 048@ResourceDef(name="PractitionerRole", profile="http://hl7.org/fhir/StructureDefinition/PractitionerRole") 049public class PractitionerRole extends DomainResource { 050 051 public enum DaysOfWeek { 052 /** 053 * Monday. 054 */ 055 MON, 056 /** 057 * Tuesday. 058 */ 059 TUE, 060 /** 061 * Wednesday. 062 */ 063 WED, 064 /** 065 * Thursday. 066 */ 067 THU, 068 /** 069 * Friday. 070 */ 071 FRI, 072 /** 073 * Saturday. 074 */ 075 SAT, 076 /** 077 * Sunday. 078 */ 079 SUN, 080 /** 081 * added to help the parsers with the generic types 082 */ 083 NULL; 084 public static DaysOfWeek fromCode(String codeString) throws FHIRException { 085 if (codeString == null || "".equals(codeString)) 086 return null; 087 if ("mon".equals(codeString)) 088 return MON; 089 if ("tue".equals(codeString)) 090 return TUE; 091 if ("wed".equals(codeString)) 092 return WED; 093 if ("thu".equals(codeString)) 094 return THU; 095 if ("fri".equals(codeString)) 096 return FRI; 097 if ("sat".equals(codeString)) 098 return SAT; 099 if ("sun".equals(codeString)) 100 return SUN; 101 if (Configuration.isAcceptInvalidEnums()) 102 return null; 103 else 104 throw new FHIRException("Unknown DaysOfWeek code '"+codeString+"'"); 105 } 106 public String toCode() { 107 switch (this) { 108 case MON: return "mon"; 109 case TUE: return "tue"; 110 case WED: return "wed"; 111 case THU: return "thu"; 112 case FRI: return "fri"; 113 case SAT: return "sat"; 114 case SUN: return "sun"; 115 default: return "?"; 116 } 117 } 118 public String getSystem() { 119 switch (this) { 120 case MON: return "http://hl7.org/fhir/days-of-week"; 121 case TUE: return "http://hl7.org/fhir/days-of-week"; 122 case WED: return "http://hl7.org/fhir/days-of-week"; 123 case THU: return "http://hl7.org/fhir/days-of-week"; 124 case FRI: return "http://hl7.org/fhir/days-of-week"; 125 case SAT: return "http://hl7.org/fhir/days-of-week"; 126 case SUN: return "http://hl7.org/fhir/days-of-week"; 127 default: return "?"; 128 } 129 } 130 public String getDefinition() { 131 switch (this) { 132 case MON: return "Monday."; 133 case TUE: return "Tuesday."; 134 case WED: return "Wednesday."; 135 case THU: return "Thursday."; 136 case FRI: return "Friday."; 137 case SAT: return "Saturday."; 138 case SUN: return "Sunday."; 139 default: return "?"; 140 } 141 } 142 public String getDisplay() { 143 switch (this) { 144 case MON: return "Monday"; 145 case TUE: return "Tuesday"; 146 case WED: return "Wednesday"; 147 case THU: return "Thursday"; 148 case FRI: return "Friday"; 149 case SAT: return "Saturday"; 150 case SUN: return "Sunday"; 151 default: return "?"; 152 } 153 } 154 } 155 156 public static class DaysOfWeekEnumFactory implements EnumFactory<DaysOfWeek> { 157 public DaysOfWeek fromCode(String codeString) throws IllegalArgumentException { 158 if (codeString == null || "".equals(codeString)) 159 if (codeString == null || "".equals(codeString)) 160 return null; 161 if ("mon".equals(codeString)) 162 return DaysOfWeek.MON; 163 if ("tue".equals(codeString)) 164 return DaysOfWeek.TUE; 165 if ("wed".equals(codeString)) 166 return DaysOfWeek.WED; 167 if ("thu".equals(codeString)) 168 return DaysOfWeek.THU; 169 if ("fri".equals(codeString)) 170 return DaysOfWeek.FRI; 171 if ("sat".equals(codeString)) 172 return DaysOfWeek.SAT; 173 if ("sun".equals(codeString)) 174 return DaysOfWeek.SUN; 175 throw new IllegalArgumentException("Unknown DaysOfWeek code '"+codeString+"'"); 176 } 177 public Enumeration<DaysOfWeek> fromType(Base code) throws FHIRException { 178 if (code == null) 179 return null; 180 if (code.isEmpty()) 181 return new Enumeration<DaysOfWeek>(this); 182 String codeString = ((PrimitiveType) code).asStringValue(); 183 if (codeString == null || "".equals(codeString)) 184 return null; 185 if ("mon".equals(codeString)) 186 return new Enumeration<DaysOfWeek>(this, DaysOfWeek.MON); 187 if ("tue".equals(codeString)) 188 return new Enumeration<DaysOfWeek>(this, DaysOfWeek.TUE); 189 if ("wed".equals(codeString)) 190 return new Enumeration<DaysOfWeek>(this, DaysOfWeek.WED); 191 if ("thu".equals(codeString)) 192 return new Enumeration<DaysOfWeek>(this, DaysOfWeek.THU); 193 if ("fri".equals(codeString)) 194 return new Enumeration<DaysOfWeek>(this, DaysOfWeek.FRI); 195 if ("sat".equals(codeString)) 196 return new Enumeration<DaysOfWeek>(this, DaysOfWeek.SAT); 197 if ("sun".equals(codeString)) 198 return new Enumeration<DaysOfWeek>(this, DaysOfWeek.SUN); 199 throw new FHIRException("Unknown DaysOfWeek code '"+codeString+"'"); 200 } 201 public String toCode(DaysOfWeek code) { 202 if (code == DaysOfWeek.MON) 203 return "mon"; 204 if (code == DaysOfWeek.TUE) 205 return "tue"; 206 if (code == DaysOfWeek.WED) 207 return "wed"; 208 if (code == DaysOfWeek.THU) 209 return "thu"; 210 if (code == DaysOfWeek.FRI) 211 return "fri"; 212 if (code == DaysOfWeek.SAT) 213 return "sat"; 214 if (code == DaysOfWeek.SUN) 215 return "sun"; 216 return "?"; 217 } 218 public String toSystem(DaysOfWeek code) { 219 return code.getSystem(); 220 } 221 } 222 223 @Block() 224 public static class PractitionerRoleAvailableTimeComponent extends BackboneElement implements IBaseBackboneElement { 225 /** 226 * Indicates which days of the week are available between the start and end Times. 227 */ 228 @Child(name = "daysOfWeek", type = {CodeType.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 229 @Description(shortDefinition="mon | tue | wed | thu | fri | sat | sun", formalDefinition="Indicates which days of the week are available between the start and end Times." ) 230 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/days-of-week") 231 protected List<Enumeration<DaysOfWeek>> daysOfWeek; 232 233 /** 234 * Is this always available? (hence times are irrelevant) e.g. 24 hour service. 235 */ 236 @Child(name = "allDay", type = {BooleanType.class}, order=2, min=0, max=1, modifier=false, summary=false) 237 @Description(shortDefinition="Always available? e.g. 24 hour service", formalDefinition="Is this always available? (hence times are irrelevant) e.g. 24 hour service." ) 238 protected BooleanType allDay; 239 240 /** 241 * The opening time of day. Note: If the AllDay flag is set, then this time is ignored. 242 */ 243 @Child(name = "availableStartTime", type = {TimeType.class}, order=3, min=0, max=1, modifier=false, summary=false) 244 @Description(shortDefinition="Opening time of day (ignored if allDay = true)", formalDefinition="The opening time of day. Note: If the AllDay flag is set, then this time is ignored." ) 245 protected TimeType availableStartTime; 246 247 /** 248 * The closing time of day. Note: If the AllDay flag is set, then this time is ignored. 249 */ 250 @Child(name = "availableEndTime", type = {TimeType.class}, order=4, min=0, max=1, modifier=false, summary=false) 251 @Description(shortDefinition="Closing time of day (ignored if allDay = true)", formalDefinition="The closing time of day. Note: If the AllDay flag is set, then this time is ignored." ) 252 protected TimeType availableEndTime; 253 254 private static final long serialVersionUID = -2139510127L; 255 256 /** 257 * Constructor 258 */ 259 public PractitionerRoleAvailableTimeComponent() { 260 super(); 261 } 262 263 /** 264 * @return {@link #daysOfWeek} (Indicates which days of the week are available between the start and end Times.) 265 */ 266 public List<Enumeration<DaysOfWeek>> getDaysOfWeek() { 267 if (this.daysOfWeek == null) 268 this.daysOfWeek = new ArrayList<Enumeration<DaysOfWeek>>(); 269 return this.daysOfWeek; 270 } 271 272 /** 273 * @return Returns a reference to <code>this</code> for easy method chaining 274 */ 275 public PractitionerRoleAvailableTimeComponent setDaysOfWeek(List<Enumeration<DaysOfWeek>> theDaysOfWeek) { 276 this.daysOfWeek = theDaysOfWeek; 277 return this; 278 } 279 280 public boolean hasDaysOfWeek() { 281 if (this.daysOfWeek == null) 282 return false; 283 for (Enumeration<DaysOfWeek> item : this.daysOfWeek) 284 if (!item.isEmpty()) 285 return true; 286 return false; 287 } 288 289 /** 290 * @return {@link #daysOfWeek} (Indicates which days of the week are available between the start and end Times.) 291 */ 292 public Enumeration<DaysOfWeek> addDaysOfWeekElement() {//2 293 Enumeration<DaysOfWeek> t = new Enumeration<DaysOfWeek>(new DaysOfWeekEnumFactory()); 294 if (this.daysOfWeek == null) 295 this.daysOfWeek = new ArrayList<Enumeration<DaysOfWeek>>(); 296 this.daysOfWeek.add(t); 297 return t; 298 } 299 300 /** 301 * @param value {@link #daysOfWeek} (Indicates which days of the week are available between the start and end Times.) 302 */ 303 public PractitionerRoleAvailableTimeComponent addDaysOfWeek(DaysOfWeek value) { //1 304 Enumeration<DaysOfWeek> t = new Enumeration<DaysOfWeek>(new DaysOfWeekEnumFactory()); 305 t.setValue(value); 306 if (this.daysOfWeek == null) 307 this.daysOfWeek = new ArrayList<Enumeration<DaysOfWeek>>(); 308 this.daysOfWeek.add(t); 309 return this; 310 } 311 312 /** 313 * @param value {@link #daysOfWeek} (Indicates which days of the week are available between the start and end Times.) 314 */ 315 public boolean hasDaysOfWeek(DaysOfWeek value) { 316 if (this.daysOfWeek == null) 317 return false; 318 for (Enumeration<DaysOfWeek> v : this.daysOfWeek) 319 if (v.getValue().equals(value)) // code 320 return true; 321 return false; 322 } 323 324 /** 325 * @return {@link #allDay} (Is this always available? (hence times are irrelevant) e.g. 24 hour service.). This is the underlying object with id, value and extensions. The accessor "getAllDay" gives direct access to the value 326 */ 327 public BooleanType getAllDayElement() { 328 if (this.allDay == null) 329 if (Configuration.errorOnAutoCreate()) 330 throw new Error("Attempt to auto-create PractitionerRoleAvailableTimeComponent.allDay"); 331 else if (Configuration.doAutoCreate()) 332 this.allDay = new BooleanType(); // bb 333 return this.allDay; 334 } 335 336 public boolean hasAllDayElement() { 337 return this.allDay != null && !this.allDay.isEmpty(); 338 } 339 340 public boolean hasAllDay() { 341 return this.allDay != null && !this.allDay.isEmpty(); 342 } 343 344 /** 345 * @param value {@link #allDay} (Is this always available? (hence times are irrelevant) e.g. 24 hour service.). This is the underlying object with id, value and extensions. The accessor "getAllDay" gives direct access to the value 346 */ 347 public PractitionerRoleAvailableTimeComponent setAllDayElement(BooleanType value) { 348 this.allDay = value; 349 return this; 350 } 351 352 /** 353 * @return Is this always available? (hence times are irrelevant) e.g. 24 hour service. 354 */ 355 public boolean getAllDay() { 356 return this.allDay == null || this.allDay.isEmpty() ? false : this.allDay.getValue(); 357 } 358 359 /** 360 * @param value Is this always available? (hence times are irrelevant) e.g. 24 hour service. 361 */ 362 public PractitionerRoleAvailableTimeComponent setAllDay(boolean value) { 363 if (this.allDay == null) 364 this.allDay = new BooleanType(); 365 this.allDay.setValue(value); 366 return this; 367 } 368 369 /** 370 * @return {@link #availableStartTime} (The opening time of day. Note: If the AllDay flag is set, then this time is ignored.). This is the underlying object with id, value and extensions. The accessor "getAvailableStartTime" gives direct access to the value 371 */ 372 public TimeType getAvailableStartTimeElement() { 373 if (this.availableStartTime == null) 374 if (Configuration.errorOnAutoCreate()) 375 throw new Error("Attempt to auto-create PractitionerRoleAvailableTimeComponent.availableStartTime"); 376 else if (Configuration.doAutoCreate()) 377 this.availableStartTime = new TimeType(); // bb 378 return this.availableStartTime; 379 } 380 381 public boolean hasAvailableStartTimeElement() { 382 return this.availableStartTime != null && !this.availableStartTime.isEmpty(); 383 } 384 385 public boolean hasAvailableStartTime() { 386 return this.availableStartTime != null && !this.availableStartTime.isEmpty(); 387 } 388 389 /** 390 * @param value {@link #availableStartTime} (The opening time of day. Note: If the AllDay flag is set, then this time is ignored.). This is the underlying object with id, value and extensions. The accessor "getAvailableStartTime" gives direct access to the value 391 */ 392 public PractitionerRoleAvailableTimeComponent setAvailableStartTimeElement(TimeType value) { 393 this.availableStartTime = value; 394 return this; 395 } 396 397 /** 398 * @return The opening time of day. Note: If the AllDay flag is set, then this time is ignored. 399 */ 400 public String getAvailableStartTime() { 401 return this.availableStartTime == null ? null : this.availableStartTime.getValue(); 402 } 403 404 /** 405 * @param value The opening time of day. Note: If the AllDay flag is set, then this time is ignored. 406 */ 407 public PractitionerRoleAvailableTimeComponent setAvailableStartTime(String value) { 408 if (value == null) 409 this.availableStartTime = null; 410 else { 411 if (this.availableStartTime == null) 412 this.availableStartTime = new TimeType(); 413 this.availableStartTime.setValue(value); 414 } 415 return this; 416 } 417 418 /** 419 * @return {@link #availableEndTime} (The closing time of day. Note: If the AllDay flag is set, then this time is ignored.). This is the underlying object with id, value and extensions. The accessor "getAvailableEndTime" gives direct access to the value 420 */ 421 public TimeType getAvailableEndTimeElement() { 422 if (this.availableEndTime == null) 423 if (Configuration.errorOnAutoCreate()) 424 throw new Error("Attempt to auto-create PractitionerRoleAvailableTimeComponent.availableEndTime"); 425 else if (Configuration.doAutoCreate()) 426 this.availableEndTime = new TimeType(); // bb 427 return this.availableEndTime; 428 } 429 430 public boolean hasAvailableEndTimeElement() { 431 return this.availableEndTime != null && !this.availableEndTime.isEmpty(); 432 } 433 434 public boolean hasAvailableEndTime() { 435 return this.availableEndTime != null && !this.availableEndTime.isEmpty(); 436 } 437 438 /** 439 * @param value {@link #availableEndTime} (The closing time of day. Note: If the AllDay flag is set, then this time is ignored.). This is the underlying object with id, value and extensions. The accessor "getAvailableEndTime" gives direct access to the value 440 */ 441 public PractitionerRoleAvailableTimeComponent setAvailableEndTimeElement(TimeType value) { 442 this.availableEndTime = value; 443 return this; 444 } 445 446 /** 447 * @return The closing time of day. Note: If the AllDay flag is set, then this time is ignored. 448 */ 449 public String getAvailableEndTime() { 450 return this.availableEndTime == null ? null : this.availableEndTime.getValue(); 451 } 452 453 /** 454 * @param value The closing time of day. Note: If the AllDay flag is set, then this time is ignored. 455 */ 456 public PractitionerRoleAvailableTimeComponent setAvailableEndTime(String value) { 457 if (value == null) 458 this.availableEndTime = null; 459 else { 460 if (this.availableEndTime == null) 461 this.availableEndTime = new TimeType(); 462 this.availableEndTime.setValue(value); 463 } 464 return this; 465 } 466 467 protected void listChildren(List<Property> children) { 468 super.listChildren(children); 469 children.add(new Property("daysOfWeek", "code", "Indicates which days of the week are available between the start and end Times.", 0, java.lang.Integer.MAX_VALUE, daysOfWeek)); 470 children.add(new Property("allDay", "boolean", "Is this always available? (hence times are irrelevant) e.g. 24 hour service.", 0, 1, allDay)); 471 children.add(new Property("availableStartTime", "time", "The opening time of day. Note: If the AllDay flag is set, then this time is ignored.", 0, 1, availableStartTime)); 472 children.add(new Property("availableEndTime", "time", "The closing time of day. Note: If the AllDay flag is set, then this time is ignored.", 0, 1, availableEndTime)); 473 } 474 475 @Override 476 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 477 switch (_hash) { 478 case 68050338: /*daysOfWeek*/ return new Property("daysOfWeek", "code", "Indicates which days of the week are available between the start and end Times.", 0, java.lang.Integer.MAX_VALUE, daysOfWeek); 479 case -1414913477: /*allDay*/ return new Property("allDay", "boolean", "Is this always available? (hence times are irrelevant) e.g. 24 hour service.", 0, 1, allDay); 480 case -1039453818: /*availableStartTime*/ return new Property("availableStartTime", "time", "The opening time of day. Note: If the AllDay flag is set, then this time is ignored.", 0, 1, availableStartTime); 481 case 101151551: /*availableEndTime*/ return new Property("availableEndTime", "time", "The closing time of day. Note: If the AllDay flag is set, then this time is ignored.", 0, 1, availableEndTime); 482 default: return super.getNamedProperty(_hash, _name, _checkValid); 483 } 484 485 } 486 487 @Override 488 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 489 switch (hash) { 490 case 68050338: /*daysOfWeek*/ return this.daysOfWeek == null ? new Base[0] : this.daysOfWeek.toArray(new Base[this.daysOfWeek.size()]); // Enumeration<DaysOfWeek> 491 case -1414913477: /*allDay*/ return this.allDay == null ? new Base[0] : new Base[] {this.allDay}; // BooleanType 492 case -1039453818: /*availableStartTime*/ return this.availableStartTime == null ? new Base[0] : new Base[] {this.availableStartTime}; // TimeType 493 case 101151551: /*availableEndTime*/ return this.availableEndTime == null ? new Base[0] : new Base[] {this.availableEndTime}; // TimeType 494 default: return super.getProperty(hash, name, checkValid); 495 } 496 497 } 498 499 @Override 500 public Base setProperty(int hash, String name, Base value) throws FHIRException { 501 switch (hash) { 502 case 68050338: // daysOfWeek 503 value = new DaysOfWeekEnumFactory().fromType(castToCode(value)); 504 this.getDaysOfWeek().add((Enumeration) value); // Enumeration<DaysOfWeek> 505 return value; 506 case -1414913477: // allDay 507 this.allDay = castToBoolean(value); // BooleanType 508 return value; 509 case -1039453818: // availableStartTime 510 this.availableStartTime = castToTime(value); // TimeType 511 return value; 512 case 101151551: // availableEndTime 513 this.availableEndTime = castToTime(value); // TimeType 514 return value; 515 default: return super.setProperty(hash, name, value); 516 } 517 518 } 519 520 @Override 521 public Base setProperty(String name, Base value) throws FHIRException { 522 if (name.equals("daysOfWeek")) { 523 value = new DaysOfWeekEnumFactory().fromType(castToCode(value)); 524 this.getDaysOfWeek().add((Enumeration) value); 525 } else if (name.equals("allDay")) { 526 this.allDay = castToBoolean(value); // BooleanType 527 } else if (name.equals("availableStartTime")) { 528 this.availableStartTime = castToTime(value); // TimeType 529 } else if (name.equals("availableEndTime")) { 530 this.availableEndTime = castToTime(value); // TimeType 531 } else 532 return super.setProperty(name, value); 533 return value; 534 } 535 536 @Override 537 public Base makeProperty(int hash, String name) throws FHIRException { 538 switch (hash) { 539 case 68050338: return addDaysOfWeekElement(); 540 case -1414913477: return getAllDayElement(); 541 case -1039453818: return getAvailableStartTimeElement(); 542 case 101151551: return getAvailableEndTimeElement(); 543 default: return super.makeProperty(hash, name); 544 } 545 546 } 547 548 @Override 549 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 550 switch (hash) { 551 case 68050338: /*daysOfWeek*/ return new String[] {"code"}; 552 case -1414913477: /*allDay*/ return new String[] {"boolean"}; 553 case -1039453818: /*availableStartTime*/ return new String[] {"time"}; 554 case 101151551: /*availableEndTime*/ return new String[] {"time"}; 555 default: return super.getTypesForProperty(hash, name); 556 } 557 558 } 559 560 @Override 561 public Base addChild(String name) throws FHIRException { 562 if (name.equals("daysOfWeek")) { 563 throw new FHIRException("Cannot call addChild on a primitive type PractitionerRole.daysOfWeek"); 564 } 565 else if (name.equals("allDay")) { 566 throw new FHIRException("Cannot call addChild on a primitive type PractitionerRole.allDay"); 567 } 568 else if (name.equals("availableStartTime")) { 569 throw new FHIRException("Cannot call addChild on a primitive type PractitionerRole.availableStartTime"); 570 } 571 else if (name.equals("availableEndTime")) { 572 throw new FHIRException("Cannot call addChild on a primitive type PractitionerRole.availableEndTime"); 573 } 574 else 575 return super.addChild(name); 576 } 577 578 public PractitionerRoleAvailableTimeComponent copy() { 579 PractitionerRoleAvailableTimeComponent dst = new PractitionerRoleAvailableTimeComponent(); 580 copyValues(dst); 581 if (daysOfWeek != null) { 582 dst.daysOfWeek = new ArrayList<Enumeration<DaysOfWeek>>(); 583 for (Enumeration<DaysOfWeek> i : daysOfWeek) 584 dst.daysOfWeek.add(i.copy()); 585 }; 586 dst.allDay = allDay == null ? null : allDay.copy(); 587 dst.availableStartTime = availableStartTime == null ? null : availableStartTime.copy(); 588 dst.availableEndTime = availableEndTime == null ? null : availableEndTime.copy(); 589 return dst; 590 } 591 592 @Override 593 public boolean equalsDeep(Base other_) { 594 if (!super.equalsDeep(other_)) 595 return false; 596 if (!(other_ instanceof PractitionerRoleAvailableTimeComponent)) 597 return false; 598 PractitionerRoleAvailableTimeComponent o = (PractitionerRoleAvailableTimeComponent) other_; 599 return compareDeep(daysOfWeek, o.daysOfWeek, true) && compareDeep(allDay, o.allDay, true) && compareDeep(availableStartTime, o.availableStartTime, true) 600 && compareDeep(availableEndTime, o.availableEndTime, true); 601 } 602 603 @Override 604 public boolean equalsShallow(Base other_) { 605 if (!super.equalsShallow(other_)) 606 return false; 607 if (!(other_ instanceof PractitionerRoleAvailableTimeComponent)) 608 return false; 609 PractitionerRoleAvailableTimeComponent o = (PractitionerRoleAvailableTimeComponent) other_; 610 return compareValues(daysOfWeek, o.daysOfWeek, true) && compareValues(allDay, o.allDay, true) && compareValues(availableStartTime, o.availableStartTime, true) 611 && compareValues(availableEndTime, o.availableEndTime, true); 612 } 613 614 public boolean isEmpty() { 615 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(daysOfWeek, allDay, availableStartTime 616 , availableEndTime); 617 } 618 619 public String fhirType() { 620 return "PractitionerRole.availableTime"; 621 622 } 623 624 } 625 626 @Block() 627 public static class PractitionerRoleNotAvailableComponent extends BackboneElement implements IBaseBackboneElement { 628 /** 629 * The reason that can be presented to the user as to why this time is not available. 630 */ 631 @Child(name = "description", type = {StringType.class}, order=1, min=1, max=1, modifier=false, summary=false) 632 @Description(shortDefinition="Reason presented to the user explaining why time not available", formalDefinition="The reason that can be presented to the user as to why this time is not available." ) 633 protected StringType description; 634 635 /** 636 * Service is not available (seasonally or for a public holiday) from this date. 637 */ 638 @Child(name = "during", type = {Period.class}, order=2, min=0, max=1, modifier=false, summary=false) 639 @Description(shortDefinition="Service not available from this date", formalDefinition="Service is not available (seasonally or for a public holiday) from this date." ) 640 protected Period during; 641 642 private static final long serialVersionUID = 310849929L; 643 644 /** 645 * Constructor 646 */ 647 public PractitionerRoleNotAvailableComponent() { 648 super(); 649 } 650 651 /** 652 * Constructor 653 */ 654 public PractitionerRoleNotAvailableComponent(StringType description) { 655 super(); 656 this.description = description; 657 } 658 659 /** 660 * @return {@link #description} (The reason that can be presented to the user as to why this time is not available.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 661 */ 662 public StringType getDescriptionElement() { 663 if (this.description == null) 664 if (Configuration.errorOnAutoCreate()) 665 throw new Error("Attempt to auto-create PractitionerRoleNotAvailableComponent.description"); 666 else if (Configuration.doAutoCreate()) 667 this.description = new StringType(); // bb 668 return this.description; 669 } 670 671 public boolean hasDescriptionElement() { 672 return this.description != null && !this.description.isEmpty(); 673 } 674 675 public boolean hasDescription() { 676 return this.description != null && !this.description.isEmpty(); 677 } 678 679 /** 680 * @param value {@link #description} (The reason that can be presented to the user as to why this time is not available.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 681 */ 682 public PractitionerRoleNotAvailableComponent setDescriptionElement(StringType value) { 683 this.description = value; 684 return this; 685 } 686 687 /** 688 * @return The reason that can be presented to the user as to why this time is not available. 689 */ 690 public String getDescription() { 691 return this.description == null ? null : this.description.getValue(); 692 } 693 694 /** 695 * @param value The reason that can be presented to the user as to why this time is not available. 696 */ 697 public PractitionerRoleNotAvailableComponent setDescription(String value) { 698 if (this.description == null) 699 this.description = new StringType(); 700 this.description.setValue(value); 701 return this; 702 } 703 704 /** 705 * @return {@link #during} (Service is not available (seasonally or for a public holiday) from this date.) 706 */ 707 public Period getDuring() { 708 if (this.during == null) 709 if (Configuration.errorOnAutoCreate()) 710 throw new Error("Attempt to auto-create PractitionerRoleNotAvailableComponent.during"); 711 else if (Configuration.doAutoCreate()) 712 this.during = new Period(); // cc 713 return this.during; 714 } 715 716 public boolean hasDuring() { 717 return this.during != null && !this.during.isEmpty(); 718 } 719 720 /** 721 * @param value {@link #during} (Service is not available (seasonally or for a public holiday) from this date.) 722 */ 723 public PractitionerRoleNotAvailableComponent setDuring(Period value) { 724 this.during = value; 725 return this; 726 } 727 728 protected void listChildren(List<Property> children) { 729 super.listChildren(children); 730 children.add(new Property("description", "string", "The reason that can be presented to the user as to why this time is not available.", 0, 1, description)); 731 children.add(new Property("during", "Period", "Service is not available (seasonally or for a public holiday) from this date.", 0, 1, during)); 732 } 733 734 @Override 735 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 736 switch (_hash) { 737 case -1724546052: /*description*/ return new Property("description", "string", "The reason that can be presented to the user as to why this time is not available.", 0, 1, description); 738 case -1320499647: /*during*/ return new Property("during", "Period", "Service is not available (seasonally or for a public holiday) from this date.", 0, 1, during); 739 default: return super.getNamedProperty(_hash, _name, _checkValid); 740 } 741 742 } 743 744 @Override 745 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 746 switch (hash) { 747 case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // StringType 748 case -1320499647: /*during*/ return this.during == null ? new Base[0] : new Base[] {this.during}; // Period 749 default: return super.getProperty(hash, name, checkValid); 750 } 751 752 } 753 754 @Override 755 public Base setProperty(int hash, String name, Base value) throws FHIRException { 756 switch (hash) { 757 case -1724546052: // description 758 this.description = castToString(value); // StringType 759 return value; 760 case -1320499647: // during 761 this.during = castToPeriod(value); // Period 762 return value; 763 default: return super.setProperty(hash, name, value); 764 } 765 766 } 767 768 @Override 769 public Base setProperty(String name, Base value) throws FHIRException { 770 if (name.equals("description")) { 771 this.description = castToString(value); // StringType 772 } else if (name.equals("during")) { 773 this.during = castToPeriod(value); // Period 774 } else 775 return super.setProperty(name, value); 776 return value; 777 } 778 779 @Override 780 public Base makeProperty(int hash, String name) throws FHIRException { 781 switch (hash) { 782 case -1724546052: return getDescriptionElement(); 783 case -1320499647: return getDuring(); 784 default: return super.makeProperty(hash, name); 785 } 786 787 } 788 789 @Override 790 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 791 switch (hash) { 792 case -1724546052: /*description*/ return new String[] {"string"}; 793 case -1320499647: /*during*/ return new String[] {"Period"}; 794 default: return super.getTypesForProperty(hash, name); 795 } 796 797 } 798 799 @Override 800 public Base addChild(String name) throws FHIRException { 801 if (name.equals("description")) { 802 throw new FHIRException("Cannot call addChild on a primitive type PractitionerRole.description"); 803 } 804 else if (name.equals("during")) { 805 this.during = new Period(); 806 return this.during; 807 } 808 else 809 return super.addChild(name); 810 } 811 812 public PractitionerRoleNotAvailableComponent copy() { 813 PractitionerRoleNotAvailableComponent dst = new PractitionerRoleNotAvailableComponent(); 814 copyValues(dst); 815 dst.description = description == null ? null : description.copy(); 816 dst.during = during == null ? null : during.copy(); 817 return dst; 818 } 819 820 @Override 821 public boolean equalsDeep(Base other_) { 822 if (!super.equalsDeep(other_)) 823 return false; 824 if (!(other_ instanceof PractitionerRoleNotAvailableComponent)) 825 return false; 826 PractitionerRoleNotAvailableComponent o = (PractitionerRoleNotAvailableComponent) other_; 827 return compareDeep(description, o.description, true) && compareDeep(during, o.during, true); 828 } 829 830 @Override 831 public boolean equalsShallow(Base other_) { 832 if (!super.equalsShallow(other_)) 833 return false; 834 if (!(other_ instanceof PractitionerRoleNotAvailableComponent)) 835 return false; 836 PractitionerRoleNotAvailableComponent o = (PractitionerRoleNotAvailableComponent) other_; 837 return compareValues(description, o.description, true); 838 } 839 840 public boolean isEmpty() { 841 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(description, during); 842 } 843 844 public String fhirType() { 845 return "PractitionerRole.notAvailable"; 846 847 } 848 849 } 850 851 /** 852 * Business Identifiers that are specific to a role/location. 853 */ 854 @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 855 @Description(shortDefinition="Business Identifiers that are specific to a role/location", formalDefinition="Business Identifiers that are specific to a role/location." ) 856 protected List<Identifier> identifier; 857 858 /** 859 * Whether this practitioner role record is in active use. 860 */ 861 @Child(name = "active", type = {BooleanType.class}, order=1, min=0, max=1, modifier=false, summary=true) 862 @Description(shortDefinition="Whether this practitioner role record is in active use", formalDefinition="Whether this practitioner role record is in active use." ) 863 protected BooleanType active; 864 865 /** 866 * The period during which the person is authorized to act as a practitioner in these role(s) for the organization. 867 */ 868 @Child(name = "period", type = {Period.class}, order=2, min=0, max=1, modifier=false, summary=true) 869 @Description(shortDefinition="The period during which the practitioner is authorized to perform in these role(s)", formalDefinition="The period during which the person is authorized to act as a practitioner in these role(s) for the organization." ) 870 protected Period period; 871 872 /** 873 * Practitioner that is able to provide the defined services for the organization. 874 */ 875 @Child(name = "practitioner", type = {Practitioner.class}, order=3, min=0, max=1, modifier=false, summary=true) 876 @Description(shortDefinition="Practitioner that is able to provide the defined services for the organization", formalDefinition="Practitioner that is able to provide the defined services for the organization." ) 877 protected Reference practitioner; 878 879 /** 880 * The actual object that is the target of the reference (Practitioner that is able to provide the defined services for the organization.) 881 */ 882 protected Practitioner practitionerTarget; 883 884 /** 885 * The organization where the Practitioner performs the roles associated. 886 */ 887 @Child(name = "organization", type = {Organization.class}, order=4, min=0, max=1, modifier=false, summary=true) 888 @Description(shortDefinition="Organization where the roles are available", formalDefinition="The organization where the Practitioner performs the roles associated." ) 889 protected Reference organization; 890 891 /** 892 * The actual object that is the target of the reference (The organization where the Practitioner performs the roles associated.) 893 */ 894 protected Organization organizationTarget; 895 896 /** 897 * Roles which this practitioner is authorized to perform for the organization. 898 */ 899 @Child(name = "code", type = {CodeableConcept.class}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 900 @Description(shortDefinition="Roles which this practitioner may perform", formalDefinition="Roles which this practitioner is authorized to perform for the organization." ) 901 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/practitioner-role") 902 protected List<CodeableConcept> code; 903 904 /** 905 * Specific specialty of the practitioner. 906 */ 907 @Child(name = "specialty", type = {CodeableConcept.class}, order=6, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 908 @Description(shortDefinition="Specific specialty of the practitioner", formalDefinition="Specific specialty of the practitioner." ) 909 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/c80-practice-codes") 910 protected List<CodeableConcept> specialty; 911 912 /** 913 * The location(s) at which this practitioner provides care. 914 */ 915 @Child(name = "location", type = {Location.class}, order=7, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 916 @Description(shortDefinition="The location(s) at which this practitioner provides care", formalDefinition="The location(s) at which this practitioner provides care." ) 917 protected List<Reference> location; 918 /** 919 * The actual objects that are the target of the reference (The location(s) at which this practitioner provides care.) 920 */ 921 protected List<Location> locationTarget; 922 923 924 /** 925 * The list of healthcare services that this worker provides for this role's Organization/Location(s). 926 */ 927 @Child(name = "healthcareService", type = {HealthcareService.class}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 928 @Description(shortDefinition="The list of healthcare services that this worker provides for this role's Organization/Location(s)", formalDefinition="The list of healthcare services that this worker provides for this role's Organization/Location(s)." ) 929 protected List<Reference> healthcareService; 930 /** 931 * The actual objects that are the target of the reference (The list of healthcare services that this worker provides for this role's Organization/Location(s).) 932 */ 933 protected List<HealthcareService> healthcareServiceTarget; 934 935 936 /** 937 * Contact details that are specific to the role/location/service. 938 */ 939 @Child(name = "telecom", type = {ContactPoint.class}, order=9, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 940 @Description(shortDefinition="Contact details that are specific to the role/location/service", formalDefinition="Contact details that are specific to the role/location/service." ) 941 protected List<ContactPoint> telecom; 942 943 /** 944 * A collection of times the practitioner is available or performing this role at the location and/or healthcareservice. 945 */ 946 @Child(name = "availableTime", type = {}, order=10, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 947 @Description(shortDefinition="Times the Service Site is available", formalDefinition="A collection of times the practitioner is available or performing this role at the location and/or healthcareservice." ) 948 protected List<PractitionerRoleAvailableTimeComponent> availableTime; 949 950 /** 951 * The practitioner is not available or performing this role during this period of time due to the provided reason. 952 */ 953 @Child(name = "notAvailable", type = {}, order=11, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 954 @Description(shortDefinition="Not available during this time due to provided reason", formalDefinition="The practitioner is not available or performing this role during this period of time due to the provided reason." ) 955 protected List<PractitionerRoleNotAvailableComponent> notAvailable; 956 957 /** 958 * A description of site availability exceptions, e.g. public holiday availability. Succinctly describing all possible exceptions to normal site availability as details in the available Times and not available Times. 959 */ 960 @Child(name = "availabilityExceptions", type = {StringType.class}, order=12, min=0, max=1, modifier=false, summary=false) 961 @Description(shortDefinition="Description of availability exceptions", formalDefinition="A description of site availability exceptions, e.g. public holiday availability. Succinctly describing all possible exceptions to normal site availability as details in the available Times and not available Times." ) 962 protected StringType availabilityExceptions; 963 964 /** 965 * Technical endpoints providing access to services operated for the practitioner with this role. 966 */ 967 @Child(name = "endpoint", type = {Endpoint.class}, order=13, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 968 @Description(shortDefinition="Technical endpoints providing access to services operated for the practitioner with this role", formalDefinition="Technical endpoints providing access to services operated for the practitioner with this role." ) 969 protected List<Reference> endpoint; 970 /** 971 * The actual objects that are the target of the reference (Technical endpoints providing access to services operated for the practitioner with this role.) 972 */ 973 protected List<Endpoint> endpointTarget; 974 975 976 private static final long serialVersionUID = 423338051L; 977 978 /** 979 * Constructor 980 */ 981 public PractitionerRole() { 982 super(); 983 } 984 985 /** 986 * @return {@link #identifier} (Business Identifiers that are specific to a role/location.) 987 */ 988 public List<Identifier> getIdentifier() { 989 if (this.identifier == null) 990 this.identifier = new ArrayList<Identifier>(); 991 return this.identifier; 992 } 993 994 /** 995 * @return Returns a reference to <code>this</code> for easy method chaining 996 */ 997 public PractitionerRole setIdentifier(List<Identifier> theIdentifier) { 998 this.identifier = theIdentifier; 999 return this; 1000 } 1001 1002 public boolean hasIdentifier() { 1003 if (this.identifier == null) 1004 return false; 1005 for (Identifier item : this.identifier) 1006 if (!item.isEmpty()) 1007 return true; 1008 return false; 1009 } 1010 1011 public Identifier addIdentifier() { //3 1012 Identifier t = new Identifier(); 1013 if (this.identifier == null) 1014 this.identifier = new ArrayList<Identifier>(); 1015 this.identifier.add(t); 1016 return t; 1017 } 1018 1019 public PractitionerRole addIdentifier(Identifier t) { //3 1020 if (t == null) 1021 return this; 1022 if (this.identifier == null) 1023 this.identifier = new ArrayList<Identifier>(); 1024 this.identifier.add(t); 1025 return this; 1026 } 1027 1028 /** 1029 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist 1030 */ 1031 public Identifier getIdentifierFirstRep() { 1032 if (getIdentifier().isEmpty()) { 1033 addIdentifier(); 1034 } 1035 return getIdentifier().get(0); 1036 } 1037 1038 /** 1039 * @return {@link #active} (Whether this practitioner role record is in active use.). This is the underlying object with id, value and extensions. The accessor "getActive" gives direct access to the value 1040 */ 1041 public BooleanType getActiveElement() { 1042 if (this.active == null) 1043 if (Configuration.errorOnAutoCreate()) 1044 throw new Error("Attempt to auto-create PractitionerRole.active"); 1045 else if (Configuration.doAutoCreate()) 1046 this.active = new BooleanType(); // bb 1047 return this.active; 1048 } 1049 1050 public boolean hasActiveElement() { 1051 return this.active != null && !this.active.isEmpty(); 1052 } 1053 1054 public boolean hasActive() { 1055 return this.active != null && !this.active.isEmpty(); 1056 } 1057 1058 /** 1059 * @param value {@link #active} (Whether this practitioner role record is in active use.). This is the underlying object with id, value and extensions. The accessor "getActive" gives direct access to the value 1060 */ 1061 public PractitionerRole setActiveElement(BooleanType value) { 1062 this.active = value; 1063 return this; 1064 } 1065 1066 /** 1067 * @return Whether this practitioner role record is in active use. 1068 */ 1069 public boolean getActive() { 1070 return this.active == null || this.active.isEmpty() ? false : this.active.getValue(); 1071 } 1072 1073 /** 1074 * @param value Whether this practitioner role record is in active use. 1075 */ 1076 public PractitionerRole setActive(boolean value) { 1077 if (this.active == null) 1078 this.active = new BooleanType(); 1079 this.active.setValue(value); 1080 return this; 1081 } 1082 1083 /** 1084 * @return {@link #period} (The period during which the person is authorized to act as a practitioner in these role(s) for the organization.) 1085 */ 1086 public Period getPeriod() { 1087 if (this.period == null) 1088 if (Configuration.errorOnAutoCreate()) 1089 throw new Error("Attempt to auto-create PractitionerRole.period"); 1090 else if (Configuration.doAutoCreate()) 1091 this.period = new Period(); // cc 1092 return this.period; 1093 } 1094 1095 public boolean hasPeriod() { 1096 return this.period != null && !this.period.isEmpty(); 1097 } 1098 1099 /** 1100 * @param value {@link #period} (The period during which the person is authorized to act as a practitioner in these role(s) for the organization.) 1101 */ 1102 public PractitionerRole setPeriod(Period value) { 1103 this.period = value; 1104 return this; 1105 } 1106 1107 /** 1108 * @return {@link #practitioner} (Practitioner that is able to provide the defined services for the organization.) 1109 */ 1110 public Reference getPractitioner() { 1111 if (this.practitioner == null) 1112 if (Configuration.errorOnAutoCreate()) 1113 throw new Error("Attempt to auto-create PractitionerRole.practitioner"); 1114 else if (Configuration.doAutoCreate()) 1115 this.practitioner = new Reference(); // cc 1116 return this.practitioner; 1117 } 1118 1119 public boolean hasPractitioner() { 1120 return this.practitioner != null && !this.practitioner.isEmpty(); 1121 } 1122 1123 /** 1124 * @param value {@link #practitioner} (Practitioner that is able to provide the defined services for the organization.) 1125 */ 1126 public PractitionerRole setPractitioner(Reference value) { 1127 this.practitioner = value; 1128 return this; 1129 } 1130 1131 /** 1132 * @return {@link #practitioner} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Practitioner that is able to provide the defined services for the organization.) 1133 */ 1134 public Practitioner getPractitionerTarget() { 1135 if (this.practitionerTarget == null) 1136 if (Configuration.errorOnAutoCreate()) 1137 throw new Error("Attempt to auto-create PractitionerRole.practitioner"); 1138 else if (Configuration.doAutoCreate()) 1139 this.practitionerTarget = new Practitioner(); // aa 1140 return this.practitionerTarget; 1141 } 1142 1143 /** 1144 * @param value {@link #practitioner} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Practitioner that is able to provide the defined services for the organization.) 1145 */ 1146 public PractitionerRole setPractitionerTarget(Practitioner value) { 1147 this.practitionerTarget = value; 1148 return this; 1149 } 1150 1151 /** 1152 * @return {@link #organization} (The organization where the Practitioner performs the roles associated.) 1153 */ 1154 public Reference getOrganization() { 1155 if (this.organization == null) 1156 if (Configuration.errorOnAutoCreate()) 1157 throw new Error("Attempt to auto-create PractitionerRole.organization"); 1158 else if (Configuration.doAutoCreate()) 1159 this.organization = new Reference(); // cc 1160 return this.organization; 1161 } 1162 1163 public boolean hasOrganization() { 1164 return this.organization != null && !this.organization.isEmpty(); 1165 } 1166 1167 /** 1168 * @param value {@link #organization} (The organization where the Practitioner performs the roles associated.) 1169 */ 1170 public PractitionerRole setOrganization(Reference value) { 1171 this.organization = value; 1172 return this; 1173 } 1174 1175 /** 1176 * @return {@link #organization} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The organization where the Practitioner performs the roles associated.) 1177 */ 1178 public Organization getOrganizationTarget() { 1179 if (this.organizationTarget == null) 1180 if (Configuration.errorOnAutoCreate()) 1181 throw new Error("Attempt to auto-create PractitionerRole.organization"); 1182 else if (Configuration.doAutoCreate()) 1183 this.organizationTarget = new Organization(); // aa 1184 return this.organizationTarget; 1185 } 1186 1187 /** 1188 * @param value {@link #organization} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The organization where the Practitioner performs the roles associated.) 1189 */ 1190 public PractitionerRole setOrganizationTarget(Organization value) { 1191 this.organizationTarget = value; 1192 return this; 1193 } 1194 1195 /** 1196 * @return {@link #code} (Roles which this practitioner is authorized to perform for the organization.) 1197 */ 1198 public List<CodeableConcept> getCode() { 1199 if (this.code == null) 1200 this.code = new ArrayList<CodeableConcept>(); 1201 return this.code; 1202 } 1203 1204 /** 1205 * @return Returns a reference to <code>this</code> for easy method chaining 1206 */ 1207 public PractitionerRole setCode(List<CodeableConcept> theCode) { 1208 this.code = theCode; 1209 return this; 1210 } 1211 1212 public boolean hasCode() { 1213 if (this.code == null) 1214 return false; 1215 for (CodeableConcept item : this.code) 1216 if (!item.isEmpty()) 1217 return true; 1218 return false; 1219 } 1220 1221 public CodeableConcept addCode() { //3 1222 CodeableConcept t = new CodeableConcept(); 1223 if (this.code == null) 1224 this.code = new ArrayList<CodeableConcept>(); 1225 this.code.add(t); 1226 return t; 1227 } 1228 1229 public PractitionerRole addCode(CodeableConcept t) { //3 1230 if (t == null) 1231 return this; 1232 if (this.code == null) 1233 this.code = new ArrayList<CodeableConcept>(); 1234 this.code.add(t); 1235 return this; 1236 } 1237 1238 /** 1239 * @return The first repetition of repeating field {@link #code}, creating it if it does not already exist 1240 */ 1241 public CodeableConcept getCodeFirstRep() { 1242 if (getCode().isEmpty()) { 1243 addCode(); 1244 } 1245 return getCode().get(0); 1246 } 1247 1248 /** 1249 * @return {@link #specialty} (Specific specialty of the practitioner.) 1250 */ 1251 public List<CodeableConcept> getSpecialty() { 1252 if (this.specialty == null) 1253 this.specialty = new ArrayList<CodeableConcept>(); 1254 return this.specialty; 1255 } 1256 1257 /** 1258 * @return Returns a reference to <code>this</code> for easy method chaining 1259 */ 1260 public PractitionerRole setSpecialty(List<CodeableConcept> theSpecialty) { 1261 this.specialty = theSpecialty; 1262 return this; 1263 } 1264 1265 public boolean hasSpecialty() { 1266 if (this.specialty == null) 1267 return false; 1268 for (CodeableConcept item : this.specialty) 1269 if (!item.isEmpty()) 1270 return true; 1271 return false; 1272 } 1273 1274 public CodeableConcept addSpecialty() { //3 1275 CodeableConcept t = new CodeableConcept(); 1276 if (this.specialty == null) 1277 this.specialty = new ArrayList<CodeableConcept>(); 1278 this.specialty.add(t); 1279 return t; 1280 } 1281 1282 public PractitionerRole addSpecialty(CodeableConcept t) { //3 1283 if (t == null) 1284 return this; 1285 if (this.specialty == null) 1286 this.specialty = new ArrayList<CodeableConcept>(); 1287 this.specialty.add(t); 1288 return this; 1289 } 1290 1291 /** 1292 * @return The first repetition of repeating field {@link #specialty}, creating it if it does not already exist 1293 */ 1294 public CodeableConcept getSpecialtyFirstRep() { 1295 if (getSpecialty().isEmpty()) { 1296 addSpecialty(); 1297 } 1298 return getSpecialty().get(0); 1299 } 1300 1301 /** 1302 * @return {@link #location} (The location(s) at which this practitioner provides care.) 1303 */ 1304 public List<Reference> getLocation() { 1305 if (this.location == null) 1306 this.location = new ArrayList<Reference>(); 1307 return this.location; 1308 } 1309 1310 /** 1311 * @return Returns a reference to <code>this</code> for easy method chaining 1312 */ 1313 public PractitionerRole setLocation(List<Reference> theLocation) { 1314 this.location = theLocation; 1315 return this; 1316 } 1317 1318 public boolean hasLocation() { 1319 if (this.location == null) 1320 return false; 1321 for (Reference item : this.location) 1322 if (!item.isEmpty()) 1323 return true; 1324 return false; 1325 } 1326 1327 public Reference addLocation() { //3 1328 Reference t = new Reference(); 1329 if (this.location == null) 1330 this.location = new ArrayList<Reference>(); 1331 this.location.add(t); 1332 return t; 1333 } 1334 1335 public PractitionerRole addLocation(Reference t) { //3 1336 if (t == null) 1337 return this; 1338 if (this.location == null) 1339 this.location = new ArrayList<Reference>(); 1340 this.location.add(t); 1341 return this; 1342 } 1343 1344 /** 1345 * @return The first repetition of repeating field {@link #location}, creating it if it does not already exist 1346 */ 1347 public Reference getLocationFirstRep() { 1348 if (getLocation().isEmpty()) { 1349 addLocation(); 1350 } 1351 return getLocation().get(0); 1352 } 1353 1354 /** 1355 * @deprecated Use Reference#setResource(IBaseResource) instead 1356 */ 1357 @Deprecated 1358 public List<Location> getLocationTarget() { 1359 if (this.locationTarget == null) 1360 this.locationTarget = new ArrayList<Location>(); 1361 return this.locationTarget; 1362 } 1363 1364 /** 1365 * @deprecated Use Reference#setResource(IBaseResource) instead 1366 */ 1367 @Deprecated 1368 public Location addLocationTarget() { 1369 Location r = new Location(); 1370 if (this.locationTarget == null) 1371 this.locationTarget = new ArrayList<Location>(); 1372 this.locationTarget.add(r); 1373 return r; 1374 } 1375 1376 /** 1377 * @return {@link #healthcareService} (The list of healthcare services that this worker provides for this role's Organization/Location(s).) 1378 */ 1379 public List<Reference> getHealthcareService() { 1380 if (this.healthcareService == null) 1381 this.healthcareService = new ArrayList<Reference>(); 1382 return this.healthcareService; 1383 } 1384 1385 /** 1386 * @return Returns a reference to <code>this</code> for easy method chaining 1387 */ 1388 public PractitionerRole setHealthcareService(List<Reference> theHealthcareService) { 1389 this.healthcareService = theHealthcareService; 1390 return this; 1391 } 1392 1393 public boolean hasHealthcareService() { 1394 if (this.healthcareService == null) 1395 return false; 1396 for (Reference item : this.healthcareService) 1397 if (!item.isEmpty()) 1398 return true; 1399 return false; 1400 } 1401 1402 public Reference addHealthcareService() { //3 1403 Reference t = new Reference(); 1404 if (this.healthcareService == null) 1405 this.healthcareService = new ArrayList<Reference>(); 1406 this.healthcareService.add(t); 1407 return t; 1408 } 1409 1410 public PractitionerRole addHealthcareService(Reference t) { //3 1411 if (t == null) 1412 return this; 1413 if (this.healthcareService == null) 1414 this.healthcareService = new ArrayList<Reference>(); 1415 this.healthcareService.add(t); 1416 return this; 1417 } 1418 1419 /** 1420 * @return The first repetition of repeating field {@link #healthcareService}, creating it if it does not already exist 1421 */ 1422 public Reference getHealthcareServiceFirstRep() { 1423 if (getHealthcareService().isEmpty()) { 1424 addHealthcareService(); 1425 } 1426 return getHealthcareService().get(0); 1427 } 1428 1429 /** 1430 * @deprecated Use Reference#setResource(IBaseResource) instead 1431 */ 1432 @Deprecated 1433 public List<HealthcareService> getHealthcareServiceTarget() { 1434 if (this.healthcareServiceTarget == null) 1435 this.healthcareServiceTarget = new ArrayList<HealthcareService>(); 1436 return this.healthcareServiceTarget; 1437 } 1438 1439 /** 1440 * @deprecated Use Reference#setResource(IBaseResource) instead 1441 */ 1442 @Deprecated 1443 public HealthcareService addHealthcareServiceTarget() { 1444 HealthcareService r = new HealthcareService(); 1445 if (this.healthcareServiceTarget == null) 1446 this.healthcareServiceTarget = new ArrayList<HealthcareService>(); 1447 this.healthcareServiceTarget.add(r); 1448 return r; 1449 } 1450 1451 /** 1452 * @return {@link #telecom} (Contact details that are specific to the role/location/service.) 1453 */ 1454 public List<ContactPoint> getTelecom() { 1455 if (this.telecom == null) 1456 this.telecom = new ArrayList<ContactPoint>(); 1457 return this.telecom; 1458 } 1459 1460 /** 1461 * @return Returns a reference to <code>this</code> for easy method chaining 1462 */ 1463 public PractitionerRole setTelecom(List<ContactPoint> theTelecom) { 1464 this.telecom = theTelecom; 1465 return this; 1466 } 1467 1468 public boolean hasTelecom() { 1469 if (this.telecom == null) 1470 return false; 1471 for (ContactPoint item : this.telecom) 1472 if (!item.isEmpty()) 1473 return true; 1474 return false; 1475 } 1476 1477 public ContactPoint addTelecom() { //3 1478 ContactPoint t = new ContactPoint(); 1479 if (this.telecom == null) 1480 this.telecom = new ArrayList<ContactPoint>(); 1481 this.telecom.add(t); 1482 return t; 1483 } 1484 1485 public PractitionerRole addTelecom(ContactPoint t) { //3 1486 if (t == null) 1487 return this; 1488 if (this.telecom == null) 1489 this.telecom = new ArrayList<ContactPoint>(); 1490 this.telecom.add(t); 1491 return this; 1492 } 1493 1494 /** 1495 * @return The first repetition of repeating field {@link #telecom}, creating it if it does not already exist 1496 */ 1497 public ContactPoint getTelecomFirstRep() { 1498 if (getTelecom().isEmpty()) { 1499 addTelecom(); 1500 } 1501 return getTelecom().get(0); 1502 } 1503 1504 /** 1505 * @return {@link #availableTime} (A collection of times the practitioner is available or performing this role at the location and/or healthcareservice.) 1506 */ 1507 public List<PractitionerRoleAvailableTimeComponent> getAvailableTime() { 1508 if (this.availableTime == null) 1509 this.availableTime = new ArrayList<PractitionerRoleAvailableTimeComponent>(); 1510 return this.availableTime; 1511 } 1512 1513 /** 1514 * @return Returns a reference to <code>this</code> for easy method chaining 1515 */ 1516 public PractitionerRole setAvailableTime(List<PractitionerRoleAvailableTimeComponent> theAvailableTime) { 1517 this.availableTime = theAvailableTime; 1518 return this; 1519 } 1520 1521 public boolean hasAvailableTime() { 1522 if (this.availableTime == null) 1523 return false; 1524 for (PractitionerRoleAvailableTimeComponent item : this.availableTime) 1525 if (!item.isEmpty()) 1526 return true; 1527 return false; 1528 } 1529 1530 public PractitionerRoleAvailableTimeComponent addAvailableTime() { //3 1531 PractitionerRoleAvailableTimeComponent t = new PractitionerRoleAvailableTimeComponent(); 1532 if (this.availableTime == null) 1533 this.availableTime = new ArrayList<PractitionerRoleAvailableTimeComponent>(); 1534 this.availableTime.add(t); 1535 return t; 1536 } 1537 1538 public PractitionerRole addAvailableTime(PractitionerRoleAvailableTimeComponent t) { //3 1539 if (t == null) 1540 return this; 1541 if (this.availableTime == null) 1542 this.availableTime = new ArrayList<PractitionerRoleAvailableTimeComponent>(); 1543 this.availableTime.add(t); 1544 return this; 1545 } 1546 1547 /** 1548 * @return The first repetition of repeating field {@link #availableTime}, creating it if it does not already exist 1549 */ 1550 public PractitionerRoleAvailableTimeComponent getAvailableTimeFirstRep() { 1551 if (getAvailableTime().isEmpty()) { 1552 addAvailableTime(); 1553 } 1554 return getAvailableTime().get(0); 1555 } 1556 1557 /** 1558 * @return {@link #notAvailable} (The practitioner is not available or performing this role during this period of time due to the provided reason.) 1559 */ 1560 public List<PractitionerRoleNotAvailableComponent> getNotAvailable() { 1561 if (this.notAvailable == null) 1562 this.notAvailable = new ArrayList<PractitionerRoleNotAvailableComponent>(); 1563 return this.notAvailable; 1564 } 1565 1566 /** 1567 * @return Returns a reference to <code>this</code> for easy method chaining 1568 */ 1569 public PractitionerRole setNotAvailable(List<PractitionerRoleNotAvailableComponent> theNotAvailable) { 1570 this.notAvailable = theNotAvailable; 1571 return this; 1572 } 1573 1574 public boolean hasNotAvailable() { 1575 if (this.notAvailable == null) 1576 return false; 1577 for (PractitionerRoleNotAvailableComponent item : this.notAvailable) 1578 if (!item.isEmpty()) 1579 return true; 1580 return false; 1581 } 1582 1583 public PractitionerRoleNotAvailableComponent addNotAvailable() { //3 1584 PractitionerRoleNotAvailableComponent t = new PractitionerRoleNotAvailableComponent(); 1585 if (this.notAvailable == null) 1586 this.notAvailable = new ArrayList<PractitionerRoleNotAvailableComponent>(); 1587 this.notAvailable.add(t); 1588 return t; 1589 } 1590 1591 public PractitionerRole addNotAvailable(PractitionerRoleNotAvailableComponent t) { //3 1592 if (t == null) 1593 return this; 1594 if (this.notAvailable == null) 1595 this.notAvailable = new ArrayList<PractitionerRoleNotAvailableComponent>(); 1596 this.notAvailable.add(t); 1597 return this; 1598 } 1599 1600 /** 1601 * @return The first repetition of repeating field {@link #notAvailable}, creating it if it does not already exist 1602 */ 1603 public PractitionerRoleNotAvailableComponent getNotAvailableFirstRep() { 1604 if (getNotAvailable().isEmpty()) { 1605 addNotAvailable(); 1606 } 1607 return getNotAvailable().get(0); 1608 } 1609 1610 /** 1611 * @return {@link #availabilityExceptions} (A description of site availability exceptions, e.g. public holiday availability. Succinctly describing all possible exceptions to normal site availability as details in the available Times and not available Times.). This is the underlying object with id, value and extensions. The accessor "getAvailabilityExceptions" gives direct access to the value 1612 */ 1613 public StringType getAvailabilityExceptionsElement() { 1614 if (this.availabilityExceptions == null) 1615 if (Configuration.errorOnAutoCreate()) 1616 throw new Error("Attempt to auto-create PractitionerRole.availabilityExceptions"); 1617 else if (Configuration.doAutoCreate()) 1618 this.availabilityExceptions = new StringType(); // bb 1619 return this.availabilityExceptions; 1620 } 1621 1622 public boolean hasAvailabilityExceptionsElement() { 1623 return this.availabilityExceptions != null && !this.availabilityExceptions.isEmpty(); 1624 } 1625 1626 public boolean hasAvailabilityExceptions() { 1627 return this.availabilityExceptions != null && !this.availabilityExceptions.isEmpty(); 1628 } 1629 1630 /** 1631 * @param value {@link #availabilityExceptions} (A description of site availability exceptions, e.g. public holiday availability. Succinctly describing all possible exceptions to normal site availability as details in the available Times and not available Times.). This is the underlying object with id, value and extensions. The accessor "getAvailabilityExceptions" gives direct access to the value 1632 */ 1633 public PractitionerRole setAvailabilityExceptionsElement(StringType value) { 1634 this.availabilityExceptions = value; 1635 return this; 1636 } 1637 1638 /** 1639 * @return A description of site availability exceptions, e.g. public holiday availability. Succinctly describing all possible exceptions to normal site availability as details in the available Times and not available Times. 1640 */ 1641 public String getAvailabilityExceptions() { 1642 return this.availabilityExceptions == null ? null : this.availabilityExceptions.getValue(); 1643 } 1644 1645 /** 1646 * @param value A description of site availability exceptions, e.g. public holiday availability. Succinctly describing all possible exceptions to normal site availability as details in the available Times and not available Times. 1647 */ 1648 public PractitionerRole setAvailabilityExceptions(String value) { 1649 if (Utilities.noString(value)) 1650 this.availabilityExceptions = null; 1651 else { 1652 if (this.availabilityExceptions == null) 1653 this.availabilityExceptions = new StringType(); 1654 this.availabilityExceptions.setValue(value); 1655 } 1656 return this; 1657 } 1658 1659 /** 1660 * @return {@link #endpoint} (Technical endpoints providing access to services operated for the practitioner with this role.) 1661 */ 1662 public List<Reference> getEndpoint() { 1663 if (this.endpoint == null) 1664 this.endpoint = new ArrayList<Reference>(); 1665 return this.endpoint; 1666 } 1667 1668 /** 1669 * @return Returns a reference to <code>this</code> for easy method chaining 1670 */ 1671 public PractitionerRole setEndpoint(List<Reference> theEndpoint) { 1672 this.endpoint = theEndpoint; 1673 return this; 1674 } 1675 1676 public boolean hasEndpoint() { 1677 if (this.endpoint == null) 1678 return false; 1679 for (Reference item : this.endpoint) 1680 if (!item.isEmpty()) 1681 return true; 1682 return false; 1683 } 1684 1685 public Reference addEndpoint() { //3 1686 Reference t = new Reference(); 1687 if (this.endpoint == null) 1688 this.endpoint = new ArrayList<Reference>(); 1689 this.endpoint.add(t); 1690 return t; 1691 } 1692 1693 public PractitionerRole addEndpoint(Reference t) { //3 1694 if (t == null) 1695 return this; 1696 if (this.endpoint == null) 1697 this.endpoint = new ArrayList<Reference>(); 1698 this.endpoint.add(t); 1699 return this; 1700 } 1701 1702 /** 1703 * @return The first repetition of repeating field {@link #endpoint}, creating it if it does not already exist 1704 */ 1705 public Reference getEndpointFirstRep() { 1706 if (getEndpoint().isEmpty()) { 1707 addEndpoint(); 1708 } 1709 return getEndpoint().get(0); 1710 } 1711 1712 /** 1713 * @deprecated Use Reference#setResource(IBaseResource) instead 1714 */ 1715 @Deprecated 1716 public List<Endpoint> getEndpointTarget() { 1717 if (this.endpointTarget == null) 1718 this.endpointTarget = new ArrayList<Endpoint>(); 1719 return this.endpointTarget; 1720 } 1721 1722 /** 1723 * @deprecated Use Reference#setResource(IBaseResource) instead 1724 */ 1725 @Deprecated 1726 public Endpoint addEndpointTarget() { 1727 Endpoint r = new Endpoint(); 1728 if (this.endpointTarget == null) 1729 this.endpointTarget = new ArrayList<Endpoint>(); 1730 this.endpointTarget.add(r); 1731 return r; 1732 } 1733 1734 protected void listChildren(List<Property> children) { 1735 super.listChildren(children); 1736 children.add(new Property("identifier", "Identifier", "Business Identifiers that are specific to a role/location.", 0, java.lang.Integer.MAX_VALUE, identifier)); 1737 children.add(new Property("active", "boolean", "Whether this practitioner role record is in active use.", 0, 1, active)); 1738 children.add(new Property("period", "Period", "The period during which the person is authorized to act as a practitioner in these role(s) for the organization.", 0, 1, period)); 1739 children.add(new Property("practitioner", "Reference(Practitioner)", "Practitioner that is able to provide the defined services for the organization.", 0, 1, practitioner)); 1740 children.add(new Property("organization", "Reference(Organization)", "The organization where the Practitioner performs the roles associated.", 0, 1, organization)); 1741 children.add(new Property("code", "CodeableConcept", "Roles which this practitioner is authorized to perform for the organization.", 0, java.lang.Integer.MAX_VALUE, code)); 1742 children.add(new Property("specialty", "CodeableConcept", "Specific specialty of the practitioner.", 0, java.lang.Integer.MAX_VALUE, specialty)); 1743 children.add(new Property("location", "Reference(Location)", "The location(s) at which this practitioner provides care.", 0, java.lang.Integer.MAX_VALUE, location)); 1744 children.add(new Property("healthcareService", "Reference(HealthcareService)", "The list of healthcare services that this worker provides for this role's Organization/Location(s).", 0, java.lang.Integer.MAX_VALUE, healthcareService)); 1745 children.add(new Property("telecom", "ContactPoint", "Contact details that are specific to the role/location/service.", 0, java.lang.Integer.MAX_VALUE, telecom)); 1746 children.add(new Property("availableTime", "", "A collection of times the practitioner is available or performing this role at the location and/or healthcareservice.", 0, java.lang.Integer.MAX_VALUE, availableTime)); 1747 children.add(new Property("notAvailable", "", "The practitioner is not available or performing this role during this period of time due to the provided reason.", 0, java.lang.Integer.MAX_VALUE, notAvailable)); 1748 children.add(new Property("availabilityExceptions", "string", "A description of site availability exceptions, e.g. public holiday availability. Succinctly describing all possible exceptions to normal site availability as details in the available Times and not available Times.", 0, 1, availabilityExceptions)); 1749 children.add(new Property("endpoint", "Reference(Endpoint)", "Technical endpoints providing access to services operated for the practitioner with this role.", 0, java.lang.Integer.MAX_VALUE, endpoint)); 1750 } 1751 1752 @Override 1753 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1754 switch (_hash) { 1755 case -1618432855: /*identifier*/ return new Property("identifier", "Identifier", "Business Identifiers that are specific to a role/location.", 0, java.lang.Integer.MAX_VALUE, identifier); 1756 case -1422950650: /*active*/ return new Property("active", "boolean", "Whether this practitioner role record is in active use.", 0, 1, active); 1757 case -991726143: /*period*/ return new Property("period", "Period", "The period during which the person is authorized to act as a practitioner in these role(s) for the organization.", 0, 1, period); 1758 case 574573338: /*practitioner*/ return new Property("practitioner", "Reference(Practitioner)", "Practitioner that is able to provide the defined services for the organization.", 0, 1, practitioner); 1759 case 1178922291: /*organization*/ return new Property("organization", "Reference(Organization)", "The organization where the Practitioner performs the roles associated.", 0, 1, organization); 1760 case 3059181: /*code*/ return new Property("code", "CodeableConcept", "Roles which this practitioner is authorized to perform for the organization.", 0, java.lang.Integer.MAX_VALUE, code); 1761 case -1694759682: /*specialty*/ return new Property("specialty", "CodeableConcept", "Specific specialty of the practitioner.", 0, java.lang.Integer.MAX_VALUE, specialty); 1762 case 1901043637: /*location*/ return new Property("location", "Reference(Location)", "The location(s) at which this practitioner provides care.", 0, java.lang.Integer.MAX_VALUE, location); 1763 case 1289661064: /*healthcareService*/ return new Property("healthcareService", "Reference(HealthcareService)", "The list of healthcare services that this worker provides for this role's Organization/Location(s).", 0, java.lang.Integer.MAX_VALUE, healthcareService); 1764 case -1429363305: /*telecom*/ return new Property("telecom", "ContactPoint", "Contact details that are specific to the role/location/service.", 0, java.lang.Integer.MAX_VALUE, telecom); 1765 case 1873069366: /*availableTime*/ return new Property("availableTime", "", "A collection of times the practitioner is available or performing this role at the location and/or healthcareservice.", 0, java.lang.Integer.MAX_VALUE, availableTime); 1766 case -629572298: /*notAvailable*/ return new Property("notAvailable", "", "The practitioner is not available or performing this role during this period of time due to the provided reason.", 0, java.lang.Integer.MAX_VALUE, notAvailable); 1767 case -1149143617: /*availabilityExceptions*/ return new Property("availabilityExceptions", "string", "A description of site availability exceptions, e.g. public holiday availability. Succinctly describing all possible exceptions to normal site availability as details in the available Times and not available Times.", 0, 1, availabilityExceptions); 1768 case 1741102485: /*endpoint*/ return new Property("endpoint", "Reference(Endpoint)", "Technical endpoints providing access to services operated for the practitioner with this role.", 0, java.lang.Integer.MAX_VALUE, endpoint); 1769 default: return super.getNamedProperty(_hash, _name, _checkValid); 1770 } 1771 1772 } 1773 1774 @Override 1775 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1776 switch (hash) { 1777 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 1778 case -1422950650: /*active*/ return this.active == null ? new Base[0] : new Base[] {this.active}; // BooleanType 1779 case -991726143: /*period*/ return this.period == null ? new Base[0] : new Base[] {this.period}; // Period 1780 case 574573338: /*practitioner*/ return this.practitioner == null ? new Base[0] : new Base[] {this.practitioner}; // Reference 1781 case 1178922291: /*organization*/ return this.organization == null ? new Base[0] : new Base[] {this.organization}; // Reference 1782 case 3059181: /*code*/ return this.code == null ? new Base[0] : this.code.toArray(new Base[this.code.size()]); // CodeableConcept 1783 case -1694759682: /*specialty*/ return this.specialty == null ? new Base[0] : this.specialty.toArray(new Base[this.specialty.size()]); // CodeableConcept 1784 case 1901043637: /*location*/ return this.location == null ? new Base[0] : this.location.toArray(new Base[this.location.size()]); // Reference 1785 case 1289661064: /*healthcareService*/ return this.healthcareService == null ? new Base[0] : this.healthcareService.toArray(new Base[this.healthcareService.size()]); // Reference 1786 case -1429363305: /*telecom*/ return this.telecom == null ? new Base[0] : this.telecom.toArray(new Base[this.telecom.size()]); // ContactPoint 1787 case 1873069366: /*availableTime*/ return this.availableTime == null ? new Base[0] : this.availableTime.toArray(new Base[this.availableTime.size()]); // PractitionerRoleAvailableTimeComponent 1788 case -629572298: /*notAvailable*/ return this.notAvailable == null ? new Base[0] : this.notAvailable.toArray(new Base[this.notAvailable.size()]); // PractitionerRoleNotAvailableComponent 1789 case -1149143617: /*availabilityExceptions*/ return this.availabilityExceptions == null ? new Base[0] : new Base[] {this.availabilityExceptions}; // StringType 1790 case 1741102485: /*endpoint*/ return this.endpoint == null ? new Base[0] : this.endpoint.toArray(new Base[this.endpoint.size()]); // Reference 1791 default: return super.getProperty(hash, name, checkValid); 1792 } 1793 1794 } 1795 1796 @Override 1797 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1798 switch (hash) { 1799 case -1618432855: // identifier 1800 this.getIdentifier().add(castToIdentifier(value)); // Identifier 1801 return value; 1802 case -1422950650: // active 1803 this.active = castToBoolean(value); // BooleanType 1804 return value; 1805 case -991726143: // period 1806 this.period = castToPeriod(value); // Period 1807 return value; 1808 case 574573338: // practitioner 1809 this.practitioner = castToReference(value); // Reference 1810 return value; 1811 case 1178922291: // organization 1812 this.organization = castToReference(value); // Reference 1813 return value; 1814 case 3059181: // code 1815 this.getCode().add(castToCodeableConcept(value)); // CodeableConcept 1816 return value; 1817 case -1694759682: // specialty 1818 this.getSpecialty().add(castToCodeableConcept(value)); // CodeableConcept 1819 return value; 1820 case 1901043637: // location 1821 this.getLocation().add(castToReference(value)); // Reference 1822 return value; 1823 case 1289661064: // healthcareService 1824 this.getHealthcareService().add(castToReference(value)); // Reference 1825 return value; 1826 case -1429363305: // telecom 1827 this.getTelecom().add(castToContactPoint(value)); // ContactPoint 1828 return value; 1829 case 1873069366: // availableTime 1830 this.getAvailableTime().add((PractitionerRoleAvailableTimeComponent) value); // PractitionerRoleAvailableTimeComponent 1831 return value; 1832 case -629572298: // notAvailable 1833 this.getNotAvailable().add((PractitionerRoleNotAvailableComponent) value); // PractitionerRoleNotAvailableComponent 1834 return value; 1835 case -1149143617: // availabilityExceptions 1836 this.availabilityExceptions = castToString(value); // StringType 1837 return value; 1838 case 1741102485: // endpoint 1839 this.getEndpoint().add(castToReference(value)); // Reference 1840 return value; 1841 default: return super.setProperty(hash, name, value); 1842 } 1843 1844 } 1845 1846 @Override 1847 public Base setProperty(String name, Base value) throws FHIRException { 1848 if (name.equals("identifier")) { 1849 this.getIdentifier().add(castToIdentifier(value)); 1850 } else if (name.equals("active")) { 1851 this.active = castToBoolean(value); // BooleanType 1852 } else if (name.equals("period")) { 1853 this.period = castToPeriod(value); // Period 1854 } else if (name.equals("practitioner")) { 1855 this.practitioner = castToReference(value); // Reference 1856 } else if (name.equals("organization")) { 1857 this.organization = castToReference(value); // Reference 1858 } else if (name.equals("code")) { 1859 this.getCode().add(castToCodeableConcept(value)); 1860 } else if (name.equals("specialty")) { 1861 this.getSpecialty().add(castToCodeableConcept(value)); 1862 } else if (name.equals("location")) { 1863 this.getLocation().add(castToReference(value)); 1864 } else if (name.equals("healthcareService")) { 1865 this.getHealthcareService().add(castToReference(value)); 1866 } else if (name.equals("telecom")) { 1867 this.getTelecom().add(castToContactPoint(value)); 1868 } else if (name.equals("availableTime")) { 1869 this.getAvailableTime().add((PractitionerRoleAvailableTimeComponent) value); 1870 } else if (name.equals("notAvailable")) { 1871 this.getNotAvailable().add((PractitionerRoleNotAvailableComponent) value); 1872 } else if (name.equals("availabilityExceptions")) { 1873 this.availabilityExceptions = castToString(value); // StringType 1874 } else if (name.equals("endpoint")) { 1875 this.getEndpoint().add(castToReference(value)); 1876 } else 1877 return super.setProperty(name, value); 1878 return value; 1879 } 1880 1881 @Override 1882 public Base makeProperty(int hash, String name) throws FHIRException { 1883 switch (hash) { 1884 case -1618432855: return addIdentifier(); 1885 case -1422950650: return getActiveElement(); 1886 case -991726143: return getPeriod(); 1887 case 574573338: return getPractitioner(); 1888 case 1178922291: return getOrganization(); 1889 case 3059181: return addCode(); 1890 case -1694759682: return addSpecialty(); 1891 case 1901043637: return addLocation(); 1892 case 1289661064: return addHealthcareService(); 1893 case -1429363305: return addTelecom(); 1894 case 1873069366: return addAvailableTime(); 1895 case -629572298: return addNotAvailable(); 1896 case -1149143617: return getAvailabilityExceptionsElement(); 1897 case 1741102485: return addEndpoint(); 1898 default: return super.makeProperty(hash, name); 1899 } 1900 1901 } 1902 1903 @Override 1904 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1905 switch (hash) { 1906 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 1907 case -1422950650: /*active*/ return new String[] {"boolean"}; 1908 case -991726143: /*period*/ return new String[] {"Period"}; 1909 case 574573338: /*practitioner*/ return new String[] {"Reference"}; 1910 case 1178922291: /*organization*/ return new String[] {"Reference"}; 1911 case 3059181: /*code*/ return new String[] {"CodeableConcept"}; 1912 case -1694759682: /*specialty*/ return new String[] {"CodeableConcept"}; 1913 case 1901043637: /*location*/ return new String[] {"Reference"}; 1914 case 1289661064: /*healthcareService*/ return new String[] {"Reference"}; 1915 case -1429363305: /*telecom*/ return new String[] {"ContactPoint"}; 1916 case 1873069366: /*availableTime*/ return new String[] {}; 1917 case -629572298: /*notAvailable*/ return new String[] {}; 1918 case -1149143617: /*availabilityExceptions*/ return new String[] {"string"}; 1919 case 1741102485: /*endpoint*/ return new String[] {"Reference"}; 1920 default: return super.getTypesForProperty(hash, name); 1921 } 1922 1923 } 1924 1925 @Override 1926 public Base addChild(String name) throws FHIRException { 1927 if (name.equals("identifier")) { 1928 return addIdentifier(); 1929 } 1930 else if (name.equals("active")) { 1931 throw new FHIRException("Cannot call addChild on a primitive type PractitionerRole.active"); 1932 } 1933 else if (name.equals("period")) { 1934 this.period = new Period(); 1935 return this.period; 1936 } 1937 else if (name.equals("practitioner")) { 1938 this.practitioner = new Reference(); 1939 return this.practitioner; 1940 } 1941 else if (name.equals("organization")) { 1942 this.organization = new Reference(); 1943 return this.organization; 1944 } 1945 else if (name.equals("code")) { 1946 return addCode(); 1947 } 1948 else if (name.equals("specialty")) { 1949 return addSpecialty(); 1950 } 1951 else if (name.equals("location")) { 1952 return addLocation(); 1953 } 1954 else if (name.equals("healthcareService")) { 1955 return addHealthcareService(); 1956 } 1957 else if (name.equals("telecom")) { 1958 return addTelecom(); 1959 } 1960 else if (name.equals("availableTime")) { 1961 return addAvailableTime(); 1962 } 1963 else if (name.equals("notAvailable")) { 1964 return addNotAvailable(); 1965 } 1966 else if (name.equals("availabilityExceptions")) { 1967 throw new FHIRException("Cannot call addChild on a primitive type PractitionerRole.availabilityExceptions"); 1968 } 1969 else if (name.equals("endpoint")) { 1970 return addEndpoint(); 1971 } 1972 else 1973 return super.addChild(name); 1974 } 1975 1976 public String fhirType() { 1977 return "PractitionerRole"; 1978 1979 } 1980 1981 public PractitionerRole copy() { 1982 PractitionerRole dst = new PractitionerRole(); 1983 copyValues(dst); 1984 if (identifier != null) { 1985 dst.identifier = new ArrayList<Identifier>(); 1986 for (Identifier i : identifier) 1987 dst.identifier.add(i.copy()); 1988 }; 1989 dst.active = active == null ? null : active.copy(); 1990 dst.period = period == null ? null : period.copy(); 1991 dst.practitioner = practitioner == null ? null : practitioner.copy(); 1992 dst.organization = organization == null ? null : organization.copy(); 1993 if (code != null) { 1994 dst.code = new ArrayList<CodeableConcept>(); 1995 for (CodeableConcept i : code) 1996 dst.code.add(i.copy()); 1997 }; 1998 if (specialty != null) { 1999 dst.specialty = new ArrayList<CodeableConcept>(); 2000 for (CodeableConcept i : specialty) 2001 dst.specialty.add(i.copy()); 2002 }; 2003 if (location != null) { 2004 dst.location = new ArrayList<Reference>(); 2005 for (Reference i : location) 2006 dst.location.add(i.copy()); 2007 }; 2008 if (healthcareService != null) { 2009 dst.healthcareService = new ArrayList<Reference>(); 2010 for (Reference i : healthcareService) 2011 dst.healthcareService.add(i.copy()); 2012 }; 2013 if (telecom != null) { 2014 dst.telecom = new ArrayList<ContactPoint>(); 2015 for (ContactPoint i : telecom) 2016 dst.telecom.add(i.copy()); 2017 }; 2018 if (availableTime != null) { 2019 dst.availableTime = new ArrayList<PractitionerRoleAvailableTimeComponent>(); 2020 for (PractitionerRoleAvailableTimeComponent i : availableTime) 2021 dst.availableTime.add(i.copy()); 2022 }; 2023 if (notAvailable != null) { 2024 dst.notAvailable = new ArrayList<PractitionerRoleNotAvailableComponent>(); 2025 for (PractitionerRoleNotAvailableComponent i : notAvailable) 2026 dst.notAvailable.add(i.copy()); 2027 }; 2028 dst.availabilityExceptions = availabilityExceptions == null ? null : availabilityExceptions.copy(); 2029 if (endpoint != null) { 2030 dst.endpoint = new ArrayList<Reference>(); 2031 for (Reference i : endpoint) 2032 dst.endpoint.add(i.copy()); 2033 }; 2034 return dst; 2035 } 2036 2037 protected PractitionerRole typedCopy() { 2038 return copy(); 2039 } 2040 2041 @Override 2042 public boolean equalsDeep(Base other_) { 2043 if (!super.equalsDeep(other_)) 2044 return false; 2045 if (!(other_ instanceof PractitionerRole)) 2046 return false; 2047 PractitionerRole o = (PractitionerRole) other_; 2048 return compareDeep(identifier, o.identifier, true) && compareDeep(active, o.active, true) && compareDeep(period, o.period, true) 2049 && compareDeep(practitioner, o.practitioner, true) && compareDeep(organization, o.organization, true) 2050 && compareDeep(code, o.code, true) && compareDeep(specialty, o.specialty, true) && compareDeep(location, o.location, true) 2051 && compareDeep(healthcareService, o.healthcareService, true) && compareDeep(telecom, o.telecom, true) 2052 && compareDeep(availableTime, o.availableTime, true) && compareDeep(notAvailable, o.notAvailable, true) 2053 && compareDeep(availabilityExceptions, o.availabilityExceptions, true) && compareDeep(endpoint, o.endpoint, true) 2054 ; 2055 } 2056 2057 @Override 2058 public boolean equalsShallow(Base other_) { 2059 if (!super.equalsShallow(other_)) 2060 return false; 2061 if (!(other_ instanceof PractitionerRole)) 2062 return false; 2063 PractitionerRole o = (PractitionerRole) other_; 2064 return compareValues(active, o.active, true) && compareValues(availabilityExceptions, o.availabilityExceptions, true) 2065 ; 2066 } 2067 2068 public boolean isEmpty() { 2069 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, active, period 2070 , practitioner, organization, code, specialty, location, healthcareService, telecom 2071 , availableTime, notAvailable, availabilityExceptions, endpoint); 2072 } 2073 2074 @Override 2075 public ResourceType getResourceType() { 2076 return ResourceType.PractitionerRole; 2077 } 2078 2079 /** 2080 * Search parameter: <b>date</b> 2081 * <p> 2082 * Description: <b>The period during which the practitioner is authorized to perform in these role(s)</b><br> 2083 * Type: <b>date</b><br> 2084 * Path: <b>PractitionerRole.period</b><br> 2085 * </p> 2086 */ 2087 @SearchParamDefinition(name="date", path="PractitionerRole.period", description="The period during which the practitioner is authorized to perform in these role(s)", type="date" ) 2088 public static final String SP_DATE = "date"; 2089 /** 2090 * <b>Fluent Client</b> search parameter constant for <b>date</b> 2091 * <p> 2092 * Description: <b>The period during which the practitioner is authorized to perform in these role(s)</b><br> 2093 * Type: <b>date</b><br> 2094 * Path: <b>PractitionerRole.period</b><br> 2095 * </p> 2096 */ 2097 public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE); 2098 2099 /** 2100 * Search parameter: <b>identifier</b> 2101 * <p> 2102 * Description: <b>A practitioner's Identifier</b><br> 2103 * Type: <b>token</b><br> 2104 * Path: <b>PractitionerRole.identifier</b><br> 2105 * </p> 2106 */ 2107 @SearchParamDefinition(name="identifier", path="PractitionerRole.identifier", description="A practitioner's Identifier", type="token" ) 2108 public static final String SP_IDENTIFIER = "identifier"; 2109 /** 2110 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 2111 * <p> 2112 * Description: <b>A practitioner's Identifier</b><br> 2113 * Type: <b>token</b><br> 2114 * Path: <b>PractitionerRole.identifier</b><br> 2115 * </p> 2116 */ 2117 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 2118 2119 /** 2120 * Search parameter: <b>specialty</b> 2121 * <p> 2122 * Description: <b>The practitioner has this specialty at an organization</b><br> 2123 * Type: <b>token</b><br> 2124 * Path: <b>PractitionerRole.specialty</b><br> 2125 * </p> 2126 */ 2127 @SearchParamDefinition(name="specialty", path="PractitionerRole.specialty", description="The practitioner has this specialty at an organization", type="token" ) 2128 public static final String SP_SPECIALTY = "specialty"; 2129 /** 2130 * <b>Fluent Client</b> search parameter constant for <b>specialty</b> 2131 * <p> 2132 * Description: <b>The practitioner has this specialty at an organization</b><br> 2133 * Type: <b>token</b><br> 2134 * Path: <b>PractitionerRole.specialty</b><br> 2135 * </p> 2136 */ 2137 public static final ca.uhn.fhir.rest.gclient.TokenClientParam SPECIALTY = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_SPECIALTY); 2138 2139 /** 2140 * Search parameter: <b>role</b> 2141 * <p> 2142 * Description: <b>The practitioner can perform this role at for the organization</b><br> 2143 * Type: <b>token</b><br> 2144 * Path: <b>PractitionerRole.code</b><br> 2145 * </p> 2146 */ 2147 @SearchParamDefinition(name="role", path="PractitionerRole.code", description="The practitioner can perform this role at for the organization", type="token" ) 2148 public static final String SP_ROLE = "role"; 2149 /** 2150 * <b>Fluent Client</b> search parameter constant for <b>role</b> 2151 * <p> 2152 * Description: <b>The practitioner can perform this role at for the organization</b><br> 2153 * Type: <b>token</b><br> 2154 * Path: <b>PractitionerRole.code</b><br> 2155 * </p> 2156 */ 2157 public static final ca.uhn.fhir.rest.gclient.TokenClientParam ROLE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_ROLE); 2158 2159 /** 2160 * Search parameter: <b>practitioner</b> 2161 * <p> 2162 * Description: <b>Practitioner that is able to provide the defined services for the organization</b><br> 2163 * Type: <b>reference</b><br> 2164 * Path: <b>PractitionerRole.practitioner</b><br> 2165 * </p> 2166 */ 2167 @SearchParamDefinition(name="practitioner", path="PractitionerRole.practitioner", description="Practitioner that is able to provide the defined services for the organization", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Practitioner") }, target={Practitioner.class } ) 2168 public static final String SP_PRACTITIONER = "practitioner"; 2169 /** 2170 * <b>Fluent Client</b> search parameter constant for <b>practitioner</b> 2171 * <p> 2172 * Description: <b>Practitioner that is able to provide the defined services for the organization</b><br> 2173 * Type: <b>reference</b><br> 2174 * Path: <b>PractitionerRole.practitioner</b><br> 2175 * </p> 2176 */ 2177 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PRACTITIONER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PRACTITIONER); 2178 2179/** 2180 * Constant for fluent queries to be used to add include statements. Specifies 2181 * the path value of "<b>PractitionerRole:practitioner</b>". 2182 */ 2183 public static final ca.uhn.fhir.model.api.Include INCLUDE_PRACTITIONER = new ca.uhn.fhir.model.api.Include("PractitionerRole:practitioner").toLocked(); 2184 2185 /** 2186 * Search parameter: <b>active</b> 2187 * <p> 2188 * Description: <b>Whether this practitioner role record is in active use</b><br> 2189 * Type: <b>token</b><br> 2190 * Path: <b>PractitionerRole.active</b><br> 2191 * </p> 2192 */ 2193 @SearchParamDefinition(name="active", path="PractitionerRole.active", description="Whether this practitioner role record is in active use", type="token" ) 2194 public static final String SP_ACTIVE = "active"; 2195 /** 2196 * <b>Fluent Client</b> search parameter constant for <b>active</b> 2197 * <p> 2198 * Description: <b>Whether this practitioner role record is in active use</b><br> 2199 * Type: <b>token</b><br> 2200 * Path: <b>PractitionerRole.active</b><br> 2201 * </p> 2202 */ 2203 public static final ca.uhn.fhir.rest.gclient.TokenClientParam ACTIVE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_ACTIVE); 2204 2205 /** 2206 * Search parameter: <b>endpoint</b> 2207 * <p> 2208 * Description: <b>Technical endpoints providing access to services operated for the practitioner with this role</b><br> 2209 * Type: <b>reference</b><br> 2210 * Path: <b>PractitionerRole.endpoint</b><br> 2211 * </p> 2212 */ 2213 @SearchParamDefinition(name="endpoint", path="PractitionerRole.endpoint", description="Technical endpoints providing access to services operated for the practitioner with this role", type="reference", target={Endpoint.class } ) 2214 public static final String SP_ENDPOINT = "endpoint"; 2215 /** 2216 * <b>Fluent Client</b> search parameter constant for <b>endpoint</b> 2217 * <p> 2218 * Description: <b>Technical endpoints providing access to services operated for the practitioner with this role</b><br> 2219 * Type: <b>reference</b><br> 2220 * Path: <b>PractitionerRole.endpoint</b><br> 2221 * </p> 2222 */ 2223 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ENDPOINT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ENDPOINT); 2224 2225/** 2226 * Constant for fluent queries to be used to add include statements. Specifies 2227 * the path value of "<b>PractitionerRole:endpoint</b>". 2228 */ 2229 public static final ca.uhn.fhir.model.api.Include INCLUDE_ENDPOINT = new ca.uhn.fhir.model.api.Include("PractitionerRole:endpoint").toLocked(); 2230 2231 /** 2232 * Search parameter: <b>phone</b> 2233 * <p> 2234 * Description: <b>A value in a phone contact</b><br> 2235 * Type: <b>token</b><br> 2236 * Path: <b>PractitionerRole.telecom(system=phone)</b><br> 2237 * </p> 2238 */ 2239 @SearchParamDefinition(name="phone", path="PractitionerRole.telecom.where(system='phone')", description="A value in a phone contact", type="token" ) 2240 public static final String SP_PHONE = "phone"; 2241 /** 2242 * <b>Fluent Client</b> search parameter constant for <b>phone</b> 2243 * <p> 2244 * Description: <b>A value in a phone contact</b><br> 2245 * Type: <b>token</b><br> 2246 * Path: <b>PractitionerRole.telecom(system=phone)</b><br> 2247 * </p> 2248 */ 2249 public static final ca.uhn.fhir.rest.gclient.TokenClientParam PHONE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_PHONE); 2250 2251 /** 2252 * Search parameter: <b>service</b> 2253 * <p> 2254 * Description: <b>The list of healthcare services that this worker provides for this role's Organization/Location(s)</b><br> 2255 * Type: <b>reference</b><br> 2256 * Path: <b>PractitionerRole.healthcareService</b><br> 2257 * </p> 2258 */ 2259 @SearchParamDefinition(name="service", path="PractitionerRole.healthcareService", description="The list of healthcare services that this worker provides for this role's Organization/Location(s)", type="reference", target={HealthcareService.class } ) 2260 public static final String SP_SERVICE = "service"; 2261 /** 2262 * <b>Fluent Client</b> search parameter constant for <b>service</b> 2263 * <p> 2264 * Description: <b>The list of healthcare services that this worker provides for this role's Organization/Location(s)</b><br> 2265 * Type: <b>reference</b><br> 2266 * Path: <b>PractitionerRole.healthcareService</b><br> 2267 * </p> 2268 */ 2269 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SERVICE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SERVICE); 2270 2271/** 2272 * Constant for fluent queries to be used to add include statements. Specifies 2273 * the path value of "<b>PractitionerRole:service</b>". 2274 */ 2275 public static final ca.uhn.fhir.model.api.Include INCLUDE_SERVICE = new ca.uhn.fhir.model.api.Include("PractitionerRole:service").toLocked(); 2276 2277 /** 2278 * Search parameter: <b>organization</b> 2279 * <p> 2280 * Description: <b>The identity of the organization the practitioner represents / acts on behalf of</b><br> 2281 * Type: <b>reference</b><br> 2282 * Path: <b>PractitionerRole.organization</b><br> 2283 * </p> 2284 */ 2285 @SearchParamDefinition(name="organization", path="PractitionerRole.organization", description="The identity of the organization the practitioner represents / acts on behalf of", type="reference", target={Organization.class } ) 2286 public static final String SP_ORGANIZATION = "organization"; 2287 /** 2288 * <b>Fluent Client</b> search parameter constant for <b>organization</b> 2289 * <p> 2290 * Description: <b>The identity of the organization the practitioner represents / acts on behalf of</b><br> 2291 * Type: <b>reference</b><br> 2292 * Path: <b>PractitionerRole.organization</b><br> 2293 * </p> 2294 */ 2295 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ORGANIZATION = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ORGANIZATION); 2296 2297/** 2298 * Constant for fluent queries to be used to add include statements. Specifies 2299 * the path value of "<b>PractitionerRole:organization</b>". 2300 */ 2301 public static final ca.uhn.fhir.model.api.Include INCLUDE_ORGANIZATION = new ca.uhn.fhir.model.api.Include("PractitionerRole:organization").toLocked(); 2302 2303 /** 2304 * Search parameter: <b>telecom</b> 2305 * <p> 2306 * Description: <b>The value in any kind of contact</b><br> 2307 * Type: <b>token</b><br> 2308 * Path: <b>PractitionerRole.telecom</b><br> 2309 * </p> 2310 */ 2311 @SearchParamDefinition(name="telecom", path="PractitionerRole.telecom", description="The value in any kind of contact", type="token" ) 2312 public static final String SP_TELECOM = "telecom"; 2313 /** 2314 * <b>Fluent Client</b> search parameter constant for <b>telecom</b> 2315 * <p> 2316 * Description: <b>The value in any kind of contact</b><br> 2317 * Type: <b>token</b><br> 2318 * Path: <b>PractitionerRole.telecom</b><br> 2319 * </p> 2320 */ 2321 public static final ca.uhn.fhir.rest.gclient.TokenClientParam TELECOM = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TELECOM); 2322 2323 /** 2324 * Search parameter: <b>location</b> 2325 * <p> 2326 * Description: <b>One of the locations at which this practitioner provides care</b><br> 2327 * Type: <b>reference</b><br> 2328 * Path: <b>PractitionerRole.location</b><br> 2329 * </p> 2330 */ 2331 @SearchParamDefinition(name="location", path="PractitionerRole.location", description="One of the locations at which this practitioner provides care", type="reference", target={Location.class } ) 2332 public static final String SP_LOCATION = "location"; 2333 /** 2334 * <b>Fluent Client</b> search parameter constant for <b>location</b> 2335 * <p> 2336 * Description: <b>One of the locations at which this practitioner provides care</b><br> 2337 * Type: <b>reference</b><br> 2338 * Path: <b>PractitionerRole.location</b><br> 2339 * </p> 2340 */ 2341 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam LOCATION = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_LOCATION); 2342 2343/** 2344 * Constant for fluent queries to be used to add include statements. Specifies 2345 * the path value of "<b>PractitionerRole:location</b>". 2346 */ 2347 public static final ca.uhn.fhir.model.api.Include INCLUDE_LOCATION = new ca.uhn.fhir.model.api.Include("PractitionerRole:location").toLocked(); 2348 2349 /** 2350 * Search parameter: <b>email</b> 2351 * <p> 2352 * Description: <b>A value in an email contact</b><br> 2353 * Type: <b>token</b><br> 2354 * Path: <b>PractitionerRole.telecom(system=email)</b><br> 2355 * </p> 2356 */ 2357 @SearchParamDefinition(name="email", path="PractitionerRole.telecom.where(system='email')", description="A value in an email contact", type="token" ) 2358 public static final String SP_EMAIL = "email"; 2359 /** 2360 * <b>Fluent Client</b> search parameter constant for <b>email</b> 2361 * <p> 2362 * Description: <b>A value in an email contact</b><br> 2363 * Type: <b>token</b><br> 2364 * Path: <b>PractitionerRole.telecom(system=email)</b><br> 2365 * </p> 2366 */ 2367 public static final ca.uhn.fhir.rest.gclient.TokenClientParam EMAIL = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_EMAIL); 2368 2369 2370} 2371