001package org.hl7.fhir.r4.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 6, 2018 17:51-0400 for FHIR v3.4.0 033 034import java.util.*; 035 036import org.hl7.fhir.utilities.Utilities; 037import org.hl7.fhir.r4.model.Enumerations.*; 038import ca.uhn.fhir.model.api.annotation.ResourceDef; 039import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 040import ca.uhn.fhir.model.api.annotation.Child; 041import ca.uhn.fhir.model.api.annotation.ChildOrder; 042import ca.uhn.fhir.model.api.annotation.Description; 043import ca.uhn.fhir.model.api.annotation.Block; 044import org.hl7.fhir.instance.model.api.*; 045import org.hl7.fhir.exceptions.FHIRException; 046/** 047 * A person who is directly or indirectly involved in the provisioning of healthcare. 048 */ 049@ResourceDef(name="Practitioner", profile="http://hl7.org/fhir/Profile/Practitioner") 050public class Practitioner extends DomainResource { 051 052 @Block() 053 public static class PractitionerQualificationComponent extends BackboneElement implements IBaseBackboneElement { 054 /** 055 * An identifier that applies to this person's qualification in this role. 056 */ 057 @Child(name = "identifier", type = {Identifier.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 058 @Description(shortDefinition="An identifier for this qualification for the practitioner", formalDefinition="An identifier that applies to this person's qualification in this role." ) 059 protected List<Identifier> identifier; 060 061 /** 062 * Coded representation of the qualification. 063 */ 064 @Child(name = "code", type = {CodeableConcept.class}, order=2, min=1, max=1, modifier=false, summary=false) 065 @Description(shortDefinition="Coded representation of the qualification", formalDefinition="Coded representation of the qualification." ) 066 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/v2-2.7-0360") 067 protected CodeableConcept code; 068 069 /** 070 * Period during which the qualification is valid. 071 */ 072 @Child(name = "period", type = {Period.class}, order=3, min=0, max=1, modifier=false, summary=false) 073 @Description(shortDefinition="Period during which the qualification is valid", formalDefinition="Period during which the qualification is valid." ) 074 protected Period period; 075 076 /** 077 * Organization that regulates and issues the qualification. 078 */ 079 @Child(name = "issuer", type = {Organization.class}, order=4, min=0, max=1, modifier=false, summary=false) 080 @Description(shortDefinition="Organization that regulates and issues the qualification", formalDefinition="Organization that regulates and issues the qualification." ) 081 protected Reference issuer; 082 083 /** 084 * The actual object that is the target of the reference (Organization that regulates and issues the qualification.) 085 */ 086 protected Organization issuerTarget; 087 088 private static final long serialVersionUID = 1095219071L; 089 090 /** 091 * Constructor 092 */ 093 public PractitionerQualificationComponent() { 094 super(); 095 } 096 097 /** 098 * Constructor 099 */ 100 public PractitionerQualificationComponent(CodeableConcept code) { 101 super(); 102 this.code = code; 103 } 104 105 /** 106 * @return {@link #identifier} (An identifier that applies to this person's qualification in this role.) 107 */ 108 public List<Identifier> getIdentifier() { 109 if (this.identifier == null) 110 this.identifier = new ArrayList<Identifier>(); 111 return this.identifier; 112 } 113 114 /** 115 * @return Returns a reference to <code>this</code> for easy method chaining 116 */ 117 public PractitionerQualificationComponent setIdentifier(List<Identifier> theIdentifier) { 118 this.identifier = theIdentifier; 119 return this; 120 } 121 122 public boolean hasIdentifier() { 123 if (this.identifier == null) 124 return false; 125 for (Identifier item : this.identifier) 126 if (!item.isEmpty()) 127 return true; 128 return false; 129 } 130 131 public Identifier addIdentifier() { //3 132 Identifier t = new Identifier(); 133 if (this.identifier == null) 134 this.identifier = new ArrayList<Identifier>(); 135 this.identifier.add(t); 136 return t; 137 } 138 139 public PractitionerQualificationComponent addIdentifier(Identifier t) { //3 140 if (t == null) 141 return this; 142 if (this.identifier == null) 143 this.identifier = new ArrayList<Identifier>(); 144 this.identifier.add(t); 145 return this; 146 } 147 148 /** 149 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist 150 */ 151 public Identifier getIdentifierFirstRep() { 152 if (getIdentifier().isEmpty()) { 153 addIdentifier(); 154 } 155 return getIdentifier().get(0); 156 } 157 158 /** 159 * @return {@link #code} (Coded representation of the qualification.) 160 */ 161 public CodeableConcept getCode() { 162 if (this.code == null) 163 if (Configuration.errorOnAutoCreate()) 164 throw new Error("Attempt to auto-create PractitionerQualificationComponent.code"); 165 else if (Configuration.doAutoCreate()) 166 this.code = new CodeableConcept(); // cc 167 return this.code; 168 } 169 170 public boolean hasCode() { 171 return this.code != null && !this.code.isEmpty(); 172 } 173 174 /** 175 * @param value {@link #code} (Coded representation of the qualification.) 176 */ 177 public PractitionerQualificationComponent setCode(CodeableConcept value) { 178 this.code = value; 179 return this; 180 } 181 182 /** 183 * @return {@link #period} (Period during which the qualification is valid.) 184 */ 185 public Period getPeriod() { 186 if (this.period == null) 187 if (Configuration.errorOnAutoCreate()) 188 throw new Error("Attempt to auto-create PractitionerQualificationComponent.period"); 189 else if (Configuration.doAutoCreate()) 190 this.period = new Period(); // cc 191 return this.period; 192 } 193 194 public boolean hasPeriod() { 195 return this.period != null && !this.period.isEmpty(); 196 } 197 198 /** 199 * @param value {@link #period} (Period during which the qualification is valid.) 200 */ 201 public PractitionerQualificationComponent setPeriod(Period value) { 202 this.period = value; 203 return this; 204 } 205 206 /** 207 * @return {@link #issuer} (Organization that regulates and issues the qualification.) 208 */ 209 public Reference getIssuer() { 210 if (this.issuer == null) 211 if (Configuration.errorOnAutoCreate()) 212 throw new Error("Attempt to auto-create PractitionerQualificationComponent.issuer"); 213 else if (Configuration.doAutoCreate()) 214 this.issuer = new Reference(); // cc 215 return this.issuer; 216 } 217 218 public boolean hasIssuer() { 219 return this.issuer != null && !this.issuer.isEmpty(); 220 } 221 222 /** 223 * @param value {@link #issuer} (Organization that regulates and issues the qualification.) 224 */ 225 public PractitionerQualificationComponent setIssuer(Reference value) { 226 this.issuer = value; 227 return this; 228 } 229 230 /** 231 * @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.) 232 */ 233 public Organization getIssuerTarget() { 234 if (this.issuerTarget == null) 235 if (Configuration.errorOnAutoCreate()) 236 throw new Error("Attempt to auto-create PractitionerQualificationComponent.issuer"); 237 else if (Configuration.doAutoCreate()) 238 this.issuerTarget = new Organization(); // aa 239 return this.issuerTarget; 240 } 241 242 /** 243 * @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.) 244 */ 245 public PractitionerQualificationComponent setIssuerTarget(Organization value) { 246 this.issuerTarget = value; 247 return this; 248 } 249 250 protected void listChildren(List<Property> children) { 251 super.listChildren(children); 252 children.add(new Property("identifier", "Identifier", "An identifier that applies to this person's qualification in this role.", 0, java.lang.Integer.MAX_VALUE, identifier)); 253 children.add(new Property("code", "CodeableConcept", "Coded representation of the qualification.", 0, 1, code)); 254 children.add(new Property("period", "Period", "Period during which the qualification is valid.", 0, 1, period)); 255 children.add(new Property("issuer", "Reference(Organization)", "Organization that regulates and issues the qualification.", 0, 1, issuer)); 256 } 257 258 @Override 259 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 260 switch (_hash) { 261 case -1618432855: /*identifier*/ return new Property("identifier", "Identifier", "An identifier that applies to this person's qualification in this role.", 0, java.lang.Integer.MAX_VALUE, identifier); 262 case 3059181: /*code*/ return new Property("code", "CodeableConcept", "Coded representation of the qualification.", 0, 1, code); 263 case -991726143: /*period*/ return new Property("period", "Period", "Period during which the qualification is valid.", 0, 1, period); 264 case -1179159879: /*issuer*/ return new Property("issuer", "Reference(Organization)", "Organization that regulates and issues the qualification.", 0, 1, issuer); 265 default: return super.getNamedProperty(_hash, _name, _checkValid); 266 } 267 268 } 269 270 @Override 271 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 272 switch (hash) { 273 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 274 case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept 275 case -991726143: /*period*/ return this.period == null ? new Base[0] : new Base[] {this.period}; // Period 276 case -1179159879: /*issuer*/ return this.issuer == null ? new Base[0] : new Base[] {this.issuer}; // Reference 277 default: return super.getProperty(hash, name, checkValid); 278 } 279 280 } 281 282 @Override 283 public Base setProperty(int hash, String name, Base value) throws FHIRException { 284 switch (hash) { 285 case -1618432855: // identifier 286 this.getIdentifier().add(castToIdentifier(value)); // Identifier 287 return value; 288 case 3059181: // code 289 this.code = castToCodeableConcept(value); // CodeableConcept 290 return value; 291 case -991726143: // period 292 this.period = castToPeriod(value); // Period 293 return value; 294 case -1179159879: // issuer 295 this.issuer = castToReference(value); // Reference 296 return value; 297 default: return super.setProperty(hash, name, value); 298 } 299 300 } 301 302 @Override 303 public Base setProperty(String name, Base value) throws FHIRException { 304 if (name.equals("identifier")) { 305 this.getIdentifier().add(castToIdentifier(value)); 306 } else if (name.equals("code")) { 307 this.code = castToCodeableConcept(value); // CodeableConcept 308 } else if (name.equals("period")) { 309 this.period = castToPeriod(value); // Period 310 } else if (name.equals("issuer")) { 311 this.issuer = castToReference(value); // Reference 312 } else 313 return super.setProperty(name, value); 314 return value; 315 } 316 317 @Override 318 public Base makeProperty(int hash, String name) throws FHIRException { 319 switch (hash) { 320 case -1618432855: return addIdentifier(); 321 case 3059181: return getCode(); 322 case -991726143: return getPeriod(); 323 case -1179159879: return getIssuer(); 324 default: return super.makeProperty(hash, name); 325 } 326 327 } 328 329 @Override 330 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 331 switch (hash) { 332 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 333 case 3059181: /*code*/ return new String[] {"CodeableConcept"}; 334 case -991726143: /*period*/ return new String[] {"Period"}; 335 case -1179159879: /*issuer*/ return new String[] {"Reference"}; 336 default: return super.getTypesForProperty(hash, name); 337 } 338 339 } 340 341 @Override 342 public Base addChild(String name) throws FHIRException { 343 if (name.equals("identifier")) { 344 return addIdentifier(); 345 } 346 else if (name.equals("code")) { 347 this.code = new CodeableConcept(); 348 return this.code; 349 } 350 else if (name.equals("period")) { 351 this.period = new Period(); 352 return this.period; 353 } 354 else if (name.equals("issuer")) { 355 this.issuer = new Reference(); 356 return this.issuer; 357 } 358 else 359 return super.addChild(name); 360 } 361 362 public PractitionerQualificationComponent copy() { 363 PractitionerQualificationComponent dst = new PractitionerQualificationComponent(); 364 copyValues(dst); 365 if (identifier != null) { 366 dst.identifier = new ArrayList<Identifier>(); 367 for (Identifier i : identifier) 368 dst.identifier.add(i.copy()); 369 }; 370 dst.code = code == null ? null : code.copy(); 371 dst.period = period == null ? null : period.copy(); 372 dst.issuer = issuer == null ? null : issuer.copy(); 373 return dst; 374 } 375 376 @Override 377 public boolean equalsDeep(Base other_) { 378 if (!super.equalsDeep(other_)) 379 return false; 380 if (!(other_ instanceof PractitionerQualificationComponent)) 381 return false; 382 PractitionerQualificationComponent o = (PractitionerQualificationComponent) other_; 383 return compareDeep(identifier, o.identifier, true) && compareDeep(code, o.code, true) && compareDeep(period, o.period, true) 384 && compareDeep(issuer, o.issuer, true); 385 } 386 387 @Override 388 public boolean equalsShallow(Base other_) { 389 if (!super.equalsShallow(other_)) 390 return false; 391 if (!(other_ instanceof PractitionerQualificationComponent)) 392 return false; 393 PractitionerQualificationComponent o = (PractitionerQualificationComponent) other_; 394 return true; 395 } 396 397 public boolean isEmpty() { 398 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, code, period 399 , issuer); 400 } 401 402 public String fhirType() { 403 return "Practitioner.qualification"; 404 405 } 406 407 } 408 409 /** 410 * An identifier that applies to this person in this role. 411 */ 412 @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 413 @Description(shortDefinition="An identifier for the person as this agent", formalDefinition="An identifier that applies to this person in this role." ) 414 protected List<Identifier> identifier; 415 416 /** 417 * Whether this practitioner's record is in active use. 418 */ 419 @Child(name = "active", type = {BooleanType.class}, order=1, min=0, max=1, modifier=false, summary=true) 420 @Description(shortDefinition="Whether this practitioner's record is in active use", formalDefinition="Whether this practitioner's record is in active use." ) 421 protected BooleanType active; 422 423 /** 424 * The name(s) associated with the practitioner. 425 */ 426 @Child(name = "name", type = {HumanName.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 427 @Description(shortDefinition="The name(s) associated with the practitioner", formalDefinition="The name(s) associated with the practitioner." ) 428 protected List<HumanName> name; 429 430 /** 431 * A contact detail for the practitioner, e.g. a telephone number or an email address. 432 */ 433 @Child(name = "telecom", type = {ContactPoint.class}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 434 @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." ) 435 protected List<ContactPoint> telecom; 436 437 /** 438 * Address(es) of the practitioner that are not role specific (typically home address). 439Work addresses are not typically entered in this property as they are usually role dependent. 440 */ 441 @Child(name = "address", type = {Address.class}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 442 @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). \rWork addresses are not typically entered in this property as they are usually role dependent." ) 443 protected List<Address> address; 444 445 /** 446 * Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes. 447 */ 448 @Child(name = "gender", type = {CodeType.class}, order=5, min=0, max=1, modifier=false, summary=true) 449 @Description(shortDefinition="male | female | other | unknown", formalDefinition="Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes." ) 450 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/administrative-gender") 451 protected Enumeration<AdministrativeGender> gender; 452 453 /** 454 * The date of birth for the practitioner. 455 */ 456 @Child(name = "birthDate", type = {DateType.class}, order=6, min=0, max=1, modifier=false, summary=true) 457 @Description(shortDefinition="The date on which the practitioner was born", formalDefinition="The date of birth for the practitioner." ) 458 protected DateType birthDate; 459 460 /** 461 * Image of the person. 462 */ 463 @Child(name = "photo", type = {Attachment.class}, order=7, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 464 @Description(shortDefinition="Image of the person", formalDefinition="Image of the person." ) 465 protected List<Attachment> photo; 466 467 /** 468 * Qualifications obtained by training and certification. 469 */ 470 @Child(name = "qualification", type = {}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 471 @Description(shortDefinition="Qualifications obtained by training and certification", formalDefinition="Qualifications obtained by training and certification." ) 472 protected List<PractitionerQualificationComponent> qualification; 473 474 /** 475 * A language the practitioner can use in patient communication. 476 */ 477 @Child(name = "communication", type = {CodeableConcept.class}, order=9, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 478 @Description(shortDefinition="A language the practitioner can use in patient communication", formalDefinition="A language the practitioner can use in patient communication." ) 479 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/languages") 480 protected List<CodeableConcept> communication; 481 482 private static final long serialVersionUID = 2128349259L; 483 484 /** 485 * Constructor 486 */ 487 public Practitioner() { 488 super(); 489 } 490 491 /** 492 * @return {@link #identifier} (An identifier that applies to this person in this role.) 493 */ 494 public List<Identifier> getIdentifier() { 495 if (this.identifier == null) 496 this.identifier = new ArrayList<Identifier>(); 497 return this.identifier; 498 } 499 500 /** 501 * @return Returns a reference to <code>this</code> for easy method chaining 502 */ 503 public Practitioner setIdentifier(List<Identifier> theIdentifier) { 504 this.identifier = theIdentifier; 505 return this; 506 } 507 508 public boolean hasIdentifier() { 509 if (this.identifier == null) 510 return false; 511 for (Identifier item : this.identifier) 512 if (!item.isEmpty()) 513 return true; 514 return false; 515 } 516 517 public Identifier addIdentifier() { //3 518 Identifier t = new Identifier(); 519 if (this.identifier == null) 520 this.identifier = new ArrayList<Identifier>(); 521 this.identifier.add(t); 522 return t; 523 } 524 525 public Practitioner addIdentifier(Identifier t) { //3 526 if (t == null) 527 return this; 528 if (this.identifier == null) 529 this.identifier = new ArrayList<Identifier>(); 530 this.identifier.add(t); 531 return this; 532 } 533 534 /** 535 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist 536 */ 537 public Identifier getIdentifierFirstRep() { 538 if (getIdentifier().isEmpty()) { 539 addIdentifier(); 540 } 541 return getIdentifier().get(0); 542 } 543 544 /** 545 * @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 546 */ 547 public BooleanType getActiveElement() { 548 if (this.active == null) 549 if (Configuration.errorOnAutoCreate()) 550 throw new Error("Attempt to auto-create Practitioner.active"); 551 else if (Configuration.doAutoCreate()) 552 this.active = new BooleanType(); // bb 553 return this.active; 554 } 555 556 public boolean hasActiveElement() { 557 return this.active != null && !this.active.isEmpty(); 558 } 559 560 public boolean hasActive() { 561 return this.active != null && !this.active.isEmpty(); 562 } 563 564 /** 565 * @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 566 */ 567 public Practitioner setActiveElement(BooleanType value) { 568 this.active = value; 569 return this; 570 } 571 572 /** 573 * @return Whether this practitioner's record is in active use. 574 */ 575 public boolean getActive() { 576 return this.active == null || this.active.isEmpty() ? false : this.active.getValue(); 577 } 578 579 /** 580 * @param value Whether this practitioner's record is in active use. 581 */ 582 public Practitioner setActive(boolean value) { 583 if (this.active == null) 584 this.active = new BooleanType(); 585 this.active.setValue(value); 586 return this; 587 } 588 589 /** 590 * @return {@link #name} (The name(s) associated with the practitioner.) 591 */ 592 public List<HumanName> getName() { 593 if (this.name == null) 594 this.name = new ArrayList<HumanName>(); 595 return this.name; 596 } 597 598 /** 599 * @return Returns a reference to <code>this</code> for easy method chaining 600 */ 601 public Practitioner setName(List<HumanName> theName) { 602 this.name = theName; 603 return this; 604 } 605 606 public boolean hasName() { 607 if (this.name == null) 608 return false; 609 for (HumanName item : this.name) 610 if (!item.isEmpty()) 611 return true; 612 return false; 613 } 614 615 public HumanName addName() { //3 616 HumanName t = new HumanName(); 617 if (this.name == null) 618 this.name = new ArrayList<HumanName>(); 619 this.name.add(t); 620 return t; 621 } 622 623 public Practitioner addName(HumanName t) { //3 624 if (t == null) 625 return this; 626 if (this.name == null) 627 this.name = new ArrayList<HumanName>(); 628 this.name.add(t); 629 return this; 630 } 631 632 /** 633 * @return The first repetition of repeating field {@link #name}, creating it if it does not already exist 634 */ 635 public HumanName getNameFirstRep() { 636 if (getName().isEmpty()) { 637 addName(); 638 } 639 return getName().get(0); 640 } 641 642 /** 643 * @return {@link #telecom} (A contact detail for the practitioner, e.g. a telephone number or an email address.) 644 */ 645 public List<ContactPoint> getTelecom() { 646 if (this.telecom == null) 647 this.telecom = new ArrayList<ContactPoint>(); 648 return this.telecom; 649 } 650 651 /** 652 * @return Returns a reference to <code>this</code> for easy method chaining 653 */ 654 public Practitioner setTelecom(List<ContactPoint> theTelecom) { 655 this.telecom = theTelecom; 656 return this; 657 } 658 659 public boolean hasTelecom() { 660 if (this.telecom == null) 661 return false; 662 for (ContactPoint item : this.telecom) 663 if (!item.isEmpty()) 664 return true; 665 return false; 666 } 667 668 public ContactPoint addTelecom() { //3 669 ContactPoint t = new ContactPoint(); 670 if (this.telecom == null) 671 this.telecom = new ArrayList<ContactPoint>(); 672 this.telecom.add(t); 673 return t; 674 } 675 676 public Practitioner addTelecom(ContactPoint t) { //3 677 if (t == null) 678 return this; 679 if (this.telecom == null) 680 this.telecom = new ArrayList<ContactPoint>(); 681 this.telecom.add(t); 682 return this; 683 } 684 685 /** 686 * @return The first repetition of repeating field {@link #telecom}, creating it if it does not already exist 687 */ 688 public ContactPoint getTelecomFirstRep() { 689 if (getTelecom().isEmpty()) { 690 addTelecom(); 691 } 692 return getTelecom().get(0); 693 } 694 695 /** 696 * @return {@link #address} (Address(es) of the practitioner that are not role specific (typically home address). 697Work addresses are not typically entered in this property as they are usually role dependent.) 698 */ 699 public List<Address> getAddress() { 700 if (this.address == null) 701 this.address = new ArrayList<Address>(); 702 return this.address; 703 } 704 705 /** 706 * @return Returns a reference to <code>this</code> for easy method chaining 707 */ 708 public Practitioner setAddress(List<Address> theAddress) { 709 this.address = theAddress; 710 return this; 711 } 712 713 public boolean hasAddress() { 714 if (this.address == null) 715 return false; 716 for (Address item : this.address) 717 if (!item.isEmpty()) 718 return true; 719 return false; 720 } 721 722 public Address addAddress() { //3 723 Address t = new Address(); 724 if (this.address == null) 725 this.address = new ArrayList<Address>(); 726 this.address.add(t); 727 return t; 728 } 729 730 public Practitioner addAddress(Address t) { //3 731 if (t == null) 732 return this; 733 if (this.address == null) 734 this.address = new ArrayList<Address>(); 735 this.address.add(t); 736 return this; 737 } 738 739 /** 740 * @return The first repetition of repeating field {@link #address}, creating it if it does not already exist 741 */ 742 public Address getAddressFirstRep() { 743 if (getAddress().isEmpty()) { 744 addAddress(); 745 } 746 return getAddress().get(0); 747 } 748 749 /** 750 * @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 751 */ 752 public Enumeration<AdministrativeGender> getGenderElement() { 753 if (this.gender == null) 754 if (Configuration.errorOnAutoCreate()) 755 throw new Error("Attempt to auto-create Practitioner.gender"); 756 else if (Configuration.doAutoCreate()) 757 this.gender = new Enumeration<AdministrativeGender>(new AdministrativeGenderEnumFactory()); // bb 758 return this.gender; 759 } 760 761 public boolean hasGenderElement() { 762 return this.gender != null && !this.gender.isEmpty(); 763 } 764 765 public boolean hasGender() { 766 return this.gender != null && !this.gender.isEmpty(); 767 } 768 769 /** 770 * @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 771 */ 772 public Practitioner setGenderElement(Enumeration<AdministrativeGender> value) { 773 this.gender = value; 774 return this; 775 } 776 777 /** 778 * @return Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes. 779 */ 780 public AdministrativeGender getGender() { 781 return this.gender == null ? null : this.gender.getValue(); 782 } 783 784 /** 785 * @param value Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes. 786 */ 787 public Practitioner setGender(AdministrativeGender value) { 788 if (value == null) 789 this.gender = null; 790 else { 791 if (this.gender == null) 792 this.gender = new Enumeration<AdministrativeGender>(new AdministrativeGenderEnumFactory()); 793 this.gender.setValue(value); 794 } 795 return this; 796 } 797 798 /** 799 * @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 800 */ 801 public DateType getBirthDateElement() { 802 if (this.birthDate == null) 803 if (Configuration.errorOnAutoCreate()) 804 throw new Error("Attempt to auto-create Practitioner.birthDate"); 805 else if (Configuration.doAutoCreate()) 806 this.birthDate = new DateType(); // bb 807 return this.birthDate; 808 } 809 810 public boolean hasBirthDateElement() { 811 return this.birthDate != null && !this.birthDate.isEmpty(); 812 } 813 814 public boolean hasBirthDate() { 815 return this.birthDate != null && !this.birthDate.isEmpty(); 816 } 817 818 /** 819 * @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 820 */ 821 public Practitioner setBirthDateElement(DateType value) { 822 this.birthDate = value; 823 return this; 824 } 825 826 /** 827 * @return The date of birth for the practitioner. 828 */ 829 public Date getBirthDate() { 830 return this.birthDate == null ? null : this.birthDate.getValue(); 831 } 832 833 /** 834 * @param value The date of birth for the practitioner. 835 */ 836 public Practitioner setBirthDate(Date value) { 837 if (value == null) 838 this.birthDate = null; 839 else { 840 if (this.birthDate == null) 841 this.birthDate = new DateType(); 842 this.birthDate.setValue(value); 843 } 844 return this; 845 } 846 847 /** 848 * @return {@link #photo} (Image of the person.) 849 */ 850 public List<Attachment> getPhoto() { 851 if (this.photo == null) 852 this.photo = new ArrayList<Attachment>(); 853 return this.photo; 854 } 855 856 /** 857 * @return Returns a reference to <code>this</code> for easy method chaining 858 */ 859 public Practitioner setPhoto(List<Attachment> thePhoto) { 860 this.photo = thePhoto; 861 return this; 862 } 863 864 public boolean hasPhoto() { 865 if (this.photo == null) 866 return false; 867 for (Attachment item : this.photo) 868 if (!item.isEmpty()) 869 return true; 870 return false; 871 } 872 873 public Attachment addPhoto() { //3 874 Attachment t = new Attachment(); 875 if (this.photo == null) 876 this.photo = new ArrayList<Attachment>(); 877 this.photo.add(t); 878 return t; 879 } 880 881 public Practitioner addPhoto(Attachment t) { //3 882 if (t == null) 883 return this; 884 if (this.photo == null) 885 this.photo = new ArrayList<Attachment>(); 886 this.photo.add(t); 887 return this; 888 } 889 890 /** 891 * @return The first repetition of repeating field {@link #photo}, creating it if it does not already exist 892 */ 893 public Attachment getPhotoFirstRep() { 894 if (getPhoto().isEmpty()) { 895 addPhoto(); 896 } 897 return getPhoto().get(0); 898 } 899 900 /** 901 * @return {@link #qualification} (Qualifications obtained by training and certification.) 902 */ 903 public List<PractitionerQualificationComponent> getQualification() { 904 if (this.qualification == null) 905 this.qualification = new ArrayList<PractitionerQualificationComponent>(); 906 return this.qualification; 907 } 908 909 /** 910 * @return Returns a reference to <code>this</code> for easy method chaining 911 */ 912 public Practitioner setQualification(List<PractitionerQualificationComponent> theQualification) { 913 this.qualification = theQualification; 914 return this; 915 } 916 917 public boolean hasQualification() { 918 if (this.qualification == null) 919 return false; 920 for (PractitionerQualificationComponent item : this.qualification) 921 if (!item.isEmpty()) 922 return true; 923 return false; 924 } 925 926 public PractitionerQualificationComponent addQualification() { //3 927 PractitionerQualificationComponent t = new PractitionerQualificationComponent(); 928 if (this.qualification == null) 929 this.qualification = new ArrayList<PractitionerQualificationComponent>(); 930 this.qualification.add(t); 931 return t; 932 } 933 934 public Practitioner addQualification(PractitionerQualificationComponent t) { //3 935 if (t == null) 936 return this; 937 if (this.qualification == null) 938 this.qualification = new ArrayList<PractitionerQualificationComponent>(); 939 this.qualification.add(t); 940 return this; 941 } 942 943 /** 944 * @return The first repetition of repeating field {@link #qualification}, creating it if it does not already exist 945 */ 946 public PractitionerQualificationComponent getQualificationFirstRep() { 947 if (getQualification().isEmpty()) { 948 addQualification(); 949 } 950 return getQualification().get(0); 951 } 952 953 /** 954 * @return {@link #communication} (A language the practitioner can use in patient communication.) 955 */ 956 public List<CodeableConcept> getCommunication() { 957 if (this.communication == null) 958 this.communication = new ArrayList<CodeableConcept>(); 959 return this.communication; 960 } 961 962 /** 963 * @return Returns a reference to <code>this</code> for easy method chaining 964 */ 965 public Practitioner setCommunication(List<CodeableConcept> theCommunication) { 966 this.communication = theCommunication; 967 return this; 968 } 969 970 public boolean hasCommunication() { 971 if (this.communication == null) 972 return false; 973 for (CodeableConcept item : this.communication) 974 if (!item.isEmpty()) 975 return true; 976 return false; 977 } 978 979 public CodeableConcept addCommunication() { //3 980 CodeableConcept t = new CodeableConcept(); 981 if (this.communication == null) 982 this.communication = new ArrayList<CodeableConcept>(); 983 this.communication.add(t); 984 return t; 985 } 986 987 public Practitioner addCommunication(CodeableConcept t) { //3 988 if (t == null) 989 return this; 990 if (this.communication == null) 991 this.communication = new ArrayList<CodeableConcept>(); 992 this.communication.add(t); 993 return this; 994 } 995 996 /** 997 * @return The first repetition of repeating field {@link #communication}, creating it if it does not already exist 998 */ 999 public CodeableConcept getCommunicationFirstRep() { 1000 if (getCommunication().isEmpty()) { 1001 addCommunication(); 1002 } 1003 return getCommunication().get(0); 1004 } 1005 1006 protected void listChildren(List<Property> children) { 1007 super.listChildren(children); 1008 children.add(new Property("identifier", "Identifier", "An identifier that applies to this person in this role.", 0, java.lang.Integer.MAX_VALUE, identifier)); 1009 children.add(new Property("active", "boolean", "Whether this practitioner's record is in active use.", 0, 1, active)); 1010 children.add(new Property("name", "HumanName", "The name(s) associated with the practitioner.", 0, java.lang.Integer.MAX_VALUE, name)); 1011 children.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)); 1012 children.add(new Property("address", "Address", "Address(es) of the practitioner that are not role specific (typically home address). \rWork addresses are not typically entered in this property as they are usually role dependent.", 0, java.lang.Integer.MAX_VALUE, address)); 1013 children.add(new Property("gender", "code", "Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes.", 0, 1, gender)); 1014 children.add(new Property("birthDate", "date", "The date of birth for the practitioner.", 0, 1, birthDate)); 1015 children.add(new Property("photo", "Attachment", "Image of the person.", 0, java.lang.Integer.MAX_VALUE, photo)); 1016 children.add(new Property("qualification", "", "Qualifications obtained by training and certification.", 0, java.lang.Integer.MAX_VALUE, qualification)); 1017 children.add(new Property("communication", "CodeableConcept", "A language the practitioner can use in patient communication.", 0, java.lang.Integer.MAX_VALUE, communication)); 1018 } 1019 1020 @Override 1021 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1022 switch (_hash) { 1023 case -1618432855: /*identifier*/ return new Property("identifier", "Identifier", "An identifier that applies to this person in this role.", 0, java.lang.Integer.MAX_VALUE, identifier); 1024 case -1422950650: /*active*/ return new Property("active", "boolean", "Whether this practitioner's record is in active use.", 0, 1, active); 1025 case 3373707: /*name*/ return new Property("name", "HumanName", "The name(s) associated with the practitioner.", 0, java.lang.Integer.MAX_VALUE, name); 1026 case -1429363305: /*telecom*/ return 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); 1027 case -1147692044: /*address*/ return new Property("address", "Address", "Address(es) of the practitioner that are not role specific (typically home address). \rWork addresses are not typically entered in this property as they are usually role dependent.", 0, java.lang.Integer.MAX_VALUE, address); 1028 case -1249512767: /*gender*/ return new Property("gender", "code", "Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes.", 0, 1, gender); 1029 case -1210031859: /*birthDate*/ return new Property("birthDate", "date", "The date of birth for the practitioner.", 0, 1, birthDate); 1030 case 106642994: /*photo*/ return new Property("photo", "Attachment", "Image of the person.", 0, java.lang.Integer.MAX_VALUE, photo); 1031 case -631333393: /*qualification*/ return new Property("qualification", "", "Qualifications obtained by training and certification.", 0, java.lang.Integer.MAX_VALUE, qualification); 1032 case -1035284522: /*communication*/ return new Property("communication", "CodeableConcept", "A language the practitioner can use in patient communication.", 0, java.lang.Integer.MAX_VALUE, communication); 1033 default: return super.getNamedProperty(_hash, _name, _checkValid); 1034 } 1035 1036 } 1037 1038 @Override 1039 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1040 switch (hash) { 1041 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 1042 case -1422950650: /*active*/ return this.active == null ? new Base[0] : new Base[] {this.active}; // BooleanType 1043 case 3373707: /*name*/ return this.name == null ? new Base[0] : this.name.toArray(new Base[this.name.size()]); // HumanName 1044 case -1429363305: /*telecom*/ return this.telecom == null ? new Base[0] : this.telecom.toArray(new Base[this.telecom.size()]); // ContactPoint 1045 case -1147692044: /*address*/ return this.address == null ? new Base[0] : this.address.toArray(new Base[this.address.size()]); // Address 1046 case -1249512767: /*gender*/ return this.gender == null ? new Base[0] : new Base[] {this.gender}; // Enumeration<AdministrativeGender> 1047 case -1210031859: /*birthDate*/ return this.birthDate == null ? new Base[0] : new Base[] {this.birthDate}; // DateType 1048 case 106642994: /*photo*/ return this.photo == null ? new Base[0] : this.photo.toArray(new Base[this.photo.size()]); // Attachment 1049 case -631333393: /*qualification*/ return this.qualification == null ? new Base[0] : this.qualification.toArray(new Base[this.qualification.size()]); // PractitionerQualificationComponent 1050 case -1035284522: /*communication*/ return this.communication == null ? new Base[0] : this.communication.toArray(new Base[this.communication.size()]); // CodeableConcept 1051 default: return super.getProperty(hash, name, checkValid); 1052 } 1053 1054 } 1055 1056 @Override 1057 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1058 switch (hash) { 1059 case -1618432855: // identifier 1060 this.getIdentifier().add(castToIdentifier(value)); // Identifier 1061 return value; 1062 case -1422950650: // active 1063 this.active = castToBoolean(value); // BooleanType 1064 return value; 1065 case 3373707: // name 1066 this.getName().add(castToHumanName(value)); // HumanName 1067 return value; 1068 case -1429363305: // telecom 1069 this.getTelecom().add(castToContactPoint(value)); // ContactPoint 1070 return value; 1071 case -1147692044: // address 1072 this.getAddress().add(castToAddress(value)); // Address 1073 return value; 1074 case -1249512767: // gender 1075 value = new AdministrativeGenderEnumFactory().fromType(castToCode(value)); 1076 this.gender = (Enumeration) value; // Enumeration<AdministrativeGender> 1077 return value; 1078 case -1210031859: // birthDate 1079 this.birthDate = castToDate(value); // DateType 1080 return value; 1081 case 106642994: // photo 1082 this.getPhoto().add(castToAttachment(value)); // Attachment 1083 return value; 1084 case -631333393: // qualification 1085 this.getQualification().add((PractitionerQualificationComponent) value); // PractitionerQualificationComponent 1086 return value; 1087 case -1035284522: // communication 1088 this.getCommunication().add(castToCodeableConcept(value)); // CodeableConcept 1089 return value; 1090 default: return super.setProperty(hash, name, value); 1091 } 1092 1093 } 1094 1095 @Override 1096 public Base setProperty(String name, Base value) throws FHIRException { 1097 if (name.equals("identifier")) { 1098 this.getIdentifier().add(castToIdentifier(value)); 1099 } else if (name.equals("active")) { 1100 this.active = castToBoolean(value); // BooleanType 1101 } else if (name.equals("name")) { 1102 this.getName().add(castToHumanName(value)); 1103 } else if (name.equals("telecom")) { 1104 this.getTelecom().add(castToContactPoint(value)); 1105 } else if (name.equals("address")) { 1106 this.getAddress().add(castToAddress(value)); 1107 } else if (name.equals("gender")) { 1108 value = new AdministrativeGenderEnumFactory().fromType(castToCode(value)); 1109 this.gender = (Enumeration) value; // Enumeration<AdministrativeGender> 1110 } else if (name.equals("birthDate")) { 1111 this.birthDate = castToDate(value); // DateType 1112 } else if (name.equals("photo")) { 1113 this.getPhoto().add(castToAttachment(value)); 1114 } else if (name.equals("qualification")) { 1115 this.getQualification().add((PractitionerQualificationComponent) value); 1116 } else if (name.equals("communication")) { 1117 this.getCommunication().add(castToCodeableConcept(value)); 1118 } else 1119 return super.setProperty(name, value); 1120 return value; 1121 } 1122 1123 @Override 1124 public Base makeProperty(int hash, String name) throws FHIRException { 1125 switch (hash) { 1126 case -1618432855: return addIdentifier(); 1127 case -1422950650: return getActiveElement(); 1128 case 3373707: return addName(); 1129 case -1429363305: return addTelecom(); 1130 case -1147692044: return addAddress(); 1131 case -1249512767: return getGenderElement(); 1132 case -1210031859: return getBirthDateElement(); 1133 case 106642994: return addPhoto(); 1134 case -631333393: return addQualification(); 1135 case -1035284522: return addCommunication(); 1136 default: return super.makeProperty(hash, name); 1137 } 1138 1139 } 1140 1141 @Override 1142 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1143 switch (hash) { 1144 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 1145 case -1422950650: /*active*/ return new String[] {"boolean"}; 1146 case 3373707: /*name*/ return new String[] {"HumanName"}; 1147 case -1429363305: /*telecom*/ return new String[] {"ContactPoint"}; 1148 case -1147692044: /*address*/ return new String[] {"Address"}; 1149 case -1249512767: /*gender*/ return new String[] {"code"}; 1150 case -1210031859: /*birthDate*/ return new String[] {"date"}; 1151 case 106642994: /*photo*/ return new String[] {"Attachment"}; 1152 case -631333393: /*qualification*/ return new String[] {}; 1153 case -1035284522: /*communication*/ return new String[] {"CodeableConcept"}; 1154 default: return super.getTypesForProperty(hash, name); 1155 } 1156 1157 } 1158 1159 @Override 1160 public Base addChild(String name) throws FHIRException { 1161 if (name.equals("identifier")) { 1162 return addIdentifier(); 1163 } 1164 else if (name.equals("active")) { 1165 throw new FHIRException("Cannot call addChild on a primitive type Practitioner.active"); 1166 } 1167 else if (name.equals("name")) { 1168 return addName(); 1169 } 1170 else if (name.equals("telecom")) { 1171 return addTelecom(); 1172 } 1173 else if (name.equals("address")) { 1174 return addAddress(); 1175 } 1176 else if (name.equals("gender")) { 1177 throw new FHIRException("Cannot call addChild on a primitive type Practitioner.gender"); 1178 } 1179 else if (name.equals("birthDate")) { 1180 throw new FHIRException("Cannot call addChild on a primitive type Practitioner.birthDate"); 1181 } 1182 else if (name.equals("photo")) { 1183 return addPhoto(); 1184 } 1185 else if (name.equals("qualification")) { 1186 return addQualification(); 1187 } 1188 else if (name.equals("communication")) { 1189 return addCommunication(); 1190 } 1191 else 1192 return super.addChild(name); 1193 } 1194 1195 public String fhirType() { 1196 return "Practitioner"; 1197 1198 } 1199 1200 public Practitioner copy() { 1201 Practitioner dst = new Practitioner(); 1202 copyValues(dst); 1203 if (identifier != null) { 1204 dst.identifier = new ArrayList<Identifier>(); 1205 for (Identifier i : identifier) 1206 dst.identifier.add(i.copy()); 1207 }; 1208 dst.active = active == null ? null : active.copy(); 1209 if (name != null) { 1210 dst.name = new ArrayList<HumanName>(); 1211 for (HumanName i : name) 1212 dst.name.add(i.copy()); 1213 }; 1214 if (telecom != null) { 1215 dst.telecom = new ArrayList<ContactPoint>(); 1216 for (ContactPoint i : telecom) 1217 dst.telecom.add(i.copy()); 1218 }; 1219 if (address != null) { 1220 dst.address = new ArrayList<Address>(); 1221 for (Address i : address) 1222 dst.address.add(i.copy()); 1223 }; 1224 dst.gender = gender == null ? null : gender.copy(); 1225 dst.birthDate = birthDate == null ? null : birthDate.copy(); 1226 if (photo != null) { 1227 dst.photo = new ArrayList<Attachment>(); 1228 for (Attachment i : photo) 1229 dst.photo.add(i.copy()); 1230 }; 1231 if (qualification != null) { 1232 dst.qualification = new ArrayList<PractitionerQualificationComponent>(); 1233 for (PractitionerQualificationComponent i : qualification) 1234 dst.qualification.add(i.copy()); 1235 }; 1236 if (communication != null) { 1237 dst.communication = new ArrayList<CodeableConcept>(); 1238 for (CodeableConcept i : communication) 1239 dst.communication.add(i.copy()); 1240 }; 1241 return dst; 1242 } 1243 1244 protected Practitioner typedCopy() { 1245 return copy(); 1246 } 1247 1248 @Override 1249 public boolean equalsDeep(Base other_) { 1250 if (!super.equalsDeep(other_)) 1251 return false; 1252 if (!(other_ instanceof Practitioner)) 1253 return false; 1254 Practitioner o = (Practitioner) other_; 1255 return compareDeep(identifier, o.identifier, true) && compareDeep(active, o.active, true) && compareDeep(name, o.name, true) 1256 && compareDeep(telecom, o.telecom, true) && compareDeep(address, o.address, true) && compareDeep(gender, o.gender, true) 1257 && compareDeep(birthDate, o.birthDate, true) && compareDeep(photo, o.photo, true) && compareDeep(qualification, o.qualification, true) 1258 && compareDeep(communication, o.communication, true); 1259 } 1260 1261 @Override 1262 public boolean equalsShallow(Base other_) { 1263 if (!super.equalsShallow(other_)) 1264 return false; 1265 if (!(other_ instanceof Practitioner)) 1266 return false; 1267 Practitioner o = (Practitioner) other_; 1268 return compareValues(active, o.active, true) && compareValues(gender, o.gender, true) && compareValues(birthDate, o.birthDate, true) 1269 ; 1270 } 1271 1272 public boolean isEmpty() { 1273 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, active, name 1274 , telecom, address, gender, birthDate, photo, qualification, communication); 1275 } 1276 1277 @Override 1278 public ResourceType getResourceType() { 1279 return ResourceType.Practitioner; 1280 } 1281 1282 /** 1283 * Search parameter: <b>identifier</b> 1284 * <p> 1285 * Description: <b>A practitioner's Identifier</b><br> 1286 * Type: <b>token</b><br> 1287 * Path: <b>Practitioner.identifier</b><br> 1288 * </p> 1289 */ 1290 @SearchParamDefinition(name="identifier", path="Practitioner.identifier", description="A practitioner's Identifier", type="token" ) 1291 public static final String SP_IDENTIFIER = "identifier"; 1292 /** 1293 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 1294 * <p> 1295 * Description: <b>A practitioner's Identifier</b><br> 1296 * Type: <b>token</b><br> 1297 * Path: <b>Practitioner.identifier</b><br> 1298 * </p> 1299 */ 1300 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 1301 1302 /** 1303 * Search parameter: <b>given</b> 1304 * <p> 1305 * Description: <b>A portion of the given name</b><br> 1306 * Type: <b>string</b><br> 1307 * Path: <b>Practitioner.name.given</b><br> 1308 * </p> 1309 */ 1310 @SearchParamDefinition(name="given", path="Practitioner.name.given", description="A portion of the given name", type="string" ) 1311 public static final String SP_GIVEN = "given"; 1312 /** 1313 * <b>Fluent Client</b> search parameter constant for <b>given</b> 1314 * <p> 1315 * Description: <b>A portion of the given name</b><br> 1316 * Type: <b>string</b><br> 1317 * Path: <b>Practitioner.name.given</b><br> 1318 * </p> 1319 */ 1320 public static final ca.uhn.fhir.rest.gclient.StringClientParam GIVEN = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_GIVEN); 1321 1322 /** 1323 * Search parameter: <b>address</b> 1324 * <p> 1325 * Description: <b>A server defined search that may match any of the string fields in the Address, including line, city, district, state, country, postalCode, and/or text</b><br> 1326 * Type: <b>string</b><br> 1327 * Path: <b>Practitioner.address</b><br> 1328 * </p> 1329 */ 1330 @SearchParamDefinition(name="address", path="Practitioner.address", description="A server defined search that may match any of the string fields in the Address, including line, city, district, state, country, postalCode, and/or text", type="string" ) 1331 public static final String SP_ADDRESS = "address"; 1332 /** 1333 * <b>Fluent Client</b> search parameter constant for <b>address</b> 1334 * <p> 1335 * Description: <b>A server defined search that may match any of the string fields in the Address, including line, city, district, state, country, postalCode, and/or text</b><br> 1336 * Type: <b>string</b><br> 1337 * Path: <b>Practitioner.address</b><br> 1338 * </p> 1339 */ 1340 public static final ca.uhn.fhir.rest.gclient.StringClientParam ADDRESS = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_ADDRESS); 1341 1342 /** 1343 * Search parameter: <b>address-state</b> 1344 * <p> 1345 * Description: <b>A state specified in an address</b><br> 1346 * Type: <b>string</b><br> 1347 * Path: <b>Practitioner.address.state</b><br> 1348 * </p> 1349 */ 1350 @SearchParamDefinition(name="address-state", path="Practitioner.address.state", description="A state specified in an address", type="string" ) 1351 public static final String SP_ADDRESS_STATE = "address-state"; 1352 /** 1353 * <b>Fluent Client</b> search parameter constant for <b>address-state</b> 1354 * <p> 1355 * Description: <b>A state specified in an address</b><br> 1356 * Type: <b>string</b><br> 1357 * Path: <b>Practitioner.address.state</b><br> 1358 * </p> 1359 */ 1360 public static final ca.uhn.fhir.rest.gclient.StringClientParam ADDRESS_STATE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_ADDRESS_STATE); 1361 1362 /** 1363 * Search parameter: <b>gender</b> 1364 * <p> 1365 * Description: <b>Gender of the practitioner</b><br> 1366 * Type: <b>token</b><br> 1367 * Path: <b>Practitioner.gender</b><br> 1368 * </p> 1369 */ 1370 @SearchParamDefinition(name="gender", path="Practitioner.gender", description="Gender of the practitioner", type="token" ) 1371 public static final String SP_GENDER = "gender"; 1372 /** 1373 * <b>Fluent Client</b> search parameter constant for <b>gender</b> 1374 * <p> 1375 * Description: <b>Gender of the practitioner</b><br> 1376 * Type: <b>token</b><br> 1377 * Path: <b>Practitioner.gender</b><br> 1378 * </p> 1379 */ 1380 public static final ca.uhn.fhir.rest.gclient.TokenClientParam GENDER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_GENDER); 1381 1382 /** 1383 * Search parameter: <b>active</b> 1384 * <p> 1385 * Description: <b>Whether the practitioner record is active</b><br> 1386 * Type: <b>token</b><br> 1387 * Path: <b>Practitioner.active</b><br> 1388 * </p> 1389 */ 1390 @SearchParamDefinition(name="active", path="Practitioner.active", description="Whether the practitioner record is active", type="token" ) 1391 public static final String SP_ACTIVE = "active"; 1392 /** 1393 * <b>Fluent Client</b> search parameter constant for <b>active</b> 1394 * <p> 1395 * Description: <b>Whether the practitioner record is active</b><br> 1396 * Type: <b>token</b><br> 1397 * Path: <b>Practitioner.active</b><br> 1398 * </p> 1399 */ 1400 public static final ca.uhn.fhir.rest.gclient.TokenClientParam ACTIVE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_ACTIVE); 1401 1402 /** 1403 * Search parameter: <b>address-postalcode</b> 1404 * <p> 1405 * Description: <b>A postalCode specified in an address</b><br> 1406 * Type: <b>string</b><br> 1407 * Path: <b>Practitioner.address.postalCode</b><br> 1408 * </p> 1409 */ 1410 @SearchParamDefinition(name="address-postalcode", path="Practitioner.address.postalCode", description="A postalCode specified in an address", type="string" ) 1411 public static final String SP_ADDRESS_POSTALCODE = "address-postalcode"; 1412 /** 1413 * <b>Fluent Client</b> search parameter constant for <b>address-postalcode</b> 1414 * <p> 1415 * Description: <b>A postalCode specified in an address</b><br> 1416 * Type: <b>string</b><br> 1417 * Path: <b>Practitioner.address.postalCode</b><br> 1418 * </p> 1419 */ 1420 public static final ca.uhn.fhir.rest.gclient.StringClientParam ADDRESS_POSTALCODE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_ADDRESS_POSTALCODE); 1421 1422 /** 1423 * Search parameter: <b>address-country</b> 1424 * <p> 1425 * Description: <b>A country specified in an address</b><br> 1426 * Type: <b>string</b><br> 1427 * Path: <b>Practitioner.address.country</b><br> 1428 * </p> 1429 */ 1430 @SearchParamDefinition(name="address-country", path="Practitioner.address.country", description="A country specified in an address", type="string" ) 1431 public static final String SP_ADDRESS_COUNTRY = "address-country"; 1432 /** 1433 * <b>Fluent Client</b> search parameter constant for <b>address-country</b> 1434 * <p> 1435 * Description: <b>A country specified in an address</b><br> 1436 * Type: <b>string</b><br> 1437 * Path: <b>Practitioner.address.country</b><br> 1438 * </p> 1439 */ 1440 public static final ca.uhn.fhir.rest.gclient.StringClientParam ADDRESS_COUNTRY = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_ADDRESS_COUNTRY); 1441 1442 /** 1443 * Search parameter: <b>phonetic</b> 1444 * <p> 1445 * Description: <b>A portion of either family or given name using some kind of phonetic matching algorithm</b><br> 1446 * Type: <b>string</b><br> 1447 * Path: <b>Practitioner.name</b><br> 1448 * </p> 1449 */ 1450 @SearchParamDefinition(name="phonetic", path="Practitioner.name", description="A portion of either family or given name using some kind of phonetic matching algorithm", type="string" ) 1451 public static final String SP_PHONETIC = "phonetic"; 1452 /** 1453 * <b>Fluent Client</b> search parameter constant for <b>phonetic</b> 1454 * <p> 1455 * Description: <b>A portion of either family or given name using some kind of phonetic matching algorithm</b><br> 1456 * Type: <b>string</b><br> 1457 * Path: <b>Practitioner.name</b><br> 1458 * </p> 1459 */ 1460 public static final ca.uhn.fhir.rest.gclient.StringClientParam PHONETIC = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_PHONETIC); 1461 1462 /** 1463 * Search parameter: <b>phone</b> 1464 * <p> 1465 * Description: <b>A value in a phone contact</b><br> 1466 * Type: <b>token</b><br> 1467 * Path: <b>Practitioner.telecom(system=phone)</b><br> 1468 * </p> 1469 */ 1470 @SearchParamDefinition(name="phone", path="Practitioner.telecom.where(system='phone')", description="A value in a phone contact", type="token" ) 1471 public static final String SP_PHONE = "phone"; 1472 /** 1473 * <b>Fluent Client</b> search parameter constant for <b>phone</b> 1474 * <p> 1475 * Description: <b>A value in a phone contact</b><br> 1476 * Type: <b>token</b><br> 1477 * Path: <b>Practitioner.telecom(system=phone)</b><br> 1478 * </p> 1479 */ 1480 public static final ca.uhn.fhir.rest.gclient.TokenClientParam PHONE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_PHONE); 1481 1482 /** 1483 * Search parameter: <b>name</b> 1484 * <p> 1485 * Description: <b>A server defined search that may match any of the string fields in the HumanName, including family, give, prefix, suffix, suffix, and/or text</b><br> 1486 * Type: <b>string</b><br> 1487 * Path: <b>Practitioner.name</b><br> 1488 * </p> 1489 */ 1490 @SearchParamDefinition(name="name", path="Practitioner.name", description="A server defined search that may match any of the string fields in the HumanName, including family, give, prefix, suffix, suffix, and/or text", type="string" ) 1491 public static final String SP_NAME = "name"; 1492 /** 1493 * <b>Fluent Client</b> search parameter constant for <b>name</b> 1494 * <p> 1495 * Description: <b>A server defined search that may match any of the string fields in the HumanName, including family, give, prefix, suffix, suffix, and/or text</b><br> 1496 * Type: <b>string</b><br> 1497 * Path: <b>Practitioner.name</b><br> 1498 * </p> 1499 */ 1500 public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_NAME); 1501 1502 /** 1503 * Search parameter: <b>address-use</b> 1504 * <p> 1505 * Description: <b>A use code specified in an address</b><br> 1506 * Type: <b>token</b><br> 1507 * Path: <b>Practitioner.address.use</b><br> 1508 * </p> 1509 */ 1510 @SearchParamDefinition(name="address-use", path="Practitioner.address.use", description="A use code specified in an address", type="token" ) 1511 public static final String SP_ADDRESS_USE = "address-use"; 1512 /** 1513 * <b>Fluent Client</b> search parameter constant for <b>address-use</b> 1514 * <p> 1515 * Description: <b>A use code specified in an address</b><br> 1516 * Type: <b>token</b><br> 1517 * Path: <b>Practitioner.address.use</b><br> 1518 * </p> 1519 */ 1520 public static final ca.uhn.fhir.rest.gclient.TokenClientParam ADDRESS_USE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_ADDRESS_USE); 1521 1522 /** 1523 * Search parameter: <b>telecom</b> 1524 * <p> 1525 * Description: <b>The value in any kind of contact</b><br> 1526 * Type: <b>token</b><br> 1527 * Path: <b>Practitioner.telecom</b><br> 1528 * </p> 1529 */ 1530 @SearchParamDefinition(name="telecom", path="Practitioner.telecom", description="The value in any kind of contact", type="token" ) 1531 public static final String SP_TELECOM = "telecom"; 1532 /** 1533 * <b>Fluent Client</b> search parameter constant for <b>telecom</b> 1534 * <p> 1535 * Description: <b>The value in any kind of contact</b><br> 1536 * Type: <b>token</b><br> 1537 * Path: <b>Practitioner.telecom</b><br> 1538 * </p> 1539 */ 1540 public static final ca.uhn.fhir.rest.gclient.TokenClientParam TELECOM = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TELECOM); 1541 1542 /** 1543 * Search parameter: <b>family</b> 1544 * <p> 1545 * Description: <b>A portion of the family name</b><br> 1546 * Type: <b>string</b><br> 1547 * Path: <b>Practitioner.name.family</b><br> 1548 * </p> 1549 */ 1550 @SearchParamDefinition(name="family", path="Practitioner.name.family", description="A portion of the family name", type="string" ) 1551 public static final String SP_FAMILY = "family"; 1552 /** 1553 * <b>Fluent Client</b> search parameter constant for <b>family</b> 1554 * <p> 1555 * Description: <b>A portion of the family name</b><br> 1556 * Type: <b>string</b><br> 1557 * Path: <b>Practitioner.name.family</b><br> 1558 * </p> 1559 */ 1560 public static final ca.uhn.fhir.rest.gclient.StringClientParam FAMILY = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_FAMILY); 1561 1562 /** 1563 * Search parameter: <b>address-city</b> 1564 * <p> 1565 * Description: <b>A city specified in an address</b><br> 1566 * Type: <b>string</b><br> 1567 * Path: <b>Practitioner.address.city</b><br> 1568 * </p> 1569 */ 1570 @SearchParamDefinition(name="address-city", path="Practitioner.address.city", description="A city specified in an address", type="string" ) 1571 public static final String SP_ADDRESS_CITY = "address-city"; 1572 /** 1573 * <b>Fluent Client</b> search parameter constant for <b>address-city</b> 1574 * <p> 1575 * Description: <b>A city specified in an address</b><br> 1576 * Type: <b>string</b><br> 1577 * Path: <b>Practitioner.address.city</b><br> 1578 * </p> 1579 */ 1580 public static final ca.uhn.fhir.rest.gclient.StringClientParam ADDRESS_CITY = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_ADDRESS_CITY); 1581 1582 /** 1583 * Search parameter: <b>communication</b> 1584 * <p> 1585 * Description: <b>One of the languages that the practitioner can communicate with</b><br> 1586 * Type: <b>token</b><br> 1587 * Path: <b>Practitioner.communication</b><br> 1588 * </p> 1589 */ 1590 @SearchParamDefinition(name="communication", path="Practitioner.communication", description="One of the languages that the practitioner can communicate with", type="token" ) 1591 public static final String SP_COMMUNICATION = "communication"; 1592 /** 1593 * <b>Fluent Client</b> search parameter constant for <b>communication</b> 1594 * <p> 1595 * Description: <b>One of the languages that the practitioner can communicate with</b><br> 1596 * Type: <b>token</b><br> 1597 * Path: <b>Practitioner.communication</b><br> 1598 * </p> 1599 */ 1600 public static final ca.uhn.fhir.rest.gclient.TokenClientParam COMMUNICATION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_COMMUNICATION); 1601 1602 /** 1603 * Search parameter: <b>email</b> 1604 * <p> 1605 * Description: <b>A value in an email contact</b><br> 1606 * Type: <b>token</b><br> 1607 * Path: <b>Practitioner.telecom(system=email)</b><br> 1608 * </p> 1609 */ 1610 @SearchParamDefinition(name="email", path="Practitioner.telecom.where(system='email')", description="A value in an email contact", type="token" ) 1611 public static final String SP_EMAIL = "email"; 1612 /** 1613 * <b>Fluent Client</b> search parameter constant for <b>email</b> 1614 * <p> 1615 * Description: <b>A value in an email contact</b><br> 1616 * Type: <b>token</b><br> 1617 * Path: <b>Practitioner.telecom(system=email)</b><br> 1618 * </p> 1619 */ 1620 public static final ca.uhn.fhir.rest.gclient.TokenClientParam EMAIL = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_EMAIL); 1621 1622 1623} 1624