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