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