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