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