
001package org.hl7.fhir.r5.model; 002 003 004/* 005 Copyright (c) 2011+, HL7, Inc. 006 All rights reserved. 007 008 Redistribution and use in source and binary forms, with or without modification, \ 009 are permitted provided that the following conditions are met: 010 011 * Redistributions of source code must retain the above copyright notice, this \ 012 list of conditions and the following disclaimer. 013 * Redistributions in binary form must reproduce the above copyright notice, \ 014 this list of conditions and the following disclaimer in the documentation \ 015 and/or other materials provided with the distribution. 016 * Neither the name of HL7 nor the names of its contributors may be used to 017 endorse or promote products derived from this software without specific 018 prior written permission. 019 020 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \ 021 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \ 022 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \ 023 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \ 024 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT \ 025 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR \ 026 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, \ 027 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) \ 028 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE \ 029 POSSIBILITY OF SUCH DAMAGE. 030 */ 031 032// Generated on Tue, Dec 28, 2021 07:16+1100 for FHIR v5.0.0-snapshot1 033 034import java.util.ArrayList; 035import java.util.Date; 036import java.util.List; 037import org.hl7.fhir.utilities.Utilities; 038import org.hl7.fhir.r5.model.Enumerations.*; 039import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 040import org.hl7.fhir.exceptions.FHIRException; 041import org.hl7.fhir.instance.model.api.ICompositeType; 042import ca.uhn.fhir.model.api.annotation.ResourceDef; 043import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 044import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 045import ca.uhn.fhir.model.api.annotation.Child; 046import ca.uhn.fhir.model.api.annotation.ChildOrder; 047import ca.uhn.fhir.model.api.annotation.Description; 048import ca.uhn.fhir.model.api.annotation.Block; 049 050/** 051 * A person who is directly or indirectly involved in the provisioning of healthcare. 052 */ 053@ResourceDef(name="Practitioner", profile="http://hl7.org/fhir/StructureDefinition/Practitioner") 054public class Practitioner extends DomainResource { 055 056 @Block() 057 public static class PractitionerQualificationComponent extends BackboneElement implements IBaseBackboneElement { 058 /** 059 * An identifier that applies to this person's qualification in this role. 060 */ 061 @Child(name = "identifier", type = {Identifier.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 062 @Description(shortDefinition="An identifier for this qualification for the practitioner", formalDefinition="An identifier that applies to this person's qualification in this role." ) 063 protected List<Identifier> identifier; 064 065 /** 066 * Coded representation of the qualification. 067 */ 068 @Child(name = "code", type = {CodeableConcept.class}, order=2, min=1, max=1, modifier=false, summary=false) 069 @Description(shortDefinition="Coded representation of the qualification", formalDefinition="Coded representation of the qualification." ) 070 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://terminology.hl7.org/ValueSet/v2-0360") 071 protected CodeableConcept code; 072 073 /** 074 * Period during which the qualification is valid. 075 */ 076 @Child(name = "period", type = {Period.class}, order=3, min=0, max=1, modifier=false, summary=false) 077 @Description(shortDefinition="Period during which the qualification is valid", formalDefinition="Period during which the qualification is valid." ) 078 protected Period period; 079 080 /** 081 * Organization that regulates and issues the qualification. 082 */ 083 @Child(name = "issuer", type = {Organization.class}, order=4, min=0, max=1, modifier=false, summary=false) 084 @Description(shortDefinition="Organization that regulates and issues the qualification", formalDefinition="Organization that regulates and issues the qualification." ) 085 protected Reference issuer; 086 087 private static final long serialVersionUID = 1561812204L; 088 089 /** 090 * Constructor 091 */ 092 public PractitionerQualificationComponent() { 093 super(); 094 } 095 096 /** 097 * Constructor 098 */ 099 public PractitionerQualificationComponent(CodeableConcept code) { 100 super(); 101 this.setCode(code); 102 } 103 104 /** 105 * @return {@link #identifier} (An identifier that applies to this person's qualification in this role.) 106 */ 107 public List<Identifier> getIdentifier() { 108 if (this.identifier == null) 109 this.identifier = new ArrayList<Identifier>(); 110 return this.identifier; 111 } 112 113 /** 114 * @return Returns a reference to <code>this</code> for easy method chaining 115 */ 116 public PractitionerQualificationComponent setIdentifier(List<Identifier> theIdentifier) { 117 this.identifier = theIdentifier; 118 return this; 119 } 120 121 public boolean hasIdentifier() { 122 if (this.identifier == null) 123 return false; 124 for (Identifier item : this.identifier) 125 if (!item.isEmpty()) 126 return true; 127 return false; 128 } 129 130 public Identifier addIdentifier() { //3 131 Identifier t = new Identifier(); 132 if (this.identifier == null) 133 this.identifier = new ArrayList<Identifier>(); 134 this.identifier.add(t); 135 return t; 136 } 137 138 public PractitionerQualificationComponent addIdentifier(Identifier t) { //3 139 if (t == null) 140 return this; 141 if (this.identifier == null) 142 this.identifier = new ArrayList<Identifier>(); 143 this.identifier.add(t); 144 return this; 145 } 146 147 /** 148 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3} 149 */ 150 public Identifier getIdentifierFirstRep() { 151 if (getIdentifier().isEmpty()) { 152 addIdentifier(); 153 } 154 return getIdentifier().get(0); 155 } 156 157 /** 158 * @return {@link #code} (Coded representation of the qualification.) 159 */ 160 public CodeableConcept getCode() { 161 if (this.code == null) 162 if (Configuration.errorOnAutoCreate()) 163 throw new Error("Attempt to auto-create PractitionerQualificationComponent.code"); 164 else if (Configuration.doAutoCreate()) 165 this.code = new CodeableConcept(); // cc 166 return this.code; 167 } 168 169 public boolean hasCode() { 170 return this.code != null && !this.code.isEmpty(); 171 } 172 173 /** 174 * @param value {@link #code} (Coded representation of the qualification.) 175 */ 176 public PractitionerQualificationComponent setCode(CodeableConcept value) { 177 this.code = value; 178 return this; 179 } 180 181 /** 182 * @return {@link #period} (Period during which the qualification is valid.) 183 */ 184 public Period getPeriod() { 185 if (this.period == null) 186 if (Configuration.errorOnAutoCreate()) 187 throw new Error("Attempt to auto-create PractitionerQualificationComponent.period"); 188 else if (Configuration.doAutoCreate()) 189 this.period = new Period(); // cc 190 return this.period; 191 } 192 193 public boolean hasPeriod() { 194 return this.period != null && !this.period.isEmpty(); 195 } 196 197 /** 198 * @param value {@link #period} (Period during which the qualification is valid.) 199 */ 200 public PractitionerQualificationComponent setPeriod(Period value) { 201 this.period = value; 202 return this; 203 } 204 205 /** 206 * @return {@link #issuer} (Organization that regulates and issues the qualification.) 207 */ 208 public Reference getIssuer() { 209 if (this.issuer == null) 210 if (Configuration.errorOnAutoCreate()) 211 throw new Error("Attempt to auto-create PractitionerQualificationComponent.issuer"); 212 else if (Configuration.doAutoCreate()) 213 this.issuer = new Reference(); // cc 214 return this.issuer; 215 } 216 217 public boolean hasIssuer() { 218 return this.issuer != null && !this.issuer.isEmpty(); 219 } 220 221 /** 222 * @param value {@link #issuer} (Organization that regulates and issues the qualification.) 223 */ 224 public PractitionerQualificationComponent setIssuer(Reference value) { 225 this.issuer = value; 226 return this; 227 } 228 229 protected void listChildren(List<Property> children) { 230 super.listChildren(children); 231 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)); 232 children.add(new Property("code", "CodeableConcept", "Coded representation of the qualification.", 0, 1, code)); 233 children.add(new Property("period", "Period", "Period during which the qualification is valid.", 0, 1, period)); 234 children.add(new Property("issuer", "Reference(Organization)", "Organization that regulates and issues the qualification.", 0, 1, issuer)); 235 } 236 237 @Override 238 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 239 switch (_hash) { 240 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); 241 case 3059181: /*code*/ return new Property("code", "CodeableConcept", "Coded representation of the qualification.", 0, 1, code); 242 case -991726143: /*period*/ return new Property("period", "Period", "Period during which the qualification is valid.", 0, 1, period); 243 case -1179159879: /*issuer*/ return new Property("issuer", "Reference(Organization)", "Organization that regulates and issues the qualification.", 0, 1, issuer); 244 default: return super.getNamedProperty(_hash, _name, _checkValid); 245 } 246 247 } 248 249 @Override 250 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 251 switch (hash) { 252 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 253 case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept 254 case -991726143: /*period*/ return this.period == null ? new Base[0] : new Base[] {this.period}; // Period 255 case -1179159879: /*issuer*/ return this.issuer == null ? new Base[0] : new Base[] {this.issuer}; // Reference 256 default: return super.getProperty(hash, name, checkValid); 257 } 258 259 } 260 261 @Override 262 public Base setProperty(int hash, String name, Base value) throws FHIRException { 263 switch (hash) { 264 case -1618432855: // identifier 265 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier 266 return value; 267 case 3059181: // code 268 this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 269 return value; 270 case -991726143: // period 271 this.period = TypeConvertor.castToPeriod(value); // Period 272 return value; 273 case -1179159879: // issuer 274 this.issuer = TypeConvertor.castToReference(value); // Reference 275 return value; 276 default: return super.setProperty(hash, name, value); 277 } 278 279 } 280 281 @Override 282 public Base setProperty(String name, Base value) throws FHIRException { 283 if (name.equals("identifier")) { 284 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); 285 } else if (name.equals("code")) { 286 this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 287 } else if (name.equals("period")) { 288 this.period = TypeConvertor.castToPeriod(value); // Period 289 } else if (name.equals("issuer")) { 290 this.issuer = TypeConvertor.castToReference(value); // Reference 291 } else 292 return super.setProperty(name, value); 293 return value; 294 } 295 296 @Override 297 public Base makeProperty(int hash, String name) throws FHIRException { 298 switch (hash) { 299 case -1618432855: return addIdentifier(); 300 case 3059181: return getCode(); 301 case -991726143: return getPeriod(); 302 case -1179159879: return getIssuer(); 303 default: return super.makeProperty(hash, name); 304 } 305 306 } 307 308 @Override 309 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 310 switch (hash) { 311 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 312 case 3059181: /*code*/ return new String[] {"CodeableConcept"}; 313 case -991726143: /*period*/ return new String[] {"Period"}; 314 case -1179159879: /*issuer*/ return new String[] {"Reference"}; 315 default: return super.getTypesForProperty(hash, name); 316 } 317 318 } 319 320 @Override 321 public Base addChild(String name) throws FHIRException { 322 if (name.equals("identifier")) { 323 return addIdentifier(); 324 } 325 else if (name.equals("code")) { 326 this.code = new CodeableConcept(); 327 return this.code; 328 } 329 else if (name.equals("period")) { 330 this.period = new Period(); 331 return this.period; 332 } 333 else if (name.equals("issuer")) { 334 this.issuer = new Reference(); 335 return this.issuer; 336 } 337 else 338 return super.addChild(name); 339 } 340 341 public PractitionerQualificationComponent copy() { 342 PractitionerQualificationComponent dst = new PractitionerQualificationComponent(); 343 copyValues(dst); 344 return dst; 345 } 346 347 public void copyValues(PractitionerQualificationComponent dst) { 348 super.copyValues(dst); 349 if (identifier != null) { 350 dst.identifier = new ArrayList<Identifier>(); 351 for (Identifier i : identifier) 352 dst.identifier.add(i.copy()); 353 }; 354 dst.code = code == null ? null : code.copy(); 355 dst.period = period == null ? null : period.copy(); 356 dst.issuer = issuer == null ? null : issuer.copy(); 357 } 358 359 @Override 360 public boolean equalsDeep(Base other_) { 361 if (!super.equalsDeep(other_)) 362 return false; 363 if (!(other_ instanceof PractitionerQualificationComponent)) 364 return false; 365 PractitionerQualificationComponent o = (PractitionerQualificationComponent) other_; 366 return compareDeep(identifier, o.identifier, true) && compareDeep(code, o.code, true) && compareDeep(period, o.period, true) 367 && compareDeep(issuer, o.issuer, true); 368 } 369 370 @Override 371 public boolean equalsShallow(Base other_) { 372 if (!super.equalsShallow(other_)) 373 return false; 374 if (!(other_ instanceof PractitionerQualificationComponent)) 375 return false; 376 PractitionerQualificationComponent o = (PractitionerQualificationComponent) other_; 377 return true; 378 } 379 380 public boolean isEmpty() { 381 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, code, period 382 , issuer); 383 } 384 385 public String fhirType() { 386 return "Practitioner.qualification"; 387 388 } 389 390 } 391 392 /** 393 * An identifier that applies to this person in this role. 394 */ 395 @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 396 @Description(shortDefinition="An identifier for the person as this agent", formalDefinition="An identifier that applies to this person in this role." ) 397 protected List<Identifier> identifier; 398 399 /** 400 * Whether this practitioner's record is in active use. 401 */ 402 @Child(name = "active", type = {BooleanType.class}, order=1, min=0, max=1, modifier=false, summary=true) 403 @Description(shortDefinition="Whether this practitioner's record is in active use", formalDefinition="Whether this practitioner's record is in active use." ) 404 protected BooleanType active; 405 406 /** 407 * The name(s) associated with the practitioner. 408 */ 409 @Child(name = "name", type = {HumanName.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 410 @Description(shortDefinition="The name(s) associated with the practitioner", formalDefinition="The name(s) associated with the practitioner." ) 411 protected List<HumanName> name; 412 413 /** 414 * A contact detail for the practitioner, e.g. a telephone number or an email address. 415 */ 416 @Child(name = "telecom", type = {ContactPoint.class}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 417 @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." ) 418 protected List<ContactPoint> telecom; 419 420 /** 421 * Indicates if the practitioner is deceased or not. 422 */ 423 @Child(name = "deceased", type = {BooleanType.class, DateTimeType.class}, order=4, min=0, max=1, modifier=false, summary=true) 424 @Description(shortDefinition="Indicates if the practitioner is deceased or not", formalDefinition="Indicates if the practitioner is deceased or not." ) 425 protected DataType deceased; 426 427 /** 428 * Address(es) of the practitioner that are not role specific (typically home address). 429Work addresses are not typically entered in this property as they are usually role dependent. 430 */ 431 @Child(name = "address", type = {Address.class}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 432 @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." ) 433 protected List<Address> address; 434 435 /** 436 * Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes. 437 */ 438 @Child(name = "gender", type = {CodeType.class}, order=6, min=0, max=1, modifier=false, summary=true) 439 @Description(shortDefinition="male | female | other | unknown", formalDefinition="Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes." ) 440 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/administrative-gender") 441 protected Enumeration<AdministrativeGender> gender; 442 443 /** 444 * The date of birth for the practitioner. 445 */ 446 @Child(name = "birthDate", type = {DateType.class}, order=7, min=0, max=1, modifier=false, summary=true) 447 @Description(shortDefinition="The date on which the practitioner was born", formalDefinition="The date of birth for the practitioner." ) 448 protected DateType birthDate; 449 450 /** 451 * Image of the person. 452 */ 453 @Child(name = "photo", type = {Attachment.class}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 454 @Description(shortDefinition="Image of the person", formalDefinition="Image of the person." ) 455 protected List<Attachment> photo; 456 457 /** 458 * The official certifications, training, and licenses that authorize or otherwise pertain to the provision of care by the practitioner. For example, a medical license issued by a medical board authorizing the practitioner to practice medicine within a certain locality. 459 */ 460 @Child(name = "qualification", type = {}, order=9, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 461 @Description(shortDefinition="Certification, licenses, or training pertaining to the provision of care", formalDefinition="The official certifications, training, and licenses that authorize or otherwise pertain to the provision of care by the practitioner. For example, a medical license issued by a medical board authorizing the practitioner to practice medicine within a certain locality." ) 462 protected List<PractitionerQualificationComponent> qualification; 463 464 /** 465 * A language the practitioner can use in patient communication. 466 */ 467 @Child(name = "communication", type = {CodeableConcept.class}, order=10, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 468 @Description(shortDefinition="A language the practitioner can use in patient communication", formalDefinition="A language the practitioner can use in patient communication." ) 469 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/languages") 470 protected List<CodeableConcept> communication; 471 472 private static final long serialVersionUID = 908417317L; 473 474 /** 475 * Constructor 476 */ 477 public Practitioner() { 478 super(); 479 } 480 481 /** 482 * @return {@link #identifier} (An identifier that applies to this person in this role.) 483 */ 484 public List<Identifier> getIdentifier() { 485 if (this.identifier == null) 486 this.identifier = new ArrayList<Identifier>(); 487 return this.identifier; 488 } 489 490 /** 491 * @return Returns a reference to <code>this</code> for easy method chaining 492 */ 493 public Practitioner setIdentifier(List<Identifier> theIdentifier) { 494 this.identifier = theIdentifier; 495 return this; 496 } 497 498 public boolean hasIdentifier() { 499 if (this.identifier == null) 500 return false; 501 for (Identifier item : this.identifier) 502 if (!item.isEmpty()) 503 return true; 504 return false; 505 } 506 507 public Identifier addIdentifier() { //3 508 Identifier t = new Identifier(); 509 if (this.identifier == null) 510 this.identifier = new ArrayList<Identifier>(); 511 this.identifier.add(t); 512 return t; 513 } 514 515 public Practitioner addIdentifier(Identifier t) { //3 516 if (t == null) 517 return this; 518 if (this.identifier == null) 519 this.identifier = new ArrayList<Identifier>(); 520 this.identifier.add(t); 521 return this; 522 } 523 524 /** 525 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3} 526 */ 527 public Identifier getIdentifierFirstRep() { 528 if (getIdentifier().isEmpty()) { 529 addIdentifier(); 530 } 531 return getIdentifier().get(0); 532 } 533 534 /** 535 * @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 536 */ 537 public BooleanType getActiveElement() { 538 if (this.active == null) 539 if (Configuration.errorOnAutoCreate()) 540 throw new Error("Attempt to auto-create Practitioner.active"); 541 else if (Configuration.doAutoCreate()) 542 this.active = new BooleanType(); // bb 543 return this.active; 544 } 545 546 public boolean hasActiveElement() { 547 return this.active != null && !this.active.isEmpty(); 548 } 549 550 public boolean hasActive() { 551 return this.active != null && !this.active.isEmpty(); 552 } 553 554 /** 555 * @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 556 */ 557 public Practitioner setActiveElement(BooleanType value) { 558 this.active = value; 559 return this; 560 } 561 562 /** 563 * @return Whether this practitioner's record is in active use. 564 */ 565 public boolean getActive() { 566 return this.active == null || this.active.isEmpty() ? false : this.active.getValue(); 567 } 568 569 /** 570 * @param value Whether this practitioner's record is in active use. 571 */ 572 public Practitioner setActive(boolean value) { 573 if (this.active == null) 574 this.active = new BooleanType(); 575 this.active.setValue(value); 576 return this; 577 } 578 579 /** 580 * @return {@link #name} (The name(s) associated with the practitioner.) 581 */ 582 public List<HumanName> getName() { 583 if (this.name == null) 584 this.name = new ArrayList<HumanName>(); 585 return this.name; 586 } 587 588 /** 589 * @return Returns a reference to <code>this</code> for easy method chaining 590 */ 591 public Practitioner setName(List<HumanName> theName) { 592 this.name = theName; 593 return this; 594 } 595 596 public boolean hasName() { 597 if (this.name == null) 598 return false; 599 for (HumanName item : this.name) 600 if (!item.isEmpty()) 601 return true; 602 return false; 603 } 604 605 public HumanName addName() { //3 606 HumanName t = new HumanName(); 607 if (this.name == null) 608 this.name = new ArrayList<HumanName>(); 609 this.name.add(t); 610 return t; 611 } 612 613 public Practitioner addName(HumanName t) { //3 614 if (t == null) 615 return this; 616 if (this.name == null) 617 this.name = new ArrayList<HumanName>(); 618 this.name.add(t); 619 return this; 620 } 621 622 /** 623 * @return The first repetition of repeating field {@link #name}, creating it if it does not already exist {3} 624 */ 625 public HumanName getNameFirstRep() { 626 if (getName().isEmpty()) { 627 addName(); 628 } 629 return getName().get(0); 630 } 631 632 /** 633 * @return {@link #telecom} (A contact detail for the practitioner, e.g. a telephone number or an email address.) 634 */ 635 public List<ContactPoint> getTelecom() { 636 if (this.telecom == null) 637 this.telecom = new ArrayList<ContactPoint>(); 638 return this.telecom; 639 } 640 641 /** 642 * @return Returns a reference to <code>this</code> for easy method chaining 643 */ 644 public Practitioner setTelecom(List<ContactPoint> theTelecom) { 645 this.telecom = theTelecom; 646 return this; 647 } 648 649 public boolean hasTelecom() { 650 if (this.telecom == null) 651 return false; 652 for (ContactPoint item : this.telecom) 653 if (!item.isEmpty()) 654 return true; 655 return false; 656 } 657 658 public ContactPoint addTelecom() { //3 659 ContactPoint t = new ContactPoint(); 660 if (this.telecom == null) 661 this.telecom = new ArrayList<ContactPoint>(); 662 this.telecom.add(t); 663 return t; 664 } 665 666 public Practitioner addTelecom(ContactPoint t) { //3 667 if (t == null) 668 return this; 669 if (this.telecom == null) 670 this.telecom = new ArrayList<ContactPoint>(); 671 this.telecom.add(t); 672 return this; 673 } 674 675 /** 676 * @return The first repetition of repeating field {@link #telecom}, creating it if it does not already exist {3} 677 */ 678 public ContactPoint getTelecomFirstRep() { 679 if (getTelecom().isEmpty()) { 680 addTelecom(); 681 } 682 return getTelecom().get(0); 683 } 684 685 /** 686 * @return {@link #deceased} (Indicates if the practitioner is deceased or not.) 687 */ 688 public DataType getDeceased() { 689 return this.deceased; 690 } 691 692 /** 693 * @return {@link #deceased} (Indicates if the practitioner is deceased or not.) 694 */ 695 public BooleanType getDeceasedBooleanType() throws FHIRException { 696 if (this.deceased == null) 697 this.deceased = new BooleanType(); 698 if (!(this.deceased instanceof BooleanType)) 699 throw new FHIRException("Type mismatch: the type BooleanType was expected, but "+this.deceased.getClass().getName()+" was encountered"); 700 return (BooleanType) this.deceased; 701 } 702 703 public boolean hasDeceasedBooleanType() { 704 return this != null && this.deceased instanceof BooleanType; 705 } 706 707 /** 708 * @return {@link #deceased} (Indicates if the practitioner is deceased or not.) 709 */ 710 public DateTimeType getDeceasedDateTimeType() throws FHIRException { 711 if (this.deceased == null) 712 this.deceased = new DateTimeType(); 713 if (!(this.deceased instanceof DateTimeType)) 714 throw new FHIRException("Type mismatch: the type DateTimeType was expected, but "+this.deceased.getClass().getName()+" was encountered"); 715 return (DateTimeType) this.deceased; 716 } 717 718 public boolean hasDeceasedDateTimeType() { 719 return this != null && this.deceased instanceof DateTimeType; 720 } 721 722 public boolean hasDeceased() { 723 return this.deceased != null && !this.deceased.isEmpty(); 724 } 725 726 /** 727 * @param value {@link #deceased} (Indicates if the practitioner is deceased or not.) 728 */ 729 public Practitioner setDeceased(DataType value) { 730 if (value != null && !(value instanceof BooleanType || value instanceof DateTimeType)) 731 throw new Error("Not the right type for Practitioner.deceased[x]: "+value.fhirType()); 732 this.deceased = value; 733 return this; 734 } 735 736 /** 737 * @return {@link #address} (Address(es) of the practitioner that are not role specific (typically home address). 738Work addresses are not typically entered in this property as they are usually role dependent.) 739 */ 740 public List<Address> getAddress() { 741 if (this.address == null) 742 this.address = new ArrayList<Address>(); 743 return this.address; 744 } 745 746 /** 747 * @return Returns a reference to <code>this</code> for easy method chaining 748 */ 749 public Practitioner setAddress(List<Address> theAddress) { 750 this.address = theAddress; 751 return this; 752 } 753 754 public boolean hasAddress() { 755 if (this.address == null) 756 return false; 757 for (Address item : this.address) 758 if (!item.isEmpty()) 759 return true; 760 return false; 761 } 762 763 public Address addAddress() { //3 764 Address t = new Address(); 765 if (this.address == null) 766 this.address = new ArrayList<Address>(); 767 this.address.add(t); 768 return t; 769 } 770 771 public Practitioner addAddress(Address t) { //3 772 if (t == null) 773 return this; 774 if (this.address == null) 775 this.address = new ArrayList<Address>(); 776 this.address.add(t); 777 return this; 778 } 779 780 /** 781 * @return The first repetition of repeating field {@link #address}, creating it if it does not already exist {3} 782 */ 783 public Address getAddressFirstRep() { 784 if (getAddress().isEmpty()) { 785 addAddress(); 786 } 787 return getAddress().get(0); 788 } 789 790 /** 791 * @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 792 */ 793 public Enumeration<AdministrativeGender> getGenderElement() { 794 if (this.gender == null) 795 if (Configuration.errorOnAutoCreate()) 796 throw new Error("Attempt to auto-create Practitioner.gender"); 797 else if (Configuration.doAutoCreate()) 798 this.gender = new Enumeration<AdministrativeGender>(new AdministrativeGenderEnumFactory()); // bb 799 return this.gender; 800 } 801 802 public boolean hasGenderElement() { 803 return this.gender != null && !this.gender.isEmpty(); 804 } 805 806 public boolean hasGender() { 807 return this.gender != null && !this.gender.isEmpty(); 808 } 809 810 /** 811 * @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 812 */ 813 public Practitioner setGenderElement(Enumeration<AdministrativeGender> value) { 814 this.gender = value; 815 return this; 816 } 817 818 /** 819 * @return Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes. 820 */ 821 public AdministrativeGender getGender() { 822 return this.gender == null ? null : this.gender.getValue(); 823 } 824 825 /** 826 * @param value Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes. 827 */ 828 public Practitioner setGender(AdministrativeGender value) { 829 if (value == null) 830 this.gender = null; 831 else { 832 if (this.gender == null) 833 this.gender = new Enumeration<AdministrativeGender>(new AdministrativeGenderEnumFactory()); 834 this.gender.setValue(value); 835 } 836 return this; 837 } 838 839 /** 840 * @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 841 */ 842 public DateType getBirthDateElement() { 843 if (this.birthDate == null) 844 if (Configuration.errorOnAutoCreate()) 845 throw new Error("Attempt to auto-create Practitioner.birthDate"); 846 else if (Configuration.doAutoCreate()) 847 this.birthDate = new DateType(); // bb 848 return this.birthDate; 849 } 850 851 public boolean hasBirthDateElement() { 852 return this.birthDate != null && !this.birthDate.isEmpty(); 853 } 854 855 public boolean hasBirthDate() { 856 return this.birthDate != null && !this.birthDate.isEmpty(); 857 } 858 859 /** 860 * @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 861 */ 862 public Practitioner setBirthDateElement(DateType value) { 863 this.birthDate = value; 864 return this; 865 } 866 867 /** 868 * @return The date of birth for the practitioner. 869 */ 870 public Date getBirthDate() { 871 return this.birthDate == null ? null : this.birthDate.getValue(); 872 } 873 874 /** 875 * @param value The date of birth for the practitioner. 876 */ 877 public Practitioner setBirthDate(Date value) { 878 if (value == null) 879 this.birthDate = null; 880 else { 881 if (this.birthDate == null) 882 this.birthDate = new DateType(); 883 this.birthDate.setValue(value); 884 } 885 return this; 886 } 887 888 /** 889 * @return {@link #photo} (Image of the person.) 890 */ 891 public List<Attachment> getPhoto() { 892 if (this.photo == null) 893 this.photo = new ArrayList<Attachment>(); 894 return this.photo; 895 } 896 897 /** 898 * @return Returns a reference to <code>this</code> for easy method chaining 899 */ 900 public Practitioner setPhoto(List<Attachment> thePhoto) { 901 this.photo = thePhoto; 902 return this; 903 } 904 905 public boolean hasPhoto() { 906 if (this.photo == null) 907 return false; 908 for (Attachment item : this.photo) 909 if (!item.isEmpty()) 910 return true; 911 return false; 912 } 913 914 public Attachment addPhoto() { //3 915 Attachment t = new Attachment(); 916 if (this.photo == null) 917 this.photo = new ArrayList<Attachment>(); 918 this.photo.add(t); 919 return t; 920 } 921 922 public Practitioner addPhoto(Attachment t) { //3 923 if (t == null) 924 return this; 925 if (this.photo == null) 926 this.photo = new ArrayList<Attachment>(); 927 this.photo.add(t); 928 return this; 929 } 930 931 /** 932 * @return The first repetition of repeating field {@link #photo}, creating it if it does not already exist {3} 933 */ 934 public Attachment getPhotoFirstRep() { 935 if (getPhoto().isEmpty()) { 936 addPhoto(); 937 } 938 return getPhoto().get(0); 939 } 940 941 /** 942 * @return {@link #qualification} (The official certifications, training, and licenses that authorize or otherwise pertain to the provision of care by the practitioner. For example, a medical license issued by a medical board authorizing the practitioner to practice medicine within a certain locality.) 943 */ 944 public List<PractitionerQualificationComponent> getQualification() { 945 if (this.qualification == null) 946 this.qualification = new ArrayList<PractitionerQualificationComponent>(); 947 return this.qualification; 948 } 949 950 /** 951 * @return Returns a reference to <code>this</code> for easy method chaining 952 */ 953 public Practitioner setQualification(List<PractitionerQualificationComponent> theQualification) { 954 this.qualification = theQualification; 955 return this; 956 } 957 958 public boolean hasQualification() { 959 if (this.qualification == null) 960 return false; 961 for (PractitionerQualificationComponent item : this.qualification) 962 if (!item.isEmpty()) 963 return true; 964 return false; 965 } 966 967 public PractitionerQualificationComponent addQualification() { //3 968 PractitionerQualificationComponent t = new PractitionerQualificationComponent(); 969 if (this.qualification == null) 970 this.qualification = new ArrayList<PractitionerQualificationComponent>(); 971 this.qualification.add(t); 972 return t; 973 } 974 975 public Practitioner addQualification(PractitionerQualificationComponent t) { //3 976 if (t == null) 977 return this; 978 if (this.qualification == null) 979 this.qualification = new ArrayList<PractitionerQualificationComponent>(); 980 this.qualification.add(t); 981 return this; 982 } 983 984 /** 985 * @return The first repetition of repeating field {@link #qualification}, creating it if it does not already exist {3} 986 */ 987 public PractitionerQualificationComponent getQualificationFirstRep() { 988 if (getQualification().isEmpty()) { 989 addQualification(); 990 } 991 return getQualification().get(0); 992 } 993 994 /** 995 * @return {@link #communication} (A language the practitioner can use in patient communication.) 996 */ 997 public List<CodeableConcept> getCommunication() { 998 if (this.communication == null) 999 this.communication = new ArrayList<CodeableConcept>(); 1000 return this.communication; 1001 } 1002 1003 /** 1004 * @return Returns a reference to <code>this</code> for easy method chaining 1005 */ 1006 public Practitioner setCommunication(List<CodeableConcept> theCommunication) { 1007 this.communication = theCommunication; 1008 return this; 1009 } 1010 1011 public boolean hasCommunication() { 1012 if (this.communication == null) 1013 return false; 1014 for (CodeableConcept item : this.communication) 1015 if (!item.isEmpty()) 1016 return true; 1017 return false; 1018 } 1019 1020 public CodeableConcept addCommunication() { //3 1021 CodeableConcept t = new CodeableConcept(); 1022 if (this.communication == null) 1023 this.communication = new ArrayList<CodeableConcept>(); 1024 this.communication.add(t); 1025 return t; 1026 } 1027 1028 public Practitioner addCommunication(CodeableConcept t) { //3 1029 if (t == null) 1030 return this; 1031 if (this.communication == null) 1032 this.communication = new ArrayList<CodeableConcept>(); 1033 this.communication.add(t); 1034 return this; 1035 } 1036 1037 /** 1038 * @return The first repetition of repeating field {@link #communication}, creating it if it does not already exist {3} 1039 */ 1040 public CodeableConcept getCommunicationFirstRep() { 1041 if (getCommunication().isEmpty()) { 1042 addCommunication(); 1043 } 1044 return getCommunication().get(0); 1045 } 1046 1047 protected void listChildren(List<Property> children) { 1048 super.listChildren(children); 1049 children.add(new Property("identifier", "Identifier", "An identifier that applies to this person in this role.", 0, java.lang.Integer.MAX_VALUE, identifier)); 1050 children.add(new Property("active", "boolean", "Whether this practitioner's record is in active use.", 0, 1, active)); 1051 children.add(new Property("name", "HumanName", "The name(s) associated with the practitioner.", 0, java.lang.Integer.MAX_VALUE, name)); 1052 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)); 1053 children.add(new Property("deceased[x]", "boolean|dateTime", "Indicates if the practitioner is deceased or not.", 0, 1, deceased)); 1054 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)); 1055 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)); 1056 children.add(new Property("birthDate", "date", "The date of birth for the practitioner.", 0, 1, birthDate)); 1057 children.add(new Property("photo", "Attachment", "Image of the person.", 0, java.lang.Integer.MAX_VALUE, photo)); 1058 children.add(new Property("qualification", "", "The official certifications, training, and licenses that authorize or otherwise pertain to the provision of care by the practitioner. For example, a medical license issued by a medical board authorizing the practitioner to practice medicine within a certain locality.", 0, java.lang.Integer.MAX_VALUE, qualification)); 1059 children.add(new Property("communication", "CodeableConcept", "A language the practitioner can use in patient communication.", 0, java.lang.Integer.MAX_VALUE, communication)); 1060 } 1061 1062 @Override 1063 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1064 switch (_hash) { 1065 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); 1066 case -1422950650: /*active*/ return new Property("active", "boolean", "Whether this practitioner's record is in active use.", 0, 1, active); 1067 case 3373707: /*name*/ return new Property("name", "HumanName", "The name(s) associated with the practitioner.", 0, java.lang.Integer.MAX_VALUE, name); 1068 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); 1069 case -1311442804: /*deceased[x]*/ return new Property("deceased[x]", "boolean|dateTime", "Indicates if the practitioner is deceased or not.", 0, 1, deceased); 1070 case 561497972: /*deceased*/ return new Property("deceased[x]", "boolean|dateTime", "Indicates if the practitioner is deceased or not.", 0, 1, deceased); 1071 case 497463828: /*deceasedBoolean*/ return new Property("deceased[x]", "boolean", "Indicates if the practitioner is deceased or not.", 0, 1, deceased); 1072 case -1971804369: /*deceasedDateTime*/ return new Property("deceased[x]", "dateTime", "Indicates if the practitioner is deceased or not.", 0, 1, deceased); 1073 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); 1074 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); 1075 case -1210031859: /*birthDate*/ return new Property("birthDate", "date", "The date of birth for the practitioner.", 0, 1, birthDate); 1076 case 106642994: /*photo*/ return new Property("photo", "Attachment", "Image of the person.", 0, java.lang.Integer.MAX_VALUE, photo); 1077 case -631333393: /*qualification*/ return new Property("qualification", "", "The official certifications, training, and licenses that authorize or otherwise pertain to the provision of care by the practitioner. For example, a medical license issued by a medical board authorizing the practitioner to practice medicine within a certain locality.", 0, java.lang.Integer.MAX_VALUE, qualification); 1078 case -1035284522: /*communication*/ return new Property("communication", "CodeableConcept", "A language the practitioner can use in patient communication.", 0, java.lang.Integer.MAX_VALUE, communication); 1079 default: return super.getNamedProperty(_hash, _name, _checkValid); 1080 } 1081 1082 } 1083 1084 @Override 1085 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1086 switch (hash) { 1087 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 1088 case -1422950650: /*active*/ return this.active == null ? new Base[0] : new Base[] {this.active}; // BooleanType 1089 case 3373707: /*name*/ return this.name == null ? new Base[0] : this.name.toArray(new Base[this.name.size()]); // HumanName 1090 case -1429363305: /*telecom*/ return this.telecom == null ? new Base[0] : this.telecom.toArray(new Base[this.telecom.size()]); // ContactPoint 1091 case 561497972: /*deceased*/ return this.deceased == null ? new Base[0] : new Base[] {this.deceased}; // DataType 1092 case -1147692044: /*address*/ return this.address == null ? new Base[0] : this.address.toArray(new Base[this.address.size()]); // Address 1093 case -1249512767: /*gender*/ return this.gender == null ? new Base[0] : new Base[] {this.gender}; // Enumeration<AdministrativeGender> 1094 case -1210031859: /*birthDate*/ return this.birthDate == null ? new Base[0] : new Base[] {this.birthDate}; // DateType 1095 case 106642994: /*photo*/ return this.photo == null ? new Base[0] : this.photo.toArray(new Base[this.photo.size()]); // Attachment 1096 case -631333393: /*qualification*/ return this.qualification == null ? new Base[0] : this.qualification.toArray(new Base[this.qualification.size()]); // PractitionerQualificationComponent 1097 case -1035284522: /*communication*/ return this.communication == null ? new Base[0] : this.communication.toArray(new Base[this.communication.size()]); // CodeableConcept 1098 default: return super.getProperty(hash, name, checkValid); 1099 } 1100 1101 } 1102 1103 @Override 1104 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1105 switch (hash) { 1106 case -1618432855: // identifier 1107 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier 1108 return value; 1109 case -1422950650: // active 1110 this.active = TypeConvertor.castToBoolean(value); // BooleanType 1111 return value; 1112 case 3373707: // name 1113 this.getName().add(TypeConvertor.castToHumanName(value)); // HumanName 1114 return value; 1115 case -1429363305: // telecom 1116 this.getTelecom().add(TypeConvertor.castToContactPoint(value)); // ContactPoint 1117 return value; 1118 case 561497972: // deceased 1119 this.deceased = TypeConvertor.castToType(value); // DataType 1120 return value; 1121 case -1147692044: // address 1122 this.getAddress().add(TypeConvertor.castToAddress(value)); // Address 1123 return value; 1124 case -1249512767: // gender 1125 value = new AdministrativeGenderEnumFactory().fromType(TypeConvertor.castToCode(value)); 1126 this.gender = (Enumeration) value; // Enumeration<AdministrativeGender> 1127 return value; 1128 case -1210031859: // birthDate 1129 this.birthDate = TypeConvertor.castToDate(value); // DateType 1130 return value; 1131 case 106642994: // photo 1132 this.getPhoto().add(TypeConvertor.castToAttachment(value)); // Attachment 1133 return value; 1134 case -631333393: // qualification 1135 this.getQualification().add((PractitionerQualificationComponent) value); // PractitionerQualificationComponent 1136 return value; 1137 case -1035284522: // communication 1138 this.getCommunication().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 1139 return value; 1140 default: return super.setProperty(hash, name, value); 1141 } 1142 1143 } 1144 1145 @Override 1146 public Base setProperty(String name, Base value) throws FHIRException { 1147 if (name.equals("identifier")) { 1148 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); 1149 } else if (name.equals("active")) { 1150 this.active = TypeConvertor.castToBoolean(value); // BooleanType 1151 } else if (name.equals("name")) { 1152 this.getName().add(TypeConvertor.castToHumanName(value)); 1153 } else if (name.equals("telecom")) { 1154 this.getTelecom().add(TypeConvertor.castToContactPoint(value)); 1155 } else if (name.equals("deceased[x]")) { 1156 this.deceased = TypeConvertor.castToType(value); // DataType 1157 } else if (name.equals("address")) { 1158 this.getAddress().add(TypeConvertor.castToAddress(value)); 1159 } else if (name.equals("gender")) { 1160 value = new AdministrativeGenderEnumFactory().fromType(TypeConvertor.castToCode(value)); 1161 this.gender = (Enumeration) value; // Enumeration<AdministrativeGender> 1162 } else if (name.equals("birthDate")) { 1163 this.birthDate = TypeConvertor.castToDate(value); // DateType 1164 } else if (name.equals("photo")) { 1165 this.getPhoto().add(TypeConvertor.castToAttachment(value)); 1166 } else if (name.equals("qualification")) { 1167 this.getQualification().add((PractitionerQualificationComponent) value); 1168 } else if (name.equals("communication")) { 1169 this.getCommunication().add(TypeConvertor.castToCodeableConcept(value)); 1170 } else 1171 return super.setProperty(name, value); 1172 return value; 1173 } 1174 1175 @Override 1176 public Base makeProperty(int hash, String name) throws FHIRException { 1177 switch (hash) { 1178 case -1618432855: return addIdentifier(); 1179 case -1422950650: return getActiveElement(); 1180 case 3373707: return addName(); 1181 case -1429363305: return addTelecom(); 1182 case -1311442804: return getDeceased(); 1183 case 561497972: return getDeceased(); 1184 case -1147692044: return addAddress(); 1185 case -1249512767: return getGenderElement(); 1186 case -1210031859: return getBirthDateElement(); 1187 case 106642994: return addPhoto(); 1188 case -631333393: return addQualification(); 1189 case -1035284522: return addCommunication(); 1190 default: return super.makeProperty(hash, name); 1191 } 1192 1193 } 1194 1195 @Override 1196 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1197 switch (hash) { 1198 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 1199 case -1422950650: /*active*/ return new String[] {"boolean"}; 1200 case 3373707: /*name*/ return new String[] {"HumanName"}; 1201 case -1429363305: /*telecom*/ return new String[] {"ContactPoint"}; 1202 case 561497972: /*deceased*/ return new String[] {"boolean", "dateTime"}; 1203 case -1147692044: /*address*/ return new String[] {"Address"}; 1204 case -1249512767: /*gender*/ return new String[] {"code"}; 1205 case -1210031859: /*birthDate*/ return new String[] {"date"}; 1206 case 106642994: /*photo*/ return new String[] {"Attachment"}; 1207 case -631333393: /*qualification*/ return new String[] {}; 1208 case -1035284522: /*communication*/ return new String[] {"CodeableConcept"}; 1209 default: return super.getTypesForProperty(hash, name); 1210 } 1211 1212 } 1213 1214 @Override 1215 public Base addChild(String name) throws FHIRException { 1216 if (name.equals("identifier")) { 1217 return addIdentifier(); 1218 } 1219 else if (name.equals("active")) { 1220 throw new FHIRException("Cannot call addChild on a primitive type Practitioner.active"); 1221 } 1222 else if (name.equals("name")) { 1223 return addName(); 1224 } 1225 else if (name.equals("telecom")) { 1226 return addTelecom(); 1227 } 1228 else if (name.equals("deceasedBoolean")) { 1229 this.deceased = new BooleanType(); 1230 return this.deceased; 1231 } 1232 else if (name.equals("deceasedDateTime")) { 1233 this.deceased = new DateTimeType(); 1234 return this.deceased; 1235 } 1236 else if (name.equals("address")) { 1237 return addAddress(); 1238 } 1239 else if (name.equals("gender")) { 1240 throw new FHIRException("Cannot call addChild on a primitive type Practitioner.gender"); 1241 } 1242 else if (name.equals("birthDate")) { 1243 throw new FHIRException("Cannot call addChild on a primitive type Practitioner.birthDate"); 1244 } 1245 else if (name.equals("photo")) { 1246 return addPhoto(); 1247 } 1248 else if (name.equals("qualification")) { 1249 return addQualification(); 1250 } 1251 else if (name.equals("communication")) { 1252 return addCommunication(); 1253 } 1254 else 1255 return super.addChild(name); 1256 } 1257 1258 public String fhirType() { 1259 return "Practitioner"; 1260 1261 } 1262 1263 public Practitioner copy() { 1264 Practitioner dst = new Practitioner(); 1265 copyValues(dst); 1266 return dst; 1267 } 1268 1269 public void copyValues(Practitioner dst) { 1270 super.copyValues(dst); 1271 if (identifier != null) { 1272 dst.identifier = new ArrayList<Identifier>(); 1273 for (Identifier i : identifier) 1274 dst.identifier.add(i.copy()); 1275 }; 1276 dst.active = active == null ? null : active.copy(); 1277 if (name != null) { 1278 dst.name = new ArrayList<HumanName>(); 1279 for (HumanName i : name) 1280 dst.name.add(i.copy()); 1281 }; 1282 if (telecom != null) { 1283 dst.telecom = new ArrayList<ContactPoint>(); 1284 for (ContactPoint i : telecom) 1285 dst.telecom.add(i.copy()); 1286 }; 1287 dst.deceased = deceased == null ? null : deceased.copy(); 1288 if (address != null) { 1289 dst.address = new ArrayList<Address>(); 1290 for (Address i : address) 1291 dst.address.add(i.copy()); 1292 }; 1293 dst.gender = gender == null ? null : gender.copy(); 1294 dst.birthDate = birthDate == null ? null : birthDate.copy(); 1295 if (photo != null) { 1296 dst.photo = new ArrayList<Attachment>(); 1297 for (Attachment i : photo) 1298 dst.photo.add(i.copy()); 1299 }; 1300 if (qualification != null) { 1301 dst.qualification = new ArrayList<PractitionerQualificationComponent>(); 1302 for (PractitionerQualificationComponent i : qualification) 1303 dst.qualification.add(i.copy()); 1304 }; 1305 if (communication != null) { 1306 dst.communication = new ArrayList<CodeableConcept>(); 1307 for (CodeableConcept i : communication) 1308 dst.communication.add(i.copy()); 1309 }; 1310 } 1311 1312 protected Practitioner typedCopy() { 1313 return copy(); 1314 } 1315 1316 @Override 1317 public boolean equalsDeep(Base other_) { 1318 if (!super.equalsDeep(other_)) 1319 return false; 1320 if (!(other_ instanceof Practitioner)) 1321 return false; 1322 Practitioner o = (Practitioner) other_; 1323 return compareDeep(identifier, o.identifier, true) && compareDeep(active, o.active, true) && compareDeep(name, o.name, true) 1324 && compareDeep(telecom, o.telecom, true) && compareDeep(deceased, o.deceased, true) && compareDeep(address, o.address, true) 1325 && compareDeep(gender, o.gender, true) && compareDeep(birthDate, o.birthDate, true) && compareDeep(photo, o.photo, true) 1326 && compareDeep(qualification, o.qualification, true) && compareDeep(communication, o.communication, true) 1327 ; 1328 } 1329 1330 @Override 1331 public boolean equalsShallow(Base other_) { 1332 if (!super.equalsShallow(other_)) 1333 return false; 1334 if (!(other_ instanceof Practitioner)) 1335 return false; 1336 Practitioner o = (Practitioner) other_; 1337 return compareValues(active, o.active, true) && compareValues(gender, o.gender, true) && compareValues(birthDate, o.birthDate, true) 1338 ; 1339 } 1340 1341 public boolean isEmpty() { 1342 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, active, name 1343 , telecom, deceased, address, gender, birthDate, photo, qualification, communication 1344 ); 1345 } 1346 1347 @Override 1348 public ResourceType getResourceType() { 1349 return ResourceType.Practitioner; 1350 } 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>communication</b> 1374 * <p> 1375 * Description: <b>One of the languages that the practitioner can communicate with</b><br> 1376 * Type: <b>token</b><br> 1377 * Path: <b>Practitioner.communication</b><br> 1378 * </p> 1379 */ 1380 @SearchParamDefinition(name="communication", path="Practitioner.communication", description="One of the languages that the practitioner can communicate with", type="token" ) 1381 public static final String SP_COMMUNICATION = "communication"; 1382 /** 1383 * <b>Fluent Client</b> search parameter constant for <b>communication</b> 1384 * <p> 1385 * Description: <b>One of the languages that the practitioner can communicate with</b><br> 1386 * Type: <b>token</b><br> 1387 * Path: <b>Practitioner.communication</b><br> 1388 * </p> 1389 */ 1390 public static final ca.uhn.fhir.rest.gclient.TokenClientParam COMMUNICATION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_COMMUNICATION); 1391 1392 /** 1393 * Search parameter: <b>death-date</b> 1394 * <p> 1395 * Description: <b>The date of death has been provided and satisfies this search value</b><br> 1396 * Type: <b>date</b><br> 1397 * Path: <b>(Practitioner.deceased as dateTime)</b><br> 1398 * </p> 1399 */ 1400 @SearchParamDefinition(name="death-date", path="(Practitioner.deceased as dateTime)", description="The date of death has been provided and satisfies this search value", type="date" ) 1401 public static final String SP_DEATH_DATE = "death-date"; 1402 /** 1403 * <b>Fluent Client</b> search parameter constant for <b>death-date</b> 1404 * <p> 1405 * Description: <b>The date of death has been provided and satisfies this search value</b><br> 1406 * Type: <b>date</b><br> 1407 * Path: <b>(Practitioner.deceased as dateTime)</b><br> 1408 * </p> 1409 */ 1410 public static final ca.uhn.fhir.rest.gclient.DateClientParam DEATH_DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DEATH_DATE); 1411 1412 /** 1413 * Search parameter: <b>deceased</b> 1414 * <p> 1415 * Description: <b>This Practitioner has been marked as deceased, or has a death date entered</b><br> 1416 * Type: <b>token</b><br> 1417 * Path: <b>Practitioner.deceased.exists() and Practitioner.deceased != false</b><br> 1418 * </p> 1419 */ 1420 @SearchParamDefinition(name="deceased", path="Practitioner.deceased.exists() and Practitioner.deceased != false", description="This Practitioner has been marked as deceased, or has a death date entered", type="token" ) 1421 public static final String SP_DECEASED = "deceased"; 1422 /** 1423 * <b>Fluent Client</b> search parameter constant for <b>deceased</b> 1424 * <p> 1425 * Description: <b>This Practitioner has been marked as deceased, or has a death date entered</b><br> 1426 * Type: <b>token</b><br> 1427 * Path: <b>Practitioner.deceased.exists() and Practitioner.deceased != false</b><br> 1428 * </p> 1429 */ 1430 public static final ca.uhn.fhir.rest.gclient.TokenClientParam DECEASED = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_DECEASED); 1431 1432 /** 1433 * Search parameter: <b>identifier</b> 1434 * <p> 1435 * Description: <b>A practitioner's Identifier</b><br> 1436 * Type: <b>token</b><br> 1437 * Path: <b>Practitioner.identifier</b><br> 1438 * </p> 1439 */ 1440 @SearchParamDefinition(name="identifier", path="Practitioner.identifier", description="A practitioner's Identifier", type="token" ) 1441 public static final String SP_IDENTIFIER = "identifier"; 1442 /** 1443 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 1444 * <p> 1445 * Description: <b>A practitioner's Identifier</b><br> 1446 * Type: <b>token</b><br> 1447 * Path: <b>Practitioner.identifier</b><br> 1448 * </p> 1449 */ 1450 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 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-city</b> 1474 * <p> 1475 * Description: <b>Multiple Resources: 1476 1477* [Patient](patient.html): A city specified in an address 1478* [Person](person.html): A city specified in an address 1479* [Practitioner](practitioner.html): A city specified in an address 1480* [RelatedPerson](relatedperson.html): A city specified in an address 1481</b><br> 1482 * Type: <b>string</b><br> 1483 * Path: <b>Patient.address.city | Person.address.city | Practitioner.address.city | RelatedPerson.address.city</b><br> 1484 * </p> 1485 */ 1486 @SearchParamDefinition(name="address-city", path="Patient.address.city | Person.address.city | Practitioner.address.city | RelatedPerson.address.city", description="Multiple Resources: \r\n\r\n* [Patient](patient.html): A city specified in an address\r\n* [Person](person.html): A city specified in an address\r\n* [Practitioner](practitioner.html): A city specified in an address\r\n* [RelatedPerson](relatedperson.html): A city specified in an address\r\n", type="string" ) 1487 public static final String SP_ADDRESS_CITY = "address-city"; 1488 /** 1489 * <b>Fluent Client</b> search parameter constant for <b>address-city</b> 1490 * <p> 1491 * Description: <b>Multiple Resources: 1492 1493* [Patient](patient.html): A city specified in an address 1494* [Person](person.html): A city specified in an address 1495* [Practitioner](practitioner.html): A city specified in an address 1496* [RelatedPerson](relatedperson.html): A city specified in an address 1497</b><br> 1498 * Type: <b>string</b><br> 1499 * Path: <b>Patient.address.city | Person.address.city | Practitioner.address.city | RelatedPerson.address.city</b><br> 1500 * </p> 1501 */ 1502 public static final ca.uhn.fhir.rest.gclient.StringClientParam ADDRESS_CITY = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_ADDRESS_CITY); 1503 1504 /** 1505 * Search parameter: <b>address-country</b> 1506 * <p> 1507 * Description: <b>Multiple Resources: 1508 1509* [Patient](patient.html): A country specified in an address 1510* [Person](person.html): A country specified in an address 1511* [Practitioner](practitioner.html): A country specified in an address 1512* [RelatedPerson](relatedperson.html): A country specified in an address 1513</b><br> 1514 * Type: <b>string</b><br> 1515 * Path: <b>Patient.address.country | Person.address.country | Practitioner.address.country | RelatedPerson.address.country</b><br> 1516 * </p> 1517 */ 1518 @SearchParamDefinition(name="address-country", path="Patient.address.country | Person.address.country | Practitioner.address.country | RelatedPerson.address.country", description="Multiple Resources: \r\n\r\n* [Patient](patient.html): A country specified in an address\r\n* [Person](person.html): A country specified in an address\r\n* [Practitioner](practitioner.html): A country specified in an address\r\n* [RelatedPerson](relatedperson.html): A country specified in an address\r\n", type="string" ) 1519 public static final String SP_ADDRESS_COUNTRY = "address-country"; 1520 /** 1521 * <b>Fluent Client</b> search parameter constant for <b>address-country</b> 1522 * <p> 1523 * Description: <b>Multiple Resources: 1524 1525* [Patient](patient.html): A country specified in an address 1526* [Person](person.html): A country specified in an address 1527* [Practitioner](practitioner.html): A country specified in an address 1528* [RelatedPerson](relatedperson.html): A country specified in an address 1529</b><br> 1530 * Type: <b>string</b><br> 1531 * Path: <b>Patient.address.country | Person.address.country | Practitioner.address.country | RelatedPerson.address.country</b><br> 1532 * </p> 1533 */ 1534 public static final ca.uhn.fhir.rest.gclient.StringClientParam ADDRESS_COUNTRY = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_ADDRESS_COUNTRY); 1535 1536 /** 1537 * Search parameter: <b>address-postalcode</b> 1538 * <p> 1539 * Description: <b>Multiple Resources: 1540 1541* [Patient](patient.html): A postalCode specified in an address 1542* [Person](person.html): A postal code specified in an address 1543* [Practitioner](practitioner.html): A postalCode specified in an address 1544* [RelatedPerson](relatedperson.html): A postal code specified in an address 1545</b><br> 1546 * Type: <b>string</b><br> 1547 * Path: <b>Patient.address.postalCode | Person.address.postalCode | Practitioner.address.postalCode | RelatedPerson.address.postalCode</b><br> 1548 * </p> 1549 */ 1550 @SearchParamDefinition(name="address-postalcode", path="Patient.address.postalCode | Person.address.postalCode | Practitioner.address.postalCode | RelatedPerson.address.postalCode", description="Multiple Resources: \r\n\r\n* [Patient](patient.html): A postalCode specified in an address\r\n* [Person](person.html): A postal code specified in an address\r\n* [Practitioner](practitioner.html): A postalCode specified in an address\r\n* [RelatedPerson](relatedperson.html): A postal code specified in an address\r\n", type="string" ) 1551 public static final String SP_ADDRESS_POSTALCODE = "address-postalcode"; 1552 /** 1553 * <b>Fluent Client</b> search parameter constant for <b>address-postalcode</b> 1554 * <p> 1555 * Description: <b>Multiple Resources: 1556 1557* [Patient](patient.html): A postalCode specified in an address 1558* [Person](person.html): A postal code specified in an address 1559* [Practitioner](practitioner.html): A postalCode specified in an address 1560* [RelatedPerson](relatedperson.html): A postal code specified in an address 1561</b><br> 1562 * Type: <b>string</b><br> 1563 * Path: <b>Patient.address.postalCode | Person.address.postalCode | Practitioner.address.postalCode | RelatedPerson.address.postalCode</b><br> 1564 * </p> 1565 */ 1566 public static final ca.uhn.fhir.rest.gclient.StringClientParam ADDRESS_POSTALCODE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_ADDRESS_POSTALCODE); 1567 1568 /** 1569 * Search parameter: <b>address-state</b> 1570 * <p> 1571 * Description: <b>Multiple Resources: 1572 1573* [Patient](patient.html): A state specified in an address 1574* [Person](person.html): A state specified in an address 1575* [Practitioner](practitioner.html): A state specified in an address 1576* [RelatedPerson](relatedperson.html): A state specified in an address 1577</b><br> 1578 * Type: <b>string</b><br> 1579 * Path: <b>Patient.address.state | Person.address.state | Practitioner.address.state | RelatedPerson.address.state</b><br> 1580 * </p> 1581 */ 1582 @SearchParamDefinition(name="address-state", path="Patient.address.state | Person.address.state | Practitioner.address.state | RelatedPerson.address.state", description="Multiple Resources: \r\n\r\n* [Patient](patient.html): A state specified in an address\r\n* [Person](person.html): A state specified in an address\r\n* [Practitioner](practitioner.html): A state specified in an address\r\n* [RelatedPerson](relatedperson.html): A state specified in an address\r\n", type="string" ) 1583 public static final String SP_ADDRESS_STATE = "address-state"; 1584 /** 1585 * <b>Fluent Client</b> search parameter constant for <b>address-state</b> 1586 * <p> 1587 * Description: <b>Multiple Resources: 1588 1589* [Patient](patient.html): A state specified in an address 1590* [Person](person.html): A state specified in an address 1591* [Practitioner](practitioner.html): A state specified in an address 1592* [RelatedPerson](relatedperson.html): A state specified in an address 1593</b><br> 1594 * Type: <b>string</b><br> 1595 * Path: <b>Patient.address.state | Person.address.state | Practitioner.address.state | RelatedPerson.address.state</b><br> 1596 * </p> 1597 */ 1598 public static final ca.uhn.fhir.rest.gclient.StringClientParam ADDRESS_STATE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_ADDRESS_STATE); 1599 1600 /** 1601 * Search parameter: <b>address-use</b> 1602 * <p> 1603 * Description: <b>Multiple Resources: 1604 1605* [Patient](patient.html): A use code specified in an address 1606* [Person](person.html): A use code specified in an address 1607* [Practitioner](practitioner.html): A use code specified in an address 1608* [RelatedPerson](relatedperson.html): A use code specified in an address 1609</b><br> 1610 * Type: <b>token</b><br> 1611 * Path: <b>Patient.address.use | Person.address.use | Practitioner.address.use | RelatedPerson.address.use</b><br> 1612 * </p> 1613 */ 1614 @SearchParamDefinition(name="address-use", path="Patient.address.use | Person.address.use | Practitioner.address.use | RelatedPerson.address.use", description="Multiple Resources: \r\n\r\n* [Patient](patient.html): A use code specified in an address\r\n* [Person](person.html): A use code specified in an address\r\n* [Practitioner](practitioner.html): A use code specified in an address\r\n* [RelatedPerson](relatedperson.html): A use code specified in an address\r\n", type="token" ) 1615 public static final String SP_ADDRESS_USE = "address-use"; 1616 /** 1617 * <b>Fluent Client</b> search parameter constant for <b>address-use</b> 1618 * <p> 1619 * Description: <b>Multiple Resources: 1620 1621* [Patient](patient.html): A use code specified in an address 1622* [Person](person.html): A use code specified in an address 1623* [Practitioner](practitioner.html): A use code specified in an address 1624* [RelatedPerson](relatedperson.html): A use code specified in an address 1625</b><br> 1626 * Type: <b>token</b><br> 1627 * Path: <b>Patient.address.use | Person.address.use | Practitioner.address.use | RelatedPerson.address.use</b><br> 1628 * </p> 1629 */ 1630 public static final ca.uhn.fhir.rest.gclient.TokenClientParam ADDRESS_USE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_ADDRESS_USE); 1631 1632 /** 1633 * Search parameter: <b>address</b> 1634 * <p> 1635 * Description: <b>Multiple Resources: 1636 1637* [Patient](patient.html): 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 1638* [Person](person.html): 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 1639* [Practitioner](practitioner.html): 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 1640* [RelatedPerson](relatedperson.html): 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 1641</b><br> 1642 * Type: <b>string</b><br> 1643 * Path: <b>Patient.address | Person.address | Practitioner.address | RelatedPerson.address</b><br> 1644 * </p> 1645 */ 1646 @SearchParamDefinition(name="address", path="Patient.address | Person.address | Practitioner.address | RelatedPerson.address", description="Multiple Resources: \r\n\r\n* [Patient](patient.html): 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\r\n* [Person](person.html): 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\r\n* [Practitioner](practitioner.html): 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\r\n* [RelatedPerson](relatedperson.html): 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\r\n", type="string" ) 1647 public static final String SP_ADDRESS = "address"; 1648 /** 1649 * <b>Fluent Client</b> search parameter constant for <b>address</b> 1650 * <p> 1651 * Description: <b>Multiple Resources: 1652 1653* [Patient](patient.html): 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 1654* [Person](person.html): 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 1655* [Practitioner](practitioner.html): 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 1656* [RelatedPerson](relatedperson.html): 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 1657</b><br> 1658 * Type: <b>string</b><br> 1659 * Path: <b>Patient.address | Person.address | Practitioner.address | RelatedPerson.address</b><br> 1660 * </p> 1661 */ 1662 public static final ca.uhn.fhir.rest.gclient.StringClientParam ADDRESS = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_ADDRESS); 1663 1664 /** 1665 * Search parameter: <b>email</b> 1666 * <p> 1667 * Description: <b>Multiple Resources: 1668 1669* [Patient](patient.html): A value in an email contact 1670* [Person](person.html): A value in an email contact 1671* [Practitioner](practitioner.html): A value in an email contact 1672* [PractitionerRole](practitionerrole.html): A value in an email contact 1673* [RelatedPerson](relatedperson.html): A value in an email contact 1674</b><br> 1675 * Type: <b>token</b><br> 1676 * Path: <b>Patient.telecom.where(system='email') | Person.telecom.where(system='email') | Practitioner.telecom.where(system='email') | PractitionerRole.telecom.where(system='email') | RelatedPerson.telecom.where(system='email')</b><br> 1677 * </p> 1678 */ 1679 @SearchParamDefinition(name="email", path="Patient.telecom.where(system='email') | Person.telecom.where(system='email') | Practitioner.telecom.where(system='email') | PractitionerRole.telecom.where(system='email') | RelatedPerson.telecom.where(system='email')", description="Multiple Resources: \r\n\r\n* [Patient](patient.html): A value in an email contact\r\n* [Person](person.html): A value in an email contact\r\n* [Practitioner](practitioner.html): A value in an email contact\r\n* [PractitionerRole](practitionerrole.html): A value in an email contact\r\n* [RelatedPerson](relatedperson.html): A value in an email contact\r\n", type="token" ) 1680 public static final String SP_EMAIL = "email"; 1681 /** 1682 * <b>Fluent Client</b> search parameter constant for <b>email</b> 1683 * <p> 1684 * Description: <b>Multiple Resources: 1685 1686* [Patient](patient.html): A value in an email contact 1687* [Person](person.html): A value in an email contact 1688* [Practitioner](practitioner.html): A value in an email contact 1689* [PractitionerRole](practitionerrole.html): A value in an email contact 1690* [RelatedPerson](relatedperson.html): A value in an email contact 1691</b><br> 1692 * Type: <b>token</b><br> 1693 * Path: <b>Patient.telecom.where(system='email') | Person.telecom.where(system='email') | Practitioner.telecom.where(system='email') | PractitionerRole.telecom.where(system='email') | RelatedPerson.telecom.where(system='email')</b><br> 1694 * </p> 1695 */ 1696 public static final ca.uhn.fhir.rest.gclient.TokenClientParam EMAIL = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_EMAIL); 1697 1698 /** 1699 * Search parameter: <b>family</b> 1700 * <p> 1701 * Description: <b>Multiple Resources: 1702 1703* [Patient](patient.html): A portion of the family name of the patient 1704* [Practitioner](practitioner.html): A portion of the family name 1705</b><br> 1706 * Type: <b>string</b><br> 1707 * Path: <b>Patient.name.family | Practitioner.name.family</b><br> 1708 * </p> 1709 */ 1710 @SearchParamDefinition(name="family", path="Patient.name.family | Practitioner.name.family", description="Multiple Resources: \r\n\r\n* [Patient](patient.html): A portion of the family name of the patient\r\n* [Practitioner](practitioner.html): A portion of the family name\r\n", type="string" ) 1711 public static final String SP_FAMILY = "family"; 1712 /** 1713 * <b>Fluent Client</b> search parameter constant for <b>family</b> 1714 * <p> 1715 * Description: <b>Multiple Resources: 1716 1717* [Patient](patient.html): A portion of the family name of the patient 1718* [Practitioner](practitioner.html): A portion of the family name 1719</b><br> 1720 * Type: <b>string</b><br> 1721 * Path: <b>Patient.name.family | Practitioner.name.family</b><br> 1722 * </p> 1723 */ 1724 public static final ca.uhn.fhir.rest.gclient.StringClientParam FAMILY = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_FAMILY); 1725 1726 /** 1727 * Search parameter: <b>gender</b> 1728 * <p> 1729 * Description: <b>Multiple Resources: 1730 1731* [Patient](patient.html): Gender of the patient 1732* [Person](person.html): The gender of the person 1733* [Practitioner](practitioner.html): Gender of the practitioner 1734* [RelatedPerson](relatedperson.html): Gender of the related person 1735</b><br> 1736 * Type: <b>token</b><br> 1737 * Path: <b>Patient.gender | Person.gender | Practitioner.gender | RelatedPerson.gender</b><br> 1738 * </p> 1739 */ 1740 @SearchParamDefinition(name="gender", path="Patient.gender | Person.gender | Practitioner.gender | RelatedPerson.gender", description="Multiple Resources: \r\n\r\n* [Patient](patient.html): Gender of the patient\r\n* [Person](person.html): The gender of the person\r\n* [Practitioner](practitioner.html): Gender of the practitioner\r\n* [RelatedPerson](relatedperson.html): Gender of the related person\r\n", type="token" ) 1741 public static final String SP_GENDER = "gender"; 1742 /** 1743 * <b>Fluent Client</b> search parameter constant for <b>gender</b> 1744 * <p> 1745 * Description: <b>Multiple Resources: 1746 1747* [Patient](patient.html): Gender of the patient 1748* [Person](person.html): The gender of the person 1749* [Practitioner](practitioner.html): Gender of the practitioner 1750* [RelatedPerson](relatedperson.html): Gender of the related person 1751</b><br> 1752 * Type: <b>token</b><br> 1753 * Path: <b>Patient.gender | Person.gender | Practitioner.gender | RelatedPerson.gender</b><br> 1754 * </p> 1755 */ 1756 public static final ca.uhn.fhir.rest.gclient.TokenClientParam GENDER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_GENDER); 1757 1758 /** 1759 * Search parameter: <b>given</b> 1760 * <p> 1761 * Description: <b>Multiple Resources: 1762 1763* [Patient](patient.html): A portion of the given name of the patient 1764* [Practitioner](practitioner.html): A portion of the given name 1765</b><br> 1766 * Type: <b>string</b><br> 1767 * Path: <b>Patient.name.given | Practitioner.name.given</b><br> 1768 * </p> 1769 */ 1770 @SearchParamDefinition(name="given", path="Patient.name.given | Practitioner.name.given", description="Multiple Resources: \r\n\r\n* [Patient](patient.html): A portion of the given name of the patient\r\n* [Practitioner](practitioner.html): A portion of the given name\r\n", type="string" ) 1771 public static final String SP_GIVEN = "given"; 1772 /** 1773 * <b>Fluent Client</b> search parameter constant for <b>given</b> 1774 * <p> 1775 * Description: <b>Multiple Resources: 1776 1777* [Patient](patient.html): A portion of the given name of the patient 1778* [Practitioner](practitioner.html): A portion of the given name 1779</b><br> 1780 * Type: <b>string</b><br> 1781 * Path: <b>Patient.name.given | Practitioner.name.given</b><br> 1782 * </p> 1783 */ 1784 public static final ca.uhn.fhir.rest.gclient.StringClientParam GIVEN = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_GIVEN); 1785 1786 /** 1787 * Search parameter: <b>phone</b> 1788 * <p> 1789 * Description: <b>Multiple Resources: 1790 1791* [Patient](patient.html): A value in a phone contact 1792* [Person](person.html): A value in a phone contact 1793* [Practitioner](practitioner.html): A value in a phone contact 1794* [PractitionerRole](practitionerrole.html): A value in a phone contact 1795* [RelatedPerson](relatedperson.html): A value in a phone contact 1796</b><br> 1797 * Type: <b>token</b><br> 1798 * Path: <b>Patient.telecom.where(system='phone') | Person.telecom.where(system='phone') | Practitioner.telecom.where(system='phone') | PractitionerRole.telecom.where(system='phone') | RelatedPerson.telecom.where(system='phone')</b><br> 1799 * </p> 1800 */ 1801 @SearchParamDefinition(name="phone", path="Patient.telecom.where(system='phone') | Person.telecom.where(system='phone') | Practitioner.telecom.where(system='phone') | PractitionerRole.telecom.where(system='phone') | RelatedPerson.telecom.where(system='phone')", description="Multiple Resources: \r\n\r\n* [Patient](patient.html): A value in a phone contact\r\n* [Person](person.html): A value in a phone contact\r\n* [Practitioner](practitioner.html): A value in a phone contact\r\n* [PractitionerRole](practitionerrole.html): A value in a phone contact\r\n* [RelatedPerson](relatedperson.html): A value in a phone contact\r\n", type="token" ) 1802 public static final String SP_PHONE = "phone"; 1803 /** 1804 * <b>Fluent Client</b> search parameter constant for <b>phone</b> 1805 * <p> 1806 * Description: <b>Multiple Resources: 1807 1808* [Patient](patient.html): A value in a phone contact 1809* [Person](person.html): A value in a phone contact 1810* [Practitioner](practitioner.html): A value in a phone contact 1811* [PractitionerRole](practitionerrole.html): A value in a phone contact 1812* [RelatedPerson](relatedperson.html): A value in a phone contact 1813</b><br> 1814 * Type: <b>token</b><br> 1815 * Path: <b>Patient.telecom.where(system='phone') | Person.telecom.where(system='phone') | Practitioner.telecom.where(system='phone') | PractitionerRole.telecom.where(system='phone') | RelatedPerson.telecom.where(system='phone')</b><br> 1816 * </p> 1817 */ 1818 public static final ca.uhn.fhir.rest.gclient.TokenClientParam PHONE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_PHONE); 1819 1820 /** 1821 * Search parameter: <b>phonetic</b> 1822 * <p> 1823 * Description: <b>Multiple Resources: 1824 1825* [Patient](patient.html): A portion of either family or given name using some kind of phonetic matching algorithm 1826* [Person](person.html): A portion of name using some kind of phonetic matching algorithm 1827* [Practitioner](practitioner.html): A portion of either family or given name using some kind of phonetic matching algorithm 1828* [RelatedPerson](relatedperson.html): A portion of name using some kind of phonetic matching algorithm 1829</b><br> 1830 * Type: <b>string</b><br> 1831 * Path: <b>Patient.name | Person.name | Practitioner.name | RelatedPerson.name</b><br> 1832 * </p> 1833 */ 1834 @SearchParamDefinition(name="phonetic", path="Patient.name | Person.name | Practitioner.name | RelatedPerson.name", description="Multiple Resources: \r\n\r\n* [Patient](patient.html): A portion of either family or given name using some kind of phonetic matching algorithm\r\n* [Person](person.html): A portion of name using some kind of phonetic matching algorithm\r\n* [Practitioner](practitioner.html): A portion of either family or given name using some kind of phonetic matching algorithm\r\n* [RelatedPerson](relatedperson.html): A portion of name using some kind of phonetic matching algorithm\r\n", type="string" ) 1835 public static final String SP_PHONETIC = "phonetic"; 1836 /** 1837 * <b>Fluent Client</b> search parameter constant for <b>phonetic</b> 1838 * <p> 1839 * Description: <b>Multiple Resources: 1840 1841* [Patient](patient.html): A portion of either family or given name using some kind of phonetic matching algorithm 1842* [Person](person.html): A portion of name using some kind of phonetic matching algorithm 1843* [Practitioner](practitioner.html): A portion of either family or given name using some kind of phonetic matching algorithm 1844* [RelatedPerson](relatedperson.html): A portion of name using some kind of phonetic matching algorithm 1845</b><br> 1846 * Type: <b>string</b><br> 1847 * Path: <b>Patient.name | Person.name | Practitioner.name | RelatedPerson.name</b><br> 1848 * </p> 1849 */ 1850 public static final ca.uhn.fhir.rest.gclient.StringClientParam PHONETIC = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_PHONETIC); 1851 1852 /** 1853 * Search parameter: <b>telecom</b> 1854 * <p> 1855 * Description: <b>Multiple Resources: 1856 1857* [Patient](patient.html): The value in any kind of telecom details of the patient 1858* [Person](person.html): The value in any kind of contact 1859* [Practitioner](practitioner.html): The value in any kind of contact 1860* [PractitionerRole](practitionerrole.html): The value in any kind of contact 1861* [RelatedPerson](relatedperson.html): The value in any kind of contact 1862</b><br> 1863 * Type: <b>token</b><br> 1864 * Path: <b>Patient.telecom | Person.telecom | Practitioner.telecom | PractitionerRole.telecom | RelatedPerson.telecom</b><br> 1865 * </p> 1866 */ 1867 @SearchParamDefinition(name="telecom", path="Patient.telecom | Person.telecom | Practitioner.telecom | PractitionerRole.telecom | RelatedPerson.telecom", description="Multiple Resources: \r\n\r\n* [Patient](patient.html): The value in any kind of telecom details of the patient\r\n* [Person](person.html): The value in any kind of contact\r\n* [Practitioner](practitioner.html): The value in any kind of contact\r\n* [PractitionerRole](practitionerrole.html): The value in any kind of contact\r\n* [RelatedPerson](relatedperson.html): The value in any kind of contact\r\n", type="token" ) 1868 public static final String SP_TELECOM = "telecom"; 1869 /** 1870 * <b>Fluent Client</b> search parameter constant for <b>telecom</b> 1871 * <p> 1872 * Description: <b>Multiple Resources: 1873 1874* [Patient](patient.html): The value in any kind of telecom details of the patient 1875* [Person](person.html): The value in any kind of contact 1876* [Practitioner](practitioner.html): The value in any kind of contact 1877* [PractitionerRole](practitionerrole.html): The value in any kind of contact 1878* [RelatedPerson](relatedperson.html): The value in any kind of contact 1879</b><br> 1880 * Type: <b>token</b><br> 1881 * Path: <b>Patient.telecom | Person.telecom | Practitioner.telecom | PractitionerRole.telecom | RelatedPerson.telecom</b><br> 1882 * </p> 1883 */ 1884 public static final ca.uhn.fhir.rest.gclient.TokenClientParam TELECOM = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TELECOM); 1885 1886 1887} 1888