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