001package org.hl7.fhir.dstu2016may.model; 002 003/* 004 Copyright (c) 2011+, HL7, Inc. 005 All rights reserved. 006 007 Redistribution and use in source and binary forms, with or without modification, 008 are permitted provided that the following conditions are met: 009 010 * Redistributions of source code must retain the above copyright notice, this 011 list of conditions and the following disclaimer. 012 * Redistributions in binary form must reproduce the above copyright notice, 013 this list of conditions and the following disclaimer in the documentation 014 and/or other materials provided with the distribution. 015 * Neither the name of HL7 nor the names of its contributors may be used to 016 endorse or promote products derived from this software without specific 017 prior written permission. 018 019 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 020 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 021 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 022 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 023 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 024 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 025 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 026 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 027 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 028 POSSIBILITY OF SUCH DAMAGE. 029 030*/ 031 032// Generated on Sun, May 8, 2016 03:05+1000 for FHIR v1.4.0 033import java.util.ArrayList; 034import java.util.List; 035 036import org.hl7.fhir.exceptions.FHIRException; 037import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 038import org.hl7.fhir.utilities.Utilities; 039 040import ca.uhn.fhir.model.api.annotation.Block; 041import ca.uhn.fhir.model.api.annotation.Child; 042import ca.uhn.fhir.model.api.annotation.Description; 043import ca.uhn.fhir.model.api.annotation.ResourceDef; 044import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 045/** 046 * A specific set of Roles/Locations/specialties/services that a practitioner may perform at an organization for a period of time. 047 */ 048@ResourceDef(name="PractitionerRole", profile="http://hl7.org/fhir/Profile/PractitionerRole") 049public class PractitionerRole extends DomainResource { 050 051 @Block() 052 public static class PractitionerRoleAvailableTimeComponent extends BackboneElement implements IBaseBackboneElement { 053 /** 054 * Indicates which days of the week are available between the start and end Times. 055 */ 056 @Child(name = "daysOfWeek", type = {CodeType.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 057 @Description(shortDefinition="mon | tue | wed | thu | fri | sat | sun", formalDefinition="Indicates which days of the week are available between the start and end Times." ) 058 protected List<CodeType> daysOfWeek; 059 060 /** 061 * Is this always available? (hence times are irrelevant) e.g. 24 hour service. 062 */ 063 @Child(name = "allDay", type = {BooleanType.class}, order=2, min=0, max=1, modifier=false, summary=false) 064 @Description(shortDefinition="Always available? e.g. 24 hour service", formalDefinition="Is this always available? (hence times are irrelevant) e.g. 24 hour service." ) 065 protected BooleanType allDay; 066 067 /** 068 * The opening time of day. Note: If the AllDay flag is set, then this time is ignored. 069 */ 070 @Child(name = "availableStartTime", type = {TimeType.class}, order=3, min=0, max=1, modifier=false, summary=false) 071 @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." ) 072 protected TimeType availableStartTime; 073 074 /** 075 * The closing time of day. Note: If the AllDay flag is set, then this time is ignored. 076 */ 077 @Child(name = "availableEndTime", type = {TimeType.class}, order=4, min=0, max=1, modifier=false, summary=false) 078 @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." ) 079 protected TimeType availableEndTime; 080 081 private static final long serialVersionUID = 2079379177L; 082 083 /** 084 * Constructor 085 */ 086 public PractitionerRoleAvailableTimeComponent() { 087 super(); 088 } 089 090 /** 091 * @return {@link #daysOfWeek} (Indicates which days of the week are available between the start and end Times.) 092 */ 093 public List<CodeType> getDaysOfWeek() { 094 if (this.daysOfWeek == null) 095 this.daysOfWeek = new ArrayList<CodeType>(); 096 return this.daysOfWeek; 097 } 098 099 public boolean hasDaysOfWeek() { 100 if (this.daysOfWeek == null) 101 return false; 102 for (CodeType item : this.daysOfWeek) 103 if (!item.isEmpty()) 104 return true; 105 return false; 106 } 107 108 /** 109 * @return {@link #daysOfWeek} (Indicates which days of the week are available between the start and end Times.) 110 */ 111 // syntactic sugar 112 public CodeType addDaysOfWeekElement() {//2 113 CodeType t = new CodeType(); 114 if (this.daysOfWeek == null) 115 this.daysOfWeek = new ArrayList<CodeType>(); 116 this.daysOfWeek.add(t); 117 return t; 118 } 119 120 /** 121 * @param value {@link #daysOfWeek} (Indicates which days of the week are available between the start and end Times.) 122 */ 123 public PractitionerRoleAvailableTimeComponent addDaysOfWeek(String value) { //1 124 CodeType t = new CodeType(); 125 t.setValue(value); 126 if (this.daysOfWeek == null) 127 this.daysOfWeek = new ArrayList<CodeType>(); 128 this.daysOfWeek.add(t); 129 return this; 130 } 131 132 /** 133 * @param value {@link #daysOfWeek} (Indicates which days of the week are available between the start and end Times.) 134 */ 135 public boolean hasDaysOfWeek(String value) { 136 if (this.daysOfWeek == null) 137 return false; 138 for (CodeType v : this.daysOfWeek) 139 if (v.equals(value)) // code 140 return true; 141 return false; 142 } 143 144 /** 145 * @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 146 */ 147 public BooleanType getAllDayElement() { 148 if (this.allDay == null) 149 if (Configuration.errorOnAutoCreate()) 150 throw new Error("Attempt to auto-create PractitionerRoleAvailableTimeComponent.allDay"); 151 else if (Configuration.doAutoCreate()) 152 this.allDay = new BooleanType(); // bb 153 return this.allDay; 154 } 155 156 public boolean hasAllDayElement() { 157 return this.allDay != null && !this.allDay.isEmpty(); 158 } 159 160 public boolean hasAllDay() { 161 return this.allDay != null && !this.allDay.isEmpty(); 162 } 163 164 /** 165 * @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 166 */ 167 public PractitionerRoleAvailableTimeComponent setAllDayElement(BooleanType value) { 168 this.allDay = value; 169 return this; 170 } 171 172 /** 173 * @return Is this always available? (hence times are irrelevant) e.g. 24 hour service. 174 */ 175 public boolean getAllDay() { 176 return this.allDay == null || this.allDay.isEmpty() ? false : this.allDay.getValue(); 177 } 178 179 /** 180 * @param value Is this always available? (hence times are irrelevant) e.g. 24 hour service. 181 */ 182 public PractitionerRoleAvailableTimeComponent setAllDay(boolean value) { 183 if (this.allDay == null) 184 this.allDay = new BooleanType(); 185 this.allDay.setValue(value); 186 return this; 187 } 188 189 /** 190 * @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 191 */ 192 public TimeType getAvailableStartTimeElement() { 193 if (this.availableStartTime == null) 194 if (Configuration.errorOnAutoCreate()) 195 throw new Error("Attempt to auto-create PractitionerRoleAvailableTimeComponent.availableStartTime"); 196 else if (Configuration.doAutoCreate()) 197 this.availableStartTime = new TimeType(); // bb 198 return this.availableStartTime; 199 } 200 201 public boolean hasAvailableStartTimeElement() { 202 return this.availableStartTime != null && !this.availableStartTime.isEmpty(); 203 } 204 205 public boolean hasAvailableStartTime() { 206 return this.availableStartTime != null && !this.availableStartTime.isEmpty(); 207 } 208 209 /** 210 * @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 211 */ 212 public PractitionerRoleAvailableTimeComponent setAvailableStartTimeElement(TimeType value) { 213 this.availableStartTime = value; 214 return this; 215 } 216 217 /** 218 * @return The opening time of day. Note: If the AllDay flag is set, then this time is ignored. 219 */ 220 public String getAvailableStartTime() { 221 return this.availableStartTime == null ? null : this.availableStartTime.getValue(); 222 } 223 224 /** 225 * @param value The opening time of day. Note: If the AllDay flag is set, then this time is ignored. 226 */ 227 public PractitionerRoleAvailableTimeComponent setAvailableStartTime(String value) { 228 if (value == null) 229 this.availableStartTime = null; 230 else { 231 if (this.availableStartTime == null) 232 this.availableStartTime = new TimeType(); 233 this.availableStartTime.setValue(value); 234 } 235 return this; 236 } 237 238 /** 239 * @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 240 */ 241 public TimeType getAvailableEndTimeElement() { 242 if (this.availableEndTime == null) 243 if (Configuration.errorOnAutoCreate()) 244 throw new Error("Attempt to auto-create PractitionerRoleAvailableTimeComponent.availableEndTime"); 245 else if (Configuration.doAutoCreate()) 246 this.availableEndTime = new TimeType(); // bb 247 return this.availableEndTime; 248 } 249 250 public boolean hasAvailableEndTimeElement() { 251 return this.availableEndTime != null && !this.availableEndTime.isEmpty(); 252 } 253 254 public boolean hasAvailableEndTime() { 255 return this.availableEndTime != null && !this.availableEndTime.isEmpty(); 256 } 257 258 /** 259 * @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 260 */ 261 public PractitionerRoleAvailableTimeComponent setAvailableEndTimeElement(TimeType value) { 262 this.availableEndTime = value; 263 return this; 264 } 265 266 /** 267 * @return The closing time of day. Note: If the AllDay flag is set, then this time is ignored. 268 */ 269 public String getAvailableEndTime() { 270 return this.availableEndTime == null ? null : this.availableEndTime.getValue(); 271 } 272 273 /** 274 * @param value The closing time of day. Note: If the AllDay flag is set, then this time is ignored. 275 */ 276 public PractitionerRoleAvailableTimeComponent setAvailableEndTime(String value) { 277 if (value == null) 278 this.availableEndTime = null; 279 else { 280 if (this.availableEndTime == null) 281 this.availableEndTime = new TimeType(); 282 this.availableEndTime.setValue(value); 283 } 284 return this; 285 } 286 287 protected void listChildren(List<Property> childrenList) { 288 super.listChildren(childrenList); 289 childrenList.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)); 290 childrenList.add(new Property("allDay", "boolean", "Is this always available? (hence times are irrelevant) e.g. 24 hour service.", 0, java.lang.Integer.MAX_VALUE, allDay)); 291 childrenList.add(new Property("availableStartTime", "time", "The opening time of day. Note: If the AllDay flag is set, then this time is ignored.", 0, java.lang.Integer.MAX_VALUE, availableStartTime)); 292 childrenList.add(new Property("availableEndTime", "time", "The closing time of day. Note: If the AllDay flag is set, then this time is ignored.", 0, java.lang.Integer.MAX_VALUE, availableEndTime)); 293 } 294 295 @Override 296 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 297 switch (hash) { 298 case 68050338: /*daysOfWeek*/ return this.daysOfWeek == null ? new Base[0] : this.daysOfWeek.toArray(new Base[this.daysOfWeek.size()]); // CodeType 299 case -1414913477: /*allDay*/ return this.allDay == null ? new Base[0] : new Base[] {this.allDay}; // BooleanType 300 case -1039453818: /*availableStartTime*/ return this.availableStartTime == null ? new Base[0] : new Base[] {this.availableStartTime}; // TimeType 301 case 101151551: /*availableEndTime*/ return this.availableEndTime == null ? new Base[0] : new Base[] {this.availableEndTime}; // TimeType 302 default: return super.getProperty(hash, name, checkValid); 303 } 304 305 } 306 307 @Override 308 public void setProperty(int hash, String name, Base value) throws FHIRException { 309 switch (hash) { 310 case 68050338: // daysOfWeek 311 this.getDaysOfWeek().add(castToCode(value)); // CodeType 312 break; 313 case -1414913477: // allDay 314 this.allDay = castToBoolean(value); // BooleanType 315 break; 316 case -1039453818: // availableStartTime 317 this.availableStartTime = castToTime(value); // TimeType 318 break; 319 case 101151551: // availableEndTime 320 this.availableEndTime = castToTime(value); // TimeType 321 break; 322 default: super.setProperty(hash, name, value); 323 } 324 325 } 326 327 @Override 328 public void setProperty(String name, Base value) throws FHIRException { 329 if (name.equals("daysOfWeek")) 330 this.getDaysOfWeek().add(castToCode(value)); 331 else if (name.equals("allDay")) 332 this.allDay = castToBoolean(value); // BooleanType 333 else if (name.equals("availableStartTime")) 334 this.availableStartTime = castToTime(value); // TimeType 335 else if (name.equals("availableEndTime")) 336 this.availableEndTime = castToTime(value); // TimeType 337 else 338 super.setProperty(name, value); 339 } 340 341 @Override 342 public Base makeProperty(int hash, String name) throws FHIRException { 343 switch (hash) { 344 case 68050338: throw new FHIRException("Cannot make property daysOfWeek as it is not a complex type"); // CodeType 345 case -1414913477: throw new FHIRException("Cannot make property allDay as it is not a complex type"); // BooleanType 346 case -1039453818: throw new FHIRException("Cannot make property availableStartTime as it is not a complex type"); // TimeType 347 case 101151551: throw new FHIRException("Cannot make property availableEndTime as it is not a complex type"); // TimeType 348 default: return super.makeProperty(hash, name); 349 } 350 351 } 352 353 @Override 354 public Base addChild(String name) throws FHIRException { 355 if (name.equals("daysOfWeek")) { 356 throw new FHIRException("Cannot call addChild on a primitive type PractitionerRole.daysOfWeek"); 357 } 358 else if (name.equals("allDay")) { 359 throw new FHIRException("Cannot call addChild on a primitive type PractitionerRole.allDay"); 360 } 361 else if (name.equals("availableStartTime")) { 362 throw new FHIRException("Cannot call addChild on a primitive type PractitionerRole.availableStartTime"); 363 } 364 else if (name.equals("availableEndTime")) { 365 throw new FHIRException("Cannot call addChild on a primitive type PractitionerRole.availableEndTime"); 366 } 367 else 368 return super.addChild(name); 369 } 370 371 public PractitionerRoleAvailableTimeComponent copy() { 372 PractitionerRoleAvailableTimeComponent dst = new PractitionerRoleAvailableTimeComponent(); 373 copyValues(dst); 374 if (daysOfWeek != null) { 375 dst.daysOfWeek = new ArrayList<CodeType>(); 376 for (CodeType i : daysOfWeek) 377 dst.daysOfWeek.add(i.copy()); 378 }; 379 dst.allDay = allDay == null ? null : allDay.copy(); 380 dst.availableStartTime = availableStartTime == null ? null : availableStartTime.copy(); 381 dst.availableEndTime = availableEndTime == null ? null : availableEndTime.copy(); 382 return dst; 383 } 384 385 @Override 386 public boolean equalsDeep(Base other) { 387 if (!super.equalsDeep(other)) 388 return false; 389 if (!(other instanceof PractitionerRoleAvailableTimeComponent)) 390 return false; 391 PractitionerRoleAvailableTimeComponent o = (PractitionerRoleAvailableTimeComponent) other; 392 return compareDeep(daysOfWeek, o.daysOfWeek, true) && compareDeep(allDay, o.allDay, true) && compareDeep(availableStartTime, o.availableStartTime, true) 393 && compareDeep(availableEndTime, o.availableEndTime, true); 394 } 395 396 @Override 397 public boolean equalsShallow(Base other) { 398 if (!super.equalsShallow(other)) 399 return false; 400 if (!(other instanceof PractitionerRoleAvailableTimeComponent)) 401 return false; 402 PractitionerRoleAvailableTimeComponent o = (PractitionerRoleAvailableTimeComponent) other; 403 return compareValues(daysOfWeek, o.daysOfWeek, true) && compareValues(allDay, o.allDay, true) && compareValues(availableStartTime, o.availableStartTime, true) 404 && compareValues(availableEndTime, o.availableEndTime, true); 405 } 406 407 public boolean isEmpty() { 408 return super.isEmpty() && (daysOfWeek == null || daysOfWeek.isEmpty()) && (allDay == null || allDay.isEmpty()) 409 && (availableStartTime == null || availableStartTime.isEmpty()) && (availableEndTime == null || availableEndTime.isEmpty()) 410 ; 411 } 412 413 public String fhirType() { 414 return "PractitionerRole.availableTime"; 415 416 } 417 418 } 419 420 @Block() 421 public static class PractitionerRoleNotAvailableComponent extends BackboneElement implements IBaseBackboneElement { 422 /** 423 * The reason that can be presented to the user as to why this time is not available. 424 */ 425 @Child(name = "description", type = {StringType.class}, order=1, min=1, max=1, modifier=false, summary=false) 426 @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." ) 427 protected StringType description; 428 429 /** 430 * Service is not available (seasonally or for a public holiday) from this date. 431 */ 432 @Child(name = "during", type = {Period.class}, order=2, min=0, max=1, modifier=false, summary=false) 433 @Description(shortDefinition="Service not availablefrom this date", formalDefinition="Service is not available (seasonally or for a public holiday) from this date." ) 434 protected Period during; 435 436 private static final long serialVersionUID = 310849929L; 437 438 /** 439 * Constructor 440 */ 441 public PractitionerRoleNotAvailableComponent() { 442 super(); 443 } 444 445 /** 446 * Constructor 447 */ 448 public PractitionerRoleNotAvailableComponent(StringType description) { 449 super(); 450 this.description = description; 451 } 452 453 /** 454 * @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 455 */ 456 public StringType getDescriptionElement() { 457 if (this.description == null) 458 if (Configuration.errorOnAutoCreate()) 459 throw new Error("Attempt to auto-create PractitionerRoleNotAvailableComponent.description"); 460 else if (Configuration.doAutoCreate()) 461 this.description = new StringType(); // bb 462 return this.description; 463 } 464 465 public boolean hasDescriptionElement() { 466 return this.description != null && !this.description.isEmpty(); 467 } 468 469 public boolean hasDescription() { 470 return this.description != null && !this.description.isEmpty(); 471 } 472 473 /** 474 * @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 475 */ 476 public PractitionerRoleNotAvailableComponent setDescriptionElement(StringType value) { 477 this.description = value; 478 return this; 479 } 480 481 /** 482 * @return The reason that can be presented to the user as to why this time is not available. 483 */ 484 public String getDescription() { 485 return this.description == null ? null : this.description.getValue(); 486 } 487 488 /** 489 * @param value The reason that can be presented to the user as to why this time is not available. 490 */ 491 public PractitionerRoleNotAvailableComponent setDescription(String value) { 492 if (this.description == null) 493 this.description = new StringType(); 494 this.description.setValue(value); 495 return this; 496 } 497 498 /** 499 * @return {@link #during} (Service is not available (seasonally or for a public holiday) from this date.) 500 */ 501 public Period getDuring() { 502 if (this.during == null) 503 if (Configuration.errorOnAutoCreate()) 504 throw new Error("Attempt to auto-create PractitionerRoleNotAvailableComponent.during"); 505 else if (Configuration.doAutoCreate()) 506 this.during = new Period(); // cc 507 return this.during; 508 } 509 510 public boolean hasDuring() { 511 return this.during != null && !this.during.isEmpty(); 512 } 513 514 /** 515 * @param value {@link #during} (Service is not available (seasonally or for a public holiday) from this date.) 516 */ 517 public PractitionerRoleNotAvailableComponent setDuring(Period value) { 518 this.during = value; 519 return this; 520 } 521 522 protected void listChildren(List<Property> childrenList) { 523 super.listChildren(childrenList); 524 childrenList.add(new Property("description", "string", "The reason that can be presented to the user as to why this time is not available.", 0, java.lang.Integer.MAX_VALUE, description)); 525 childrenList.add(new Property("during", "Period", "Service is not available (seasonally or for a public holiday) from this date.", 0, java.lang.Integer.MAX_VALUE, during)); 526 } 527 528 @Override 529 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 530 switch (hash) { 531 case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // StringType 532 case -1320499647: /*during*/ return this.during == null ? new Base[0] : new Base[] {this.during}; // Period 533 default: return super.getProperty(hash, name, checkValid); 534 } 535 536 } 537 538 @Override 539 public void setProperty(int hash, String name, Base value) throws FHIRException { 540 switch (hash) { 541 case -1724546052: // description 542 this.description = castToString(value); // StringType 543 break; 544 case -1320499647: // during 545 this.during = castToPeriod(value); // Period 546 break; 547 default: super.setProperty(hash, name, value); 548 } 549 550 } 551 552 @Override 553 public void setProperty(String name, Base value) throws FHIRException { 554 if (name.equals("description")) 555 this.description = castToString(value); // StringType 556 else if (name.equals("during")) 557 this.during = castToPeriod(value); // Period 558 else 559 super.setProperty(name, value); 560 } 561 562 @Override 563 public Base makeProperty(int hash, String name) throws FHIRException { 564 switch (hash) { 565 case -1724546052: throw new FHIRException("Cannot make property description as it is not a complex type"); // StringType 566 case -1320499647: return getDuring(); // Period 567 default: return super.makeProperty(hash, name); 568 } 569 570 } 571 572 @Override 573 public Base addChild(String name) throws FHIRException { 574 if (name.equals("description")) { 575 throw new FHIRException("Cannot call addChild on a primitive type PractitionerRole.description"); 576 } 577 else if (name.equals("during")) { 578 this.during = new Period(); 579 return this.during; 580 } 581 else 582 return super.addChild(name); 583 } 584 585 public PractitionerRoleNotAvailableComponent copy() { 586 PractitionerRoleNotAvailableComponent dst = new PractitionerRoleNotAvailableComponent(); 587 copyValues(dst); 588 dst.description = description == null ? null : description.copy(); 589 dst.during = during == null ? null : during.copy(); 590 return dst; 591 } 592 593 @Override 594 public boolean equalsDeep(Base other) { 595 if (!super.equalsDeep(other)) 596 return false; 597 if (!(other instanceof PractitionerRoleNotAvailableComponent)) 598 return false; 599 PractitionerRoleNotAvailableComponent o = (PractitionerRoleNotAvailableComponent) other; 600 return compareDeep(description, o.description, true) && compareDeep(during, o.during, true); 601 } 602 603 @Override 604 public boolean equalsShallow(Base other) { 605 if (!super.equalsShallow(other)) 606 return false; 607 if (!(other instanceof PractitionerRoleNotAvailableComponent)) 608 return false; 609 PractitionerRoleNotAvailableComponent o = (PractitionerRoleNotAvailableComponent) other; 610 return compareValues(description, o.description, true); 611 } 612 613 public boolean isEmpty() { 614 return super.isEmpty() && (description == null || description.isEmpty()) && (during == null || during.isEmpty()) 615 ; 616 } 617 618 public String fhirType() { 619 return "PractitionerRole.notAvailable"; 620 621 } 622 623 } 624 625 /** 626 * Business Identifiers that are specific to a role/location. 627 */ 628 @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 629 @Description(shortDefinition="Business Identifiers that are specific to a role/location", formalDefinition="Business Identifiers that are specific to a role/location." ) 630 protected List<Identifier> identifier; 631 632 /** 633 * Whether this practitioner's record is in active use. 634 */ 635 @Child(name = "active", type = {BooleanType.class}, order=1, min=0, max=1, modifier=false, summary=true) 636 @Description(shortDefinition="Whether this practitioner's record is in active use", formalDefinition="Whether this practitioner's record is in active use." ) 637 protected BooleanType active; 638 639 /** 640 * Practitioner that is able to provide the defined services for the organation. 641 */ 642 @Child(name = "practitioner", type = {Practitioner.class}, order=2, min=0, max=1, modifier=false, summary=true) 643 @Description(shortDefinition="Practitioner that is able to provide the defined services for the organation", formalDefinition="Practitioner that is able to provide the defined services for the organation." ) 644 protected Reference practitioner; 645 646 /** 647 * The actual object that is the target of the reference (Practitioner that is able to provide the defined services for the organation.) 648 */ 649 protected Practitioner practitionerTarget; 650 651 /** 652 * The organization where the Practitioner performs the roles associated. 653 */ 654 @Child(name = "organization", type = {Organization.class}, order=3, min=0, max=1, modifier=false, summary=true) 655 @Description(shortDefinition="Organization where the roles are available", formalDefinition="The organization where the Practitioner performs the roles associated." ) 656 protected Reference organization; 657 658 /** 659 * The actual object that is the target of the reference (The organization where the Practitioner performs the roles associated.) 660 */ 661 protected Organization organizationTarget; 662 663 /** 664 * Roles which this practitioner is authorized to perform for the organization. 665 */ 666 @Child(name = "role", type = {CodeableConcept.class}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 667 @Description(shortDefinition="Roles which this practitioner may perform", formalDefinition="Roles which this practitioner is authorized to perform for the organization." ) 668 protected List<CodeableConcept> role; 669 670 /** 671 * Specific specialty of the practitioner. 672 */ 673 @Child(name = "specialty", type = {CodeableConcept.class}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 674 @Description(shortDefinition="Specific specialty of the practitioner", formalDefinition="Specific specialty of the practitioner." ) 675 protected List<CodeableConcept> specialty; 676 677 /** 678 * The location(s) at which this practitioner provides care. 679 */ 680 @Child(name = "location", type = {Location.class}, order=6, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 681 @Description(shortDefinition="The location(s) at which this practitioner provides care", formalDefinition="The location(s) at which this practitioner provides care." ) 682 protected List<Reference> location; 683 /** 684 * The actual objects that are the target of the reference (The location(s) at which this practitioner provides care.) 685 */ 686 protected List<Location> locationTarget; 687 688 689 /** 690 * The list of healthcare services that this worker provides for this role's Organization/Location(s). 691 */ 692 @Child(name = "healthcareService", type = {HealthcareService.class}, order=7, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 693 @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)." ) 694 protected List<Reference> healthcareService; 695 /** 696 * 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).) 697 */ 698 protected List<HealthcareService> healthcareServiceTarget; 699 700 701 /** 702 * Contact details that are specific to the role/location/service. 703 */ 704 @Child(name = "telecom", type = {ContactPoint.class}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 705 @Description(shortDefinition="Contact details that are specific to the role/location/service", formalDefinition="Contact details that are specific to the role/location/service." ) 706 protected List<ContactPoint> telecom; 707 708 /** 709 * The period during which the person is authorized to act as a practitioner in these role(s) for the organization. 710 */ 711 @Child(name = "period", type = {Period.class}, order=9, min=0, max=1, modifier=false, summary=true) 712 @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." ) 713 protected Period period; 714 715 /** 716 * A collection of times that the Service Site is available. 717 */ 718 @Child(name = "availableTime", type = {}, order=10, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 719 @Description(shortDefinition="Times the Service Site is available", formalDefinition="A collection of times that the Service Site is available." ) 720 protected List<PractitionerRoleAvailableTimeComponent> availableTime; 721 722 /** 723 * The HealthcareService is not available during this period of time due to the provided reason. 724 */ 725 @Child(name = "notAvailable", type = {}, order=11, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 726 @Description(shortDefinition="Not available during this time due to provided reason", formalDefinition="The HealthcareService is not available during this period of time due to the provided reason." ) 727 protected List<PractitionerRoleNotAvailableComponent> notAvailable; 728 729 /** 730 * 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. 731 */ 732 @Child(name = "availabilityExceptions", type = {StringType.class}, order=12, min=0, max=1, modifier=false, summary=false) 733 @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." ) 734 protected StringType availabilityExceptions; 735 736 private static final long serialVersionUID = -408504135L; 737 738 /** 739 * Constructor 740 */ 741 public PractitionerRole() { 742 super(); 743 } 744 745 /** 746 * @return {@link #identifier} (Business Identifiers that are specific to a role/location.) 747 */ 748 public List<Identifier> getIdentifier() { 749 if (this.identifier == null) 750 this.identifier = new ArrayList<Identifier>(); 751 return this.identifier; 752 } 753 754 public boolean hasIdentifier() { 755 if (this.identifier == null) 756 return false; 757 for (Identifier item : this.identifier) 758 if (!item.isEmpty()) 759 return true; 760 return false; 761 } 762 763 /** 764 * @return {@link #identifier} (Business Identifiers that are specific to a role/location.) 765 */ 766 // syntactic sugar 767 public Identifier addIdentifier() { //3 768 Identifier t = new Identifier(); 769 if (this.identifier == null) 770 this.identifier = new ArrayList<Identifier>(); 771 this.identifier.add(t); 772 return t; 773 } 774 775 // syntactic sugar 776 public PractitionerRole addIdentifier(Identifier t) { //3 777 if (t == null) 778 return this; 779 if (this.identifier == null) 780 this.identifier = new ArrayList<Identifier>(); 781 this.identifier.add(t); 782 return this; 783 } 784 785 /** 786 * @return {@link #active} (Whether this practitioner's record is in active use.). This is the underlying object with id, value and extensions. The accessor "getActive" gives direct access to the value 787 */ 788 public BooleanType getActiveElement() { 789 if (this.active == null) 790 if (Configuration.errorOnAutoCreate()) 791 throw new Error("Attempt to auto-create PractitionerRole.active"); 792 else if (Configuration.doAutoCreate()) 793 this.active = new BooleanType(); // bb 794 return this.active; 795 } 796 797 public boolean hasActiveElement() { 798 return this.active != null && !this.active.isEmpty(); 799 } 800 801 public boolean hasActive() { 802 return this.active != null && !this.active.isEmpty(); 803 } 804 805 /** 806 * @param value {@link #active} (Whether this practitioner's record is in active use.). This is the underlying object with id, value and extensions. The accessor "getActive" gives direct access to the value 807 */ 808 public PractitionerRole setActiveElement(BooleanType value) { 809 this.active = value; 810 return this; 811 } 812 813 /** 814 * @return Whether this practitioner's record is in active use. 815 */ 816 public boolean getActive() { 817 return this.active == null || this.active.isEmpty() ? false : this.active.getValue(); 818 } 819 820 /** 821 * @param value Whether this practitioner's record is in active use. 822 */ 823 public PractitionerRole setActive(boolean value) { 824 if (this.active == null) 825 this.active = new BooleanType(); 826 this.active.setValue(value); 827 return this; 828 } 829 830 /** 831 * @return {@link #practitioner} (Practitioner that is able to provide the defined services for the organation.) 832 */ 833 public Reference getPractitioner() { 834 if (this.practitioner == null) 835 if (Configuration.errorOnAutoCreate()) 836 throw new Error("Attempt to auto-create PractitionerRole.practitioner"); 837 else if (Configuration.doAutoCreate()) 838 this.practitioner = new Reference(); // cc 839 return this.practitioner; 840 } 841 842 public boolean hasPractitioner() { 843 return this.practitioner != null && !this.practitioner.isEmpty(); 844 } 845 846 /** 847 * @param value {@link #practitioner} (Practitioner that is able to provide the defined services for the organation.) 848 */ 849 public PractitionerRole setPractitioner(Reference value) { 850 this.practitioner = value; 851 return this; 852 } 853 854 /** 855 * @return {@link #practitioner} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Practitioner that is able to provide the defined services for the organation.) 856 */ 857 public Practitioner getPractitionerTarget() { 858 if (this.practitionerTarget == null) 859 if (Configuration.errorOnAutoCreate()) 860 throw new Error("Attempt to auto-create PractitionerRole.practitioner"); 861 else if (Configuration.doAutoCreate()) 862 this.practitionerTarget = new Practitioner(); // aa 863 return this.practitionerTarget; 864 } 865 866 /** 867 * @param value {@link #practitioner} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Practitioner that is able to provide the defined services for the organation.) 868 */ 869 public PractitionerRole setPractitionerTarget(Practitioner value) { 870 this.practitionerTarget = value; 871 return this; 872 } 873 874 /** 875 * @return {@link #organization} (The organization where the Practitioner performs the roles associated.) 876 */ 877 public Reference getOrganization() { 878 if (this.organization == null) 879 if (Configuration.errorOnAutoCreate()) 880 throw new Error("Attempt to auto-create PractitionerRole.organization"); 881 else if (Configuration.doAutoCreate()) 882 this.organization = new Reference(); // cc 883 return this.organization; 884 } 885 886 public boolean hasOrganization() { 887 return this.organization != null && !this.organization.isEmpty(); 888 } 889 890 /** 891 * @param value {@link #organization} (The organization where the Practitioner performs the roles associated.) 892 */ 893 public PractitionerRole setOrganization(Reference value) { 894 this.organization = value; 895 return this; 896 } 897 898 /** 899 * @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.) 900 */ 901 public Organization getOrganizationTarget() { 902 if (this.organizationTarget == null) 903 if (Configuration.errorOnAutoCreate()) 904 throw new Error("Attempt to auto-create PractitionerRole.organization"); 905 else if (Configuration.doAutoCreate()) 906 this.organizationTarget = new Organization(); // aa 907 return this.organizationTarget; 908 } 909 910 /** 911 * @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.) 912 */ 913 public PractitionerRole setOrganizationTarget(Organization value) { 914 this.organizationTarget = value; 915 return this; 916 } 917 918 /** 919 * @return {@link #role} (Roles which this practitioner is authorized to perform for the organization.) 920 */ 921 public List<CodeableConcept> getRole() { 922 if (this.role == null) 923 this.role = new ArrayList<CodeableConcept>(); 924 return this.role; 925 } 926 927 public boolean hasRole() { 928 if (this.role == null) 929 return false; 930 for (CodeableConcept item : this.role) 931 if (!item.isEmpty()) 932 return true; 933 return false; 934 } 935 936 /** 937 * @return {@link #role} (Roles which this practitioner is authorized to perform for the organization.) 938 */ 939 // syntactic sugar 940 public CodeableConcept addRole() { //3 941 CodeableConcept t = new CodeableConcept(); 942 if (this.role == null) 943 this.role = new ArrayList<CodeableConcept>(); 944 this.role.add(t); 945 return t; 946 } 947 948 // syntactic sugar 949 public PractitionerRole addRole(CodeableConcept t) { //3 950 if (t == null) 951 return this; 952 if (this.role == null) 953 this.role = new ArrayList<CodeableConcept>(); 954 this.role.add(t); 955 return this; 956 } 957 958 /** 959 * @return {@link #specialty} (Specific specialty of the practitioner.) 960 */ 961 public List<CodeableConcept> getSpecialty() { 962 if (this.specialty == null) 963 this.specialty = new ArrayList<CodeableConcept>(); 964 return this.specialty; 965 } 966 967 public boolean hasSpecialty() { 968 if (this.specialty == null) 969 return false; 970 for (CodeableConcept item : this.specialty) 971 if (!item.isEmpty()) 972 return true; 973 return false; 974 } 975 976 /** 977 * @return {@link #specialty} (Specific specialty of the practitioner.) 978 */ 979 // syntactic sugar 980 public CodeableConcept addSpecialty() { //3 981 CodeableConcept t = new CodeableConcept(); 982 if (this.specialty == null) 983 this.specialty = new ArrayList<CodeableConcept>(); 984 this.specialty.add(t); 985 return t; 986 } 987 988 // syntactic sugar 989 public PractitionerRole addSpecialty(CodeableConcept t) { //3 990 if (t == null) 991 return this; 992 if (this.specialty == null) 993 this.specialty = new ArrayList<CodeableConcept>(); 994 this.specialty.add(t); 995 return this; 996 } 997 998 /** 999 * @return {@link #location} (The location(s) at which this practitioner provides care.) 1000 */ 1001 public List<Reference> getLocation() { 1002 if (this.location == null) 1003 this.location = new ArrayList<Reference>(); 1004 return this.location; 1005 } 1006 1007 public boolean hasLocation() { 1008 if (this.location == null) 1009 return false; 1010 for (Reference item : this.location) 1011 if (!item.isEmpty()) 1012 return true; 1013 return false; 1014 } 1015 1016 /** 1017 * @return {@link #location} (The location(s) at which this practitioner provides care.) 1018 */ 1019 // syntactic sugar 1020 public Reference addLocation() { //3 1021 Reference t = new Reference(); 1022 if (this.location == null) 1023 this.location = new ArrayList<Reference>(); 1024 this.location.add(t); 1025 return t; 1026 } 1027 1028 // syntactic sugar 1029 public PractitionerRole addLocation(Reference t) { //3 1030 if (t == null) 1031 return this; 1032 if (this.location == null) 1033 this.location = new ArrayList<Reference>(); 1034 this.location.add(t); 1035 return this; 1036 } 1037 1038 /** 1039 * @return {@link #location} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. The location(s) at which this practitioner provides care.) 1040 */ 1041 public List<Location> getLocationTarget() { 1042 if (this.locationTarget == null) 1043 this.locationTarget = new ArrayList<Location>(); 1044 return this.locationTarget; 1045 } 1046 1047 // syntactic sugar 1048 /** 1049 * @return {@link #location} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. The location(s) at which this practitioner provides care.) 1050 */ 1051 public Location addLocationTarget() { 1052 Location r = new Location(); 1053 if (this.locationTarget == null) 1054 this.locationTarget = new ArrayList<Location>(); 1055 this.locationTarget.add(r); 1056 return r; 1057 } 1058 1059 /** 1060 * @return {@link #healthcareService} (The list of healthcare services that this worker provides for this role's Organization/Location(s).) 1061 */ 1062 public List<Reference> getHealthcareService() { 1063 if (this.healthcareService == null) 1064 this.healthcareService = new ArrayList<Reference>(); 1065 return this.healthcareService; 1066 } 1067 1068 public boolean hasHealthcareService() { 1069 if (this.healthcareService == null) 1070 return false; 1071 for (Reference item : this.healthcareService) 1072 if (!item.isEmpty()) 1073 return true; 1074 return false; 1075 } 1076 1077 /** 1078 * @return {@link #healthcareService} (The list of healthcare services that this worker provides for this role's Organization/Location(s).) 1079 */ 1080 // syntactic sugar 1081 public Reference addHealthcareService() { //3 1082 Reference t = new Reference(); 1083 if (this.healthcareService == null) 1084 this.healthcareService = new ArrayList<Reference>(); 1085 this.healthcareService.add(t); 1086 return t; 1087 } 1088 1089 // syntactic sugar 1090 public PractitionerRole addHealthcareService(Reference t) { //3 1091 if (t == null) 1092 return this; 1093 if (this.healthcareService == null) 1094 this.healthcareService = new ArrayList<Reference>(); 1095 this.healthcareService.add(t); 1096 return this; 1097 } 1098 1099 /** 1100 * @return {@link #healthcareService} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. The list of healthcare services that this worker provides for this role's Organization/Location(s).) 1101 */ 1102 public List<HealthcareService> getHealthcareServiceTarget() { 1103 if (this.healthcareServiceTarget == null) 1104 this.healthcareServiceTarget = new ArrayList<HealthcareService>(); 1105 return this.healthcareServiceTarget; 1106 } 1107 1108 // syntactic sugar 1109 /** 1110 * @return {@link #healthcareService} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. The list of healthcare services that this worker provides for this role's Organization/Location(s).) 1111 */ 1112 public HealthcareService addHealthcareServiceTarget() { 1113 HealthcareService r = new HealthcareService(); 1114 if (this.healthcareServiceTarget == null) 1115 this.healthcareServiceTarget = new ArrayList<HealthcareService>(); 1116 this.healthcareServiceTarget.add(r); 1117 return r; 1118 } 1119 1120 /** 1121 * @return {@link #telecom} (Contact details that are specific to the role/location/service.) 1122 */ 1123 public List<ContactPoint> getTelecom() { 1124 if (this.telecom == null) 1125 this.telecom = new ArrayList<ContactPoint>(); 1126 return this.telecom; 1127 } 1128 1129 public boolean hasTelecom() { 1130 if (this.telecom == null) 1131 return false; 1132 for (ContactPoint item : this.telecom) 1133 if (!item.isEmpty()) 1134 return true; 1135 return false; 1136 } 1137 1138 /** 1139 * @return {@link #telecom} (Contact details that are specific to the role/location/service.) 1140 */ 1141 // syntactic sugar 1142 public ContactPoint addTelecom() { //3 1143 ContactPoint t = new ContactPoint(); 1144 if (this.telecom == null) 1145 this.telecom = new ArrayList<ContactPoint>(); 1146 this.telecom.add(t); 1147 return t; 1148 } 1149 1150 // syntactic sugar 1151 public PractitionerRole addTelecom(ContactPoint t) { //3 1152 if (t == null) 1153 return this; 1154 if (this.telecom == null) 1155 this.telecom = new ArrayList<ContactPoint>(); 1156 this.telecom.add(t); 1157 return this; 1158 } 1159 1160 /** 1161 * @return {@link #period} (The period during which the person is authorized to act as a practitioner in these role(s) for the organization.) 1162 */ 1163 public Period getPeriod() { 1164 if (this.period == null) 1165 if (Configuration.errorOnAutoCreate()) 1166 throw new Error("Attempt to auto-create PractitionerRole.period"); 1167 else if (Configuration.doAutoCreate()) 1168 this.period = new Period(); // cc 1169 return this.period; 1170 } 1171 1172 public boolean hasPeriod() { 1173 return this.period != null && !this.period.isEmpty(); 1174 } 1175 1176 /** 1177 * @param value {@link #period} (The period during which the person is authorized to act as a practitioner in these role(s) for the organization.) 1178 */ 1179 public PractitionerRole setPeriod(Period value) { 1180 this.period = value; 1181 return this; 1182 } 1183 1184 /** 1185 * @return {@link #availableTime} (A collection of times that the Service Site is available.) 1186 */ 1187 public List<PractitionerRoleAvailableTimeComponent> getAvailableTime() { 1188 if (this.availableTime == null) 1189 this.availableTime = new ArrayList<PractitionerRoleAvailableTimeComponent>(); 1190 return this.availableTime; 1191 } 1192 1193 public boolean hasAvailableTime() { 1194 if (this.availableTime == null) 1195 return false; 1196 for (PractitionerRoleAvailableTimeComponent item : this.availableTime) 1197 if (!item.isEmpty()) 1198 return true; 1199 return false; 1200 } 1201 1202 /** 1203 * @return {@link #availableTime} (A collection of times that the Service Site is available.) 1204 */ 1205 // syntactic sugar 1206 public PractitionerRoleAvailableTimeComponent addAvailableTime() { //3 1207 PractitionerRoleAvailableTimeComponent t = new PractitionerRoleAvailableTimeComponent(); 1208 if (this.availableTime == null) 1209 this.availableTime = new ArrayList<PractitionerRoleAvailableTimeComponent>(); 1210 this.availableTime.add(t); 1211 return t; 1212 } 1213 1214 // syntactic sugar 1215 public PractitionerRole addAvailableTime(PractitionerRoleAvailableTimeComponent t) { //3 1216 if (t == null) 1217 return this; 1218 if (this.availableTime == null) 1219 this.availableTime = new ArrayList<PractitionerRoleAvailableTimeComponent>(); 1220 this.availableTime.add(t); 1221 return this; 1222 } 1223 1224 /** 1225 * @return {@link #notAvailable} (The HealthcareService is not available during this period of time due to the provided reason.) 1226 */ 1227 public List<PractitionerRoleNotAvailableComponent> getNotAvailable() { 1228 if (this.notAvailable == null) 1229 this.notAvailable = new ArrayList<PractitionerRoleNotAvailableComponent>(); 1230 return this.notAvailable; 1231 } 1232 1233 public boolean hasNotAvailable() { 1234 if (this.notAvailable == null) 1235 return false; 1236 for (PractitionerRoleNotAvailableComponent item : this.notAvailable) 1237 if (!item.isEmpty()) 1238 return true; 1239 return false; 1240 } 1241 1242 /** 1243 * @return {@link #notAvailable} (The HealthcareService is not available during this period of time due to the provided reason.) 1244 */ 1245 // syntactic sugar 1246 public PractitionerRoleNotAvailableComponent addNotAvailable() { //3 1247 PractitionerRoleNotAvailableComponent t = new PractitionerRoleNotAvailableComponent(); 1248 if (this.notAvailable == null) 1249 this.notAvailable = new ArrayList<PractitionerRoleNotAvailableComponent>(); 1250 this.notAvailable.add(t); 1251 return t; 1252 } 1253 1254 // syntactic sugar 1255 public PractitionerRole addNotAvailable(PractitionerRoleNotAvailableComponent t) { //3 1256 if (t == null) 1257 return this; 1258 if (this.notAvailable == null) 1259 this.notAvailable = new ArrayList<PractitionerRoleNotAvailableComponent>(); 1260 this.notAvailable.add(t); 1261 return this; 1262 } 1263 1264 /** 1265 * @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 1266 */ 1267 public StringType getAvailabilityExceptionsElement() { 1268 if (this.availabilityExceptions == null) 1269 if (Configuration.errorOnAutoCreate()) 1270 throw new Error("Attempt to auto-create PractitionerRole.availabilityExceptions"); 1271 else if (Configuration.doAutoCreate()) 1272 this.availabilityExceptions = new StringType(); // bb 1273 return this.availabilityExceptions; 1274 } 1275 1276 public boolean hasAvailabilityExceptionsElement() { 1277 return this.availabilityExceptions != null && !this.availabilityExceptions.isEmpty(); 1278 } 1279 1280 public boolean hasAvailabilityExceptions() { 1281 return this.availabilityExceptions != null && !this.availabilityExceptions.isEmpty(); 1282 } 1283 1284 /** 1285 * @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 1286 */ 1287 public PractitionerRole setAvailabilityExceptionsElement(StringType value) { 1288 this.availabilityExceptions = value; 1289 return this; 1290 } 1291 1292 /** 1293 * @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. 1294 */ 1295 public String getAvailabilityExceptions() { 1296 return this.availabilityExceptions == null ? null : this.availabilityExceptions.getValue(); 1297 } 1298 1299 /** 1300 * @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. 1301 */ 1302 public PractitionerRole setAvailabilityExceptions(String value) { 1303 if (Utilities.noString(value)) 1304 this.availabilityExceptions = null; 1305 else { 1306 if (this.availabilityExceptions == null) 1307 this.availabilityExceptions = new StringType(); 1308 this.availabilityExceptions.setValue(value); 1309 } 1310 return this; 1311 } 1312 1313 protected void listChildren(List<Property> childrenList) { 1314 super.listChildren(childrenList); 1315 childrenList.add(new Property("identifier", "Identifier", "Business Identifiers that are specific to a role/location.", 0, java.lang.Integer.MAX_VALUE, identifier)); 1316 childrenList.add(new Property("active", "boolean", "Whether this practitioner's record is in active use.", 0, java.lang.Integer.MAX_VALUE, active)); 1317 childrenList.add(new Property("practitioner", "Reference(Practitioner)", "Practitioner that is able to provide the defined services for the organation.", 0, java.lang.Integer.MAX_VALUE, practitioner)); 1318 childrenList.add(new Property("organization", "Reference(Organization)", "The organization where the Practitioner performs the roles associated.", 0, java.lang.Integer.MAX_VALUE, organization)); 1319 childrenList.add(new Property("role", "CodeableConcept", "Roles which this practitioner is authorized to perform for the organization.", 0, java.lang.Integer.MAX_VALUE, role)); 1320 childrenList.add(new Property("specialty", "CodeableConcept", "Specific specialty of the practitioner.", 0, java.lang.Integer.MAX_VALUE, specialty)); 1321 childrenList.add(new Property("location", "Reference(Location)", "The location(s) at which this practitioner provides care.", 0, java.lang.Integer.MAX_VALUE, location)); 1322 childrenList.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)); 1323 childrenList.add(new Property("telecom", "ContactPoint", "Contact details that are specific to the role/location/service.", 0, java.lang.Integer.MAX_VALUE, telecom)); 1324 childrenList.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, java.lang.Integer.MAX_VALUE, period)); 1325 childrenList.add(new Property("availableTime", "", "A collection of times that the Service Site is available.", 0, java.lang.Integer.MAX_VALUE, availableTime)); 1326 childrenList.add(new Property("notAvailable", "", "The HealthcareService is not available during this period of time due to the provided reason.", 0, java.lang.Integer.MAX_VALUE, notAvailable)); 1327 childrenList.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, java.lang.Integer.MAX_VALUE, availabilityExceptions)); 1328 } 1329 1330 @Override 1331 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1332 switch (hash) { 1333 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 1334 case -1422950650: /*active*/ return this.active == null ? new Base[0] : new Base[] {this.active}; // BooleanType 1335 case 574573338: /*practitioner*/ return this.practitioner == null ? new Base[0] : new Base[] {this.practitioner}; // Reference 1336 case 1178922291: /*organization*/ return this.organization == null ? new Base[0] : new Base[] {this.organization}; // Reference 1337 case 3506294: /*role*/ return this.role == null ? new Base[0] : this.role.toArray(new Base[this.role.size()]); // CodeableConcept 1338 case -1694759682: /*specialty*/ return this.specialty == null ? new Base[0] : this.specialty.toArray(new Base[this.specialty.size()]); // CodeableConcept 1339 case 1901043637: /*location*/ return this.location == null ? new Base[0] : this.location.toArray(new Base[this.location.size()]); // Reference 1340 case 1289661064: /*healthcareService*/ return this.healthcareService == null ? new Base[0] : this.healthcareService.toArray(new Base[this.healthcareService.size()]); // Reference 1341 case -1429363305: /*telecom*/ return this.telecom == null ? new Base[0] : this.telecom.toArray(new Base[this.telecom.size()]); // ContactPoint 1342 case -991726143: /*period*/ return this.period == null ? new Base[0] : new Base[] {this.period}; // Period 1343 case 1873069366: /*availableTime*/ return this.availableTime == null ? new Base[0] : this.availableTime.toArray(new Base[this.availableTime.size()]); // PractitionerRoleAvailableTimeComponent 1344 case -629572298: /*notAvailable*/ return this.notAvailable == null ? new Base[0] : this.notAvailable.toArray(new Base[this.notAvailable.size()]); // PractitionerRoleNotAvailableComponent 1345 case -1149143617: /*availabilityExceptions*/ return this.availabilityExceptions == null ? new Base[0] : new Base[] {this.availabilityExceptions}; // StringType 1346 default: return super.getProperty(hash, name, checkValid); 1347 } 1348 1349 } 1350 1351 @Override 1352 public void setProperty(int hash, String name, Base value) throws FHIRException { 1353 switch (hash) { 1354 case -1618432855: // identifier 1355 this.getIdentifier().add(castToIdentifier(value)); // Identifier 1356 break; 1357 case -1422950650: // active 1358 this.active = castToBoolean(value); // BooleanType 1359 break; 1360 case 574573338: // practitioner 1361 this.practitioner = castToReference(value); // Reference 1362 break; 1363 case 1178922291: // organization 1364 this.organization = castToReference(value); // Reference 1365 break; 1366 case 3506294: // role 1367 this.getRole().add(castToCodeableConcept(value)); // CodeableConcept 1368 break; 1369 case -1694759682: // specialty 1370 this.getSpecialty().add(castToCodeableConcept(value)); // CodeableConcept 1371 break; 1372 case 1901043637: // location 1373 this.getLocation().add(castToReference(value)); // Reference 1374 break; 1375 case 1289661064: // healthcareService 1376 this.getHealthcareService().add(castToReference(value)); // Reference 1377 break; 1378 case -1429363305: // telecom 1379 this.getTelecom().add(castToContactPoint(value)); // ContactPoint 1380 break; 1381 case -991726143: // period 1382 this.period = castToPeriod(value); // Period 1383 break; 1384 case 1873069366: // availableTime 1385 this.getAvailableTime().add((PractitionerRoleAvailableTimeComponent) value); // PractitionerRoleAvailableTimeComponent 1386 break; 1387 case -629572298: // notAvailable 1388 this.getNotAvailable().add((PractitionerRoleNotAvailableComponent) value); // PractitionerRoleNotAvailableComponent 1389 break; 1390 case -1149143617: // availabilityExceptions 1391 this.availabilityExceptions = castToString(value); // StringType 1392 break; 1393 default: super.setProperty(hash, name, value); 1394 } 1395 1396 } 1397 1398 @Override 1399 public void setProperty(String name, Base value) throws FHIRException { 1400 if (name.equals("identifier")) 1401 this.getIdentifier().add(castToIdentifier(value)); 1402 else if (name.equals("active")) 1403 this.active = castToBoolean(value); // BooleanType 1404 else if (name.equals("practitioner")) 1405 this.practitioner = castToReference(value); // Reference 1406 else if (name.equals("organization")) 1407 this.organization = castToReference(value); // Reference 1408 else if (name.equals("role")) 1409 this.getRole().add(castToCodeableConcept(value)); 1410 else if (name.equals("specialty")) 1411 this.getSpecialty().add(castToCodeableConcept(value)); 1412 else if (name.equals("location")) 1413 this.getLocation().add(castToReference(value)); 1414 else if (name.equals("healthcareService")) 1415 this.getHealthcareService().add(castToReference(value)); 1416 else if (name.equals("telecom")) 1417 this.getTelecom().add(castToContactPoint(value)); 1418 else if (name.equals("period")) 1419 this.period = castToPeriod(value); // Period 1420 else if (name.equals("availableTime")) 1421 this.getAvailableTime().add((PractitionerRoleAvailableTimeComponent) value); 1422 else if (name.equals("notAvailable")) 1423 this.getNotAvailable().add((PractitionerRoleNotAvailableComponent) value); 1424 else if (name.equals("availabilityExceptions")) 1425 this.availabilityExceptions = castToString(value); // StringType 1426 else 1427 super.setProperty(name, value); 1428 } 1429 1430 @Override 1431 public Base makeProperty(int hash, String name) throws FHIRException { 1432 switch (hash) { 1433 case -1618432855: return addIdentifier(); // Identifier 1434 case -1422950650: throw new FHIRException("Cannot make property active as it is not a complex type"); // BooleanType 1435 case 574573338: return getPractitioner(); // Reference 1436 case 1178922291: return getOrganization(); // Reference 1437 case 3506294: return addRole(); // CodeableConcept 1438 case -1694759682: return addSpecialty(); // CodeableConcept 1439 case 1901043637: return addLocation(); // Reference 1440 case 1289661064: return addHealthcareService(); // Reference 1441 case -1429363305: return addTelecom(); // ContactPoint 1442 case -991726143: return getPeriod(); // Period 1443 case 1873069366: return addAvailableTime(); // PractitionerRoleAvailableTimeComponent 1444 case -629572298: return addNotAvailable(); // PractitionerRoleNotAvailableComponent 1445 case -1149143617: throw new FHIRException("Cannot make property availabilityExceptions as it is not a complex type"); // StringType 1446 default: return super.makeProperty(hash, name); 1447 } 1448 1449 } 1450 1451 @Override 1452 public Base addChild(String name) throws FHIRException { 1453 if (name.equals("identifier")) { 1454 return addIdentifier(); 1455 } 1456 else if (name.equals("active")) { 1457 throw new FHIRException("Cannot call addChild on a primitive type PractitionerRole.active"); 1458 } 1459 else if (name.equals("practitioner")) { 1460 this.practitioner = new Reference(); 1461 return this.practitioner; 1462 } 1463 else if (name.equals("organization")) { 1464 this.organization = new Reference(); 1465 return this.organization; 1466 } 1467 else if (name.equals("role")) { 1468 return addRole(); 1469 } 1470 else if (name.equals("specialty")) { 1471 return addSpecialty(); 1472 } 1473 else if (name.equals("location")) { 1474 return addLocation(); 1475 } 1476 else if (name.equals("healthcareService")) { 1477 return addHealthcareService(); 1478 } 1479 else if (name.equals("telecom")) { 1480 return addTelecom(); 1481 } 1482 else if (name.equals("period")) { 1483 this.period = new Period(); 1484 return this.period; 1485 } 1486 else if (name.equals("availableTime")) { 1487 return addAvailableTime(); 1488 } 1489 else if (name.equals("notAvailable")) { 1490 return addNotAvailable(); 1491 } 1492 else if (name.equals("availabilityExceptions")) { 1493 throw new FHIRException("Cannot call addChild on a primitive type PractitionerRole.availabilityExceptions"); 1494 } 1495 else 1496 return super.addChild(name); 1497 } 1498 1499 public String fhirType() { 1500 return "PractitionerRole"; 1501 1502 } 1503 1504 public PractitionerRole copy() { 1505 PractitionerRole dst = new PractitionerRole(); 1506 copyValues(dst); 1507 if (identifier != null) { 1508 dst.identifier = new ArrayList<Identifier>(); 1509 for (Identifier i : identifier) 1510 dst.identifier.add(i.copy()); 1511 }; 1512 dst.active = active == null ? null : active.copy(); 1513 dst.practitioner = practitioner == null ? null : practitioner.copy(); 1514 dst.organization = organization == null ? null : organization.copy(); 1515 if (role != null) { 1516 dst.role = new ArrayList<CodeableConcept>(); 1517 for (CodeableConcept i : role) 1518 dst.role.add(i.copy()); 1519 }; 1520 if (specialty != null) { 1521 dst.specialty = new ArrayList<CodeableConcept>(); 1522 for (CodeableConcept i : specialty) 1523 dst.specialty.add(i.copy()); 1524 }; 1525 if (location != null) { 1526 dst.location = new ArrayList<Reference>(); 1527 for (Reference i : location) 1528 dst.location.add(i.copy()); 1529 }; 1530 if (healthcareService != null) { 1531 dst.healthcareService = new ArrayList<Reference>(); 1532 for (Reference i : healthcareService) 1533 dst.healthcareService.add(i.copy()); 1534 }; 1535 if (telecom != null) { 1536 dst.telecom = new ArrayList<ContactPoint>(); 1537 for (ContactPoint i : telecom) 1538 dst.telecom.add(i.copy()); 1539 }; 1540 dst.period = period == null ? null : period.copy(); 1541 if (availableTime != null) { 1542 dst.availableTime = new ArrayList<PractitionerRoleAvailableTimeComponent>(); 1543 for (PractitionerRoleAvailableTimeComponent i : availableTime) 1544 dst.availableTime.add(i.copy()); 1545 }; 1546 if (notAvailable != null) { 1547 dst.notAvailable = new ArrayList<PractitionerRoleNotAvailableComponent>(); 1548 for (PractitionerRoleNotAvailableComponent i : notAvailable) 1549 dst.notAvailable.add(i.copy()); 1550 }; 1551 dst.availabilityExceptions = availabilityExceptions == null ? null : availabilityExceptions.copy(); 1552 return dst; 1553 } 1554 1555 protected PractitionerRole typedCopy() { 1556 return copy(); 1557 } 1558 1559 @Override 1560 public boolean equalsDeep(Base other) { 1561 if (!super.equalsDeep(other)) 1562 return false; 1563 if (!(other instanceof PractitionerRole)) 1564 return false; 1565 PractitionerRole o = (PractitionerRole) other; 1566 return compareDeep(identifier, o.identifier, true) && compareDeep(active, o.active, true) && compareDeep(practitioner, o.practitioner, true) 1567 && compareDeep(organization, o.organization, true) && compareDeep(role, o.role, true) && compareDeep(specialty, o.specialty, true) 1568 && compareDeep(location, o.location, true) && compareDeep(healthcareService, o.healthcareService, true) 1569 && compareDeep(telecom, o.telecom, true) && compareDeep(period, o.period, true) && compareDeep(availableTime, o.availableTime, true) 1570 && compareDeep(notAvailable, o.notAvailable, true) && compareDeep(availabilityExceptions, o.availabilityExceptions, true) 1571 ; 1572 } 1573 1574 @Override 1575 public boolean equalsShallow(Base other) { 1576 if (!super.equalsShallow(other)) 1577 return false; 1578 if (!(other instanceof PractitionerRole)) 1579 return false; 1580 PractitionerRole o = (PractitionerRole) other; 1581 return compareValues(active, o.active, true) && compareValues(availabilityExceptions, o.availabilityExceptions, true) 1582 ; 1583 } 1584 1585 public boolean isEmpty() { 1586 return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (active == null || active.isEmpty()) 1587 && (practitioner == null || practitioner.isEmpty()) && (organization == null || organization.isEmpty()) 1588 && (role == null || role.isEmpty()) && (specialty == null || specialty.isEmpty()) && (location == null || location.isEmpty()) 1589 && (healthcareService == null || healthcareService.isEmpty()) && (telecom == null || telecom.isEmpty()) 1590 && (period == null || period.isEmpty()) && (availableTime == null || availableTime.isEmpty()) 1591 && (notAvailable == null || notAvailable.isEmpty()) && (availabilityExceptions == null || availabilityExceptions.isEmpty()) 1592 ; 1593 } 1594 1595 @Override 1596 public ResourceType getResourceType() { 1597 return ResourceType.PractitionerRole; 1598 } 1599 1600 /** 1601 * Search parameter: <b>organization</b> 1602 * <p> 1603 * Description: <b>The identity of the organization the practitioner represents / acts on behalf of</b><br> 1604 * Type: <b>reference</b><br> 1605 * Path: <b>PractitionerRole.organization</b><br> 1606 * </p> 1607 */ 1608 @SearchParamDefinition(name="organization", path="PractitionerRole.organization", description="The identity of the organization the practitioner represents / acts on behalf of", type="reference" ) 1609 public static final String SP_ORGANIZATION = "organization"; 1610 /** 1611 * <b>Fluent Client</b> search parameter constant for <b>organization</b> 1612 * <p> 1613 * Description: <b>The identity of the organization the practitioner represents / acts on behalf of</b><br> 1614 * Type: <b>reference</b><br> 1615 * Path: <b>PractitionerRole.organization</b><br> 1616 * </p> 1617 */ 1618 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ORGANIZATION = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ORGANIZATION); 1619 1620/** 1621 * Constant for fluent queries to be used to add include statements. Specifies 1622 * the path value of "<b>PractitionerRole:organization</b>". 1623 */ 1624 public static final ca.uhn.fhir.model.api.Include INCLUDE_ORGANIZATION = new ca.uhn.fhir.model.api.Include("PractitionerRole:organization").toLocked(); 1625 1626 /** 1627 * Search parameter: <b>phone</b> 1628 * <p> 1629 * Description: <b>A value in a phone contact</b><br> 1630 * Type: <b>token</b><br> 1631 * Path: <b>PractitionerRole.telecom(system=phone)</b><br> 1632 * </p> 1633 */ 1634 @SearchParamDefinition(name="phone", path="PractitionerRole.telecom.where(system='phone')", description="A value in a phone contact", type="token" ) 1635 public static final String SP_PHONE = "phone"; 1636 /** 1637 * <b>Fluent Client</b> search parameter constant for <b>phone</b> 1638 * <p> 1639 * Description: <b>A value in a phone contact</b><br> 1640 * Type: <b>token</b><br> 1641 * Path: <b>PractitionerRole.telecom(system=phone)</b><br> 1642 * </p> 1643 */ 1644 public static final ca.uhn.fhir.rest.gclient.TokenClientParam PHONE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_PHONE); 1645 1646 /** 1647 * Search parameter: <b>practitioner</b> 1648 * <p> 1649 * Description: <b>Practitioner that is able to provide the defined services for the organation</b><br> 1650 * Type: <b>reference</b><br> 1651 * Path: <b>PractitionerRole.practitioner</b><br> 1652 * </p> 1653 */ 1654 @SearchParamDefinition(name="practitioner", path="PractitionerRole.practitioner", description="Practitioner that is able to provide the defined services for the organation", type="reference" ) 1655 public static final String SP_PRACTITIONER = "practitioner"; 1656 /** 1657 * <b>Fluent Client</b> search parameter constant for <b>practitioner</b> 1658 * <p> 1659 * Description: <b>Practitioner that is able to provide the defined services for the organation</b><br> 1660 * Type: <b>reference</b><br> 1661 * Path: <b>PractitionerRole.practitioner</b><br> 1662 * </p> 1663 */ 1664 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PRACTITIONER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PRACTITIONER); 1665 1666/** 1667 * Constant for fluent queries to be used to add include statements. Specifies 1668 * the path value of "<b>PractitionerRole:practitioner</b>". 1669 */ 1670 public static final ca.uhn.fhir.model.api.Include INCLUDE_PRACTITIONER = new ca.uhn.fhir.model.api.Include("PractitionerRole:practitioner").toLocked(); 1671 1672 /** 1673 * Search parameter: <b>location</b> 1674 * <p> 1675 * Description: <b>One of the locations at which this practitioner provides care</b><br> 1676 * Type: <b>reference</b><br> 1677 * Path: <b>PractitionerRole.location</b><br> 1678 * </p> 1679 */ 1680 @SearchParamDefinition(name="location", path="PractitionerRole.location", description="One of the locations at which this practitioner provides care", type="reference" ) 1681 public static final String SP_LOCATION = "location"; 1682 /** 1683 * <b>Fluent Client</b> search parameter constant for <b>location</b> 1684 * <p> 1685 * Description: <b>One of the locations at which this practitioner provides care</b><br> 1686 * Type: <b>reference</b><br> 1687 * Path: <b>PractitionerRole.location</b><br> 1688 * </p> 1689 */ 1690 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam LOCATION = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_LOCATION); 1691 1692/** 1693 * Constant for fluent queries to be used to add include statements. Specifies 1694 * the path value of "<b>PractitionerRole:location</b>". 1695 */ 1696 public static final ca.uhn.fhir.model.api.Include INCLUDE_LOCATION = new ca.uhn.fhir.model.api.Include("PractitionerRole:location").toLocked(); 1697 1698 /** 1699 * Search parameter: <b>email</b> 1700 * <p> 1701 * Description: <b>A value in an email contact</b><br> 1702 * Type: <b>token</b><br> 1703 * Path: <b>PractitionerRole.telecom(system=email)</b><br> 1704 * </p> 1705 */ 1706 @SearchParamDefinition(name="email", path="PractitionerRole.telecom.where(system='email')", description="A value in an email contact", type="token" ) 1707 public static final String SP_EMAIL = "email"; 1708 /** 1709 * <b>Fluent Client</b> search parameter constant for <b>email</b> 1710 * <p> 1711 * Description: <b>A value in an email contact</b><br> 1712 * Type: <b>token</b><br> 1713 * Path: <b>PractitionerRole.telecom(system=email)</b><br> 1714 * </p> 1715 */ 1716 public static final ca.uhn.fhir.rest.gclient.TokenClientParam EMAIL = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_EMAIL); 1717 1718 /** 1719 * Search parameter: <b>telecom</b> 1720 * <p> 1721 * Description: <b>The value in any kind of contact</b><br> 1722 * Type: <b>token</b><br> 1723 * Path: <b>PractitionerRole.telecom</b><br> 1724 * </p> 1725 */ 1726 @SearchParamDefinition(name="telecom", path="PractitionerRole.telecom", description="The value in any kind of contact", type="token" ) 1727 public static final String SP_TELECOM = "telecom"; 1728 /** 1729 * <b>Fluent Client</b> search parameter constant for <b>telecom</b> 1730 * <p> 1731 * Description: <b>The value in any kind of contact</b><br> 1732 * Type: <b>token</b><br> 1733 * Path: <b>PractitionerRole.telecom</b><br> 1734 * </p> 1735 */ 1736 public static final ca.uhn.fhir.rest.gclient.TokenClientParam TELECOM = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TELECOM); 1737 1738 /** 1739 * Search parameter: <b>role</b> 1740 * <p> 1741 * Description: <b>The practitioner can perform this role at for the organization</b><br> 1742 * Type: <b>token</b><br> 1743 * Path: <b>PractitionerRole.role</b><br> 1744 * </p> 1745 */ 1746 @SearchParamDefinition(name="role", path="PractitionerRole.role", description="The practitioner can perform this role at for the organization", type="token" ) 1747 public static final String SP_ROLE = "role"; 1748 /** 1749 * <b>Fluent Client</b> search parameter constant for <b>role</b> 1750 * <p> 1751 * Description: <b>The practitioner can perform this role at for the organization</b><br> 1752 * Type: <b>token</b><br> 1753 * Path: <b>PractitionerRole.role</b><br> 1754 * </p> 1755 */ 1756 public static final ca.uhn.fhir.rest.gclient.TokenClientParam ROLE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_ROLE); 1757 1758 /** 1759 * Search parameter: <b>specialty</b> 1760 * <p> 1761 * Description: <b>The practitioner has this specialty at an organization</b><br> 1762 * Type: <b>token</b><br> 1763 * Path: <b>PractitionerRole.specialty</b><br> 1764 * </p> 1765 */ 1766 @SearchParamDefinition(name="specialty", path="PractitionerRole.specialty", description="The practitioner has this specialty at an organization", type="token" ) 1767 public static final String SP_SPECIALTY = "specialty"; 1768 /** 1769 * <b>Fluent Client</b> search parameter constant for <b>specialty</b> 1770 * <p> 1771 * Description: <b>The practitioner has this specialty at an organization</b><br> 1772 * Type: <b>token</b><br> 1773 * Path: <b>PractitionerRole.specialty</b><br> 1774 * </p> 1775 */ 1776 public static final ca.uhn.fhir.rest.gclient.TokenClientParam SPECIALTY = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_SPECIALTY); 1777 1778 /** 1779 * Search parameter: <b>identifier</b> 1780 * <p> 1781 * Description: <b>A practitioner's Identifier</b><br> 1782 * Type: <b>token</b><br> 1783 * Path: <b>PractitionerRole.identifier</b><br> 1784 * </p> 1785 */ 1786 @SearchParamDefinition(name="identifier", path="PractitionerRole.identifier", description="A practitioner's Identifier", type="token" ) 1787 public static final String SP_IDENTIFIER = "identifier"; 1788 /** 1789 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 1790 * <p> 1791 * Description: <b>A practitioner's Identifier</b><br> 1792 * Type: <b>token</b><br> 1793 * Path: <b>PractitionerRole.identifier</b><br> 1794 * </p> 1795 */ 1796 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 1797 1798 1799} 1800