001package org.hl7.fhir.r5.model; 002 003 004/* 005 Copyright (c) 2011+, HL7, Inc. 006 All rights reserved. 007 008 Redistribution and use in source and binary forms, with or without modification, \ 009 are permitted provided that the following conditions are met: 010 011 * Redistributions of source code must retain the above copyright notice, this \ 012 list of conditions and the following disclaimer. 013 * Redistributions in binary form must reproduce the above copyright notice, \ 014 this list of conditions and the following disclaimer in the documentation \ 015 and/or other materials provided with the distribution. 016 * Neither the name of HL7 nor the names of its contributors may be used to 017 endorse or promote products derived from this software without specific 018 prior written permission. 019 020 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \ 021 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \ 022 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \ 023 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \ 024 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT \ 025 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR \ 026 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, \ 027 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) \ 028 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE \ 029 POSSIBILITY OF SUCH DAMAGE. 030 */ 031 032// Generated on Tue, Dec 13, 2022 17:53+1100 for FHIR vcurrent 033 034import java.util.ArrayList; 035import java.util.Date; 036import java.util.List; 037import org.hl7.fhir.r5.model.Enumerations.*; 038import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 039import org.hl7.fhir.exceptions.FHIRException; 040import org.hl7.fhir.instance.model.api.ICompositeType; 041import ca.uhn.fhir.model.api.annotation.ResourceDef; 042import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 043import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 044import ca.uhn.fhir.model.api.annotation.Child; 045import ca.uhn.fhir.model.api.annotation.ChildOrder; 046import ca.uhn.fhir.model.api.annotation.Description; 047import ca.uhn.fhir.model.api.annotation.Block; 048 049/** 050 * A specific set of Roles/Locations/specialties/services that a practitioner may perform, or has performed at an organization during a period of time. 051 */ 052@ResourceDef(name="PractitionerRole", profile="http://hl7.org/fhir/StructureDefinition/PractitionerRole") 053public class PractitionerRole extends DomainResource { 054 055 /** 056 * Business Identifiers that are specific to a role/location. 057 */ 058 @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 059 @Description(shortDefinition="Business Identifiers that are specific to a role/location", formalDefinition="Business Identifiers that are specific to a role/location." ) 060 protected List<Identifier> identifier; 061 062 /** 063 * Whether this practitioner role record is in active use. 064 */ 065 @Child(name = "active", type = {BooleanType.class}, order=1, min=0, max=1, modifier=false, summary=true) 066 @Description(shortDefinition="Whether this practitioner role record is in active use", formalDefinition="Whether this practitioner role record is in active use." ) 067 protected BooleanType active; 068 069 /** 070 * The period during which the person is authorized to act as a practitioner in these role(s) for the organization. 071 */ 072 @Child(name = "period", type = {Period.class}, order=2, min=0, max=1, modifier=false, summary=true) 073 @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." ) 074 protected Period period; 075 076 /** 077 * Practitioner that is able to provide the defined services for the organization. 078 */ 079 @Child(name = "practitioner", type = {Practitioner.class}, order=3, min=0, max=1, modifier=false, summary=true) 080 @Description(shortDefinition="Practitioner that is able to provide the defined services for the organization", formalDefinition="Practitioner that is able to provide the defined services for the organization." ) 081 protected Reference practitioner; 082 083 /** 084 * The organization where the Practitioner performs the roles associated. 085 */ 086 @Child(name = "organization", type = {Organization.class}, order=4, min=0, max=1, modifier=false, summary=true) 087 @Description(shortDefinition="Organization where the roles are available", formalDefinition="The organization where the Practitioner performs the roles associated." ) 088 protected Reference organization; 089 090 /** 091 * Roles which this practitioner is authorized to perform for the organization. 092 */ 093 @Child(name = "code", type = {CodeableConcept.class}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 094 @Description(shortDefinition="Roles which this practitioner may perform", formalDefinition="Roles which this practitioner is authorized to perform for the organization." ) 095 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/practitioner-role") 096 protected List<CodeableConcept> code; 097 098 /** 099 * The specialty of a practitioner that describes the functional role they are practicing at a given organization or location. 100 */ 101 @Child(name = "specialty", type = {CodeableConcept.class}, order=6, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 102 @Description(shortDefinition="Specific specialty of the practitioner", formalDefinition="The specialty of a practitioner that describes the functional role they are practicing at a given organization or location." ) 103 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/c80-practice-codes") 104 protected List<CodeableConcept> specialty; 105 106 /** 107 * The location(s) at which this practitioner provides care. 108 */ 109 @Child(name = "location", type = {Location.class}, order=7, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 110 @Description(shortDefinition="The location(s) at which this practitioner provides care", formalDefinition="The location(s) at which this practitioner provides care." ) 111 protected List<Reference> location; 112 113 /** 114 * The list of healthcare services that this worker provides for this role's Organization/Location(s). 115 */ 116 @Child(name = "healthcareService", type = {HealthcareService.class}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 117 @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)." ) 118 protected List<Reference> healthcareService; 119 120 /** 121 * The contact details of communication devices available relevant to the specific PractitionerRole. This can include addresses, phone numbers, fax numbers, mobile numbers, email addresses and web sites. 122 */ 123 @Child(name = "contact", type = {ExtendedContactDetail.class}, order=9, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 124 @Description(shortDefinition="Official contact details relating to this PractitionerRole", formalDefinition="The contact details of communication devices available relevant to the specific PractitionerRole. This can include addresses, phone numbers, fax numbers, mobile numbers, email addresses and web sites." ) 125 protected List<ExtendedContactDetail> contact; 126 127 /** 128 * A collection of times the practitioner is available or performing this role at the location and/or healthcareservice. 129 */ 130 @Child(name = "availability", type = {Availability.class}, order=10, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 131 @Description(shortDefinition="Times the Practitioner is available at this location and/or healthcare service (including exceptions)", formalDefinition="A collection of times the practitioner is available or performing this role at the location and/or healthcareservice." ) 132 protected List<Availability> availability; 133 134 /** 135 * Technical endpoints providing access to services operated for the practitioner with this role. 136 */ 137 @Child(name = "endpoint", type = {Endpoint.class}, order=11, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 138 @Description(shortDefinition="Technical endpoints providing access to services operated for the practitioner with this role", formalDefinition="Technical endpoints providing access to services operated for the practitioner with this role." ) 139 protected List<Reference> endpoint; 140 141 private static final long serialVersionUID = -309346881L; 142 143 /** 144 * Constructor 145 */ 146 public PractitionerRole() { 147 super(); 148 } 149 150 /** 151 * @return {@link #identifier} (Business Identifiers that are specific to a role/location.) 152 */ 153 public List<Identifier> getIdentifier() { 154 if (this.identifier == null) 155 this.identifier = new ArrayList<Identifier>(); 156 return this.identifier; 157 } 158 159 /** 160 * @return Returns a reference to <code>this</code> for easy method chaining 161 */ 162 public PractitionerRole setIdentifier(List<Identifier> theIdentifier) { 163 this.identifier = theIdentifier; 164 return this; 165 } 166 167 public boolean hasIdentifier() { 168 if (this.identifier == null) 169 return false; 170 for (Identifier item : this.identifier) 171 if (!item.isEmpty()) 172 return true; 173 return false; 174 } 175 176 public Identifier addIdentifier() { //3 177 Identifier t = new Identifier(); 178 if (this.identifier == null) 179 this.identifier = new ArrayList<Identifier>(); 180 this.identifier.add(t); 181 return t; 182 } 183 184 public PractitionerRole addIdentifier(Identifier t) { //3 185 if (t == null) 186 return this; 187 if (this.identifier == null) 188 this.identifier = new ArrayList<Identifier>(); 189 this.identifier.add(t); 190 return this; 191 } 192 193 /** 194 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3} 195 */ 196 public Identifier getIdentifierFirstRep() { 197 if (getIdentifier().isEmpty()) { 198 addIdentifier(); 199 } 200 return getIdentifier().get(0); 201 } 202 203 /** 204 * @return {@link #active} (Whether this practitioner role record is in active use.). This is the underlying object with id, value and extensions. The accessor "getActive" gives direct access to the value 205 */ 206 public BooleanType getActiveElement() { 207 if (this.active == null) 208 if (Configuration.errorOnAutoCreate()) 209 throw new Error("Attempt to auto-create PractitionerRole.active"); 210 else if (Configuration.doAutoCreate()) 211 this.active = new BooleanType(); // bb 212 return this.active; 213 } 214 215 public boolean hasActiveElement() { 216 return this.active != null && !this.active.isEmpty(); 217 } 218 219 public boolean hasActive() { 220 return this.active != null && !this.active.isEmpty(); 221 } 222 223 /** 224 * @param value {@link #active} (Whether this practitioner role record is in active use.). This is the underlying object with id, value and extensions. The accessor "getActive" gives direct access to the value 225 */ 226 public PractitionerRole setActiveElement(BooleanType value) { 227 this.active = value; 228 return this; 229 } 230 231 /** 232 * @return Whether this practitioner role record is in active use. 233 */ 234 public boolean getActive() { 235 return this.active == null || this.active.isEmpty() ? false : this.active.getValue(); 236 } 237 238 /** 239 * @param value Whether this practitioner role record is in active use. 240 */ 241 public PractitionerRole setActive(boolean value) { 242 if (this.active == null) 243 this.active = new BooleanType(); 244 this.active.setValue(value); 245 return this; 246 } 247 248 /** 249 * @return {@link #period} (The period during which the person is authorized to act as a practitioner in these role(s) for the organization.) 250 */ 251 public Period getPeriod() { 252 if (this.period == null) 253 if (Configuration.errorOnAutoCreate()) 254 throw new Error("Attempt to auto-create PractitionerRole.period"); 255 else if (Configuration.doAutoCreate()) 256 this.period = new Period(); // cc 257 return this.period; 258 } 259 260 public boolean hasPeriod() { 261 return this.period != null && !this.period.isEmpty(); 262 } 263 264 /** 265 * @param value {@link #period} (The period during which the person is authorized to act as a practitioner in these role(s) for the organization.) 266 */ 267 public PractitionerRole setPeriod(Period value) { 268 this.period = value; 269 return this; 270 } 271 272 /** 273 * @return {@link #practitioner} (Practitioner that is able to provide the defined services for the organization.) 274 */ 275 public Reference getPractitioner() { 276 if (this.practitioner == null) 277 if (Configuration.errorOnAutoCreate()) 278 throw new Error("Attempt to auto-create PractitionerRole.practitioner"); 279 else if (Configuration.doAutoCreate()) 280 this.practitioner = new Reference(); // cc 281 return this.practitioner; 282 } 283 284 public boolean hasPractitioner() { 285 return this.practitioner != null && !this.practitioner.isEmpty(); 286 } 287 288 /** 289 * @param value {@link #practitioner} (Practitioner that is able to provide the defined services for the organization.) 290 */ 291 public PractitionerRole setPractitioner(Reference value) { 292 this.practitioner = value; 293 return this; 294 } 295 296 /** 297 * @return {@link #organization} (The organization where the Practitioner performs the roles associated.) 298 */ 299 public Reference getOrganization() { 300 if (this.organization == null) 301 if (Configuration.errorOnAutoCreate()) 302 throw new Error("Attempt to auto-create PractitionerRole.organization"); 303 else if (Configuration.doAutoCreate()) 304 this.organization = new Reference(); // cc 305 return this.organization; 306 } 307 308 public boolean hasOrganization() { 309 return this.organization != null && !this.organization.isEmpty(); 310 } 311 312 /** 313 * @param value {@link #organization} (The organization where the Practitioner performs the roles associated.) 314 */ 315 public PractitionerRole setOrganization(Reference value) { 316 this.organization = value; 317 return this; 318 } 319 320 /** 321 * @return {@link #code} (Roles which this practitioner is authorized to perform for the organization.) 322 */ 323 public List<CodeableConcept> getCode() { 324 if (this.code == null) 325 this.code = new ArrayList<CodeableConcept>(); 326 return this.code; 327 } 328 329 /** 330 * @return Returns a reference to <code>this</code> for easy method chaining 331 */ 332 public PractitionerRole setCode(List<CodeableConcept> theCode) { 333 this.code = theCode; 334 return this; 335 } 336 337 public boolean hasCode() { 338 if (this.code == null) 339 return false; 340 for (CodeableConcept item : this.code) 341 if (!item.isEmpty()) 342 return true; 343 return false; 344 } 345 346 public CodeableConcept addCode() { //3 347 CodeableConcept t = new CodeableConcept(); 348 if (this.code == null) 349 this.code = new ArrayList<CodeableConcept>(); 350 this.code.add(t); 351 return t; 352 } 353 354 public PractitionerRole addCode(CodeableConcept t) { //3 355 if (t == null) 356 return this; 357 if (this.code == null) 358 this.code = new ArrayList<CodeableConcept>(); 359 this.code.add(t); 360 return this; 361 } 362 363 /** 364 * @return The first repetition of repeating field {@link #code}, creating it if it does not already exist {3} 365 */ 366 public CodeableConcept getCodeFirstRep() { 367 if (getCode().isEmpty()) { 368 addCode(); 369 } 370 return getCode().get(0); 371 } 372 373 /** 374 * @return {@link #specialty} (The specialty of a practitioner that describes the functional role they are practicing at a given organization or location.) 375 */ 376 public List<CodeableConcept> getSpecialty() { 377 if (this.specialty == null) 378 this.specialty = new ArrayList<CodeableConcept>(); 379 return this.specialty; 380 } 381 382 /** 383 * @return Returns a reference to <code>this</code> for easy method chaining 384 */ 385 public PractitionerRole setSpecialty(List<CodeableConcept> theSpecialty) { 386 this.specialty = theSpecialty; 387 return this; 388 } 389 390 public boolean hasSpecialty() { 391 if (this.specialty == null) 392 return false; 393 for (CodeableConcept item : this.specialty) 394 if (!item.isEmpty()) 395 return true; 396 return false; 397 } 398 399 public CodeableConcept addSpecialty() { //3 400 CodeableConcept t = new CodeableConcept(); 401 if (this.specialty == null) 402 this.specialty = new ArrayList<CodeableConcept>(); 403 this.specialty.add(t); 404 return t; 405 } 406 407 public PractitionerRole addSpecialty(CodeableConcept t) { //3 408 if (t == null) 409 return this; 410 if (this.specialty == null) 411 this.specialty = new ArrayList<CodeableConcept>(); 412 this.specialty.add(t); 413 return this; 414 } 415 416 /** 417 * @return The first repetition of repeating field {@link #specialty}, creating it if it does not already exist {3} 418 */ 419 public CodeableConcept getSpecialtyFirstRep() { 420 if (getSpecialty().isEmpty()) { 421 addSpecialty(); 422 } 423 return getSpecialty().get(0); 424 } 425 426 /** 427 * @return {@link #location} (The location(s) at which this practitioner provides care.) 428 */ 429 public List<Reference> getLocation() { 430 if (this.location == null) 431 this.location = new ArrayList<Reference>(); 432 return this.location; 433 } 434 435 /** 436 * @return Returns a reference to <code>this</code> for easy method chaining 437 */ 438 public PractitionerRole setLocation(List<Reference> theLocation) { 439 this.location = theLocation; 440 return this; 441 } 442 443 public boolean hasLocation() { 444 if (this.location == null) 445 return false; 446 for (Reference item : this.location) 447 if (!item.isEmpty()) 448 return true; 449 return false; 450 } 451 452 public Reference addLocation() { //3 453 Reference t = new Reference(); 454 if (this.location == null) 455 this.location = new ArrayList<Reference>(); 456 this.location.add(t); 457 return t; 458 } 459 460 public PractitionerRole addLocation(Reference t) { //3 461 if (t == null) 462 return this; 463 if (this.location == null) 464 this.location = new ArrayList<Reference>(); 465 this.location.add(t); 466 return this; 467 } 468 469 /** 470 * @return The first repetition of repeating field {@link #location}, creating it if it does not already exist {3} 471 */ 472 public Reference getLocationFirstRep() { 473 if (getLocation().isEmpty()) { 474 addLocation(); 475 } 476 return getLocation().get(0); 477 } 478 479 /** 480 * @return {@link #healthcareService} (The list of healthcare services that this worker provides for this role's Organization/Location(s).) 481 */ 482 public List<Reference> getHealthcareService() { 483 if (this.healthcareService == null) 484 this.healthcareService = new ArrayList<Reference>(); 485 return this.healthcareService; 486 } 487 488 /** 489 * @return Returns a reference to <code>this</code> for easy method chaining 490 */ 491 public PractitionerRole setHealthcareService(List<Reference> theHealthcareService) { 492 this.healthcareService = theHealthcareService; 493 return this; 494 } 495 496 public boolean hasHealthcareService() { 497 if (this.healthcareService == null) 498 return false; 499 for (Reference item : this.healthcareService) 500 if (!item.isEmpty()) 501 return true; 502 return false; 503 } 504 505 public Reference addHealthcareService() { //3 506 Reference t = new Reference(); 507 if (this.healthcareService == null) 508 this.healthcareService = new ArrayList<Reference>(); 509 this.healthcareService.add(t); 510 return t; 511 } 512 513 public PractitionerRole addHealthcareService(Reference t) { //3 514 if (t == null) 515 return this; 516 if (this.healthcareService == null) 517 this.healthcareService = new ArrayList<Reference>(); 518 this.healthcareService.add(t); 519 return this; 520 } 521 522 /** 523 * @return The first repetition of repeating field {@link #healthcareService}, creating it if it does not already exist {3} 524 */ 525 public Reference getHealthcareServiceFirstRep() { 526 if (getHealthcareService().isEmpty()) { 527 addHealthcareService(); 528 } 529 return getHealthcareService().get(0); 530 } 531 532 /** 533 * @return {@link #contact} (The contact details of communication devices available relevant to the specific PractitionerRole. This can include addresses, phone numbers, fax numbers, mobile numbers, email addresses and web sites.) 534 */ 535 public List<ExtendedContactDetail> getContact() { 536 if (this.contact == null) 537 this.contact = new ArrayList<ExtendedContactDetail>(); 538 return this.contact; 539 } 540 541 /** 542 * @return Returns a reference to <code>this</code> for easy method chaining 543 */ 544 public PractitionerRole setContact(List<ExtendedContactDetail> theContact) { 545 this.contact = theContact; 546 return this; 547 } 548 549 public boolean hasContact() { 550 if (this.contact == null) 551 return false; 552 for (ExtendedContactDetail item : this.contact) 553 if (!item.isEmpty()) 554 return true; 555 return false; 556 } 557 558 public ExtendedContactDetail addContact() { //3 559 ExtendedContactDetail t = new ExtendedContactDetail(); 560 if (this.contact == null) 561 this.contact = new ArrayList<ExtendedContactDetail>(); 562 this.contact.add(t); 563 return t; 564 } 565 566 public PractitionerRole addContact(ExtendedContactDetail t) { //3 567 if (t == null) 568 return this; 569 if (this.contact == null) 570 this.contact = new ArrayList<ExtendedContactDetail>(); 571 this.contact.add(t); 572 return this; 573 } 574 575 /** 576 * @return The first repetition of repeating field {@link #contact}, creating it if it does not already exist {3} 577 */ 578 public ExtendedContactDetail getContactFirstRep() { 579 if (getContact().isEmpty()) { 580 addContact(); 581 } 582 return getContact().get(0); 583 } 584 585 /** 586 * @return {@link #availability} (A collection of times the practitioner is available or performing this role at the location and/or healthcareservice.) 587 */ 588 public List<Availability> getAvailability() { 589 if (this.availability == null) 590 this.availability = new ArrayList<Availability>(); 591 return this.availability; 592 } 593 594 /** 595 * @return Returns a reference to <code>this</code> for easy method chaining 596 */ 597 public PractitionerRole setAvailability(List<Availability> theAvailability) { 598 this.availability = theAvailability; 599 return this; 600 } 601 602 public boolean hasAvailability() { 603 if (this.availability == null) 604 return false; 605 for (Availability item : this.availability) 606 if (!item.isEmpty()) 607 return true; 608 return false; 609 } 610 611 public Availability addAvailability() { //3 612 Availability t = new Availability(); 613 if (this.availability == null) 614 this.availability = new ArrayList<Availability>(); 615 this.availability.add(t); 616 return t; 617 } 618 619 public PractitionerRole addAvailability(Availability t) { //3 620 if (t == null) 621 return this; 622 if (this.availability == null) 623 this.availability = new ArrayList<Availability>(); 624 this.availability.add(t); 625 return this; 626 } 627 628 /** 629 * @return The first repetition of repeating field {@link #availability}, creating it if it does not already exist {3} 630 */ 631 public Availability getAvailabilityFirstRep() { 632 if (getAvailability().isEmpty()) { 633 addAvailability(); 634 } 635 return getAvailability().get(0); 636 } 637 638 /** 639 * @return {@link #endpoint} (Technical endpoints providing access to services operated for the practitioner with this role.) 640 */ 641 public List<Reference> getEndpoint() { 642 if (this.endpoint == null) 643 this.endpoint = new ArrayList<Reference>(); 644 return this.endpoint; 645 } 646 647 /** 648 * @return Returns a reference to <code>this</code> for easy method chaining 649 */ 650 public PractitionerRole setEndpoint(List<Reference> theEndpoint) { 651 this.endpoint = theEndpoint; 652 return this; 653 } 654 655 public boolean hasEndpoint() { 656 if (this.endpoint == null) 657 return false; 658 for (Reference item : this.endpoint) 659 if (!item.isEmpty()) 660 return true; 661 return false; 662 } 663 664 public Reference addEndpoint() { //3 665 Reference t = new Reference(); 666 if (this.endpoint == null) 667 this.endpoint = new ArrayList<Reference>(); 668 this.endpoint.add(t); 669 return t; 670 } 671 672 public PractitionerRole addEndpoint(Reference t) { //3 673 if (t == null) 674 return this; 675 if (this.endpoint == null) 676 this.endpoint = new ArrayList<Reference>(); 677 this.endpoint.add(t); 678 return this; 679 } 680 681 /** 682 * @return The first repetition of repeating field {@link #endpoint}, creating it if it does not already exist {3} 683 */ 684 public Reference getEndpointFirstRep() { 685 if (getEndpoint().isEmpty()) { 686 addEndpoint(); 687 } 688 return getEndpoint().get(0); 689 } 690 691 protected void listChildren(List<Property> children) { 692 super.listChildren(children); 693 children.add(new Property("identifier", "Identifier", "Business Identifiers that are specific to a role/location.", 0, java.lang.Integer.MAX_VALUE, identifier)); 694 children.add(new Property("active", "boolean", "Whether this practitioner role record is in active use.", 0, 1, active)); 695 children.add(new Property("period", "Period", "The period during which the person is authorized to act as a practitioner in these role(s) for the organization.", 0, 1, period)); 696 children.add(new Property("practitioner", "Reference(Practitioner)", "Practitioner that is able to provide the defined services for the organization.", 0, 1, practitioner)); 697 children.add(new Property("organization", "Reference(Organization)", "The organization where the Practitioner performs the roles associated.", 0, 1, organization)); 698 children.add(new Property("code", "CodeableConcept", "Roles which this practitioner is authorized to perform for the organization.", 0, java.lang.Integer.MAX_VALUE, code)); 699 children.add(new Property("specialty", "CodeableConcept", "The specialty of a practitioner that describes the functional role they are practicing at a given organization or location.", 0, java.lang.Integer.MAX_VALUE, specialty)); 700 children.add(new Property("location", "Reference(Location)", "The location(s) at which this practitioner provides care.", 0, java.lang.Integer.MAX_VALUE, location)); 701 children.add(new Property("healthcareService", "Reference(HealthcareService)", "The list of healthcare services that this worker provides for this role's Organization/Location(s).", 0, java.lang.Integer.MAX_VALUE, healthcareService)); 702 children.add(new Property("contact", "ExtendedContactDetail", "The contact details of communication devices available relevant to the specific PractitionerRole. This can include addresses, phone numbers, fax numbers, mobile numbers, email addresses and web sites.", 0, java.lang.Integer.MAX_VALUE, contact)); 703 children.add(new Property("availability", "Availability", "A collection of times the practitioner is available or performing this role at the location and/or healthcareservice.", 0, java.lang.Integer.MAX_VALUE, availability)); 704 children.add(new Property("endpoint", "Reference(Endpoint)", "Technical endpoints providing access to services operated for the practitioner with this role.", 0, java.lang.Integer.MAX_VALUE, endpoint)); 705 } 706 707 @Override 708 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 709 switch (_hash) { 710 case -1618432855: /*identifier*/ return new Property("identifier", "Identifier", "Business Identifiers that are specific to a role/location.", 0, java.lang.Integer.MAX_VALUE, identifier); 711 case -1422950650: /*active*/ return new Property("active", "boolean", "Whether this practitioner role record is in active use.", 0, 1, active); 712 case -991726143: /*period*/ return new Property("period", "Period", "The period during which the person is authorized to act as a practitioner in these role(s) for the organization.", 0, 1, period); 713 case 574573338: /*practitioner*/ return new Property("practitioner", "Reference(Practitioner)", "Practitioner that is able to provide the defined services for the organization.", 0, 1, practitioner); 714 case 1178922291: /*organization*/ return new Property("organization", "Reference(Organization)", "The organization where the Practitioner performs the roles associated.", 0, 1, organization); 715 case 3059181: /*code*/ return new Property("code", "CodeableConcept", "Roles which this practitioner is authorized to perform for the organization.", 0, java.lang.Integer.MAX_VALUE, code); 716 case -1694759682: /*specialty*/ return new Property("specialty", "CodeableConcept", "The specialty of a practitioner that describes the functional role they are practicing at a given organization or location.", 0, java.lang.Integer.MAX_VALUE, specialty); 717 case 1901043637: /*location*/ return new Property("location", "Reference(Location)", "The location(s) at which this practitioner provides care.", 0, java.lang.Integer.MAX_VALUE, location); 718 case 1289661064: /*healthcareService*/ return new Property("healthcareService", "Reference(HealthcareService)", "The list of healthcare services that this worker provides for this role's Organization/Location(s).", 0, java.lang.Integer.MAX_VALUE, healthcareService); 719 case 951526432: /*contact*/ return new Property("contact", "ExtendedContactDetail", "The contact details of communication devices available relevant to the specific PractitionerRole. This can include addresses, phone numbers, fax numbers, mobile numbers, email addresses and web sites.", 0, java.lang.Integer.MAX_VALUE, contact); 720 case 1997542747: /*availability*/ return new Property("availability", "Availability", "A collection of times the practitioner is available or performing this role at the location and/or healthcareservice.", 0, java.lang.Integer.MAX_VALUE, availability); 721 case 1741102485: /*endpoint*/ return new Property("endpoint", "Reference(Endpoint)", "Technical endpoints providing access to services operated for the practitioner with this role.", 0, java.lang.Integer.MAX_VALUE, endpoint); 722 default: return super.getNamedProperty(_hash, _name, _checkValid); 723 } 724 725 } 726 727 @Override 728 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 729 switch (hash) { 730 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 731 case -1422950650: /*active*/ return this.active == null ? new Base[0] : new Base[] {this.active}; // BooleanType 732 case -991726143: /*period*/ return this.period == null ? new Base[0] : new Base[] {this.period}; // Period 733 case 574573338: /*practitioner*/ return this.practitioner == null ? new Base[0] : new Base[] {this.practitioner}; // Reference 734 case 1178922291: /*organization*/ return this.organization == null ? new Base[0] : new Base[] {this.organization}; // Reference 735 case 3059181: /*code*/ return this.code == null ? new Base[0] : this.code.toArray(new Base[this.code.size()]); // CodeableConcept 736 case -1694759682: /*specialty*/ return this.specialty == null ? new Base[0] : this.specialty.toArray(new Base[this.specialty.size()]); // CodeableConcept 737 case 1901043637: /*location*/ return this.location == null ? new Base[0] : this.location.toArray(new Base[this.location.size()]); // Reference 738 case 1289661064: /*healthcareService*/ return this.healthcareService == null ? new Base[0] : this.healthcareService.toArray(new Base[this.healthcareService.size()]); // Reference 739 case 951526432: /*contact*/ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // ExtendedContactDetail 740 case 1997542747: /*availability*/ return this.availability == null ? new Base[0] : this.availability.toArray(new Base[this.availability.size()]); // Availability 741 case 1741102485: /*endpoint*/ return this.endpoint == null ? new Base[0] : this.endpoint.toArray(new Base[this.endpoint.size()]); // Reference 742 default: return super.getProperty(hash, name, checkValid); 743 } 744 745 } 746 747 @Override 748 public Base setProperty(int hash, String name, Base value) throws FHIRException { 749 switch (hash) { 750 case -1618432855: // identifier 751 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier 752 return value; 753 case -1422950650: // active 754 this.active = TypeConvertor.castToBoolean(value); // BooleanType 755 return value; 756 case -991726143: // period 757 this.period = TypeConvertor.castToPeriod(value); // Period 758 return value; 759 case 574573338: // practitioner 760 this.practitioner = TypeConvertor.castToReference(value); // Reference 761 return value; 762 case 1178922291: // organization 763 this.organization = TypeConvertor.castToReference(value); // Reference 764 return value; 765 case 3059181: // code 766 this.getCode().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 767 return value; 768 case -1694759682: // specialty 769 this.getSpecialty().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 770 return value; 771 case 1901043637: // location 772 this.getLocation().add(TypeConvertor.castToReference(value)); // Reference 773 return value; 774 case 1289661064: // healthcareService 775 this.getHealthcareService().add(TypeConvertor.castToReference(value)); // Reference 776 return value; 777 case 951526432: // contact 778 this.getContact().add(TypeConvertor.castToExtendedContactDetail(value)); // ExtendedContactDetail 779 return value; 780 case 1997542747: // availability 781 this.getAvailability().add(TypeConvertor.castToAvailability(value)); // Availability 782 return value; 783 case 1741102485: // endpoint 784 this.getEndpoint().add(TypeConvertor.castToReference(value)); // Reference 785 return value; 786 default: return super.setProperty(hash, name, value); 787 } 788 789 } 790 791 @Override 792 public Base setProperty(String name, Base value) throws FHIRException { 793 if (name.equals("identifier")) { 794 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); 795 } else if (name.equals("active")) { 796 this.active = TypeConvertor.castToBoolean(value); // BooleanType 797 } else if (name.equals("period")) { 798 this.period = TypeConvertor.castToPeriod(value); // Period 799 } else if (name.equals("practitioner")) { 800 this.practitioner = TypeConvertor.castToReference(value); // Reference 801 } else if (name.equals("organization")) { 802 this.organization = TypeConvertor.castToReference(value); // Reference 803 } else if (name.equals("code")) { 804 this.getCode().add(TypeConvertor.castToCodeableConcept(value)); 805 } else if (name.equals("specialty")) { 806 this.getSpecialty().add(TypeConvertor.castToCodeableConcept(value)); 807 } else if (name.equals("location")) { 808 this.getLocation().add(TypeConvertor.castToReference(value)); 809 } else if (name.equals("healthcareService")) { 810 this.getHealthcareService().add(TypeConvertor.castToReference(value)); 811 } else if (name.equals("contact")) { 812 this.getContact().add(TypeConvertor.castToExtendedContactDetail(value)); 813 } else if (name.equals("availability")) { 814 this.getAvailability().add(TypeConvertor.castToAvailability(value)); 815 } else if (name.equals("endpoint")) { 816 this.getEndpoint().add(TypeConvertor.castToReference(value)); 817 } else 818 return super.setProperty(name, value); 819 return value; 820 } 821 822 @Override 823 public Base makeProperty(int hash, String name) throws FHIRException { 824 switch (hash) { 825 case -1618432855: return addIdentifier(); 826 case -1422950650: return getActiveElement(); 827 case -991726143: return getPeriod(); 828 case 574573338: return getPractitioner(); 829 case 1178922291: return getOrganization(); 830 case 3059181: return addCode(); 831 case -1694759682: return addSpecialty(); 832 case 1901043637: return addLocation(); 833 case 1289661064: return addHealthcareService(); 834 case 951526432: return addContact(); 835 case 1997542747: return addAvailability(); 836 case 1741102485: return addEndpoint(); 837 default: return super.makeProperty(hash, name); 838 } 839 840 } 841 842 @Override 843 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 844 switch (hash) { 845 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 846 case -1422950650: /*active*/ return new String[] {"boolean"}; 847 case -991726143: /*period*/ return new String[] {"Period"}; 848 case 574573338: /*practitioner*/ return new String[] {"Reference"}; 849 case 1178922291: /*organization*/ return new String[] {"Reference"}; 850 case 3059181: /*code*/ return new String[] {"CodeableConcept"}; 851 case -1694759682: /*specialty*/ return new String[] {"CodeableConcept"}; 852 case 1901043637: /*location*/ return new String[] {"Reference"}; 853 case 1289661064: /*healthcareService*/ return new String[] {"Reference"}; 854 case 951526432: /*contact*/ return new String[] {"ExtendedContactDetail"}; 855 case 1997542747: /*availability*/ return new String[] {"Availability"}; 856 case 1741102485: /*endpoint*/ return new String[] {"Reference"}; 857 default: return super.getTypesForProperty(hash, name); 858 } 859 860 } 861 862 @Override 863 public Base addChild(String name) throws FHIRException { 864 if (name.equals("identifier")) { 865 return addIdentifier(); 866 } 867 else if (name.equals("active")) { 868 throw new FHIRException("Cannot call addChild on a primitive type PractitionerRole.active"); 869 } 870 else if (name.equals("period")) { 871 this.period = new Period(); 872 return this.period; 873 } 874 else if (name.equals("practitioner")) { 875 this.practitioner = new Reference(); 876 return this.practitioner; 877 } 878 else if (name.equals("organization")) { 879 this.organization = new Reference(); 880 return this.organization; 881 } 882 else if (name.equals("code")) { 883 return addCode(); 884 } 885 else if (name.equals("specialty")) { 886 return addSpecialty(); 887 } 888 else if (name.equals("location")) { 889 return addLocation(); 890 } 891 else if (name.equals("healthcareService")) { 892 return addHealthcareService(); 893 } 894 else if (name.equals("contact")) { 895 return addContact(); 896 } 897 else if (name.equals("availability")) { 898 return addAvailability(); 899 } 900 else if (name.equals("endpoint")) { 901 return addEndpoint(); 902 } 903 else 904 return super.addChild(name); 905 } 906 907 public String fhirType() { 908 return "PractitionerRole"; 909 910 } 911 912 public PractitionerRole copy() { 913 PractitionerRole dst = new PractitionerRole(); 914 copyValues(dst); 915 return dst; 916 } 917 918 public void copyValues(PractitionerRole dst) { 919 super.copyValues(dst); 920 if (identifier != null) { 921 dst.identifier = new ArrayList<Identifier>(); 922 for (Identifier i : identifier) 923 dst.identifier.add(i.copy()); 924 }; 925 dst.active = active == null ? null : active.copy(); 926 dst.period = period == null ? null : period.copy(); 927 dst.practitioner = practitioner == null ? null : practitioner.copy(); 928 dst.organization = organization == null ? null : organization.copy(); 929 if (code != null) { 930 dst.code = new ArrayList<CodeableConcept>(); 931 for (CodeableConcept i : code) 932 dst.code.add(i.copy()); 933 }; 934 if (specialty != null) { 935 dst.specialty = new ArrayList<CodeableConcept>(); 936 for (CodeableConcept i : specialty) 937 dst.specialty.add(i.copy()); 938 }; 939 if (location != null) { 940 dst.location = new ArrayList<Reference>(); 941 for (Reference i : location) 942 dst.location.add(i.copy()); 943 }; 944 if (healthcareService != null) { 945 dst.healthcareService = new ArrayList<Reference>(); 946 for (Reference i : healthcareService) 947 dst.healthcareService.add(i.copy()); 948 }; 949 if (contact != null) { 950 dst.contact = new ArrayList<ExtendedContactDetail>(); 951 for (ExtendedContactDetail i : contact) 952 dst.contact.add(i.copy()); 953 }; 954 if (availability != null) { 955 dst.availability = new ArrayList<Availability>(); 956 for (Availability i : availability) 957 dst.availability.add(i.copy()); 958 }; 959 if (endpoint != null) { 960 dst.endpoint = new ArrayList<Reference>(); 961 for (Reference i : endpoint) 962 dst.endpoint.add(i.copy()); 963 }; 964 } 965 966 protected PractitionerRole typedCopy() { 967 return copy(); 968 } 969 970 @Override 971 public boolean equalsDeep(Base other_) { 972 if (!super.equalsDeep(other_)) 973 return false; 974 if (!(other_ instanceof PractitionerRole)) 975 return false; 976 PractitionerRole o = (PractitionerRole) other_; 977 return compareDeep(identifier, o.identifier, true) && compareDeep(active, o.active, true) && compareDeep(period, o.period, true) 978 && compareDeep(practitioner, o.practitioner, true) && compareDeep(organization, o.organization, true) 979 && compareDeep(code, o.code, true) && compareDeep(specialty, o.specialty, true) && compareDeep(location, o.location, true) 980 && compareDeep(healthcareService, o.healthcareService, true) && compareDeep(contact, o.contact, true) 981 && compareDeep(availability, o.availability, true) && compareDeep(endpoint, o.endpoint, true); 982 } 983 984 @Override 985 public boolean equalsShallow(Base other_) { 986 if (!super.equalsShallow(other_)) 987 return false; 988 if (!(other_ instanceof PractitionerRole)) 989 return false; 990 PractitionerRole o = (PractitionerRole) other_; 991 return compareValues(active, o.active, true); 992 } 993 994 public boolean isEmpty() { 995 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, active, period 996 , practitioner, organization, code, specialty, location, healthcareService, contact 997 , availability, endpoint); 998 } 999 1000 @Override 1001 public ResourceType getResourceType() { 1002 return ResourceType.PractitionerRole; 1003 } 1004 1005 /** 1006 * Search parameter: <b>active</b> 1007 * <p> 1008 * Description: <b>Whether this practitioner role record is in active use</b><br> 1009 * Type: <b>token</b><br> 1010 * Path: <b>PractitionerRole.active</b><br> 1011 * </p> 1012 */ 1013 @SearchParamDefinition(name="active", path="PractitionerRole.active", description="Whether this practitioner role record is in active use", type="token" ) 1014 public static final String SP_ACTIVE = "active"; 1015 /** 1016 * <b>Fluent Client</b> search parameter constant for <b>active</b> 1017 * <p> 1018 * Description: <b>Whether this practitioner role record is in active use</b><br> 1019 * Type: <b>token</b><br> 1020 * Path: <b>PractitionerRole.active</b><br> 1021 * </p> 1022 */ 1023 public static final ca.uhn.fhir.rest.gclient.TokenClientParam ACTIVE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_ACTIVE); 1024 1025 /** 1026 * Search parameter: <b>date</b> 1027 * <p> 1028 * Description: <b>The period during which the practitioner is authorized to perform in these role(s)</b><br> 1029 * Type: <b>date</b><br> 1030 * Path: <b>PractitionerRole.period</b><br> 1031 * </p> 1032 */ 1033 @SearchParamDefinition(name="date", path="PractitionerRole.period", description="The period during which the practitioner is authorized to perform in these role(s)", type="date" ) 1034 public static final String SP_DATE = "date"; 1035 /** 1036 * <b>Fluent Client</b> search parameter constant for <b>date</b> 1037 * <p> 1038 * Description: <b>The period during which the practitioner is authorized to perform in these role(s)</b><br> 1039 * Type: <b>date</b><br> 1040 * Path: <b>PractitionerRole.period</b><br> 1041 * </p> 1042 */ 1043 public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE); 1044 1045 /** 1046 * Search parameter: <b>endpoint</b> 1047 * <p> 1048 * Description: <b>Technical endpoints providing access to services operated for the practitioner with this role</b><br> 1049 * Type: <b>reference</b><br> 1050 * Path: <b>PractitionerRole.endpoint</b><br> 1051 * </p> 1052 */ 1053 @SearchParamDefinition(name="endpoint", path="PractitionerRole.endpoint", description="Technical endpoints providing access to services operated for the practitioner with this role", type="reference", target={Endpoint.class } ) 1054 public static final String SP_ENDPOINT = "endpoint"; 1055 /** 1056 * <b>Fluent Client</b> search parameter constant for <b>endpoint</b> 1057 * <p> 1058 * Description: <b>Technical endpoints providing access to services operated for the practitioner with this role</b><br> 1059 * Type: <b>reference</b><br> 1060 * Path: <b>PractitionerRole.endpoint</b><br> 1061 * </p> 1062 */ 1063 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ENDPOINT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ENDPOINT); 1064 1065/** 1066 * Constant for fluent queries to be used to add include statements. Specifies 1067 * the path value of "<b>PractitionerRole:endpoint</b>". 1068 */ 1069 public static final ca.uhn.fhir.model.api.Include INCLUDE_ENDPOINT = new ca.uhn.fhir.model.api.Include("PractitionerRole:endpoint").toLocked(); 1070 1071 /** 1072 * Search parameter: <b>identifier</b> 1073 * <p> 1074 * Description: <b>A practitioner's Identifier</b><br> 1075 * Type: <b>token</b><br> 1076 * Path: <b>PractitionerRole.identifier</b><br> 1077 * </p> 1078 */ 1079 @SearchParamDefinition(name="identifier", path="PractitionerRole.identifier", description="A practitioner's Identifier", type="token" ) 1080 public static final String SP_IDENTIFIER = "identifier"; 1081 /** 1082 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 1083 * <p> 1084 * Description: <b>A practitioner's Identifier</b><br> 1085 * Type: <b>token</b><br> 1086 * Path: <b>PractitionerRole.identifier</b><br> 1087 * </p> 1088 */ 1089 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 1090 1091 /** 1092 * Search parameter: <b>location</b> 1093 * <p> 1094 * Description: <b>One of the locations at which this practitioner provides care</b><br> 1095 * Type: <b>reference</b><br> 1096 * Path: <b>PractitionerRole.location</b><br> 1097 * </p> 1098 */ 1099 @SearchParamDefinition(name="location", path="PractitionerRole.location", description="One of the locations at which this practitioner provides care", type="reference", target={Location.class } ) 1100 public static final String SP_LOCATION = "location"; 1101 /** 1102 * <b>Fluent Client</b> search parameter constant for <b>location</b> 1103 * <p> 1104 * Description: <b>One of the locations at which this practitioner provides care</b><br> 1105 * Type: <b>reference</b><br> 1106 * Path: <b>PractitionerRole.location</b><br> 1107 * </p> 1108 */ 1109 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam LOCATION = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_LOCATION); 1110 1111/** 1112 * Constant for fluent queries to be used to add include statements. Specifies 1113 * the path value of "<b>PractitionerRole:location</b>". 1114 */ 1115 public static final ca.uhn.fhir.model.api.Include INCLUDE_LOCATION = new ca.uhn.fhir.model.api.Include("PractitionerRole:location").toLocked(); 1116 1117 /** 1118 * Search parameter: <b>organization</b> 1119 * <p> 1120 * Description: <b>The identity of the organization the practitioner represents / acts on behalf of</b><br> 1121 * Type: <b>reference</b><br> 1122 * Path: <b>PractitionerRole.organization</b><br> 1123 * </p> 1124 */ 1125 @SearchParamDefinition(name="organization", path="PractitionerRole.organization", description="The identity of the organization the practitioner represents / acts on behalf of", type="reference", target={Organization.class } ) 1126 public static final String SP_ORGANIZATION = "organization"; 1127 /** 1128 * <b>Fluent Client</b> search parameter constant for <b>organization</b> 1129 * <p> 1130 * Description: <b>The identity of the organization the practitioner represents / acts on behalf of</b><br> 1131 * Type: <b>reference</b><br> 1132 * Path: <b>PractitionerRole.organization</b><br> 1133 * </p> 1134 */ 1135 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ORGANIZATION = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ORGANIZATION); 1136 1137/** 1138 * Constant for fluent queries to be used to add include statements. Specifies 1139 * the path value of "<b>PractitionerRole:organization</b>". 1140 */ 1141 public static final ca.uhn.fhir.model.api.Include INCLUDE_ORGANIZATION = new ca.uhn.fhir.model.api.Include("PractitionerRole:organization").toLocked(); 1142 1143 /** 1144 * Search parameter: <b>practitioner</b> 1145 * <p> 1146 * Description: <b>Practitioner that is able to provide the defined services for the organization</b><br> 1147 * Type: <b>reference</b><br> 1148 * Path: <b>PractitionerRole.practitioner</b><br> 1149 * </p> 1150 */ 1151 @SearchParamDefinition(name="practitioner", path="PractitionerRole.practitioner", description="Practitioner that is able to provide the defined services for the organization", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Practitioner") }, target={Practitioner.class } ) 1152 public static final String SP_PRACTITIONER = "practitioner"; 1153 /** 1154 * <b>Fluent Client</b> search parameter constant for <b>practitioner</b> 1155 * <p> 1156 * Description: <b>Practitioner that is able to provide the defined services for the organization</b><br> 1157 * Type: <b>reference</b><br> 1158 * Path: <b>PractitionerRole.practitioner</b><br> 1159 * </p> 1160 */ 1161 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PRACTITIONER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PRACTITIONER); 1162 1163/** 1164 * Constant for fluent queries to be used to add include statements. Specifies 1165 * the path value of "<b>PractitionerRole:practitioner</b>". 1166 */ 1167 public static final ca.uhn.fhir.model.api.Include INCLUDE_PRACTITIONER = new ca.uhn.fhir.model.api.Include("PractitionerRole:practitioner").toLocked(); 1168 1169 /** 1170 * Search parameter: <b>role</b> 1171 * <p> 1172 * Description: <b>The practitioner can perform this role at for the organization</b><br> 1173 * Type: <b>token</b><br> 1174 * Path: <b>PractitionerRole.code</b><br> 1175 * </p> 1176 */ 1177 @SearchParamDefinition(name="role", path="PractitionerRole.code", description="The practitioner can perform this role at for the organization", type="token" ) 1178 public static final String SP_ROLE = "role"; 1179 /** 1180 * <b>Fluent Client</b> search parameter constant for <b>role</b> 1181 * <p> 1182 * Description: <b>The practitioner can perform this role at for the organization</b><br> 1183 * Type: <b>token</b><br> 1184 * Path: <b>PractitionerRole.code</b><br> 1185 * </p> 1186 */ 1187 public static final ca.uhn.fhir.rest.gclient.TokenClientParam ROLE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_ROLE); 1188 1189 /** 1190 * Search parameter: <b>service</b> 1191 * <p> 1192 * Description: <b>The list of healthcare services that this worker provides for this role's Organization/Location(s)</b><br> 1193 * Type: <b>reference</b><br> 1194 * Path: <b>PractitionerRole.healthcareService</b><br> 1195 * </p> 1196 */ 1197 @SearchParamDefinition(name="service", path="PractitionerRole.healthcareService", description="The list of healthcare services that this worker provides for this role's Organization/Location(s)", type="reference", target={HealthcareService.class } ) 1198 public static final String SP_SERVICE = "service"; 1199 /** 1200 * <b>Fluent Client</b> search parameter constant for <b>service</b> 1201 * <p> 1202 * Description: <b>The list of healthcare services that this worker provides for this role's Organization/Location(s)</b><br> 1203 * Type: <b>reference</b><br> 1204 * Path: <b>PractitionerRole.healthcareService</b><br> 1205 * </p> 1206 */ 1207 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SERVICE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SERVICE); 1208 1209/** 1210 * Constant for fluent queries to be used to add include statements. Specifies 1211 * the path value of "<b>PractitionerRole:service</b>". 1212 */ 1213 public static final ca.uhn.fhir.model.api.Include INCLUDE_SERVICE = new ca.uhn.fhir.model.api.Include("PractitionerRole:service").toLocked(); 1214 1215 /** 1216 * Search parameter: <b>specialty</b> 1217 * <p> 1218 * Description: <b>The practitioner has this specialty at an organization</b><br> 1219 * Type: <b>token</b><br> 1220 * Path: <b>PractitionerRole.specialty</b><br> 1221 * </p> 1222 */ 1223 @SearchParamDefinition(name="specialty", path="PractitionerRole.specialty", description="The practitioner has this specialty at an organization", type="token" ) 1224 public static final String SP_SPECIALTY = "specialty"; 1225 /** 1226 * <b>Fluent Client</b> search parameter constant for <b>specialty</b> 1227 * <p> 1228 * Description: <b>The practitioner has this specialty at an organization</b><br> 1229 * Type: <b>token</b><br> 1230 * Path: <b>PractitionerRole.specialty</b><br> 1231 * </p> 1232 */ 1233 public static final ca.uhn.fhir.rest.gclient.TokenClientParam SPECIALTY = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_SPECIALTY); 1234 1235 /** 1236 * Search parameter: <b>email</b> 1237 * <p> 1238 * Description: <b>Multiple Resources: 1239 1240* [Patient](patient.html): A value in an email contact 1241* [Person](person.html): A value in an email contact 1242* [Practitioner](practitioner.html): A value in an email contact 1243* [PractitionerRole](practitionerrole.html): A value in an email contact 1244* [RelatedPerson](relatedperson.html): A value in an email contact 1245</b><br> 1246 * Type: <b>token</b><br> 1247 * Path: <b>Patient.telecom.where(system='email') | Person.telecom.where(system='email') | Practitioner.telecom.where(system='email') | PractitionerRole.contact.telecom.where(system='email') | RelatedPerson.telecom.where(system='email')</b><br> 1248 * </p> 1249 */ 1250 @SearchParamDefinition(name="email", path="Patient.telecom.where(system='email') | Person.telecom.where(system='email') | Practitioner.telecom.where(system='email') | PractitionerRole.contact.telecom.where(system='email') | RelatedPerson.telecom.where(system='email')", description="Multiple Resources: \r\n\r\n* [Patient](patient.html): A value in an email contact\r\n* [Person](person.html): A value in an email contact\r\n* [Practitioner](practitioner.html): A value in an email contact\r\n* [PractitionerRole](practitionerrole.html): A value in an email contact\r\n* [RelatedPerson](relatedperson.html): A value in an email contact\r\n", type="token" ) 1251 public static final String SP_EMAIL = "email"; 1252 /** 1253 * <b>Fluent Client</b> search parameter constant for <b>email</b> 1254 * <p> 1255 * Description: <b>Multiple Resources: 1256 1257* [Patient](patient.html): A value in an email contact 1258* [Person](person.html): A value in an email contact 1259* [Practitioner](practitioner.html): A value in an email contact 1260* [PractitionerRole](practitionerrole.html): A value in an email contact 1261* [RelatedPerson](relatedperson.html): A value in an email contact 1262</b><br> 1263 * Type: <b>token</b><br> 1264 * Path: <b>Patient.telecom.where(system='email') | Person.telecom.where(system='email') | Practitioner.telecom.where(system='email') | PractitionerRole.contact.telecom.where(system='email') | RelatedPerson.telecom.where(system='email')</b><br> 1265 * </p> 1266 */ 1267 public static final ca.uhn.fhir.rest.gclient.TokenClientParam EMAIL = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_EMAIL); 1268 1269 /** 1270 * Search parameter: <b>phone</b> 1271 * <p> 1272 * Description: <b>Multiple Resources: 1273 1274* [Patient](patient.html): A value in a phone contact 1275* [Person](person.html): A value in a phone contact 1276* [Practitioner](practitioner.html): A value in a phone contact 1277* [PractitionerRole](practitionerrole.html): A value in a phone contact 1278* [RelatedPerson](relatedperson.html): A value in a phone contact 1279</b><br> 1280 * Type: <b>token</b><br> 1281 * Path: <b>Patient.telecom.where(system='phone') | Person.telecom.where(system='phone') | Practitioner.telecom.where(system='phone') | PractitionerRole.contact.telecom.where(system='phone') | RelatedPerson.telecom.where(system='phone')</b><br> 1282 * </p> 1283 */ 1284 @SearchParamDefinition(name="phone", path="Patient.telecom.where(system='phone') | Person.telecom.where(system='phone') | Practitioner.telecom.where(system='phone') | PractitionerRole.contact.telecom.where(system='phone') | RelatedPerson.telecom.where(system='phone')", description="Multiple Resources: \r\n\r\n* [Patient](patient.html): A value in a phone contact\r\n* [Person](person.html): A value in a phone contact\r\n* [Practitioner](practitioner.html): A value in a phone contact\r\n* [PractitionerRole](practitionerrole.html): A value in a phone contact\r\n* [RelatedPerson](relatedperson.html): A value in a phone contact\r\n", type="token" ) 1285 public static final String SP_PHONE = "phone"; 1286 /** 1287 * <b>Fluent Client</b> search parameter constant for <b>phone</b> 1288 * <p> 1289 * Description: <b>Multiple Resources: 1290 1291* [Patient](patient.html): A value in a phone contact 1292* [Person](person.html): A value in a phone contact 1293* [Practitioner](practitioner.html): A value in a phone contact 1294* [PractitionerRole](practitionerrole.html): A value in a phone contact 1295* [RelatedPerson](relatedperson.html): A value in a phone contact 1296</b><br> 1297 * Type: <b>token</b><br> 1298 * Path: <b>Patient.telecom.where(system='phone') | Person.telecom.where(system='phone') | Practitioner.telecom.where(system='phone') | PractitionerRole.contact.telecom.where(system='phone') | RelatedPerson.telecom.where(system='phone')</b><br> 1299 * </p> 1300 */ 1301 public static final ca.uhn.fhir.rest.gclient.TokenClientParam PHONE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_PHONE); 1302 1303 /** 1304 * Search parameter: <b>telecom</b> 1305 * <p> 1306 * Description: <b>Multiple Resources: 1307 1308* [Patient](patient.html): The value in any kind of telecom details of the patient 1309* [Person](person.html): The value in any kind of contact 1310* [Practitioner](practitioner.html): The value in any kind of contact 1311* [PractitionerRole](practitionerrole.html): The value in any kind of contact 1312* [RelatedPerson](relatedperson.html): The value in any kind of contact 1313</b><br> 1314 * Type: <b>token</b><br> 1315 * Path: <b>Patient.telecom | Person.telecom | Practitioner.telecom | PractitionerRole.contact.telecom | RelatedPerson.telecom</b><br> 1316 * </p> 1317 */ 1318 @SearchParamDefinition(name="telecom", path="Patient.telecom | Person.telecom | Practitioner.telecom | PractitionerRole.contact.telecom | RelatedPerson.telecom", description="Multiple Resources: \r\n\r\n* [Patient](patient.html): The value in any kind of telecom details of the patient\r\n* [Person](person.html): The value in any kind of contact\r\n* [Practitioner](practitioner.html): The value in any kind of contact\r\n* [PractitionerRole](practitionerrole.html): The value in any kind of contact\r\n* [RelatedPerson](relatedperson.html): The value in any kind of contact\r\n", type="token" ) 1319 public static final String SP_TELECOM = "telecom"; 1320 /** 1321 * <b>Fluent Client</b> search parameter constant for <b>telecom</b> 1322 * <p> 1323 * Description: <b>Multiple Resources: 1324 1325* [Patient](patient.html): The value in any kind of telecom details of the patient 1326* [Person](person.html): The value in any kind of contact 1327* [Practitioner](practitioner.html): The value in any kind of contact 1328* [PractitionerRole](practitionerrole.html): The value in any kind of contact 1329* [RelatedPerson](relatedperson.html): The value in any kind of contact 1330</b><br> 1331 * Type: <b>token</b><br> 1332 * Path: <b>Patient.telecom | Person.telecom | Practitioner.telecom | PractitionerRole.contact.telecom | RelatedPerson.telecom</b><br> 1333 * </p> 1334 */ 1335 public static final ca.uhn.fhir.rest.gclient.TokenClientParam TELECOM = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TELECOM); 1336 1337 1338} 1339