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