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