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