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