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 Thu, Mar 23, 2023 19:59+1100 for FHIR v5.0.0 033 034import java.util.ArrayList; 035import java.util.Date; 036import java.util.List; 037import org.hl7.fhir.utilities.Utilities; 038import org.hl7.fhir.r5.model.Enumerations.*; 039import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 040import org.hl7.fhir.exceptions.FHIRException; 041import org.hl7.fhir.instance.model.api.ICompositeType; 042import ca.uhn.fhir.model.api.annotation.ResourceDef; 043import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 044import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 045import ca.uhn.fhir.model.api.annotation.Child; 046import ca.uhn.fhir.model.api.annotation.ChildOrder; 047import ca.uhn.fhir.model.api.annotation.Description; 048import ca.uhn.fhir.model.api.annotation.Block; 049 050/** 051 * A person who is directly or indirectly involved in the provisioning of healthcare or related services. 052 */ 053@ResourceDef(name="Practitioner", profile="http://hl7.org/fhir/StructureDefinition/Practitioner") 054public class Practitioner extends DomainResource { 055 056 @Block() 057 public static class PractitionerQualificationComponent extends BackboneElement implements IBaseBackboneElement { 058 /** 059 * An identifier that applies to this person's qualification. 060 */ 061 @Child(name = "identifier", type = {Identifier.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 062 @Description(shortDefinition="An identifier for this qualification for the practitioner", formalDefinition="An identifier that applies to this person's qualification." ) 063 protected List<Identifier> identifier; 064 065 /** 066 * Coded representation of the qualification. 067 */ 068 @Child(name = "code", type = {CodeableConcept.class}, order=2, min=1, max=1, modifier=false, summary=false) 069 @Description(shortDefinition="Coded representation of the qualification", formalDefinition="Coded representation of the qualification." ) 070 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://terminology.hl7.org/ValueSet/v2-0360") 071 protected CodeableConcept code; 072 073 /** 074 * Period during which the qualification is valid. 075 */ 076 @Child(name = "period", type = {Period.class}, order=3, min=0, max=1, modifier=false, summary=false) 077 @Description(shortDefinition="Period during which the qualification is valid", formalDefinition="Period during which the qualification is valid." ) 078 protected Period period; 079 080 /** 081 * Organization that regulates and issues the qualification. 082 */ 083 @Child(name = "issuer", type = {Organization.class}, order=4, min=0, max=1, modifier=false, summary=false) 084 @Description(shortDefinition="Organization that regulates and issues the qualification", formalDefinition="Organization that regulates and issues the qualification." ) 085 protected Reference issuer; 086 087 private static final long serialVersionUID = 1561812204L; 088 089 /** 090 * Constructor 091 */ 092 public PractitionerQualificationComponent() { 093 super(); 094 } 095 096 /** 097 * Constructor 098 */ 099 public PractitionerQualificationComponent(CodeableConcept code) { 100 super(); 101 this.setCode(code); 102 } 103 104 /** 105 * @return {@link #identifier} (An identifier that applies to this person's qualification.) 106 */ 107 public List<Identifier> getIdentifier() { 108 if (this.identifier == null) 109 this.identifier = new ArrayList<Identifier>(); 110 return this.identifier; 111 } 112 113 /** 114 * @return Returns a reference to <code>this</code> for easy method chaining 115 */ 116 public PractitionerQualificationComponent setIdentifier(List<Identifier> theIdentifier) { 117 this.identifier = theIdentifier; 118 return this; 119 } 120 121 public boolean hasIdentifier() { 122 if (this.identifier == null) 123 return false; 124 for (Identifier item : this.identifier) 125 if (!item.isEmpty()) 126 return true; 127 return false; 128 } 129 130 public Identifier addIdentifier() { //3 131 Identifier t = new Identifier(); 132 if (this.identifier == null) 133 this.identifier = new ArrayList<Identifier>(); 134 this.identifier.add(t); 135 return t; 136 } 137 138 public PractitionerQualificationComponent addIdentifier(Identifier t) { //3 139 if (t == null) 140 return this; 141 if (this.identifier == null) 142 this.identifier = new ArrayList<Identifier>(); 143 this.identifier.add(t); 144 return this; 145 } 146 147 /** 148 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3} 149 */ 150 public Identifier getIdentifierFirstRep() { 151 if (getIdentifier().isEmpty()) { 152 addIdentifier(); 153 } 154 return getIdentifier().get(0); 155 } 156 157 /** 158 * @return {@link #code} (Coded representation of the qualification.) 159 */ 160 public CodeableConcept getCode() { 161 if (this.code == null) 162 if (Configuration.errorOnAutoCreate()) 163 throw new Error("Attempt to auto-create PractitionerQualificationComponent.code"); 164 else if (Configuration.doAutoCreate()) 165 this.code = new CodeableConcept(); // cc 166 return this.code; 167 } 168 169 public boolean hasCode() { 170 return this.code != null && !this.code.isEmpty(); 171 } 172 173 /** 174 * @param value {@link #code} (Coded representation of the qualification.) 175 */ 176 public PractitionerQualificationComponent setCode(CodeableConcept value) { 177 this.code = value; 178 return this; 179 } 180 181 /** 182 * @return {@link #period} (Period during which the qualification is valid.) 183 */ 184 public Period getPeriod() { 185 if (this.period == null) 186 if (Configuration.errorOnAutoCreate()) 187 throw new Error("Attempt to auto-create PractitionerQualificationComponent.period"); 188 else if (Configuration.doAutoCreate()) 189 this.period = new Period(); // cc 190 return this.period; 191 } 192 193 public boolean hasPeriod() { 194 return this.period != null && !this.period.isEmpty(); 195 } 196 197 /** 198 * @param value {@link #period} (Period during which the qualification is valid.) 199 */ 200 public PractitionerQualificationComponent setPeriod(Period value) { 201 this.period = value; 202 return this; 203 } 204 205 /** 206 * @return {@link #issuer} (Organization that regulates and issues the qualification.) 207 */ 208 public Reference getIssuer() { 209 if (this.issuer == null) 210 if (Configuration.errorOnAutoCreate()) 211 throw new Error("Attempt to auto-create PractitionerQualificationComponent.issuer"); 212 else if (Configuration.doAutoCreate()) 213 this.issuer = new Reference(); // cc 214 return this.issuer; 215 } 216 217 public boolean hasIssuer() { 218 return this.issuer != null && !this.issuer.isEmpty(); 219 } 220 221 /** 222 * @param value {@link #issuer} (Organization that regulates and issues the qualification.) 223 */ 224 public PractitionerQualificationComponent setIssuer(Reference value) { 225 this.issuer = value; 226 return this; 227 } 228 229 protected void listChildren(List<Property> children) { 230 super.listChildren(children); 231 children.add(new Property("identifier", "Identifier", "An identifier that applies to this person's qualification.", 0, java.lang.Integer.MAX_VALUE, identifier)); 232 children.add(new Property("code", "CodeableConcept", "Coded representation of the qualification.", 0, 1, code)); 233 children.add(new Property("period", "Period", "Period during which the qualification is valid.", 0, 1, period)); 234 children.add(new Property("issuer", "Reference(Organization)", "Organization that regulates and issues the qualification.", 0, 1, issuer)); 235 } 236 237 @Override 238 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 239 switch (_hash) { 240 case -1618432855: /*identifier*/ return new Property("identifier", "Identifier", "An identifier that applies to this person's qualification.", 0, java.lang.Integer.MAX_VALUE, identifier); 241 case 3059181: /*code*/ return new Property("code", "CodeableConcept", "Coded representation of the qualification.", 0, 1, code); 242 case -991726143: /*period*/ return new Property("period", "Period", "Period during which the qualification is valid.", 0, 1, period); 243 case -1179159879: /*issuer*/ return new Property("issuer", "Reference(Organization)", "Organization that regulates and issues the qualification.", 0, 1, issuer); 244 default: return super.getNamedProperty(_hash, _name, _checkValid); 245 } 246 247 } 248 249 @Override 250 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 251 switch (hash) { 252 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 253 case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept 254 case -991726143: /*period*/ return this.period == null ? new Base[0] : new Base[] {this.period}; // Period 255 case -1179159879: /*issuer*/ return this.issuer == null ? new Base[0] : new Base[] {this.issuer}; // Reference 256 default: return super.getProperty(hash, name, checkValid); 257 } 258 259 } 260 261 @Override 262 public Base setProperty(int hash, String name, Base value) throws FHIRException { 263 switch (hash) { 264 case -1618432855: // identifier 265 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier 266 return value; 267 case 3059181: // code 268 this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 269 return value; 270 case -991726143: // period 271 this.period = TypeConvertor.castToPeriod(value); // Period 272 return value; 273 case -1179159879: // issuer 274 this.issuer = TypeConvertor.castToReference(value); // Reference 275 return value; 276 default: return super.setProperty(hash, name, value); 277 } 278 279 } 280 281 @Override 282 public Base setProperty(String name, Base value) throws FHIRException { 283 if (name.equals("identifier")) { 284 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); 285 } else if (name.equals("code")) { 286 this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 287 } else if (name.equals("period")) { 288 this.period = TypeConvertor.castToPeriod(value); // Period 289 } else if (name.equals("issuer")) { 290 this.issuer = TypeConvertor.castToReference(value); // Reference 291 } else 292 return super.setProperty(name, value); 293 return value; 294 } 295 296 @Override 297 public Base makeProperty(int hash, String name) throws FHIRException { 298 switch (hash) { 299 case -1618432855: return addIdentifier(); 300 case 3059181: return getCode(); 301 case -991726143: return getPeriod(); 302 case -1179159879: return getIssuer(); 303 default: return super.makeProperty(hash, name); 304 } 305 306 } 307 308 @Override 309 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 310 switch (hash) { 311 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 312 case 3059181: /*code*/ return new String[] {"CodeableConcept"}; 313 case -991726143: /*period*/ return new String[] {"Period"}; 314 case -1179159879: /*issuer*/ return new String[] {"Reference"}; 315 default: return super.getTypesForProperty(hash, name); 316 } 317 318 } 319 320 @Override 321 public Base addChild(String name) throws FHIRException { 322 if (name.equals("identifier")) { 323 return addIdentifier(); 324 } 325 else if (name.equals("code")) { 326 this.code = new CodeableConcept(); 327 return this.code; 328 } 329 else if (name.equals("period")) { 330 this.period = new Period(); 331 return this.period; 332 } 333 else if (name.equals("issuer")) { 334 this.issuer = new Reference(); 335 return this.issuer; 336 } 337 else 338 return super.addChild(name); 339 } 340 341 public PractitionerQualificationComponent copy() { 342 PractitionerQualificationComponent dst = new PractitionerQualificationComponent(); 343 copyValues(dst); 344 return dst; 345 } 346 347 public void copyValues(PractitionerQualificationComponent dst) { 348 super.copyValues(dst); 349 if (identifier != null) { 350 dst.identifier = new ArrayList<Identifier>(); 351 for (Identifier i : identifier) 352 dst.identifier.add(i.copy()); 353 }; 354 dst.code = code == null ? null : code.copy(); 355 dst.period = period == null ? null : period.copy(); 356 dst.issuer = issuer == null ? null : issuer.copy(); 357 } 358 359 @Override 360 public boolean equalsDeep(Base other_) { 361 if (!super.equalsDeep(other_)) 362 return false; 363 if (!(other_ instanceof PractitionerQualificationComponent)) 364 return false; 365 PractitionerQualificationComponent o = (PractitionerQualificationComponent) other_; 366 return compareDeep(identifier, o.identifier, true) && compareDeep(code, o.code, true) && compareDeep(period, o.period, true) 367 && compareDeep(issuer, o.issuer, true); 368 } 369 370 @Override 371 public boolean equalsShallow(Base other_) { 372 if (!super.equalsShallow(other_)) 373 return false; 374 if (!(other_ instanceof PractitionerQualificationComponent)) 375 return false; 376 PractitionerQualificationComponent o = (PractitionerQualificationComponent) other_; 377 return true; 378 } 379 380 public boolean isEmpty() { 381 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, code, period 382 , issuer); 383 } 384 385 public String fhirType() { 386 return "Practitioner.qualification"; 387 388 } 389 390 } 391 392 @Block() 393 public static class PractitionerCommunicationComponent extends BackboneElement implements IBaseBackboneElement { 394 /** 395 * 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-AU" for Australian English. 396 */ 397 @Child(name = "language", type = {CodeableConcept.class}, order=1, min=1, max=1, modifier=false, summary=false) 398 @Description(shortDefinition="The language code used to communicate with the practitioner", 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-AU\" for Australian English." ) 399 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/all-languages") 400 protected CodeableConcept language; 401 402 /** 403 * Indicates whether or not the person prefers this language (over other languages he masters up a certain level). 404 */ 405 @Child(name = "preferred", type = {BooleanType.class}, order=2, min=0, max=1, modifier=false, summary=false) 406 @Description(shortDefinition="Language preference indicator", formalDefinition="Indicates whether or not the person prefers this language (over other languages he masters up a certain level)." ) 407 protected BooleanType preferred; 408 409 private static final long serialVersionUID = 633792918L; 410 411 /** 412 * Constructor 413 */ 414 public PractitionerCommunicationComponent() { 415 super(); 416 } 417 418 /** 419 * Constructor 420 */ 421 public PractitionerCommunicationComponent(CodeableConcept language) { 422 super(); 423 this.setLanguage(language); 424 } 425 426 /** 427 * @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-AU" for Australian English.) 428 */ 429 public CodeableConcept getLanguage() { 430 if (this.language == null) 431 if (Configuration.errorOnAutoCreate()) 432 throw new Error("Attempt to auto-create PractitionerCommunicationComponent.language"); 433 else if (Configuration.doAutoCreate()) 434 this.language = new CodeableConcept(); // cc 435 return this.language; 436 } 437 438 public boolean hasLanguage() { 439 return this.language != null && !this.language.isEmpty(); 440 } 441 442 /** 443 * @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-AU" for Australian English.) 444 */ 445 public PractitionerCommunicationComponent setLanguage(CodeableConcept value) { 446 this.language = value; 447 return this; 448 } 449 450 /** 451 * @return {@link #preferred} (Indicates whether or not the person 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 452 */ 453 public BooleanType getPreferredElement() { 454 if (this.preferred == null) 455 if (Configuration.errorOnAutoCreate()) 456 throw new Error("Attempt to auto-create PractitionerCommunicationComponent.preferred"); 457 else if (Configuration.doAutoCreate()) 458 this.preferred = new BooleanType(); // bb 459 return this.preferred; 460 } 461 462 public boolean hasPreferredElement() { 463 return this.preferred != null && !this.preferred.isEmpty(); 464 } 465 466 public boolean hasPreferred() { 467 return this.preferred != null && !this.preferred.isEmpty(); 468 } 469 470 /** 471 * @param value {@link #preferred} (Indicates whether or not the person 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 472 */ 473 public PractitionerCommunicationComponent setPreferredElement(BooleanType value) { 474 this.preferred = value; 475 return this; 476 } 477 478 /** 479 * @return Indicates whether or not the person prefers this language (over other languages he masters up a certain level). 480 */ 481 public boolean getPreferred() { 482 return this.preferred == null || this.preferred.isEmpty() ? false : this.preferred.getValue(); 483 } 484 485 /** 486 * @param value Indicates whether or not the person prefers this language (over other languages he masters up a certain level). 487 */ 488 public PractitionerCommunicationComponent setPreferred(boolean value) { 489 if (this.preferred == null) 490 this.preferred = new BooleanType(); 491 this.preferred.setValue(value); 492 return this; 493 } 494 495 protected void listChildren(List<Property> children) { 496 super.listChildren(children); 497 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-AU\" for Australian English.", 0, 1, language)); 498 children.add(new Property("preferred", "boolean", "Indicates whether or not the person prefers this language (over other languages he masters up a certain level).", 0, 1, preferred)); 499 } 500 501 @Override 502 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 503 switch (_hash) { 504 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-AU\" for Australian English.", 0, 1, language); 505 case -1294005119: /*preferred*/ return new Property("preferred", "boolean", "Indicates whether or not the person prefers this language (over other languages he masters up a certain level).", 0, 1, preferred); 506 default: return super.getNamedProperty(_hash, _name, _checkValid); 507 } 508 509 } 510 511 @Override 512 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 513 switch (hash) { 514 case -1613589672: /*language*/ return this.language == null ? new Base[0] : new Base[] {this.language}; // CodeableConcept 515 case -1294005119: /*preferred*/ return this.preferred == null ? new Base[0] : new Base[] {this.preferred}; // BooleanType 516 default: return super.getProperty(hash, name, checkValid); 517 } 518 519 } 520 521 @Override 522 public Base setProperty(int hash, String name, Base value) throws FHIRException { 523 switch (hash) { 524 case -1613589672: // language 525 this.language = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 526 return value; 527 case -1294005119: // preferred 528 this.preferred = TypeConvertor.castToBoolean(value); // BooleanType 529 return value; 530 default: return super.setProperty(hash, name, value); 531 } 532 533 } 534 535 @Override 536 public Base setProperty(String name, Base value) throws FHIRException { 537 if (name.equals("language")) { 538 this.language = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 539 } else if (name.equals("preferred")) { 540 this.preferred = TypeConvertor.castToBoolean(value); // BooleanType 541 } else 542 return super.setProperty(name, value); 543 return value; 544 } 545 546 @Override 547 public Base makeProperty(int hash, String name) throws FHIRException { 548 switch (hash) { 549 case -1613589672: return getLanguage(); 550 case -1294005119: return getPreferredElement(); 551 default: return super.makeProperty(hash, name); 552 } 553 554 } 555 556 @Override 557 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 558 switch (hash) { 559 case -1613589672: /*language*/ return new String[] {"CodeableConcept"}; 560 case -1294005119: /*preferred*/ return new String[] {"boolean"}; 561 default: return super.getTypesForProperty(hash, name); 562 } 563 564 } 565 566 @Override 567 public Base addChild(String name) throws FHIRException { 568 if (name.equals("language")) { 569 this.language = new CodeableConcept(); 570 return this.language; 571 } 572 else if (name.equals("preferred")) { 573 throw new FHIRException("Cannot call addChild on a singleton property Practitioner.communication.preferred"); 574 } 575 else 576 return super.addChild(name); 577 } 578 579 public PractitionerCommunicationComponent copy() { 580 PractitionerCommunicationComponent dst = new PractitionerCommunicationComponent(); 581 copyValues(dst); 582 return dst; 583 } 584 585 public void copyValues(PractitionerCommunicationComponent dst) { 586 super.copyValues(dst); 587 dst.language = language == null ? null : language.copy(); 588 dst.preferred = preferred == null ? null : preferred.copy(); 589 } 590 591 @Override 592 public boolean equalsDeep(Base other_) { 593 if (!super.equalsDeep(other_)) 594 return false; 595 if (!(other_ instanceof PractitionerCommunicationComponent)) 596 return false; 597 PractitionerCommunicationComponent o = (PractitionerCommunicationComponent) other_; 598 return compareDeep(language, o.language, true) && compareDeep(preferred, o.preferred, true); 599 } 600 601 @Override 602 public boolean equalsShallow(Base other_) { 603 if (!super.equalsShallow(other_)) 604 return false; 605 if (!(other_ instanceof PractitionerCommunicationComponent)) 606 return false; 607 PractitionerCommunicationComponent o = (PractitionerCommunicationComponent) other_; 608 return compareValues(preferred, o.preferred, true); 609 } 610 611 public boolean isEmpty() { 612 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(language, preferred); 613 } 614 615 public String fhirType() { 616 return "Practitioner.communication"; 617 618 } 619 620 } 621 622 /** 623 * An identifier that applies to this person in this role. 624 */ 625 @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 626 @Description(shortDefinition="An identifier for the person as this agent", formalDefinition="An identifier that applies to this person in this role." ) 627 protected List<Identifier> identifier; 628 629 /** 630 * Whether this practitioner's record is in active use. 631 */ 632 @Child(name = "active", type = {BooleanType.class}, order=1, min=0, max=1, modifier=true, summary=true) 633 @Description(shortDefinition="Whether this practitioner's record is in active use", formalDefinition="Whether this practitioner's record is in active use." ) 634 protected BooleanType active; 635 636 /** 637 * The name(s) associated with the practitioner. 638 */ 639 @Child(name = "name", type = {HumanName.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 640 @Description(shortDefinition="The name(s) associated with the practitioner", formalDefinition="The name(s) associated with the practitioner." ) 641 protected List<HumanName> name; 642 643 /** 644 * A contact detail for the practitioner, e.g. a telephone number or an email address. 645 */ 646 @Child(name = "telecom", type = {ContactPoint.class}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 647 @Description(shortDefinition="A contact detail for the practitioner (that apply to all roles)", formalDefinition="A contact detail for the practitioner, e.g. a telephone number or an email address." ) 648 protected List<ContactPoint> telecom; 649 650 /** 651 * Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes. 652 */ 653 @Child(name = "gender", type = {CodeType.class}, order=4, min=0, max=1, modifier=false, summary=true) 654 @Description(shortDefinition="male | female | other | unknown", formalDefinition="Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes." ) 655 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/administrative-gender") 656 protected Enumeration<AdministrativeGender> gender; 657 658 /** 659 * The date of birth for the practitioner. 660 */ 661 @Child(name = "birthDate", type = {DateType.class}, order=5, min=0, max=1, modifier=false, summary=true) 662 @Description(shortDefinition="The date on which the practitioner was born", formalDefinition="The date of birth for the practitioner." ) 663 protected DateType birthDate; 664 665 /** 666 * Indicates if the practitioner is deceased or not. 667 */ 668 @Child(name = "deceased", type = {BooleanType.class, DateTimeType.class}, order=6, min=0, max=1, modifier=false, summary=true) 669 @Description(shortDefinition="Indicates if the practitioner is deceased or not", formalDefinition="Indicates if the practitioner is deceased or not." ) 670 protected DataType deceased; 671 672 /** 673 * Address(es) of the practitioner that are not role specific (typically home address). 674Work addresses are not typically entered in this property as they are usually role dependent. 675 */ 676 @Child(name = "address", type = {Address.class}, order=7, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 677 @Description(shortDefinition="Address(es) of the practitioner that are not role specific (typically home address)", formalDefinition="Address(es) of the practitioner that are not role specific (typically home address). \rWork addresses are not typically entered in this property as they are usually role dependent." ) 678 protected List<Address> address; 679 680 /** 681 * Image of the person. 682 */ 683 @Child(name = "photo", type = {Attachment.class}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 684 @Description(shortDefinition="Image of the person", formalDefinition="Image of the person." ) 685 protected List<Attachment> photo; 686 687 /** 688 * The official qualifications, certifications, accreditations, training, licenses (and other types of educations/skills/capabilities) that authorize or otherwise pertain to the provision of care by the practitioner. 689 690For example, a medical license issued by a medical board of licensure authorizing the practitioner to practice medicine within a certain locality. 691 */ 692 @Child(name = "qualification", type = {}, order=9, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 693 @Description(shortDefinition="Qualifications, certifications, accreditations, licenses, training, etc. pertaining to the provision of care", formalDefinition="The official qualifications, certifications, accreditations, training, licenses (and other types of educations/skills/capabilities) that authorize or otherwise pertain to the provision of care by the practitioner.\r\rFor example, a medical license issued by a medical board of licensure authorizing the practitioner to practice medicine within a certain locality." ) 694 protected List<PractitionerQualificationComponent> qualification; 695 696 /** 697 * A language which may be used to communicate with the practitioner, often for correspondence/administrative purposes. 698 699The `PractitionerRole.communication` property should be used for publishing the languages that a practitioner is able to communicate with patients (on a per Organization/Role basis). 700 */ 701 @Child(name = "communication", type = {}, order=10, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 702 @Description(shortDefinition="A language which may be used to communicate with the practitioner", formalDefinition="A language which may be used to communicate with the practitioner, often for correspondence/administrative purposes.\r\rThe `PractitionerRole.communication` property should be used for publishing the languages that a practitioner is able to communicate with patients (on a per Organization/Role basis)." ) 703 protected List<PractitionerCommunicationComponent> communication; 704 705 private static final long serialVersionUID = -54730811L; 706 707 /** 708 * Constructor 709 */ 710 public Practitioner() { 711 super(); 712 } 713 714 /** 715 * @return {@link #identifier} (An identifier that applies to this person in this role.) 716 */ 717 public List<Identifier> getIdentifier() { 718 if (this.identifier == null) 719 this.identifier = new ArrayList<Identifier>(); 720 return this.identifier; 721 } 722 723 /** 724 * @return Returns a reference to <code>this</code> for easy method chaining 725 */ 726 public Practitioner setIdentifier(List<Identifier> theIdentifier) { 727 this.identifier = theIdentifier; 728 return this; 729 } 730 731 public boolean hasIdentifier() { 732 if (this.identifier == null) 733 return false; 734 for (Identifier item : this.identifier) 735 if (!item.isEmpty()) 736 return true; 737 return false; 738 } 739 740 public Identifier addIdentifier() { //3 741 Identifier t = new Identifier(); 742 if (this.identifier == null) 743 this.identifier = new ArrayList<Identifier>(); 744 this.identifier.add(t); 745 return t; 746 } 747 748 public Practitioner addIdentifier(Identifier t) { //3 749 if (t == null) 750 return this; 751 if (this.identifier == null) 752 this.identifier = new ArrayList<Identifier>(); 753 this.identifier.add(t); 754 return this; 755 } 756 757 /** 758 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3} 759 */ 760 public Identifier getIdentifierFirstRep() { 761 if (getIdentifier().isEmpty()) { 762 addIdentifier(); 763 } 764 return getIdentifier().get(0); 765 } 766 767 /** 768 * @return {@link #active} (Whether this practitioner's record is in active use.). This is the underlying object with id, value and extensions. The accessor "getActive" gives direct access to the value 769 */ 770 public BooleanType getActiveElement() { 771 if (this.active == null) 772 if (Configuration.errorOnAutoCreate()) 773 throw new Error("Attempt to auto-create Practitioner.active"); 774 else if (Configuration.doAutoCreate()) 775 this.active = new BooleanType(); // bb 776 return this.active; 777 } 778 779 public boolean hasActiveElement() { 780 return this.active != null && !this.active.isEmpty(); 781 } 782 783 public boolean hasActive() { 784 return this.active != null && !this.active.isEmpty(); 785 } 786 787 /** 788 * @param value {@link #active} (Whether this practitioner's record is in active use.). This is the underlying object with id, value and extensions. The accessor "getActive" gives direct access to the value 789 */ 790 public Practitioner setActiveElement(BooleanType value) { 791 this.active = value; 792 return this; 793 } 794 795 /** 796 * @return Whether this practitioner's record is in active use. 797 */ 798 public boolean getActive() { 799 return this.active == null || this.active.isEmpty() ? false : this.active.getValue(); 800 } 801 802 /** 803 * @param value Whether this practitioner's record is in active use. 804 */ 805 public Practitioner setActive(boolean value) { 806 if (this.active == null) 807 this.active = new BooleanType(); 808 this.active.setValue(value); 809 return this; 810 } 811 812 /** 813 * @return {@link #name} (The name(s) associated with the practitioner.) 814 */ 815 public List<HumanName> getName() { 816 if (this.name == null) 817 this.name = new ArrayList<HumanName>(); 818 return this.name; 819 } 820 821 /** 822 * @return Returns a reference to <code>this</code> for easy method chaining 823 */ 824 public Practitioner setName(List<HumanName> theName) { 825 this.name = theName; 826 return this; 827 } 828 829 public boolean hasName() { 830 if (this.name == null) 831 return false; 832 for (HumanName item : this.name) 833 if (!item.isEmpty()) 834 return true; 835 return false; 836 } 837 838 public HumanName addName() { //3 839 HumanName t = new HumanName(); 840 if (this.name == null) 841 this.name = new ArrayList<HumanName>(); 842 this.name.add(t); 843 return t; 844 } 845 846 public Practitioner addName(HumanName t) { //3 847 if (t == null) 848 return this; 849 if (this.name == null) 850 this.name = new ArrayList<HumanName>(); 851 this.name.add(t); 852 return this; 853 } 854 855 /** 856 * @return The first repetition of repeating field {@link #name}, creating it if it does not already exist {3} 857 */ 858 public HumanName getNameFirstRep() { 859 if (getName().isEmpty()) { 860 addName(); 861 } 862 return getName().get(0); 863 } 864 865 /** 866 * @return {@link #telecom} (A contact detail for the practitioner, e.g. a telephone number or an email address.) 867 */ 868 public List<ContactPoint> getTelecom() { 869 if (this.telecom == null) 870 this.telecom = new ArrayList<ContactPoint>(); 871 return this.telecom; 872 } 873 874 /** 875 * @return Returns a reference to <code>this</code> for easy method chaining 876 */ 877 public Practitioner setTelecom(List<ContactPoint> theTelecom) { 878 this.telecom = theTelecom; 879 return this; 880 } 881 882 public boolean hasTelecom() { 883 if (this.telecom == null) 884 return false; 885 for (ContactPoint item : this.telecom) 886 if (!item.isEmpty()) 887 return true; 888 return false; 889 } 890 891 public ContactPoint addTelecom() { //3 892 ContactPoint t = new ContactPoint(); 893 if (this.telecom == null) 894 this.telecom = new ArrayList<ContactPoint>(); 895 this.telecom.add(t); 896 return t; 897 } 898 899 public Practitioner addTelecom(ContactPoint t) { //3 900 if (t == null) 901 return this; 902 if (this.telecom == null) 903 this.telecom = new ArrayList<ContactPoint>(); 904 this.telecom.add(t); 905 return this; 906 } 907 908 /** 909 * @return The first repetition of repeating field {@link #telecom}, creating it if it does not already exist {3} 910 */ 911 public ContactPoint getTelecomFirstRep() { 912 if (getTelecom().isEmpty()) { 913 addTelecom(); 914 } 915 return getTelecom().get(0); 916 } 917 918 /** 919 * @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 920 */ 921 public Enumeration<AdministrativeGender> getGenderElement() { 922 if (this.gender == null) 923 if (Configuration.errorOnAutoCreate()) 924 throw new Error("Attempt to auto-create Practitioner.gender"); 925 else if (Configuration.doAutoCreate()) 926 this.gender = new Enumeration<AdministrativeGender>(new AdministrativeGenderEnumFactory()); // bb 927 return this.gender; 928 } 929 930 public boolean hasGenderElement() { 931 return this.gender != null && !this.gender.isEmpty(); 932 } 933 934 public boolean hasGender() { 935 return this.gender != null && !this.gender.isEmpty(); 936 } 937 938 /** 939 * @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 940 */ 941 public Practitioner setGenderElement(Enumeration<AdministrativeGender> value) { 942 this.gender = value; 943 return this; 944 } 945 946 /** 947 * @return Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes. 948 */ 949 public AdministrativeGender getGender() { 950 return this.gender == null ? null : this.gender.getValue(); 951 } 952 953 /** 954 * @param value Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes. 955 */ 956 public Practitioner setGender(AdministrativeGender value) { 957 if (value == null) 958 this.gender = null; 959 else { 960 if (this.gender == null) 961 this.gender = new Enumeration<AdministrativeGender>(new AdministrativeGenderEnumFactory()); 962 this.gender.setValue(value); 963 } 964 return this; 965 } 966 967 /** 968 * @return {@link #birthDate} (The date of birth for the practitioner.). This is the underlying object with id, value and extensions. The accessor "getBirthDate" gives direct access to the value 969 */ 970 public DateType getBirthDateElement() { 971 if (this.birthDate == null) 972 if (Configuration.errorOnAutoCreate()) 973 throw new Error("Attempt to auto-create Practitioner.birthDate"); 974 else if (Configuration.doAutoCreate()) 975 this.birthDate = new DateType(); // bb 976 return this.birthDate; 977 } 978 979 public boolean hasBirthDateElement() { 980 return this.birthDate != null && !this.birthDate.isEmpty(); 981 } 982 983 public boolean hasBirthDate() { 984 return this.birthDate != null && !this.birthDate.isEmpty(); 985 } 986 987 /** 988 * @param value {@link #birthDate} (The date of birth for the practitioner.). This is the underlying object with id, value and extensions. The accessor "getBirthDate" gives direct access to the value 989 */ 990 public Practitioner setBirthDateElement(DateType value) { 991 this.birthDate = value; 992 return this; 993 } 994 995 /** 996 * @return The date of birth for the practitioner. 997 */ 998 public Date getBirthDate() { 999 return this.birthDate == null ? null : this.birthDate.getValue(); 1000 } 1001 1002 /** 1003 * @param value The date of birth for the practitioner. 1004 */ 1005 public Practitioner setBirthDate(Date value) { 1006 if (value == null) 1007 this.birthDate = null; 1008 else { 1009 if (this.birthDate == null) 1010 this.birthDate = new DateType(); 1011 this.birthDate.setValue(value); 1012 } 1013 return this; 1014 } 1015 1016 /** 1017 * @return {@link #deceased} (Indicates if the practitioner is deceased or not.) 1018 */ 1019 public DataType getDeceased() { 1020 return this.deceased; 1021 } 1022 1023 /** 1024 * @return {@link #deceased} (Indicates if the practitioner is deceased or not.) 1025 */ 1026 public BooleanType getDeceasedBooleanType() throws FHIRException { 1027 if (this.deceased == null) 1028 this.deceased = new BooleanType(); 1029 if (!(this.deceased instanceof BooleanType)) 1030 throw new FHIRException("Type mismatch: the type BooleanType was expected, but "+this.deceased.getClass().getName()+" was encountered"); 1031 return (BooleanType) this.deceased; 1032 } 1033 1034 public boolean hasDeceasedBooleanType() { 1035 return this != null && this.deceased instanceof BooleanType; 1036 } 1037 1038 /** 1039 * @return {@link #deceased} (Indicates if the practitioner is deceased or not.) 1040 */ 1041 public DateTimeType getDeceasedDateTimeType() throws FHIRException { 1042 if (this.deceased == null) 1043 this.deceased = new DateTimeType(); 1044 if (!(this.deceased instanceof DateTimeType)) 1045 throw new FHIRException("Type mismatch: the type DateTimeType was expected, but "+this.deceased.getClass().getName()+" was encountered"); 1046 return (DateTimeType) this.deceased; 1047 } 1048 1049 public boolean hasDeceasedDateTimeType() { 1050 return this != null && this.deceased instanceof DateTimeType; 1051 } 1052 1053 public boolean hasDeceased() { 1054 return this.deceased != null && !this.deceased.isEmpty(); 1055 } 1056 1057 /** 1058 * @param value {@link #deceased} (Indicates if the practitioner is deceased or not.) 1059 */ 1060 public Practitioner setDeceased(DataType value) { 1061 if (value != null && !(value instanceof BooleanType || value instanceof DateTimeType)) 1062 throw new FHIRException("Not the right type for Practitioner.deceased[x]: "+value.fhirType()); 1063 this.deceased = value; 1064 return this; 1065 } 1066 1067 /** 1068 * @return {@link #address} (Address(es) of the practitioner that are not role specific (typically home address). 1069Work addresses are not typically entered in this property as they are usually role dependent.) 1070 */ 1071 public List<Address> getAddress() { 1072 if (this.address == null) 1073 this.address = new ArrayList<Address>(); 1074 return this.address; 1075 } 1076 1077 /** 1078 * @return Returns a reference to <code>this</code> for easy method chaining 1079 */ 1080 public Practitioner setAddress(List<Address> theAddress) { 1081 this.address = theAddress; 1082 return this; 1083 } 1084 1085 public boolean hasAddress() { 1086 if (this.address == null) 1087 return false; 1088 for (Address item : this.address) 1089 if (!item.isEmpty()) 1090 return true; 1091 return false; 1092 } 1093 1094 public Address addAddress() { //3 1095 Address t = new Address(); 1096 if (this.address == null) 1097 this.address = new ArrayList<Address>(); 1098 this.address.add(t); 1099 return t; 1100 } 1101 1102 public Practitioner addAddress(Address t) { //3 1103 if (t == null) 1104 return this; 1105 if (this.address == null) 1106 this.address = new ArrayList<Address>(); 1107 this.address.add(t); 1108 return this; 1109 } 1110 1111 /** 1112 * @return The first repetition of repeating field {@link #address}, creating it if it does not already exist {3} 1113 */ 1114 public Address getAddressFirstRep() { 1115 if (getAddress().isEmpty()) { 1116 addAddress(); 1117 } 1118 return getAddress().get(0); 1119 } 1120 1121 /** 1122 * @return {@link #photo} (Image of the person.) 1123 */ 1124 public List<Attachment> getPhoto() { 1125 if (this.photo == null) 1126 this.photo = new ArrayList<Attachment>(); 1127 return this.photo; 1128 } 1129 1130 /** 1131 * @return Returns a reference to <code>this</code> for easy method chaining 1132 */ 1133 public Practitioner setPhoto(List<Attachment> thePhoto) { 1134 this.photo = thePhoto; 1135 return this; 1136 } 1137 1138 public boolean hasPhoto() { 1139 if (this.photo == null) 1140 return false; 1141 for (Attachment item : this.photo) 1142 if (!item.isEmpty()) 1143 return true; 1144 return false; 1145 } 1146 1147 public Attachment addPhoto() { //3 1148 Attachment t = new Attachment(); 1149 if (this.photo == null) 1150 this.photo = new ArrayList<Attachment>(); 1151 this.photo.add(t); 1152 return t; 1153 } 1154 1155 public Practitioner addPhoto(Attachment t) { //3 1156 if (t == null) 1157 return this; 1158 if (this.photo == null) 1159 this.photo = new ArrayList<Attachment>(); 1160 this.photo.add(t); 1161 return this; 1162 } 1163 1164 /** 1165 * @return The first repetition of repeating field {@link #photo}, creating it if it does not already exist {3} 1166 */ 1167 public Attachment getPhotoFirstRep() { 1168 if (getPhoto().isEmpty()) { 1169 addPhoto(); 1170 } 1171 return getPhoto().get(0); 1172 } 1173 1174 /** 1175 * @return {@link #qualification} (The official qualifications, certifications, accreditations, training, licenses (and other types of educations/skills/capabilities) that authorize or otherwise pertain to the provision of care by the practitioner. 1176 1177For example, a medical license issued by a medical board of licensure authorizing the practitioner to practice medicine within a certain locality.) 1178 */ 1179 public List<PractitionerQualificationComponent> getQualification() { 1180 if (this.qualification == null) 1181 this.qualification = new ArrayList<PractitionerQualificationComponent>(); 1182 return this.qualification; 1183 } 1184 1185 /** 1186 * @return Returns a reference to <code>this</code> for easy method chaining 1187 */ 1188 public Practitioner setQualification(List<PractitionerQualificationComponent> theQualification) { 1189 this.qualification = theQualification; 1190 return this; 1191 } 1192 1193 public boolean hasQualification() { 1194 if (this.qualification == null) 1195 return false; 1196 for (PractitionerQualificationComponent item : this.qualification) 1197 if (!item.isEmpty()) 1198 return true; 1199 return false; 1200 } 1201 1202 public PractitionerQualificationComponent addQualification() { //3 1203 PractitionerQualificationComponent t = new PractitionerQualificationComponent(); 1204 if (this.qualification == null) 1205 this.qualification = new ArrayList<PractitionerQualificationComponent>(); 1206 this.qualification.add(t); 1207 return t; 1208 } 1209 1210 public Practitioner addQualification(PractitionerQualificationComponent t) { //3 1211 if (t == null) 1212 return this; 1213 if (this.qualification == null) 1214 this.qualification = new ArrayList<PractitionerQualificationComponent>(); 1215 this.qualification.add(t); 1216 return this; 1217 } 1218 1219 /** 1220 * @return The first repetition of repeating field {@link #qualification}, creating it if it does not already exist {3} 1221 */ 1222 public PractitionerQualificationComponent getQualificationFirstRep() { 1223 if (getQualification().isEmpty()) { 1224 addQualification(); 1225 } 1226 return getQualification().get(0); 1227 } 1228 1229 /** 1230 * @return {@link #communication} (A language which may be used to communicate with the practitioner, often for correspondence/administrative purposes. 1231 1232The `PractitionerRole.communication` property should be used for publishing the languages that a practitioner is able to communicate with patients (on a per Organization/Role basis).) 1233 */ 1234 public List<PractitionerCommunicationComponent> getCommunication() { 1235 if (this.communication == null) 1236 this.communication = new ArrayList<PractitionerCommunicationComponent>(); 1237 return this.communication; 1238 } 1239 1240 /** 1241 * @return Returns a reference to <code>this</code> for easy method chaining 1242 */ 1243 public Practitioner setCommunication(List<PractitionerCommunicationComponent> theCommunication) { 1244 this.communication = theCommunication; 1245 return this; 1246 } 1247 1248 public boolean hasCommunication() { 1249 if (this.communication == null) 1250 return false; 1251 for (PractitionerCommunicationComponent item : this.communication) 1252 if (!item.isEmpty()) 1253 return true; 1254 return false; 1255 } 1256 1257 public PractitionerCommunicationComponent addCommunication() { //3 1258 PractitionerCommunicationComponent t = new PractitionerCommunicationComponent(); 1259 if (this.communication == null) 1260 this.communication = new ArrayList<PractitionerCommunicationComponent>(); 1261 this.communication.add(t); 1262 return t; 1263 } 1264 1265 public Practitioner addCommunication(PractitionerCommunicationComponent t) { //3 1266 if (t == null) 1267 return this; 1268 if (this.communication == null) 1269 this.communication = new ArrayList<PractitionerCommunicationComponent>(); 1270 this.communication.add(t); 1271 return this; 1272 } 1273 1274 /** 1275 * @return The first repetition of repeating field {@link #communication}, creating it if it does not already exist {3} 1276 */ 1277 public PractitionerCommunicationComponent getCommunicationFirstRep() { 1278 if (getCommunication().isEmpty()) { 1279 addCommunication(); 1280 } 1281 return getCommunication().get(0); 1282 } 1283 1284 protected void listChildren(List<Property> children) { 1285 super.listChildren(children); 1286 children.add(new Property("identifier", "Identifier", "An identifier that applies to this person in this role.", 0, java.lang.Integer.MAX_VALUE, identifier)); 1287 children.add(new Property("active", "boolean", "Whether this practitioner's record is in active use.", 0, 1, active)); 1288 children.add(new Property("name", "HumanName", "The name(s) associated with the practitioner.", 0, java.lang.Integer.MAX_VALUE, name)); 1289 children.add(new Property("telecom", "ContactPoint", "A contact detail for the practitioner, e.g. a telephone number or an email address.", 0, java.lang.Integer.MAX_VALUE, telecom)); 1290 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)); 1291 children.add(new Property("birthDate", "date", "The date of birth for the practitioner.", 0, 1, birthDate)); 1292 children.add(new Property("deceased[x]", "boolean|dateTime", "Indicates if the practitioner is deceased or not.", 0, 1, deceased)); 1293 children.add(new Property("address", "Address", "Address(es) of the practitioner that are not role specific (typically home address). \rWork addresses are not typically entered in this property as they are usually role dependent.", 0, java.lang.Integer.MAX_VALUE, address)); 1294 children.add(new Property("photo", "Attachment", "Image of the person.", 0, java.lang.Integer.MAX_VALUE, photo)); 1295 children.add(new Property("qualification", "", "The official qualifications, certifications, accreditations, training, licenses (and other types of educations/skills/capabilities) that authorize or otherwise pertain to the provision of care by the practitioner.\r\rFor example, a medical license issued by a medical board of licensure authorizing the practitioner to practice medicine within a certain locality.", 0, java.lang.Integer.MAX_VALUE, qualification)); 1296 children.add(new Property("communication", "", "A language which may be used to communicate with the practitioner, often for correspondence/administrative purposes.\r\rThe `PractitionerRole.communication` property should be used for publishing the languages that a practitioner is able to communicate with patients (on a per Organization/Role basis).", 0, java.lang.Integer.MAX_VALUE, communication)); 1297 } 1298 1299 @Override 1300 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1301 switch (_hash) { 1302 case -1618432855: /*identifier*/ return new Property("identifier", "Identifier", "An identifier that applies to this person in this role.", 0, java.lang.Integer.MAX_VALUE, identifier); 1303 case -1422950650: /*active*/ return new Property("active", "boolean", "Whether this practitioner's record is in active use.", 0, 1, active); 1304 case 3373707: /*name*/ return new Property("name", "HumanName", "The name(s) associated with the practitioner.", 0, java.lang.Integer.MAX_VALUE, name); 1305 case -1429363305: /*telecom*/ return new Property("telecom", "ContactPoint", "A contact detail for the practitioner, e.g. a telephone number or an email address.", 0, java.lang.Integer.MAX_VALUE, telecom); 1306 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); 1307 case -1210031859: /*birthDate*/ return new Property("birthDate", "date", "The date of birth for the practitioner.", 0, 1, birthDate); 1308 case -1311442804: /*deceased[x]*/ return new Property("deceased[x]", "boolean|dateTime", "Indicates if the practitioner is deceased or not.", 0, 1, deceased); 1309 case 561497972: /*deceased*/ return new Property("deceased[x]", "boolean|dateTime", "Indicates if the practitioner is deceased or not.", 0, 1, deceased); 1310 case 497463828: /*deceasedBoolean*/ return new Property("deceased[x]", "boolean", "Indicates if the practitioner is deceased or not.", 0, 1, deceased); 1311 case -1971804369: /*deceasedDateTime*/ return new Property("deceased[x]", "dateTime", "Indicates if the practitioner is deceased or not.", 0, 1, deceased); 1312 case -1147692044: /*address*/ return new Property("address", "Address", "Address(es) of the practitioner that are not role specific (typically home address). \rWork addresses are not typically entered in this property as they are usually role dependent.", 0, java.lang.Integer.MAX_VALUE, address); 1313 case 106642994: /*photo*/ return new Property("photo", "Attachment", "Image of the person.", 0, java.lang.Integer.MAX_VALUE, photo); 1314 case -631333393: /*qualification*/ return new Property("qualification", "", "The official qualifications, certifications, accreditations, training, licenses (and other types of educations/skills/capabilities) that authorize or otherwise pertain to the provision of care by the practitioner.\r\rFor example, a medical license issued by a medical board of licensure authorizing the practitioner to practice medicine within a certain locality.", 0, java.lang.Integer.MAX_VALUE, qualification); 1315 case -1035284522: /*communication*/ return new Property("communication", "", "A language which may be used to communicate with the practitioner, often for correspondence/administrative purposes.\r\rThe `PractitionerRole.communication` property should be used for publishing the languages that a practitioner is able to communicate with patients (on a per Organization/Role basis).", 0, java.lang.Integer.MAX_VALUE, communication); 1316 default: return super.getNamedProperty(_hash, _name, _checkValid); 1317 } 1318 1319 } 1320 1321 @Override 1322 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1323 switch (hash) { 1324 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 1325 case -1422950650: /*active*/ return this.active == null ? new Base[0] : new Base[] {this.active}; // BooleanType 1326 case 3373707: /*name*/ return this.name == null ? new Base[0] : this.name.toArray(new Base[this.name.size()]); // HumanName 1327 case -1429363305: /*telecom*/ return this.telecom == null ? new Base[0] : this.telecom.toArray(new Base[this.telecom.size()]); // ContactPoint 1328 case -1249512767: /*gender*/ return this.gender == null ? new Base[0] : new Base[] {this.gender}; // Enumeration<AdministrativeGender> 1329 case -1210031859: /*birthDate*/ return this.birthDate == null ? new Base[0] : new Base[] {this.birthDate}; // DateType 1330 case 561497972: /*deceased*/ return this.deceased == null ? new Base[0] : new Base[] {this.deceased}; // DataType 1331 case -1147692044: /*address*/ return this.address == null ? new Base[0] : this.address.toArray(new Base[this.address.size()]); // Address 1332 case 106642994: /*photo*/ return this.photo == null ? new Base[0] : this.photo.toArray(new Base[this.photo.size()]); // Attachment 1333 case -631333393: /*qualification*/ return this.qualification == null ? new Base[0] : this.qualification.toArray(new Base[this.qualification.size()]); // PractitionerQualificationComponent 1334 case -1035284522: /*communication*/ return this.communication == null ? new Base[0] : this.communication.toArray(new Base[this.communication.size()]); // PractitionerCommunicationComponent 1335 default: return super.getProperty(hash, name, checkValid); 1336 } 1337 1338 } 1339 1340 @Override 1341 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1342 switch (hash) { 1343 case -1618432855: // identifier 1344 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier 1345 return value; 1346 case -1422950650: // active 1347 this.active = TypeConvertor.castToBoolean(value); // BooleanType 1348 return value; 1349 case 3373707: // name 1350 this.getName().add(TypeConvertor.castToHumanName(value)); // HumanName 1351 return value; 1352 case -1429363305: // telecom 1353 this.getTelecom().add(TypeConvertor.castToContactPoint(value)); // ContactPoint 1354 return value; 1355 case -1249512767: // gender 1356 value = new AdministrativeGenderEnumFactory().fromType(TypeConvertor.castToCode(value)); 1357 this.gender = (Enumeration) value; // Enumeration<AdministrativeGender> 1358 return value; 1359 case -1210031859: // birthDate 1360 this.birthDate = TypeConvertor.castToDate(value); // DateType 1361 return value; 1362 case 561497972: // deceased 1363 this.deceased = TypeConvertor.castToType(value); // DataType 1364 return value; 1365 case -1147692044: // address 1366 this.getAddress().add(TypeConvertor.castToAddress(value)); // Address 1367 return value; 1368 case 106642994: // photo 1369 this.getPhoto().add(TypeConvertor.castToAttachment(value)); // Attachment 1370 return value; 1371 case -631333393: // qualification 1372 this.getQualification().add((PractitionerQualificationComponent) value); // PractitionerQualificationComponent 1373 return value; 1374 case -1035284522: // communication 1375 this.getCommunication().add((PractitionerCommunicationComponent) value); // PractitionerCommunicationComponent 1376 return value; 1377 default: return super.setProperty(hash, name, value); 1378 } 1379 1380 } 1381 1382 @Override 1383 public Base setProperty(String name, Base value) throws FHIRException { 1384 if (name.equals("identifier")) { 1385 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); 1386 } else if (name.equals("active")) { 1387 this.active = TypeConvertor.castToBoolean(value); // BooleanType 1388 } else if (name.equals("name")) { 1389 this.getName().add(TypeConvertor.castToHumanName(value)); 1390 } else if (name.equals("telecom")) { 1391 this.getTelecom().add(TypeConvertor.castToContactPoint(value)); 1392 } else if (name.equals("gender")) { 1393 value = new AdministrativeGenderEnumFactory().fromType(TypeConvertor.castToCode(value)); 1394 this.gender = (Enumeration) value; // Enumeration<AdministrativeGender> 1395 } else if (name.equals("birthDate")) { 1396 this.birthDate = TypeConvertor.castToDate(value); // DateType 1397 } else if (name.equals("deceased[x]")) { 1398 this.deceased = TypeConvertor.castToType(value); // DataType 1399 } else if (name.equals("address")) { 1400 this.getAddress().add(TypeConvertor.castToAddress(value)); 1401 } else if (name.equals("photo")) { 1402 this.getPhoto().add(TypeConvertor.castToAttachment(value)); 1403 } else if (name.equals("qualification")) { 1404 this.getQualification().add((PractitionerQualificationComponent) value); 1405 } else if (name.equals("communication")) { 1406 this.getCommunication().add((PractitionerCommunicationComponent) value); 1407 } else 1408 return super.setProperty(name, value); 1409 return value; 1410 } 1411 1412 @Override 1413 public Base makeProperty(int hash, String name) throws FHIRException { 1414 switch (hash) { 1415 case -1618432855: return addIdentifier(); 1416 case -1422950650: return getActiveElement(); 1417 case 3373707: return addName(); 1418 case -1429363305: return addTelecom(); 1419 case -1249512767: return getGenderElement(); 1420 case -1210031859: return getBirthDateElement(); 1421 case -1311442804: return getDeceased(); 1422 case 561497972: return getDeceased(); 1423 case -1147692044: return addAddress(); 1424 case 106642994: return addPhoto(); 1425 case -631333393: return addQualification(); 1426 case -1035284522: return addCommunication(); 1427 default: return super.makeProperty(hash, name); 1428 } 1429 1430 } 1431 1432 @Override 1433 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1434 switch (hash) { 1435 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 1436 case -1422950650: /*active*/ return new String[] {"boolean"}; 1437 case 3373707: /*name*/ return new String[] {"HumanName"}; 1438 case -1429363305: /*telecom*/ return new String[] {"ContactPoint"}; 1439 case -1249512767: /*gender*/ return new String[] {"code"}; 1440 case -1210031859: /*birthDate*/ return new String[] {"date"}; 1441 case 561497972: /*deceased*/ return new String[] {"boolean", "dateTime"}; 1442 case -1147692044: /*address*/ return new String[] {"Address"}; 1443 case 106642994: /*photo*/ return new String[] {"Attachment"}; 1444 case -631333393: /*qualification*/ return new String[] {}; 1445 case -1035284522: /*communication*/ return new String[] {}; 1446 default: return super.getTypesForProperty(hash, name); 1447 } 1448 1449 } 1450 1451 @Override 1452 public Base addChild(String name) throws FHIRException { 1453 if (name.equals("identifier")) { 1454 return addIdentifier(); 1455 } 1456 else if (name.equals("active")) { 1457 throw new FHIRException("Cannot call addChild on a singleton property Practitioner.active"); 1458 } 1459 else if (name.equals("name")) { 1460 return addName(); 1461 } 1462 else if (name.equals("telecom")) { 1463 return addTelecom(); 1464 } 1465 else if (name.equals("gender")) { 1466 throw new FHIRException("Cannot call addChild on a singleton property Practitioner.gender"); 1467 } 1468 else if (name.equals("birthDate")) { 1469 throw new FHIRException("Cannot call addChild on a singleton property Practitioner.birthDate"); 1470 } 1471 else if (name.equals("deceasedBoolean")) { 1472 this.deceased = new BooleanType(); 1473 return this.deceased; 1474 } 1475 else if (name.equals("deceasedDateTime")) { 1476 this.deceased = new DateTimeType(); 1477 return this.deceased; 1478 } 1479 else if (name.equals("address")) { 1480 return addAddress(); 1481 } 1482 else if (name.equals("photo")) { 1483 return addPhoto(); 1484 } 1485 else if (name.equals("qualification")) { 1486 return addQualification(); 1487 } 1488 else if (name.equals("communication")) { 1489 return addCommunication(); 1490 } 1491 else 1492 return super.addChild(name); 1493 } 1494 1495 public String fhirType() { 1496 return "Practitioner"; 1497 1498 } 1499 1500 public Practitioner copy() { 1501 Practitioner dst = new Practitioner(); 1502 copyValues(dst); 1503 return dst; 1504 } 1505 1506 public void copyValues(Practitioner dst) { 1507 super.copyValues(dst); 1508 if (identifier != null) { 1509 dst.identifier = new ArrayList<Identifier>(); 1510 for (Identifier i : identifier) 1511 dst.identifier.add(i.copy()); 1512 }; 1513 dst.active = active == null ? null : active.copy(); 1514 if (name != null) { 1515 dst.name = new ArrayList<HumanName>(); 1516 for (HumanName i : name) 1517 dst.name.add(i.copy()); 1518 }; 1519 if (telecom != null) { 1520 dst.telecom = new ArrayList<ContactPoint>(); 1521 for (ContactPoint i : telecom) 1522 dst.telecom.add(i.copy()); 1523 }; 1524 dst.gender = gender == null ? null : gender.copy(); 1525 dst.birthDate = birthDate == null ? null : birthDate.copy(); 1526 dst.deceased = deceased == null ? null : deceased.copy(); 1527 if (address != null) { 1528 dst.address = new ArrayList<Address>(); 1529 for (Address i : address) 1530 dst.address.add(i.copy()); 1531 }; 1532 if (photo != null) { 1533 dst.photo = new ArrayList<Attachment>(); 1534 for (Attachment i : photo) 1535 dst.photo.add(i.copy()); 1536 }; 1537 if (qualification != null) { 1538 dst.qualification = new ArrayList<PractitionerQualificationComponent>(); 1539 for (PractitionerQualificationComponent i : qualification) 1540 dst.qualification.add(i.copy()); 1541 }; 1542 if (communication != null) { 1543 dst.communication = new ArrayList<PractitionerCommunicationComponent>(); 1544 for (PractitionerCommunicationComponent i : communication) 1545 dst.communication.add(i.copy()); 1546 }; 1547 } 1548 1549 protected Practitioner typedCopy() { 1550 return copy(); 1551 } 1552 1553 @Override 1554 public boolean equalsDeep(Base other_) { 1555 if (!super.equalsDeep(other_)) 1556 return false; 1557 if (!(other_ instanceof Practitioner)) 1558 return false; 1559 Practitioner o = (Practitioner) other_; 1560 return compareDeep(identifier, o.identifier, true) && compareDeep(active, o.active, true) && compareDeep(name, o.name, true) 1561 && compareDeep(telecom, o.telecom, true) && compareDeep(gender, o.gender, true) && compareDeep(birthDate, o.birthDate, true) 1562 && compareDeep(deceased, o.deceased, true) && compareDeep(address, o.address, true) && compareDeep(photo, o.photo, true) 1563 && compareDeep(qualification, o.qualification, true) && compareDeep(communication, o.communication, true) 1564 ; 1565 } 1566 1567 @Override 1568 public boolean equalsShallow(Base other_) { 1569 if (!super.equalsShallow(other_)) 1570 return false; 1571 if (!(other_ instanceof Practitioner)) 1572 return false; 1573 Practitioner o = (Practitioner) other_; 1574 return compareValues(active, o.active, true) && compareValues(gender, o.gender, true) && compareValues(birthDate, o.birthDate, true) 1575 ; 1576 } 1577 1578 public boolean isEmpty() { 1579 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, active, name 1580 , telecom, gender, birthDate, deceased, address, photo, qualification, communication 1581 ); 1582 } 1583 1584 @Override 1585 public ResourceType getResourceType() { 1586 return ResourceType.Practitioner; 1587 } 1588 1589 /** 1590 * Search parameter: <b>active</b> 1591 * <p> 1592 * Description: <b>Whether the practitioner record is active</b><br> 1593 * Type: <b>token</b><br> 1594 * Path: <b>Practitioner.active</b><br> 1595 * </p> 1596 */ 1597 @SearchParamDefinition(name="active", path="Practitioner.active", description="Whether the practitioner record is active", type="token" ) 1598 public static final String SP_ACTIVE = "active"; 1599 /** 1600 * <b>Fluent Client</b> search parameter constant for <b>active</b> 1601 * <p> 1602 * Description: <b>Whether the practitioner record is active</b><br> 1603 * Type: <b>token</b><br> 1604 * Path: <b>Practitioner.active</b><br> 1605 * </p> 1606 */ 1607 public static final ca.uhn.fhir.rest.gclient.TokenClientParam ACTIVE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_ACTIVE); 1608 1609 /** 1610 * Search parameter: <b>communication</b> 1611 * <p> 1612 * Description: <b>A language to communicate with the practitioner</b><br> 1613 * Type: <b>token</b><br> 1614 * Path: <b>Practitioner.communication.language</b><br> 1615 * </p> 1616 */ 1617 @SearchParamDefinition(name="communication", path="Practitioner.communication.language", description="A language to communicate with the practitioner", type="token" ) 1618 public static final String SP_COMMUNICATION = "communication"; 1619 /** 1620 * <b>Fluent Client</b> search parameter constant for <b>communication</b> 1621 * <p> 1622 * Description: <b>A language to communicate with the practitioner</b><br> 1623 * Type: <b>token</b><br> 1624 * Path: <b>Practitioner.communication.language</b><br> 1625 * </p> 1626 */ 1627 public static final ca.uhn.fhir.rest.gclient.TokenClientParam COMMUNICATION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_COMMUNICATION); 1628 1629 /** 1630 * Search parameter: <b>death-date</b> 1631 * <p> 1632 * Description: <b>The date of death has been provided and satisfies this search value</b><br> 1633 * Type: <b>date</b><br> 1634 * Path: <b>(Practitioner.deceased.ofType(dateTime))</b><br> 1635 * </p> 1636 */ 1637 @SearchParamDefinition(name="death-date", path="(Practitioner.deceased.ofType(dateTime))", description="The date of death has been provided and satisfies this search value", type="date" ) 1638 public static final String SP_DEATH_DATE = "death-date"; 1639 /** 1640 * <b>Fluent Client</b> search parameter constant for <b>death-date</b> 1641 * <p> 1642 * Description: <b>The date of death has been provided and satisfies this search value</b><br> 1643 * Type: <b>date</b><br> 1644 * Path: <b>(Practitioner.deceased.ofType(dateTime))</b><br> 1645 * </p> 1646 */ 1647 public static final ca.uhn.fhir.rest.gclient.DateClientParam DEATH_DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DEATH_DATE); 1648 1649 /** 1650 * Search parameter: <b>deceased</b> 1651 * <p> 1652 * Description: <b>This Practitioner has been marked as deceased, or has a death date entered</b><br> 1653 * Type: <b>token</b><br> 1654 * Path: <b>Practitioner.deceased.exists() and Practitioner.deceased != false</b><br> 1655 * </p> 1656 */ 1657 @SearchParamDefinition(name="deceased", path="Practitioner.deceased.exists() and Practitioner.deceased != false", description="This Practitioner has been marked as deceased, or has a death date entered", type="token" ) 1658 public static final String SP_DECEASED = "deceased"; 1659 /** 1660 * <b>Fluent Client</b> search parameter constant for <b>deceased</b> 1661 * <p> 1662 * Description: <b>This Practitioner has been marked as deceased, or has a death date entered</b><br> 1663 * Type: <b>token</b><br> 1664 * Path: <b>Practitioner.deceased.exists() and Practitioner.deceased != false</b><br> 1665 * </p> 1666 */ 1667 public static final ca.uhn.fhir.rest.gclient.TokenClientParam DECEASED = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_DECEASED); 1668 1669 /** 1670 * Search parameter: <b>identifier</b> 1671 * <p> 1672 * Description: <b>A practitioner's Identifier</b><br> 1673 * Type: <b>token</b><br> 1674 * Path: <b>Practitioner.identifier | Practitioner.qualification.identifier</b><br> 1675 * </p> 1676 */ 1677 @SearchParamDefinition(name="identifier", path="Practitioner.identifier | Practitioner.qualification.identifier", description="A practitioner's Identifier", type="token" ) 1678 public static final String SP_IDENTIFIER = "identifier"; 1679 /** 1680 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 1681 * <p> 1682 * Description: <b>A practitioner's Identifier</b><br> 1683 * Type: <b>token</b><br> 1684 * Path: <b>Practitioner.identifier | Practitioner.qualification.identifier</b><br> 1685 * </p> 1686 */ 1687 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 1688 1689 /** 1690 * Search parameter: <b>name</b> 1691 * <p> 1692 * 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> 1693 * Type: <b>string</b><br> 1694 * Path: <b>Practitioner.name</b><br> 1695 * </p> 1696 */ 1697 @SearchParamDefinition(name="name", path="Practitioner.name", description="A server defined search that may match any of the string fields in the HumanName, including family, give, prefix, suffix, suffix, and/or text", type="string" ) 1698 public static final String SP_NAME = "name"; 1699 /** 1700 * <b>Fluent Client</b> search parameter constant for <b>name</b> 1701 * <p> 1702 * 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> 1703 * Type: <b>string</b><br> 1704 * Path: <b>Practitioner.name</b><br> 1705 * </p> 1706 */ 1707 public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_NAME); 1708 1709 /** 1710 * Search parameter: <b>qualification-period</b> 1711 * <p> 1712 * Description: <b>The date(s) a qualification is valid for</b><br> 1713 * Type: <b>date</b><br> 1714 * Path: <b>Practitioner.qualification.period</b><br> 1715 * </p> 1716 */ 1717 @SearchParamDefinition(name="qualification-period", path="Practitioner.qualification.period", description="The date(s) a qualification is valid for", type="date" ) 1718 public static final String SP_QUALIFICATION_PERIOD = "qualification-period"; 1719 /** 1720 * <b>Fluent Client</b> search parameter constant for <b>qualification-period</b> 1721 * <p> 1722 * Description: <b>The date(s) a qualification is valid for</b><br> 1723 * Type: <b>date</b><br> 1724 * Path: <b>Practitioner.qualification.period</b><br> 1725 * </p> 1726 */ 1727 public static final ca.uhn.fhir.rest.gclient.DateClientParam QUALIFICATION_PERIOD = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_QUALIFICATION_PERIOD); 1728 1729 /** 1730 * Search parameter: <b>address-city</b> 1731 * <p> 1732 * Description: <b>Multiple Resources: 1733 1734* [Patient](patient.html): A city specified in an address 1735* [Person](person.html): A city specified in an address 1736* [Practitioner](practitioner.html): A city specified in an address 1737* [RelatedPerson](relatedperson.html): A city specified in an address 1738</b><br> 1739 * Type: <b>string</b><br> 1740 * Path: <b>Patient.address.city | Person.address.city | Practitioner.address.city | RelatedPerson.address.city</b><br> 1741 * </p> 1742 */ 1743 @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" ) 1744 public static final String SP_ADDRESS_CITY = "address-city"; 1745 /** 1746 * <b>Fluent Client</b> search parameter constant for <b>address-city</b> 1747 * <p> 1748 * Description: <b>Multiple Resources: 1749 1750* [Patient](patient.html): A city specified in an address 1751* [Person](person.html): A city specified in an address 1752* [Practitioner](practitioner.html): A city specified in an address 1753* [RelatedPerson](relatedperson.html): A city specified in an address 1754</b><br> 1755 * Type: <b>string</b><br> 1756 * Path: <b>Patient.address.city | Person.address.city | Practitioner.address.city | RelatedPerson.address.city</b><br> 1757 * </p> 1758 */ 1759 public static final ca.uhn.fhir.rest.gclient.StringClientParam ADDRESS_CITY = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_ADDRESS_CITY); 1760 1761 /** 1762 * Search parameter: <b>address-country</b> 1763 * <p> 1764 * Description: <b>Multiple Resources: 1765 1766* [Patient](patient.html): A country specified in an address 1767* [Person](person.html): A country specified in an address 1768* [Practitioner](practitioner.html): A country specified in an address 1769* [RelatedPerson](relatedperson.html): A country specified in an address 1770</b><br> 1771 * Type: <b>string</b><br> 1772 * Path: <b>Patient.address.country | Person.address.country | Practitioner.address.country | RelatedPerson.address.country</b><br> 1773 * </p> 1774 */ 1775 @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" ) 1776 public static final String SP_ADDRESS_COUNTRY = "address-country"; 1777 /** 1778 * <b>Fluent Client</b> search parameter constant for <b>address-country</b> 1779 * <p> 1780 * Description: <b>Multiple Resources: 1781 1782* [Patient](patient.html): A country specified in an address 1783* [Person](person.html): A country specified in an address 1784* [Practitioner](practitioner.html): A country specified in an address 1785* [RelatedPerson](relatedperson.html): A country specified in an address 1786</b><br> 1787 * Type: <b>string</b><br> 1788 * Path: <b>Patient.address.country | Person.address.country | Practitioner.address.country | RelatedPerson.address.country</b><br> 1789 * </p> 1790 */ 1791 public static final ca.uhn.fhir.rest.gclient.StringClientParam ADDRESS_COUNTRY = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_ADDRESS_COUNTRY); 1792 1793 /** 1794 * Search parameter: <b>address-postalcode</b> 1795 * <p> 1796 * Description: <b>Multiple Resources: 1797 1798* [Patient](patient.html): A postalCode specified in an address 1799* [Person](person.html): A postal code specified in an address 1800* [Practitioner](practitioner.html): A postalCode specified in an address 1801* [RelatedPerson](relatedperson.html): A postal code specified in an address 1802</b><br> 1803 * Type: <b>string</b><br> 1804 * Path: <b>Patient.address.postalCode | Person.address.postalCode | Practitioner.address.postalCode | RelatedPerson.address.postalCode</b><br> 1805 * </p> 1806 */ 1807 @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" ) 1808 public static final String SP_ADDRESS_POSTALCODE = "address-postalcode"; 1809 /** 1810 * <b>Fluent Client</b> search parameter constant for <b>address-postalcode</b> 1811 * <p> 1812 * Description: <b>Multiple Resources: 1813 1814* [Patient](patient.html): A postalCode specified in an address 1815* [Person](person.html): A postal code specified in an address 1816* [Practitioner](practitioner.html): A postalCode specified in an address 1817* [RelatedPerson](relatedperson.html): A postal code specified in an address 1818</b><br> 1819 * Type: <b>string</b><br> 1820 * Path: <b>Patient.address.postalCode | Person.address.postalCode | Practitioner.address.postalCode | RelatedPerson.address.postalCode</b><br> 1821 * </p> 1822 */ 1823 public static final ca.uhn.fhir.rest.gclient.StringClientParam ADDRESS_POSTALCODE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_ADDRESS_POSTALCODE); 1824 1825 /** 1826 * Search parameter: <b>address-state</b> 1827 * <p> 1828 * Description: <b>Multiple Resources: 1829 1830* [Patient](patient.html): A state specified in an address 1831* [Person](person.html): A state specified in an address 1832* [Practitioner](practitioner.html): A state specified in an address 1833* [RelatedPerson](relatedperson.html): A state specified in an address 1834</b><br> 1835 * Type: <b>string</b><br> 1836 * Path: <b>Patient.address.state | Person.address.state | Practitioner.address.state | RelatedPerson.address.state</b><br> 1837 * </p> 1838 */ 1839 @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" ) 1840 public static final String SP_ADDRESS_STATE = "address-state"; 1841 /** 1842 * <b>Fluent Client</b> search parameter constant for <b>address-state</b> 1843 * <p> 1844 * Description: <b>Multiple Resources: 1845 1846* [Patient](patient.html): A state specified in an address 1847* [Person](person.html): A state specified in an address 1848* [Practitioner](practitioner.html): A state specified in an address 1849* [RelatedPerson](relatedperson.html): A state specified in an address 1850</b><br> 1851 * Type: <b>string</b><br> 1852 * Path: <b>Patient.address.state | Person.address.state | Practitioner.address.state | RelatedPerson.address.state</b><br> 1853 * </p> 1854 */ 1855 public static final ca.uhn.fhir.rest.gclient.StringClientParam ADDRESS_STATE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_ADDRESS_STATE); 1856 1857 /** 1858 * Search parameter: <b>address-use</b> 1859 * <p> 1860 * Description: <b>Multiple Resources: 1861 1862* [Patient](patient.html): A use code specified in an address 1863* [Person](person.html): A use code specified in an address 1864* [Practitioner](practitioner.html): A use code specified in an address 1865* [RelatedPerson](relatedperson.html): A use code specified in an address 1866</b><br> 1867 * Type: <b>token</b><br> 1868 * Path: <b>Patient.address.use | Person.address.use | Practitioner.address.use | RelatedPerson.address.use</b><br> 1869 * </p> 1870 */ 1871 @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" ) 1872 public static final String SP_ADDRESS_USE = "address-use"; 1873 /** 1874 * <b>Fluent Client</b> search parameter constant for <b>address-use</b> 1875 * <p> 1876 * Description: <b>Multiple Resources: 1877 1878* [Patient](patient.html): A use code specified in an address 1879* [Person](person.html): A use code specified in an address 1880* [Practitioner](practitioner.html): A use code specified in an address 1881* [RelatedPerson](relatedperson.html): A use code specified in an address 1882</b><br> 1883 * Type: <b>token</b><br> 1884 * Path: <b>Patient.address.use | Person.address.use | Practitioner.address.use | RelatedPerson.address.use</b><br> 1885 * </p> 1886 */ 1887 public static final ca.uhn.fhir.rest.gclient.TokenClientParam ADDRESS_USE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_ADDRESS_USE); 1888 1889 /** 1890 * Search parameter: <b>address</b> 1891 * <p> 1892 * Description: <b>Multiple Resources: 1893 1894* [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 1895* [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 1896* [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 1897* [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 1898</b><br> 1899 * Type: <b>string</b><br> 1900 * Path: <b>Patient.address | Person.address | Practitioner.address | RelatedPerson.address</b><br> 1901 * </p> 1902 */ 1903 @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" ) 1904 public static final String SP_ADDRESS = "address"; 1905 /** 1906 * <b>Fluent Client</b> search parameter constant for <b>address</b> 1907 * <p> 1908 * Description: <b>Multiple Resources: 1909 1910* [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 1911* [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 1912* [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 1913* [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 1914</b><br> 1915 * Type: <b>string</b><br> 1916 * Path: <b>Patient.address | Person.address | Practitioner.address | RelatedPerson.address</b><br> 1917 * </p> 1918 */ 1919 public static final ca.uhn.fhir.rest.gclient.StringClientParam ADDRESS = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_ADDRESS); 1920 1921 /** 1922 * Search parameter: <b>email</b> 1923 * <p> 1924 * Description: <b>Multiple Resources: 1925 1926* [Patient](patient.html): A value in an email contact 1927* [Person](person.html): A value in an email contact 1928* [Practitioner](practitioner.html): A value in an email contact 1929* [PractitionerRole](practitionerrole.html): A value in an email contact 1930* [RelatedPerson](relatedperson.html): A value in an email contact 1931</b><br> 1932 * Type: <b>token</b><br> 1933 * Path: <b>Patient.telecom.where(system='email') | Person.telecom.where(system='email') | Practitioner.telecom.where(system='email') | PractitionerRole.contact.telecom.where(system='email') | RelatedPerson.telecom.where(system='email')</b><br> 1934 * </p> 1935 */ 1936 @SearchParamDefinition(name="email", path="Patient.telecom.where(system='email') | Person.telecom.where(system='email') | Practitioner.telecom.where(system='email') | PractitionerRole.contact.telecom.where(system='email') | RelatedPerson.telecom.where(system='email')", description="Multiple Resources: \r\n\r\n* [Patient](patient.html): A value in an email contact\r\n* [Person](person.html): A value in an email contact\r\n* [Practitioner](practitioner.html): A value in an email contact\r\n* [PractitionerRole](practitionerrole.html): A value in an email contact\r\n* [RelatedPerson](relatedperson.html): A value in an email contact\r\n", type="token" ) 1937 public static final String SP_EMAIL = "email"; 1938 /** 1939 * <b>Fluent Client</b> search parameter constant for <b>email</b> 1940 * <p> 1941 * Description: <b>Multiple Resources: 1942 1943* [Patient](patient.html): A value in an email contact 1944* [Person](person.html): A value in an email contact 1945* [Practitioner](practitioner.html): A value in an email contact 1946* [PractitionerRole](practitionerrole.html): A value in an email contact 1947* [RelatedPerson](relatedperson.html): A value in an email contact 1948</b><br> 1949 * Type: <b>token</b><br> 1950 * Path: <b>Patient.telecom.where(system='email') | Person.telecom.where(system='email') | Practitioner.telecom.where(system='email') | PractitionerRole.contact.telecom.where(system='email') | RelatedPerson.telecom.where(system='email')</b><br> 1951 * </p> 1952 */ 1953 public static final ca.uhn.fhir.rest.gclient.TokenClientParam EMAIL = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_EMAIL); 1954 1955 /** 1956 * Search parameter: <b>family</b> 1957 * <p> 1958 * Description: <b>Multiple Resources: 1959 1960* [Patient](patient.html): A portion of the family name of the patient 1961* [Practitioner](practitioner.html): A portion of the family name 1962</b><br> 1963 * Type: <b>string</b><br> 1964 * Path: <b>Patient.name.family | Practitioner.name.family</b><br> 1965 * </p> 1966 */ 1967 @SearchParamDefinition(name="family", path="Patient.name.family | Practitioner.name.family", description="Multiple Resources: \r\n\r\n* [Patient](patient.html): A portion of the family name of the patient\r\n* [Practitioner](practitioner.html): A portion of the family name\r\n", type="string" ) 1968 public static final String SP_FAMILY = "family"; 1969 /** 1970 * <b>Fluent Client</b> search parameter constant for <b>family</b> 1971 * <p> 1972 * Description: <b>Multiple Resources: 1973 1974* [Patient](patient.html): A portion of the family name of the patient 1975* [Practitioner](practitioner.html): A portion of the family name 1976</b><br> 1977 * Type: <b>string</b><br> 1978 * Path: <b>Patient.name.family | Practitioner.name.family</b><br> 1979 * </p> 1980 */ 1981 public static final ca.uhn.fhir.rest.gclient.StringClientParam FAMILY = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_FAMILY); 1982 1983 /** 1984 * Search parameter: <b>gender</b> 1985 * <p> 1986 * Description: <b>Multiple Resources: 1987 1988* [Patient](patient.html): Gender of the patient 1989* [Person](person.html): The gender of the person 1990* [Practitioner](practitioner.html): Gender of the practitioner 1991* [RelatedPerson](relatedperson.html): Gender of the related person 1992</b><br> 1993 * Type: <b>token</b><br> 1994 * Path: <b>Patient.gender | Person.gender | Practitioner.gender | RelatedPerson.gender</b><br> 1995 * </p> 1996 */ 1997 @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" ) 1998 public static final String SP_GENDER = "gender"; 1999 /** 2000 * <b>Fluent Client</b> search parameter constant for <b>gender</b> 2001 * <p> 2002 * Description: <b>Multiple Resources: 2003 2004* [Patient](patient.html): Gender of the patient 2005* [Person](person.html): The gender of the person 2006* [Practitioner](practitioner.html): Gender of the practitioner 2007* [RelatedPerson](relatedperson.html): Gender of the related person 2008</b><br> 2009 * Type: <b>token</b><br> 2010 * Path: <b>Patient.gender | Person.gender | Practitioner.gender | RelatedPerson.gender</b><br> 2011 * </p> 2012 */ 2013 public static final ca.uhn.fhir.rest.gclient.TokenClientParam GENDER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_GENDER); 2014 2015 /** 2016 * Search parameter: <b>given</b> 2017 * <p> 2018 * Description: <b>Multiple Resources: 2019 2020* [Patient](patient.html): A portion of the given name of the patient 2021* [Practitioner](practitioner.html): A portion of the given name 2022</b><br> 2023 * Type: <b>string</b><br> 2024 * Path: <b>Patient.name.given | Practitioner.name.given</b><br> 2025 * </p> 2026 */ 2027 @SearchParamDefinition(name="given", path="Patient.name.given | Practitioner.name.given", description="Multiple Resources: \r\n\r\n* [Patient](patient.html): A portion of the given name of the patient\r\n* [Practitioner](practitioner.html): A portion of the given name\r\n", type="string" ) 2028 public static final String SP_GIVEN = "given"; 2029 /** 2030 * <b>Fluent Client</b> search parameter constant for <b>given</b> 2031 * <p> 2032 * Description: <b>Multiple Resources: 2033 2034* [Patient](patient.html): A portion of the given name of the patient 2035* [Practitioner](practitioner.html): A portion of the given name 2036</b><br> 2037 * Type: <b>string</b><br> 2038 * Path: <b>Patient.name.given | Practitioner.name.given</b><br> 2039 * </p> 2040 */ 2041 public static final ca.uhn.fhir.rest.gclient.StringClientParam GIVEN = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_GIVEN); 2042 2043 /** 2044 * Search parameter: <b>phone</b> 2045 * <p> 2046 * Description: <b>Multiple Resources: 2047 2048* [Patient](patient.html): A value in a phone contact 2049* [Person](person.html): A value in a phone contact 2050* [Practitioner](practitioner.html): A value in a phone contact 2051* [PractitionerRole](practitionerrole.html): A value in a phone contact 2052* [RelatedPerson](relatedperson.html): A value in a phone contact 2053</b><br> 2054 * Type: <b>token</b><br> 2055 * Path: <b>Patient.telecom.where(system='phone') | Person.telecom.where(system='phone') | Practitioner.telecom.where(system='phone') | PractitionerRole.contact.telecom.where(system='phone') | RelatedPerson.telecom.where(system='phone')</b><br> 2056 * </p> 2057 */ 2058 @SearchParamDefinition(name="phone", path="Patient.telecom.where(system='phone') | Person.telecom.where(system='phone') | Practitioner.telecom.where(system='phone') | PractitionerRole.contact.telecom.where(system='phone') | RelatedPerson.telecom.where(system='phone')", description="Multiple Resources: \r\n\r\n* [Patient](patient.html): A value in a phone contact\r\n* [Person](person.html): A value in a phone contact\r\n* [Practitioner](practitioner.html): A value in a phone contact\r\n* [PractitionerRole](practitionerrole.html): A value in a phone contact\r\n* [RelatedPerson](relatedperson.html): A value in a phone contact\r\n", type="token" ) 2059 public static final String SP_PHONE = "phone"; 2060 /** 2061 * <b>Fluent Client</b> search parameter constant for <b>phone</b> 2062 * <p> 2063 * Description: <b>Multiple Resources: 2064 2065* [Patient](patient.html): A value in a phone contact 2066* [Person](person.html): A value in a phone contact 2067* [Practitioner](practitioner.html): A value in a phone contact 2068* [PractitionerRole](practitionerrole.html): A value in a phone contact 2069* [RelatedPerson](relatedperson.html): A value in a phone contact 2070</b><br> 2071 * Type: <b>token</b><br> 2072 * Path: <b>Patient.telecom.where(system='phone') | Person.telecom.where(system='phone') | Practitioner.telecom.where(system='phone') | PractitionerRole.contact.telecom.where(system='phone') | RelatedPerson.telecom.where(system='phone')</b><br> 2073 * </p> 2074 */ 2075 public static final ca.uhn.fhir.rest.gclient.TokenClientParam PHONE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_PHONE); 2076 2077 /** 2078 * Search parameter: <b>phonetic</b> 2079 * <p> 2080 * Description: <b>Multiple Resources: 2081 2082* [Patient](patient.html): A portion of either family or given name using some kind of phonetic matching algorithm 2083* [Person](person.html): A portion of name using some kind of phonetic matching algorithm 2084* [Practitioner](practitioner.html): A portion of either family or given name using some kind of phonetic matching algorithm 2085* [RelatedPerson](relatedperson.html): A portion of name using some kind of phonetic matching algorithm 2086</b><br> 2087 * Type: <b>string</b><br> 2088 * Path: <b>Patient.name | Person.name | Practitioner.name | RelatedPerson.name</b><br> 2089 * </p> 2090 */ 2091 @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" ) 2092 public static final String SP_PHONETIC = "phonetic"; 2093 /** 2094 * <b>Fluent Client</b> search parameter constant for <b>phonetic</b> 2095 * <p> 2096 * Description: <b>Multiple Resources: 2097 2098* [Patient](patient.html): A portion of either family or given name using some kind of phonetic matching algorithm 2099* [Person](person.html): A portion of name using some kind of phonetic matching algorithm 2100* [Practitioner](practitioner.html): A portion of either family or given name using some kind of phonetic matching algorithm 2101* [RelatedPerson](relatedperson.html): A portion of name using some kind of phonetic matching algorithm 2102</b><br> 2103 * Type: <b>string</b><br> 2104 * Path: <b>Patient.name | Person.name | Practitioner.name | RelatedPerson.name</b><br> 2105 * </p> 2106 */ 2107 public static final ca.uhn.fhir.rest.gclient.StringClientParam PHONETIC = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_PHONETIC); 2108 2109 /** 2110 * Search parameter: <b>telecom</b> 2111 * <p> 2112 * Description: <b>Multiple Resources: 2113 2114* [Patient](patient.html): The value in any kind of telecom details of the patient 2115* [Person](person.html): The value in any kind of contact 2116* [Practitioner](practitioner.html): The value in any kind of contact 2117* [PractitionerRole](practitionerrole.html): The value in any kind of contact 2118* [RelatedPerson](relatedperson.html): The value in any kind of contact 2119</b><br> 2120 * Type: <b>token</b><br> 2121 * Path: <b>Patient.telecom | Person.telecom | Practitioner.telecom | PractitionerRole.contact.telecom | RelatedPerson.telecom</b><br> 2122 * </p> 2123 */ 2124 @SearchParamDefinition(name="telecom", path="Patient.telecom | Person.telecom | Practitioner.telecom | PractitionerRole.contact.telecom | RelatedPerson.telecom", description="Multiple Resources: \r\n\r\n* [Patient](patient.html): The value in any kind of telecom details of the patient\r\n* [Person](person.html): The value in any kind of contact\r\n* [Practitioner](practitioner.html): The value in any kind of contact\r\n* [PractitionerRole](practitionerrole.html): The value in any kind of contact\r\n* [RelatedPerson](relatedperson.html): The value in any kind of contact\r\n", type="token" ) 2125 public static final String SP_TELECOM = "telecom"; 2126 /** 2127 * <b>Fluent Client</b> search parameter constant for <b>telecom</b> 2128 * <p> 2129 * Description: <b>Multiple Resources: 2130 2131* [Patient](patient.html): The value in any kind of telecom details of the patient 2132* [Person](person.html): The value in any kind of contact 2133* [Practitioner](practitioner.html): The value in any kind of contact 2134* [PractitionerRole](practitionerrole.html): The value in any kind of contact 2135* [RelatedPerson](relatedperson.html): The value in any kind of contact 2136</b><br> 2137 * Type: <b>token</b><br> 2138 * Path: <b>Patient.telecom | Person.telecom | Practitioner.telecom | PractitionerRole.contact.telecom | RelatedPerson.telecom</b><br> 2139 * </p> 2140 */ 2141 public static final ca.uhn.fhir.rest.gclient.TokenClientParam TELECOM = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TELECOM); 2142 2143 2144} 2145