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