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