001package org.hl7.fhir.r5.model; 002 003 004/* 005 Copyright (c) 2011+, HL7, Inc. 006 All rights reserved. 007 008 Redistribution and use in source and binary forms, with or without modification, \ 009 are permitted provided that the following conditions are met: 010 011 * Redistributions of source code must retain the above copyright notice, this \ 012 list of conditions and the following disclaimer. 013 * Redistributions in binary form must reproduce the above copyright notice, \ 014 this list of conditions and the following disclaimer in the documentation \ 015 and/or other materials provided with the distribution. 016 * Neither the name of HL7 nor the names of its contributors may be used to 017 endorse or promote products derived from this software without specific 018 prior written permission. 019 020 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \ 021 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \ 022 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \ 023 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \ 024 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT \ 025 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR \ 026 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, \ 027 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) \ 028 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE \ 029 POSSIBILITY OF SUCH DAMAGE. 030 */ 031 032// Generated on Tue, Dec 13, 2022 17:53+1100 for FHIR vcurrent 033 034import java.util.ArrayList; 035import java.util.Date; 036import java.util.List; 037import org.hl7.fhir.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 or related services. 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. 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." ) 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.) 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.", 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.", 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=true, 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 * Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes. 422 */ 423 @Child(name = "gender", type = {CodeType.class}, order=4, min=0, max=1, modifier=false, summary=true) 424 @Description(shortDefinition="male | female | other | unknown", formalDefinition="Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes." ) 425 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/administrative-gender") 426 protected Enumeration<AdministrativeGender> gender; 427 428 /** 429 * The date of birth for the practitioner. 430 */ 431 @Child(name = "birthDate", type = {DateType.class}, order=5, min=0, max=1, modifier=false, summary=true) 432 @Description(shortDefinition="The date on which the practitioner was born", formalDefinition="The date of birth for the practitioner." ) 433 protected DateType birthDate; 434 435 /** 436 * Indicates if the practitioner is deceased or not. 437 */ 438 @Child(name = "deceased", type = {BooleanType.class, DateTimeType.class}, order=6, min=0, max=1, modifier=false, summary=true) 439 @Description(shortDefinition="Indicates if the practitioner is deceased or not", formalDefinition="Indicates if the practitioner is deceased or not." ) 440 protected DataType deceased; 441 442 /** 443 * Address(es) of the practitioner that are not role specific (typically home address). 444Work addresses are not typically entered in this property as they are usually role dependent. 445 */ 446 @Child(name = "address", type = {Address.class}, order=7, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 447 @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." ) 448 protected List<Address> address; 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 qualifications, certifications, accreditations, training, licenses (and other types of educations/skills/capabilities) that authorize or otherwise pertain to the provision of care by the practitioner. 459 460For example, a medical license issued by a medical board of licensure authorizing the practitioner to practice medicine within a certain locality. 461 */ 462 @Child(name = "qualification", type = {}, order=9, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 463 @Description(shortDefinition="Qualifications, certifications, accreditations, licenses, training, etc pertaining to the provision of care", formalDefinition="The official qualifications, certifications, accreditations, training, licenses (and other types of educations/skills/capabilities) that authorize or otherwise pertain to the provision of care by the practitioner.\r\rFor example, a medical license issued by a medical board of licensure authorizing the practitioner to practice medicine within a certain locality." ) 464 protected List<PractitionerQualificationComponent> qualification; 465 466 /** 467 * A language the practitioner can use in patient communication. 468 */ 469 @Child(name = "communication", type = {CodeableConcept.class}, order=10, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 470 @Description(shortDefinition="A language the practitioner can use in patient communication", formalDefinition="A language the practitioner can use in patient communication." ) 471 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/languages") 472 protected List<CodeableConcept> communication; 473 474 private static final long serialVersionUID = 20718373L; 475 476 /** 477 * Constructor 478 */ 479 public Practitioner() { 480 super(); 481 } 482 483 /** 484 * @return {@link #identifier} (An identifier that applies to this person in this role.) 485 */ 486 public List<Identifier> getIdentifier() { 487 if (this.identifier == null) 488 this.identifier = new ArrayList<Identifier>(); 489 return this.identifier; 490 } 491 492 /** 493 * @return Returns a reference to <code>this</code> for easy method chaining 494 */ 495 public Practitioner setIdentifier(List<Identifier> theIdentifier) { 496 this.identifier = theIdentifier; 497 return this; 498 } 499 500 public boolean hasIdentifier() { 501 if (this.identifier == null) 502 return false; 503 for (Identifier item : this.identifier) 504 if (!item.isEmpty()) 505 return true; 506 return false; 507 } 508 509 public Identifier addIdentifier() { //3 510 Identifier t = new Identifier(); 511 if (this.identifier == null) 512 this.identifier = new ArrayList<Identifier>(); 513 this.identifier.add(t); 514 return t; 515 } 516 517 public Practitioner addIdentifier(Identifier t) { //3 518 if (t == null) 519 return this; 520 if (this.identifier == null) 521 this.identifier = new ArrayList<Identifier>(); 522 this.identifier.add(t); 523 return this; 524 } 525 526 /** 527 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3} 528 */ 529 public Identifier getIdentifierFirstRep() { 530 if (getIdentifier().isEmpty()) { 531 addIdentifier(); 532 } 533 return getIdentifier().get(0); 534 } 535 536 /** 537 * @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 538 */ 539 public BooleanType getActiveElement() { 540 if (this.active == null) 541 if (Configuration.errorOnAutoCreate()) 542 throw new Error("Attempt to auto-create Practitioner.active"); 543 else if (Configuration.doAutoCreate()) 544 this.active = new BooleanType(); // bb 545 return this.active; 546 } 547 548 public boolean hasActiveElement() { 549 return this.active != null && !this.active.isEmpty(); 550 } 551 552 public boolean hasActive() { 553 return this.active != null && !this.active.isEmpty(); 554 } 555 556 /** 557 * @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 558 */ 559 public Practitioner setActiveElement(BooleanType value) { 560 this.active = value; 561 return this; 562 } 563 564 /** 565 * @return Whether this practitioner's record is in active use. 566 */ 567 public boolean getActive() { 568 return this.active == null || this.active.isEmpty() ? false : this.active.getValue(); 569 } 570 571 /** 572 * @param value Whether this practitioner's record is in active use. 573 */ 574 public Practitioner setActive(boolean value) { 575 if (this.active == null) 576 this.active = new BooleanType(); 577 this.active.setValue(value); 578 return this; 579 } 580 581 /** 582 * @return {@link #name} (The name(s) associated with the practitioner.) 583 */ 584 public List<HumanName> getName() { 585 if (this.name == null) 586 this.name = new ArrayList<HumanName>(); 587 return this.name; 588 } 589 590 /** 591 * @return Returns a reference to <code>this</code> for easy method chaining 592 */ 593 public Practitioner setName(List<HumanName> theName) { 594 this.name = theName; 595 return this; 596 } 597 598 public boolean hasName() { 599 if (this.name == null) 600 return false; 601 for (HumanName item : this.name) 602 if (!item.isEmpty()) 603 return true; 604 return false; 605 } 606 607 public HumanName addName() { //3 608 HumanName t = new HumanName(); 609 if (this.name == null) 610 this.name = new ArrayList<HumanName>(); 611 this.name.add(t); 612 return t; 613 } 614 615 public Practitioner addName(HumanName t) { //3 616 if (t == null) 617 return this; 618 if (this.name == null) 619 this.name = new ArrayList<HumanName>(); 620 this.name.add(t); 621 return this; 622 } 623 624 /** 625 * @return The first repetition of repeating field {@link #name}, creating it if it does not already exist {3} 626 */ 627 public HumanName getNameFirstRep() { 628 if (getName().isEmpty()) { 629 addName(); 630 } 631 return getName().get(0); 632 } 633 634 /** 635 * @return {@link #telecom} (A contact detail for the practitioner, e.g. a telephone number or an email address.) 636 */ 637 public List<ContactPoint> getTelecom() { 638 if (this.telecom == null) 639 this.telecom = new ArrayList<ContactPoint>(); 640 return this.telecom; 641 } 642 643 /** 644 * @return Returns a reference to <code>this</code> for easy method chaining 645 */ 646 public Practitioner setTelecom(List<ContactPoint> theTelecom) { 647 this.telecom = theTelecom; 648 return this; 649 } 650 651 public boolean hasTelecom() { 652 if (this.telecom == null) 653 return false; 654 for (ContactPoint item : this.telecom) 655 if (!item.isEmpty()) 656 return true; 657 return false; 658 } 659 660 public ContactPoint addTelecom() { //3 661 ContactPoint t = new ContactPoint(); 662 if (this.telecom == null) 663 this.telecom = new ArrayList<ContactPoint>(); 664 this.telecom.add(t); 665 return t; 666 } 667 668 public Practitioner addTelecom(ContactPoint t) { //3 669 if (t == null) 670 return this; 671 if (this.telecom == null) 672 this.telecom = new ArrayList<ContactPoint>(); 673 this.telecom.add(t); 674 return this; 675 } 676 677 /** 678 * @return The first repetition of repeating field {@link #telecom}, creating it if it does not already exist {3} 679 */ 680 public ContactPoint getTelecomFirstRep() { 681 if (getTelecom().isEmpty()) { 682 addTelecom(); 683 } 684 return getTelecom().get(0); 685 } 686 687 /** 688 * @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 689 */ 690 public Enumeration<AdministrativeGender> getGenderElement() { 691 if (this.gender == null) 692 if (Configuration.errorOnAutoCreate()) 693 throw new Error("Attempt to auto-create Practitioner.gender"); 694 else if (Configuration.doAutoCreate()) 695 this.gender = new Enumeration<AdministrativeGender>(new AdministrativeGenderEnumFactory()); // bb 696 return this.gender; 697 } 698 699 public boolean hasGenderElement() { 700 return this.gender != null && !this.gender.isEmpty(); 701 } 702 703 public boolean hasGender() { 704 return this.gender != null && !this.gender.isEmpty(); 705 } 706 707 /** 708 * @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 709 */ 710 public Practitioner setGenderElement(Enumeration<AdministrativeGender> value) { 711 this.gender = value; 712 return this; 713 } 714 715 /** 716 * @return Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes. 717 */ 718 public AdministrativeGender getGender() { 719 return this.gender == null ? null : this.gender.getValue(); 720 } 721 722 /** 723 * @param value Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes. 724 */ 725 public Practitioner setGender(AdministrativeGender value) { 726 if (value == null) 727 this.gender = null; 728 else { 729 if (this.gender == null) 730 this.gender = new Enumeration<AdministrativeGender>(new AdministrativeGenderEnumFactory()); 731 this.gender.setValue(value); 732 } 733 return this; 734 } 735 736 /** 737 * @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 738 */ 739 public DateType getBirthDateElement() { 740 if (this.birthDate == null) 741 if (Configuration.errorOnAutoCreate()) 742 throw new Error("Attempt to auto-create Practitioner.birthDate"); 743 else if (Configuration.doAutoCreate()) 744 this.birthDate = new DateType(); // bb 745 return this.birthDate; 746 } 747 748 public boolean hasBirthDateElement() { 749 return this.birthDate != null && !this.birthDate.isEmpty(); 750 } 751 752 public boolean hasBirthDate() { 753 return this.birthDate != null && !this.birthDate.isEmpty(); 754 } 755 756 /** 757 * @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 758 */ 759 public Practitioner setBirthDateElement(DateType value) { 760 this.birthDate = value; 761 return this; 762 } 763 764 /** 765 * @return The date of birth for the practitioner. 766 */ 767 public Date getBirthDate() { 768 return this.birthDate == null ? null : this.birthDate.getValue(); 769 } 770 771 /** 772 * @param value The date of birth for the practitioner. 773 */ 774 public Practitioner setBirthDate(Date value) { 775 if (value == null) 776 this.birthDate = null; 777 else { 778 if (this.birthDate == null) 779 this.birthDate = new DateType(); 780 this.birthDate.setValue(value); 781 } 782 return this; 783 } 784 785 /** 786 * @return {@link #deceased} (Indicates if the practitioner is deceased or not.) 787 */ 788 public DataType getDeceased() { 789 return this.deceased; 790 } 791 792 /** 793 * @return {@link #deceased} (Indicates if the practitioner is deceased or not.) 794 */ 795 public BooleanType getDeceasedBooleanType() throws FHIRException { 796 if (this.deceased == null) 797 this.deceased = new BooleanType(); 798 if (!(this.deceased instanceof BooleanType)) 799 throw new FHIRException("Type mismatch: the type BooleanType was expected, but "+this.deceased.getClass().getName()+" was encountered"); 800 return (BooleanType) this.deceased; 801 } 802 803 public boolean hasDeceasedBooleanType() { 804 return this != null && this.deceased instanceof BooleanType; 805 } 806 807 /** 808 * @return {@link #deceased} (Indicates if the practitioner is deceased or not.) 809 */ 810 public DateTimeType getDeceasedDateTimeType() throws FHIRException { 811 if (this.deceased == null) 812 this.deceased = new DateTimeType(); 813 if (!(this.deceased instanceof DateTimeType)) 814 throw new FHIRException("Type mismatch: the type DateTimeType was expected, but "+this.deceased.getClass().getName()+" was encountered"); 815 return (DateTimeType) this.deceased; 816 } 817 818 public boolean hasDeceasedDateTimeType() { 819 return this != null && this.deceased instanceof DateTimeType; 820 } 821 822 public boolean hasDeceased() { 823 return this.deceased != null && !this.deceased.isEmpty(); 824 } 825 826 /** 827 * @param value {@link #deceased} (Indicates if the practitioner is deceased or not.) 828 */ 829 public Practitioner setDeceased(DataType value) { 830 if (value != null && !(value instanceof BooleanType || value instanceof DateTimeType)) 831 throw new Error("Not the right type for Practitioner.deceased[x]: "+value.fhirType()); 832 this.deceased = value; 833 return this; 834 } 835 836 /** 837 * @return {@link #address} (Address(es) of the practitioner that are not role specific (typically home address). 838Work addresses are not typically entered in this property as they are usually role dependent.) 839 */ 840 public List<Address> getAddress() { 841 if (this.address == null) 842 this.address = new ArrayList<Address>(); 843 return this.address; 844 } 845 846 /** 847 * @return Returns a reference to <code>this</code> for easy method chaining 848 */ 849 public Practitioner setAddress(List<Address> theAddress) { 850 this.address = theAddress; 851 return this; 852 } 853 854 public boolean hasAddress() { 855 if (this.address == null) 856 return false; 857 for (Address item : this.address) 858 if (!item.isEmpty()) 859 return true; 860 return false; 861 } 862 863 public Address addAddress() { //3 864 Address t = new Address(); 865 if (this.address == null) 866 this.address = new ArrayList<Address>(); 867 this.address.add(t); 868 return t; 869 } 870 871 public Practitioner addAddress(Address t) { //3 872 if (t == null) 873 return this; 874 if (this.address == null) 875 this.address = new ArrayList<Address>(); 876 this.address.add(t); 877 return this; 878 } 879 880 /** 881 * @return The first repetition of repeating field {@link #address}, creating it if it does not already exist {3} 882 */ 883 public Address getAddressFirstRep() { 884 if (getAddress().isEmpty()) { 885 addAddress(); 886 } 887 return getAddress().get(0); 888 } 889 890 /** 891 * @return {@link #photo} (Image of the person.) 892 */ 893 public List<Attachment> getPhoto() { 894 if (this.photo == null) 895 this.photo = new ArrayList<Attachment>(); 896 return this.photo; 897 } 898 899 /** 900 * @return Returns a reference to <code>this</code> for easy method chaining 901 */ 902 public Practitioner setPhoto(List<Attachment> thePhoto) { 903 this.photo = thePhoto; 904 return this; 905 } 906 907 public boolean hasPhoto() { 908 if (this.photo == null) 909 return false; 910 for (Attachment item : this.photo) 911 if (!item.isEmpty()) 912 return true; 913 return false; 914 } 915 916 public Attachment addPhoto() { //3 917 Attachment t = new Attachment(); 918 if (this.photo == null) 919 this.photo = new ArrayList<Attachment>(); 920 this.photo.add(t); 921 return t; 922 } 923 924 public Practitioner addPhoto(Attachment t) { //3 925 if (t == null) 926 return this; 927 if (this.photo == null) 928 this.photo = new ArrayList<Attachment>(); 929 this.photo.add(t); 930 return this; 931 } 932 933 /** 934 * @return The first repetition of repeating field {@link #photo}, creating it if it does not already exist {3} 935 */ 936 public Attachment getPhotoFirstRep() { 937 if (getPhoto().isEmpty()) { 938 addPhoto(); 939 } 940 return getPhoto().get(0); 941 } 942 943 /** 944 * @return {@link #qualification} (The official qualifications, certifications, accreditations, training, licenses (and other types of educations/skills/capabilities) that authorize or otherwise pertain to the provision of care by the practitioner. 945 946For example, a medical license issued by a medical board of licensure authorizing the practitioner to practice medicine within a certain locality.) 947 */ 948 public List<PractitionerQualificationComponent> getQualification() { 949 if (this.qualification == null) 950 this.qualification = new ArrayList<PractitionerQualificationComponent>(); 951 return this.qualification; 952 } 953 954 /** 955 * @return Returns a reference to <code>this</code> for easy method chaining 956 */ 957 public Practitioner setQualification(List<PractitionerQualificationComponent> theQualification) { 958 this.qualification = theQualification; 959 return this; 960 } 961 962 public boolean hasQualification() { 963 if (this.qualification == null) 964 return false; 965 for (PractitionerQualificationComponent item : this.qualification) 966 if (!item.isEmpty()) 967 return true; 968 return false; 969 } 970 971 public PractitionerQualificationComponent addQualification() { //3 972 PractitionerQualificationComponent t = new PractitionerQualificationComponent(); 973 if (this.qualification == null) 974 this.qualification = new ArrayList<PractitionerQualificationComponent>(); 975 this.qualification.add(t); 976 return t; 977 } 978 979 public Practitioner addQualification(PractitionerQualificationComponent t) { //3 980 if (t == null) 981 return this; 982 if (this.qualification == null) 983 this.qualification = new ArrayList<PractitionerQualificationComponent>(); 984 this.qualification.add(t); 985 return this; 986 } 987 988 /** 989 * @return The first repetition of repeating field {@link #qualification}, creating it if it does not already exist {3} 990 */ 991 public PractitionerQualificationComponent getQualificationFirstRep() { 992 if (getQualification().isEmpty()) { 993 addQualification(); 994 } 995 return getQualification().get(0); 996 } 997 998 /** 999 * @return {@link #communication} (A language the practitioner can use in patient communication.) 1000 */ 1001 public List<CodeableConcept> getCommunication() { 1002 if (this.communication == null) 1003 this.communication = new ArrayList<CodeableConcept>(); 1004 return this.communication; 1005 } 1006 1007 /** 1008 * @return Returns a reference to <code>this</code> for easy method chaining 1009 */ 1010 public Practitioner setCommunication(List<CodeableConcept> theCommunication) { 1011 this.communication = theCommunication; 1012 return this; 1013 } 1014 1015 public boolean hasCommunication() { 1016 if (this.communication == null) 1017 return false; 1018 for (CodeableConcept item : this.communication) 1019 if (!item.isEmpty()) 1020 return true; 1021 return false; 1022 } 1023 1024 public CodeableConcept addCommunication() { //3 1025 CodeableConcept t = new CodeableConcept(); 1026 if (this.communication == null) 1027 this.communication = new ArrayList<CodeableConcept>(); 1028 this.communication.add(t); 1029 return t; 1030 } 1031 1032 public Practitioner addCommunication(CodeableConcept t) { //3 1033 if (t == null) 1034 return this; 1035 if (this.communication == null) 1036 this.communication = new ArrayList<CodeableConcept>(); 1037 this.communication.add(t); 1038 return this; 1039 } 1040 1041 /** 1042 * @return The first repetition of repeating field {@link #communication}, creating it if it does not already exist {3} 1043 */ 1044 public CodeableConcept getCommunicationFirstRep() { 1045 if (getCommunication().isEmpty()) { 1046 addCommunication(); 1047 } 1048 return getCommunication().get(0); 1049 } 1050 1051 protected void listChildren(List<Property> children) { 1052 super.listChildren(children); 1053 children.add(new Property("identifier", "Identifier", "An identifier that applies to this person in this role.", 0, java.lang.Integer.MAX_VALUE, identifier)); 1054 children.add(new Property("active", "boolean", "Whether this practitioner's record is in active use.", 0, 1, active)); 1055 children.add(new Property("name", "HumanName", "The name(s) associated with the practitioner.", 0, java.lang.Integer.MAX_VALUE, name)); 1056 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)); 1057 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)); 1058 children.add(new Property("birthDate", "date", "The date of birth for the practitioner.", 0, 1, birthDate)); 1059 children.add(new Property("deceased[x]", "boolean|dateTime", "Indicates if the practitioner is deceased or not.", 0, 1, deceased)); 1060 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)); 1061 children.add(new Property("photo", "Attachment", "Image of the person.", 0, java.lang.Integer.MAX_VALUE, photo)); 1062 children.add(new Property("qualification", "", "The official qualifications, certifications, accreditations, training, licenses (and other types of educations/skills/capabilities) that authorize or otherwise pertain to the provision of care by the practitioner.\r\rFor example, a medical license issued by a medical board of licensure authorizing the practitioner to practice medicine within a certain locality.", 0, java.lang.Integer.MAX_VALUE, qualification)); 1063 children.add(new Property("communication", "CodeableConcept", "A language the practitioner can use in patient communication.", 0, java.lang.Integer.MAX_VALUE, communication)); 1064 } 1065 1066 @Override 1067 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1068 switch (_hash) { 1069 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); 1070 case -1422950650: /*active*/ return new Property("active", "boolean", "Whether this practitioner's record is in active use.", 0, 1, active); 1071 case 3373707: /*name*/ return new Property("name", "HumanName", "The name(s) associated with the practitioner.", 0, java.lang.Integer.MAX_VALUE, name); 1072 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); 1073 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); 1074 case -1210031859: /*birthDate*/ return new Property("birthDate", "date", "The date of birth for the practitioner.", 0, 1, birthDate); 1075 case -1311442804: /*deceased[x]*/ return new Property("deceased[x]", "boolean|dateTime", "Indicates if the practitioner is deceased or not.", 0, 1, deceased); 1076 case 561497972: /*deceased*/ return new Property("deceased[x]", "boolean|dateTime", "Indicates if the practitioner is deceased or not.", 0, 1, deceased); 1077 case 497463828: /*deceasedBoolean*/ return new Property("deceased[x]", "boolean", "Indicates if the practitioner is deceased or not.", 0, 1, deceased); 1078 case -1971804369: /*deceasedDateTime*/ return new Property("deceased[x]", "dateTime", "Indicates if the practitioner is deceased or not.", 0, 1, deceased); 1079 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); 1080 case 106642994: /*photo*/ return new Property("photo", "Attachment", "Image of the person.", 0, java.lang.Integer.MAX_VALUE, photo); 1081 case -631333393: /*qualification*/ return new Property("qualification", "", "The official qualifications, certifications, accreditations, training, licenses (and other types of educations/skills/capabilities) that authorize or otherwise pertain to the provision of care by the practitioner.\r\rFor example, a medical license issued by a medical board of licensure authorizing the practitioner to practice medicine within a certain locality.", 0, java.lang.Integer.MAX_VALUE, qualification); 1082 case -1035284522: /*communication*/ return new Property("communication", "CodeableConcept", "A language the practitioner can use in patient communication.", 0, java.lang.Integer.MAX_VALUE, communication); 1083 default: return super.getNamedProperty(_hash, _name, _checkValid); 1084 } 1085 1086 } 1087 1088 @Override 1089 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1090 switch (hash) { 1091 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 1092 case -1422950650: /*active*/ return this.active == null ? new Base[0] : new Base[] {this.active}; // BooleanType 1093 case 3373707: /*name*/ return this.name == null ? new Base[0] : this.name.toArray(new Base[this.name.size()]); // HumanName 1094 case -1429363305: /*telecom*/ return this.telecom == null ? new Base[0] : this.telecom.toArray(new Base[this.telecom.size()]); // ContactPoint 1095 case -1249512767: /*gender*/ return this.gender == null ? new Base[0] : new Base[] {this.gender}; // Enumeration<AdministrativeGender> 1096 case -1210031859: /*birthDate*/ return this.birthDate == null ? new Base[0] : new Base[] {this.birthDate}; // DateType 1097 case 561497972: /*deceased*/ return this.deceased == null ? new Base[0] : new Base[] {this.deceased}; // DataType 1098 case -1147692044: /*address*/ return this.address == null ? new Base[0] : this.address.toArray(new Base[this.address.size()]); // Address 1099 case 106642994: /*photo*/ return this.photo == null ? new Base[0] : this.photo.toArray(new Base[this.photo.size()]); // Attachment 1100 case -631333393: /*qualification*/ return this.qualification == null ? new Base[0] : this.qualification.toArray(new Base[this.qualification.size()]); // PractitionerQualificationComponent 1101 case -1035284522: /*communication*/ return this.communication == null ? new Base[0] : this.communication.toArray(new Base[this.communication.size()]); // CodeableConcept 1102 default: return super.getProperty(hash, name, checkValid); 1103 } 1104 1105 } 1106 1107 @Override 1108 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1109 switch (hash) { 1110 case -1618432855: // identifier 1111 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier 1112 return value; 1113 case -1422950650: // active 1114 this.active = TypeConvertor.castToBoolean(value); // BooleanType 1115 return value; 1116 case 3373707: // name 1117 this.getName().add(TypeConvertor.castToHumanName(value)); // HumanName 1118 return value; 1119 case -1429363305: // telecom 1120 this.getTelecom().add(TypeConvertor.castToContactPoint(value)); // ContactPoint 1121 return value; 1122 case -1249512767: // gender 1123 value = new AdministrativeGenderEnumFactory().fromType(TypeConvertor.castToCode(value)); 1124 this.gender = (Enumeration) value; // Enumeration<AdministrativeGender> 1125 return value; 1126 case -1210031859: // birthDate 1127 this.birthDate = TypeConvertor.castToDate(value); // DateType 1128 return value; 1129 case 561497972: // deceased 1130 this.deceased = TypeConvertor.castToType(value); // DataType 1131 return value; 1132 case -1147692044: // address 1133 this.getAddress().add(TypeConvertor.castToAddress(value)); // Address 1134 return value; 1135 case 106642994: // photo 1136 this.getPhoto().add(TypeConvertor.castToAttachment(value)); // Attachment 1137 return value; 1138 case -631333393: // qualification 1139 this.getQualification().add((PractitionerQualificationComponent) value); // PractitionerQualificationComponent 1140 return value; 1141 case -1035284522: // communication 1142 this.getCommunication().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 1143 return value; 1144 default: return super.setProperty(hash, name, value); 1145 } 1146 1147 } 1148 1149 @Override 1150 public Base setProperty(String name, Base value) throws FHIRException { 1151 if (name.equals("identifier")) { 1152 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); 1153 } else if (name.equals("active")) { 1154 this.active = TypeConvertor.castToBoolean(value); // BooleanType 1155 } else if (name.equals("name")) { 1156 this.getName().add(TypeConvertor.castToHumanName(value)); 1157 } else if (name.equals("telecom")) { 1158 this.getTelecom().add(TypeConvertor.castToContactPoint(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("deceased[x]")) { 1165 this.deceased = TypeConvertor.castToType(value); // DataType 1166 } else if (name.equals("address")) { 1167 this.getAddress().add(TypeConvertor.castToAddress(value)); 1168 } else if (name.equals("photo")) { 1169 this.getPhoto().add(TypeConvertor.castToAttachment(value)); 1170 } else if (name.equals("qualification")) { 1171 this.getQualification().add((PractitionerQualificationComponent) value); 1172 } else if (name.equals("communication")) { 1173 this.getCommunication().add(TypeConvertor.castToCodeableConcept(value)); 1174 } else 1175 return super.setProperty(name, value); 1176 return value; 1177 } 1178 1179 @Override 1180 public Base makeProperty(int hash, String name) throws FHIRException { 1181 switch (hash) { 1182 case -1618432855: return addIdentifier(); 1183 case -1422950650: return getActiveElement(); 1184 case 3373707: return addName(); 1185 case -1429363305: return addTelecom(); 1186 case -1249512767: return getGenderElement(); 1187 case -1210031859: return getBirthDateElement(); 1188 case -1311442804: return getDeceased(); 1189 case 561497972: return getDeceased(); 1190 case -1147692044: return addAddress(); 1191 case 106642994: return addPhoto(); 1192 case -631333393: return addQualification(); 1193 case -1035284522: return addCommunication(); 1194 default: return super.makeProperty(hash, name); 1195 } 1196 1197 } 1198 1199 @Override 1200 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1201 switch (hash) { 1202 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 1203 case -1422950650: /*active*/ return new String[] {"boolean"}; 1204 case 3373707: /*name*/ return new String[] {"HumanName"}; 1205 case -1429363305: /*telecom*/ return new String[] {"ContactPoint"}; 1206 case -1249512767: /*gender*/ return new String[] {"code"}; 1207 case -1210031859: /*birthDate*/ return new String[] {"date"}; 1208 case 561497972: /*deceased*/ return new String[] {"boolean", "dateTime"}; 1209 case -1147692044: /*address*/ return new String[] {"Address"}; 1210 case 106642994: /*photo*/ return new String[] {"Attachment"}; 1211 case -631333393: /*qualification*/ return new String[] {}; 1212 case -1035284522: /*communication*/ return new String[] {"CodeableConcept"}; 1213 default: return super.getTypesForProperty(hash, name); 1214 } 1215 1216 } 1217 1218 @Override 1219 public Base addChild(String name) throws FHIRException { 1220 if (name.equals("identifier")) { 1221 return addIdentifier(); 1222 } 1223 else if (name.equals("active")) { 1224 throw new FHIRException("Cannot call addChild on a primitive type Practitioner.active"); 1225 } 1226 else if (name.equals("name")) { 1227 return addName(); 1228 } 1229 else if (name.equals("telecom")) { 1230 return addTelecom(); 1231 } 1232 else if (name.equals("gender")) { 1233 throw new FHIRException("Cannot call addChild on a primitive type Practitioner.gender"); 1234 } 1235 else if (name.equals("birthDate")) { 1236 throw new FHIRException("Cannot call addChild on a primitive type Practitioner.birthDate"); 1237 } 1238 else if (name.equals("deceasedBoolean")) { 1239 this.deceased = new BooleanType(); 1240 return this.deceased; 1241 } 1242 else if (name.equals("deceasedDateTime")) { 1243 this.deceased = new DateTimeType(); 1244 return this.deceased; 1245 } 1246 else if (name.equals("address")) { 1247 return addAddress(); 1248 } 1249 else if (name.equals("photo")) { 1250 return addPhoto(); 1251 } 1252 else if (name.equals("qualification")) { 1253 return addQualification(); 1254 } 1255 else if (name.equals("communication")) { 1256 return addCommunication(); 1257 } 1258 else 1259 return super.addChild(name); 1260 } 1261 1262 public String fhirType() { 1263 return "Practitioner"; 1264 1265 } 1266 1267 public Practitioner copy() { 1268 Practitioner dst = new Practitioner(); 1269 copyValues(dst); 1270 return dst; 1271 } 1272 1273 public void copyValues(Practitioner dst) { 1274 super.copyValues(dst); 1275 if (identifier != null) { 1276 dst.identifier = new ArrayList<Identifier>(); 1277 for (Identifier i : identifier) 1278 dst.identifier.add(i.copy()); 1279 }; 1280 dst.active = active == null ? null : active.copy(); 1281 if (name != null) { 1282 dst.name = new ArrayList<HumanName>(); 1283 for (HumanName i : name) 1284 dst.name.add(i.copy()); 1285 }; 1286 if (telecom != null) { 1287 dst.telecom = new ArrayList<ContactPoint>(); 1288 for (ContactPoint i : telecom) 1289 dst.telecom.add(i.copy()); 1290 }; 1291 dst.gender = gender == null ? null : gender.copy(); 1292 dst.birthDate = birthDate == null ? null : birthDate.copy(); 1293 dst.deceased = deceased == null ? null : deceased.copy(); 1294 if (address != null) { 1295 dst.address = new ArrayList<Address>(); 1296 for (Address i : address) 1297 dst.address.add(i.copy()); 1298 }; 1299 if (photo != null) { 1300 dst.photo = new ArrayList<Attachment>(); 1301 for (Attachment i : photo) 1302 dst.photo.add(i.copy()); 1303 }; 1304 if (qualification != null) { 1305 dst.qualification = new ArrayList<PractitionerQualificationComponent>(); 1306 for (PractitionerQualificationComponent i : qualification) 1307 dst.qualification.add(i.copy()); 1308 }; 1309 if (communication != null) { 1310 dst.communication = new ArrayList<CodeableConcept>(); 1311 for (CodeableConcept i : communication) 1312 dst.communication.add(i.copy()); 1313 }; 1314 } 1315 1316 protected Practitioner typedCopy() { 1317 return copy(); 1318 } 1319 1320 @Override 1321 public boolean equalsDeep(Base other_) { 1322 if (!super.equalsDeep(other_)) 1323 return false; 1324 if (!(other_ instanceof Practitioner)) 1325 return false; 1326 Practitioner o = (Practitioner) other_; 1327 return compareDeep(identifier, o.identifier, true) && compareDeep(active, o.active, true) && compareDeep(name, o.name, true) 1328 && compareDeep(telecom, o.telecom, true) && compareDeep(gender, o.gender, true) && compareDeep(birthDate, o.birthDate, true) 1329 && compareDeep(deceased, o.deceased, true) && compareDeep(address, o.address, true) && compareDeep(photo, o.photo, true) 1330 && compareDeep(qualification, o.qualification, true) && compareDeep(communication, o.communication, true) 1331 ; 1332 } 1333 1334 @Override 1335 public boolean equalsShallow(Base other_) { 1336 if (!super.equalsShallow(other_)) 1337 return false; 1338 if (!(other_ instanceof Practitioner)) 1339 return false; 1340 Practitioner o = (Practitioner) other_; 1341 return compareValues(active, o.active, true) && compareValues(gender, o.gender, true) && compareValues(birthDate, o.birthDate, true) 1342 ; 1343 } 1344 1345 public boolean isEmpty() { 1346 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, active, name 1347 , telecom, gender, birthDate, deceased, address, photo, qualification, communication 1348 ); 1349 } 1350 1351 @Override 1352 public ResourceType getResourceType() { 1353 return ResourceType.Practitioner; 1354 } 1355 1356 /** 1357 * Search parameter: <b>active</b> 1358 * <p> 1359 * Description: <b>Whether the practitioner record is active</b><br> 1360 * Type: <b>token</b><br> 1361 * Path: <b>Practitioner.active</b><br> 1362 * </p> 1363 */ 1364 @SearchParamDefinition(name="active", path="Practitioner.active", description="Whether the practitioner record is active", type="token" ) 1365 public static final String SP_ACTIVE = "active"; 1366 /** 1367 * <b>Fluent Client</b> search parameter constant for <b>active</b> 1368 * <p> 1369 * Description: <b>Whether the practitioner record is active</b><br> 1370 * Type: <b>token</b><br> 1371 * Path: <b>Practitioner.active</b><br> 1372 * </p> 1373 */ 1374 public static final ca.uhn.fhir.rest.gclient.TokenClientParam ACTIVE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_ACTIVE); 1375 1376 /** 1377 * Search parameter: <b>communication</b> 1378 * <p> 1379 * Description: <b>One of the languages that the practitioner can communicate with</b><br> 1380 * Type: <b>token</b><br> 1381 * Path: <b>Practitioner.communication</b><br> 1382 * </p> 1383 */ 1384 @SearchParamDefinition(name="communication", path="Practitioner.communication", description="One of the languages that the practitioner can communicate with", type="token" ) 1385 public static final String SP_COMMUNICATION = "communication"; 1386 /** 1387 * <b>Fluent Client</b> search parameter constant for <b>communication</b> 1388 * <p> 1389 * Description: <b>One of the languages that the practitioner can communicate with</b><br> 1390 * Type: <b>token</b><br> 1391 * Path: <b>Practitioner.communication</b><br> 1392 * </p> 1393 */ 1394 public static final ca.uhn.fhir.rest.gclient.TokenClientParam COMMUNICATION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_COMMUNICATION); 1395 1396 /** 1397 * Search parameter: <b>death-date</b> 1398 * <p> 1399 * Description: <b>The date of death has been provided and satisfies this search value</b><br> 1400 * Type: <b>date</b><br> 1401 * Path: <b>(Practitioner.deceased as dateTime)</b><br> 1402 * </p> 1403 */ 1404 @SearchParamDefinition(name="death-date", path="(Practitioner.deceased as dateTime)", description="The date of death has been provided and satisfies this search value", type="date" ) 1405 public static final String SP_DEATH_DATE = "death-date"; 1406 /** 1407 * <b>Fluent Client</b> search parameter constant for <b>death-date</b> 1408 * <p> 1409 * Description: <b>The date of death has been provided and satisfies this search value</b><br> 1410 * Type: <b>date</b><br> 1411 * Path: <b>(Practitioner.deceased as dateTime)</b><br> 1412 * </p> 1413 */ 1414 public static final ca.uhn.fhir.rest.gclient.DateClientParam DEATH_DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DEATH_DATE); 1415 1416 /** 1417 * Search parameter: <b>deceased</b> 1418 * <p> 1419 * Description: <b>This Practitioner has been marked as deceased, or has a death date entered</b><br> 1420 * Type: <b>token</b><br> 1421 * Path: <b>Practitioner.deceased.exists() and Practitioner.deceased != false</b><br> 1422 * </p> 1423 */ 1424 @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" ) 1425 public static final String SP_DECEASED = "deceased"; 1426 /** 1427 * <b>Fluent Client</b> search parameter constant for <b>deceased</b> 1428 * <p> 1429 * Description: <b>This Practitioner has been marked as deceased, or has a death date entered</b><br> 1430 * Type: <b>token</b><br> 1431 * Path: <b>Practitioner.deceased.exists() and Practitioner.deceased != false</b><br> 1432 * </p> 1433 */ 1434 public static final ca.uhn.fhir.rest.gclient.TokenClientParam DECEASED = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_DECEASED); 1435 1436 /** 1437 * Search parameter: <b>identifier</b> 1438 * <p> 1439 * Description: <b>A practitioner's Identifier</b><br> 1440 * Type: <b>token</b><br> 1441 * Path: <b>Practitioner.identifier | Practitioner.qualification.identifier</b><br> 1442 * </p> 1443 */ 1444 @SearchParamDefinition(name="identifier", path="Practitioner.identifier | Practitioner.qualification.identifier", description="A practitioner's Identifier", type="token" ) 1445 public static final String SP_IDENTIFIER = "identifier"; 1446 /** 1447 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 1448 * <p> 1449 * Description: <b>A practitioner's Identifier</b><br> 1450 * Type: <b>token</b><br> 1451 * Path: <b>Practitioner.identifier | Practitioner.qualification.identifier</b><br> 1452 * </p> 1453 */ 1454 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 1455 1456 /** 1457 * Search parameter: <b>name</b> 1458 * <p> 1459 * 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> 1460 * Type: <b>string</b><br> 1461 * Path: <b>Practitioner.name</b><br> 1462 * </p> 1463 */ 1464 @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" ) 1465 public static final String SP_NAME = "name"; 1466 /** 1467 * <b>Fluent Client</b> search parameter constant for <b>name</b> 1468 * <p> 1469 * 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> 1470 * Type: <b>string</b><br> 1471 * Path: <b>Practitioner.name</b><br> 1472 * </p> 1473 */ 1474 public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_NAME); 1475 1476 /** 1477 * Search parameter: <b>qualification-period</b> 1478 * <p> 1479 * Description: <b>The date(s) a qualification is valid for</b><br> 1480 * Type: <b>date</b><br> 1481 * Path: <b>Practitioner.qualification.period</b><br> 1482 * </p> 1483 */ 1484 @SearchParamDefinition(name="qualification-period", path="Practitioner.qualification.period", description="The date(s) a qualification is valid for", type="date" ) 1485 public static final String SP_QUALIFICATION_PERIOD = "qualification-period"; 1486 /** 1487 * <b>Fluent Client</b> search parameter constant for <b>qualification-period</b> 1488 * <p> 1489 * Description: <b>The date(s) a qualification is valid for</b><br> 1490 * Type: <b>date</b><br> 1491 * Path: <b>Practitioner.qualification.period</b><br> 1492 * </p> 1493 */ 1494 public static final ca.uhn.fhir.rest.gclient.DateClientParam QUALIFICATION_PERIOD = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_QUALIFICATION_PERIOD); 1495 1496 /** 1497 * Search parameter: <b>address-city</b> 1498 * <p> 1499 * Description: <b>Multiple Resources: 1500 1501* [Patient](patient.html): A city specified in an address 1502* [Person](person.html): A city specified in an address 1503* [Practitioner](practitioner.html): A city specified in an address 1504* [RelatedPerson](relatedperson.html): A city specified in an address 1505</b><br> 1506 * Type: <b>string</b><br> 1507 * Path: <b>Patient.address.city | Person.address.city | Practitioner.address.city | RelatedPerson.address.city</b><br> 1508 * </p> 1509 */ 1510 @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" ) 1511 public static final String SP_ADDRESS_CITY = "address-city"; 1512 /** 1513 * <b>Fluent Client</b> search parameter constant for <b>address-city</b> 1514 * <p> 1515 * Description: <b>Multiple Resources: 1516 1517* [Patient](patient.html): A city specified in an address 1518* [Person](person.html): A city specified in an address 1519* [Practitioner](practitioner.html): A city specified in an address 1520* [RelatedPerson](relatedperson.html): A city specified in an address 1521</b><br> 1522 * Type: <b>string</b><br> 1523 * Path: <b>Patient.address.city | Person.address.city | Practitioner.address.city | RelatedPerson.address.city</b><br> 1524 * </p> 1525 */ 1526 public static final ca.uhn.fhir.rest.gclient.StringClientParam ADDRESS_CITY = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_ADDRESS_CITY); 1527 1528 /** 1529 * Search parameter: <b>address-country</b> 1530 * <p> 1531 * Description: <b>Multiple Resources: 1532 1533* [Patient](patient.html): A country specified in an address 1534* [Person](person.html): A country specified in an address 1535* [Practitioner](practitioner.html): A country specified in an address 1536* [RelatedPerson](relatedperson.html): A country specified in an address 1537</b><br> 1538 * Type: <b>string</b><br> 1539 * Path: <b>Patient.address.country | Person.address.country | Practitioner.address.country | RelatedPerson.address.country</b><br> 1540 * </p> 1541 */ 1542 @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" ) 1543 public static final String SP_ADDRESS_COUNTRY = "address-country"; 1544 /** 1545 * <b>Fluent Client</b> search parameter constant for <b>address-country</b> 1546 * <p> 1547 * Description: <b>Multiple Resources: 1548 1549* [Patient](patient.html): A country specified in an address 1550* [Person](person.html): A country specified in an address 1551* [Practitioner](practitioner.html): A country specified in an address 1552* [RelatedPerson](relatedperson.html): A country specified in an address 1553</b><br> 1554 * Type: <b>string</b><br> 1555 * Path: <b>Patient.address.country | Person.address.country | Practitioner.address.country | RelatedPerson.address.country</b><br> 1556 * </p> 1557 */ 1558 public static final ca.uhn.fhir.rest.gclient.StringClientParam ADDRESS_COUNTRY = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_ADDRESS_COUNTRY); 1559 1560 /** 1561 * Search parameter: <b>address-postalcode</b> 1562 * <p> 1563 * Description: <b>Multiple Resources: 1564 1565* [Patient](patient.html): A postalCode specified in an address 1566* [Person](person.html): A postal code specified in an address 1567* [Practitioner](practitioner.html): A postalCode specified in an address 1568* [RelatedPerson](relatedperson.html): A postal code specified in an address 1569</b><br> 1570 * Type: <b>string</b><br> 1571 * Path: <b>Patient.address.postalCode | Person.address.postalCode | Practitioner.address.postalCode | RelatedPerson.address.postalCode</b><br> 1572 * </p> 1573 */ 1574 @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" ) 1575 public static final String SP_ADDRESS_POSTALCODE = "address-postalcode"; 1576 /** 1577 * <b>Fluent Client</b> search parameter constant for <b>address-postalcode</b> 1578 * <p> 1579 * Description: <b>Multiple Resources: 1580 1581* [Patient](patient.html): A postalCode specified in an address 1582* [Person](person.html): A postal code specified in an address 1583* [Practitioner](practitioner.html): A postalCode specified in an address 1584* [RelatedPerson](relatedperson.html): A postal code specified in an address 1585</b><br> 1586 * Type: <b>string</b><br> 1587 * Path: <b>Patient.address.postalCode | Person.address.postalCode | Practitioner.address.postalCode | RelatedPerson.address.postalCode</b><br> 1588 * </p> 1589 */ 1590 public static final ca.uhn.fhir.rest.gclient.StringClientParam ADDRESS_POSTALCODE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_ADDRESS_POSTALCODE); 1591 1592 /** 1593 * Search parameter: <b>address-state</b> 1594 * <p> 1595 * Description: <b>Multiple Resources: 1596 1597* [Patient](patient.html): A state specified in an address 1598* [Person](person.html): A state specified in an address 1599* [Practitioner](practitioner.html): A state specified in an address 1600* [RelatedPerson](relatedperson.html): A state specified in an address 1601</b><br> 1602 * Type: <b>string</b><br> 1603 * Path: <b>Patient.address.state | Person.address.state | Practitioner.address.state | RelatedPerson.address.state</b><br> 1604 * </p> 1605 */ 1606 @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" ) 1607 public static final String SP_ADDRESS_STATE = "address-state"; 1608 /** 1609 * <b>Fluent Client</b> search parameter constant for <b>address-state</b> 1610 * <p> 1611 * Description: <b>Multiple Resources: 1612 1613* [Patient](patient.html): A state specified in an address 1614* [Person](person.html): A state specified in an address 1615* [Practitioner](practitioner.html): A state specified in an address 1616* [RelatedPerson](relatedperson.html): A state specified in an address 1617</b><br> 1618 * Type: <b>string</b><br> 1619 * Path: <b>Patient.address.state | Person.address.state | Practitioner.address.state | RelatedPerson.address.state</b><br> 1620 * </p> 1621 */ 1622 public static final ca.uhn.fhir.rest.gclient.StringClientParam ADDRESS_STATE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_ADDRESS_STATE); 1623 1624 /** 1625 * Search parameter: <b>address-use</b> 1626 * <p> 1627 * Description: <b>Multiple Resources: 1628 1629* [Patient](patient.html): A use code specified in an address 1630* [Person](person.html): A use code specified in an address 1631* [Practitioner](practitioner.html): A use code specified in an address 1632* [RelatedPerson](relatedperson.html): A use code specified in an address 1633</b><br> 1634 * Type: <b>token</b><br> 1635 * Path: <b>Patient.address.use | Person.address.use | Practitioner.address.use | RelatedPerson.address.use</b><br> 1636 * </p> 1637 */ 1638 @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" ) 1639 public static final String SP_ADDRESS_USE = "address-use"; 1640 /** 1641 * <b>Fluent Client</b> search parameter constant for <b>address-use</b> 1642 * <p> 1643 * Description: <b>Multiple Resources: 1644 1645* [Patient](patient.html): A use code specified in an address 1646* [Person](person.html): A use code specified in an address 1647* [Practitioner](practitioner.html): A use code specified in an address 1648* [RelatedPerson](relatedperson.html): A use code specified in an address 1649</b><br> 1650 * Type: <b>token</b><br> 1651 * Path: <b>Patient.address.use | Person.address.use | Practitioner.address.use | RelatedPerson.address.use</b><br> 1652 * </p> 1653 */ 1654 public static final ca.uhn.fhir.rest.gclient.TokenClientParam ADDRESS_USE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_ADDRESS_USE); 1655 1656 /** 1657 * Search parameter: <b>address</b> 1658 * <p> 1659 * Description: <b>Multiple Resources: 1660 1661* [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 1662* [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 1663* [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 1664* [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 1665</b><br> 1666 * Type: <b>string</b><br> 1667 * Path: <b>Patient.address | Person.address | Practitioner.address | RelatedPerson.address</b><br> 1668 * </p> 1669 */ 1670 @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" ) 1671 public static final String SP_ADDRESS = "address"; 1672 /** 1673 * <b>Fluent Client</b> search parameter constant for <b>address</b> 1674 * <p> 1675 * Description: <b>Multiple Resources: 1676 1677* [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 1678* [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 1679* [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 1680* [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 1681</b><br> 1682 * Type: <b>string</b><br> 1683 * Path: <b>Patient.address | Person.address | Practitioner.address | RelatedPerson.address</b><br> 1684 * </p> 1685 */ 1686 public static final ca.uhn.fhir.rest.gclient.StringClientParam ADDRESS = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_ADDRESS); 1687 1688 /** 1689 * Search parameter: <b>email</b> 1690 * <p> 1691 * Description: <b>Multiple Resources: 1692 1693* [Patient](patient.html): A value in an email contact 1694* [Person](person.html): A value in an email contact 1695* [Practitioner](practitioner.html): A value in an email contact 1696* [PractitionerRole](practitionerrole.html): A value in an email contact 1697* [RelatedPerson](relatedperson.html): A value in an email contact 1698</b><br> 1699 * Type: <b>token</b><br> 1700 * Path: <b>Patient.telecom.where(system='email') | Person.telecom.where(system='email') | Practitioner.telecom.where(system='email') | PractitionerRole.contact.telecom.where(system='email') | RelatedPerson.telecom.where(system='email')</b><br> 1701 * </p> 1702 */ 1703 @SearchParamDefinition(name="email", path="Patient.telecom.where(system='email') | Person.telecom.where(system='email') | Practitioner.telecom.where(system='email') | PractitionerRole.contact.telecom.where(system='email') | RelatedPerson.telecom.where(system='email')", description="Multiple Resources: \r\n\r\n* [Patient](patient.html): A value in an email contact\r\n* [Person](person.html): A value in an email contact\r\n* [Practitioner](practitioner.html): A value in an email contact\r\n* [PractitionerRole](practitionerrole.html): A value in an email contact\r\n* [RelatedPerson](relatedperson.html): A value in an email contact\r\n", type="token" ) 1704 public static final String SP_EMAIL = "email"; 1705 /** 1706 * <b>Fluent Client</b> search parameter constant for <b>email</b> 1707 * <p> 1708 * Description: <b>Multiple Resources: 1709 1710* [Patient](patient.html): A value in an email contact 1711* [Person](person.html): A value in an email contact 1712* [Practitioner](practitioner.html): A value in an email contact 1713* [PractitionerRole](practitionerrole.html): A value in an email contact 1714* [RelatedPerson](relatedperson.html): A value in an email contact 1715</b><br> 1716 * Type: <b>token</b><br> 1717 * Path: <b>Patient.telecom.where(system='email') | Person.telecom.where(system='email') | Practitioner.telecom.where(system='email') | PractitionerRole.contact.telecom.where(system='email') | RelatedPerson.telecom.where(system='email')</b><br> 1718 * </p> 1719 */ 1720 public static final ca.uhn.fhir.rest.gclient.TokenClientParam EMAIL = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_EMAIL); 1721 1722 /** 1723 * Search parameter: <b>family</b> 1724 * <p> 1725 * Description: <b>Multiple Resources: 1726 1727* [Patient](patient.html): A portion of the family name of the patient 1728* [Practitioner](practitioner.html): A portion of the family name 1729</b><br> 1730 * Type: <b>string</b><br> 1731 * Path: <b>Patient.name.family | Practitioner.name.family</b><br> 1732 * </p> 1733 */ 1734 @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" ) 1735 public static final String SP_FAMILY = "family"; 1736 /** 1737 * <b>Fluent Client</b> search parameter constant for <b>family</b> 1738 * <p> 1739 * Description: <b>Multiple Resources: 1740 1741* [Patient](patient.html): A portion of the family name of the patient 1742* [Practitioner](practitioner.html): A portion of the family name 1743</b><br> 1744 * Type: <b>string</b><br> 1745 * Path: <b>Patient.name.family | Practitioner.name.family</b><br> 1746 * </p> 1747 */ 1748 public static final ca.uhn.fhir.rest.gclient.StringClientParam FAMILY = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_FAMILY); 1749 1750 /** 1751 * Search parameter: <b>gender</b> 1752 * <p> 1753 * Description: <b>Multiple Resources: 1754 1755* [Patient](patient.html): Gender of the patient 1756* [Person](person.html): The gender of the person 1757* [Practitioner](practitioner.html): Gender of the practitioner 1758* [RelatedPerson](relatedperson.html): Gender of the related person 1759</b><br> 1760 * Type: <b>token</b><br> 1761 * Path: <b>Patient.gender | Person.gender | Practitioner.gender | RelatedPerson.gender</b><br> 1762 * </p> 1763 */ 1764 @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" ) 1765 public static final String SP_GENDER = "gender"; 1766 /** 1767 * <b>Fluent Client</b> search parameter constant for <b>gender</b> 1768 * <p> 1769 * Description: <b>Multiple Resources: 1770 1771* [Patient](patient.html): Gender of the patient 1772* [Person](person.html): The gender of the person 1773* [Practitioner](practitioner.html): Gender of the practitioner 1774* [RelatedPerson](relatedperson.html): Gender of the related person 1775</b><br> 1776 * Type: <b>token</b><br> 1777 * Path: <b>Patient.gender | Person.gender | Practitioner.gender | RelatedPerson.gender</b><br> 1778 * </p> 1779 */ 1780 public static final ca.uhn.fhir.rest.gclient.TokenClientParam GENDER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_GENDER); 1781 1782 /** 1783 * Search parameter: <b>given</b> 1784 * <p> 1785 * Description: <b>Multiple Resources: 1786 1787* [Patient](patient.html): A portion of the given name of the patient 1788* [Practitioner](practitioner.html): A portion of the given name 1789</b><br> 1790 * Type: <b>string</b><br> 1791 * Path: <b>Patient.name.given | Practitioner.name.given</b><br> 1792 * </p> 1793 */ 1794 @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" ) 1795 public static final String SP_GIVEN = "given"; 1796 /** 1797 * <b>Fluent Client</b> search parameter constant for <b>given</b> 1798 * <p> 1799 * Description: <b>Multiple Resources: 1800 1801* [Patient](patient.html): A portion of the given name of the patient 1802* [Practitioner](practitioner.html): A portion of the given name 1803</b><br> 1804 * Type: <b>string</b><br> 1805 * Path: <b>Patient.name.given | Practitioner.name.given</b><br> 1806 * </p> 1807 */ 1808 public static final ca.uhn.fhir.rest.gclient.StringClientParam GIVEN = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_GIVEN); 1809 1810 /** 1811 * Search parameter: <b>phone</b> 1812 * <p> 1813 * Description: <b>Multiple Resources: 1814 1815* [Patient](patient.html): A value in a phone contact 1816* [Person](person.html): A value in a phone contact 1817* [Practitioner](practitioner.html): A value in a phone contact 1818* [PractitionerRole](practitionerrole.html): A value in a phone contact 1819* [RelatedPerson](relatedperson.html): A value in a phone contact 1820</b><br> 1821 * Type: <b>token</b><br> 1822 * Path: <b>Patient.telecom.where(system='phone') | Person.telecom.where(system='phone') | Practitioner.telecom.where(system='phone') | PractitionerRole.contact.telecom.where(system='phone') | RelatedPerson.telecom.where(system='phone')</b><br> 1823 * </p> 1824 */ 1825 @SearchParamDefinition(name="phone", path="Patient.telecom.where(system='phone') | Person.telecom.where(system='phone') | Practitioner.telecom.where(system='phone') | PractitionerRole.contact.telecom.where(system='phone') | RelatedPerson.telecom.where(system='phone')", description="Multiple Resources: \r\n\r\n* [Patient](patient.html): A value in a phone contact\r\n* [Person](person.html): A value in a phone contact\r\n* [Practitioner](practitioner.html): A value in a phone contact\r\n* [PractitionerRole](practitionerrole.html): A value in a phone contact\r\n* [RelatedPerson](relatedperson.html): A value in a phone contact\r\n", type="token" ) 1826 public static final String SP_PHONE = "phone"; 1827 /** 1828 * <b>Fluent Client</b> search parameter constant for <b>phone</b> 1829 * <p> 1830 * Description: <b>Multiple Resources: 1831 1832* [Patient](patient.html): A value in a phone contact 1833* [Person](person.html): A value in a phone contact 1834* [Practitioner](practitioner.html): A value in a phone contact 1835* [PractitionerRole](practitionerrole.html): A value in a phone contact 1836* [RelatedPerson](relatedperson.html): A value in a phone contact 1837</b><br> 1838 * Type: <b>token</b><br> 1839 * Path: <b>Patient.telecom.where(system='phone') | Person.telecom.where(system='phone') | Practitioner.telecom.where(system='phone') | PractitionerRole.contact.telecom.where(system='phone') | RelatedPerson.telecom.where(system='phone')</b><br> 1840 * </p> 1841 */ 1842 public static final ca.uhn.fhir.rest.gclient.TokenClientParam PHONE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_PHONE); 1843 1844 /** 1845 * Search parameter: <b>phonetic</b> 1846 * <p> 1847 * Description: <b>Multiple Resources: 1848 1849* [Patient](patient.html): A portion of either family or given name using some kind of phonetic matching algorithm 1850* [Person](person.html): A portion of name using some kind of phonetic matching algorithm 1851* [Practitioner](practitioner.html): A portion of either family or given name using some kind of phonetic matching algorithm 1852* [RelatedPerson](relatedperson.html): A portion of name using some kind of phonetic matching algorithm 1853</b><br> 1854 * Type: <b>string</b><br> 1855 * Path: <b>Patient.name | Person.name | Practitioner.name | RelatedPerson.name</b><br> 1856 * </p> 1857 */ 1858 @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" ) 1859 public static final String SP_PHONETIC = "phonetic"; 1860 /** 1861 * <b>Fluent Client</b> search parameter constant for <b>phonetic</b> 1862 * <p> 1863 * Description: <b>Multiple Resources: 1864 1865* [Patient](patient.html): A portion of either family or given name using some kind of phonetic matching algorithm 1866* [Person](person.html): A portion of name using some kind of phonetic matching algorithm 1867* [Practitioner](practitioner.html): A portion of either family or given name using some kind of phonetic matching algorithm 1868* [RelatedPerson](relatedperson.html): A portion of name using some kind of phonetic matching algorithm 1869</b><br> 1870 * Type: <b>string</b><br> 1871 * Path: <b>Patient.name | Person.name | Practitioner.name | RelatedPerson.name</b><br> 1872 * </p> 1873 */ 1874 public static final ca.uhn.fhir.rest.gclient.StringClientParam PHONETIC = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_PHONETIC); 1875 1876 /** 1877 * Search parameter: <b>telecom</b> 1878 * <p> 1879 * Description: <b>Multiple Resources: 1880 1881* [Patient](patient.html): The value in any kind of telecom details of the patient 1882* [Person](person.html): The value in any kind of contact 1883* [Practitioner](practitioner.html): The value in any kind of contact 1884* [PractitionerRole](practitionerrole.html): The value in any kind of contact 1885* [RelatedPerson](relatedperson.html): The value in any kind of contact 1886</b><br> 1887 * Type: <b>token</b><br> 1888 * Path: <b>Patient.telecom | Person.telecom | Practitioner.telecom | PractitionerRole.contact.telecom | RelatedPerson.telecom</b><br> 1889 * </p> 1890 */ 1891 @SearchParamDefinition(name="telecom", path="Patient.telecom | Person.telecom | Practitioner.telecom | PractitionerRole.contact.telecom | RelatedPerson.telecom", description="Multiple Resources: \r\n\r\n* [Patient](patient.html): The value in any kind of telecom details of the patient\r\n* [Person](person.html): The value in any kind of contact\r\n* [Practitioner](practitioner.html): The value in any kind of contact\r\n* [PractitionerRole](practitionerrole.html): The value in any kind of contact\r\n* [RelatedPerson](relatedperson.html): The value in any kind of contact\r\n", type="token" ) 1892 public static final String SP_TELECOM = "telecom"; 1893 /** 1894 * <b>Fluent Client</b> search parameter constant for <b>telecom</b> 1895 * <p> 1896 * Description: <b>Multiple Resources: 1897 1898* [Patient](patient.html): The value in any kind of telecom details of the patient 1899* [Person](person.html): The value in any kind of contact 1900* [Practitioner](practitioner.html): The value in any kind of contact 1901* [PractitionerRole](practitionerrole.html): The value in any kind of contact 1902* [RelatedPerson](relatedperson.html): The value in any kind of contact 1903</b><br> 1904 * Type: <b>token</b><br> 1905 * Path: <b>Patient.telecom | Person.telecom | Practitioner.telecom | PractitionerRole.contact.telecom | RelatedPerson.telecom</b><br> 1906 * </p> 1907 */ 1908 public static final ca.uhn.fhir.rest.gclient.TokenClientParam TELECOM = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TELECOM); 1909 1910 1911} 1912