001package org.hl7.fhir.r4.model; 002 003/* 004 Copyright (c) 2011+, HL7, Inc. 005 All rights reserved. 006 007 Redistribution and use in source and binary forms, with or without modification, 008 are permitted provided that the following conditions are met: 009 010 * Redistributions of source code must retain the above copyright notice, this 011 list of conditions and the following disclaimer. 012 * Redistributions in binary form must reproduce the above copyright notice, 013 this list of conditions and the following disclaimer in the documentation 014 and/or other materials provided with the distribution. 015 * Neither the name of HL7 nor the names of its contributors may be used to 016 endorse or promote products derived from this software without specific 017 prior written permission. 018 019 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 020 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 021 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 022 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 023 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 024 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 025 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 026 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 027 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 028 POSSIBILITY OF SUCH DAMAGE. 029 030*/ 031 032// Generated on Sun, May 6, 2018 17:51-0400 for FHIR v3.4.0 033 034import java.util.*; 035 036import org.hl7.fhir.utilities.Utilities; 037import org.hl7.fhir.r4.model.Enumerations.*; 038import ca.uhn.fhir.model.api.annotation.ResourceDef; 039import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 040import ca.uhn.fhir.model.api.annotation.Child; 041import ca.uhn.fhir.model.api.annotation.ChildOrder; 042import ca.uhn.fhir.model.api.annotation.Description; 043import ca.uhn.fhir.model.api.annotation.Block; 044import org.hl7.fhir.instance.model.api.*; 045import org.hl7.fhir.exceptions.FHIRException; 046/** 047 * Significant health conditions for a person related to the patient relevant in the context of care for the patient. 048 */ 049@ResourceDef(name="FamilyMemberHistory", profile="http://hl7.org/fhir/Profile/FamilyMemberHistory") 050public class FamilyMemberHistory extends DomainResource { 051 052 public enum FamilyHistoryStatus { 053 /** 054 * Some health information is known and captured, but not complete - see notes for details. 055 */ 056 PARTIAL, 057 /** 058 * All available related health information is captured as of the date (and possibly time) when the family member history was taken. 059 */ 060 COMPLETED, 061 /** 062 * This instance should not have been part of this patient's medical record. 063 */ 064 ENTEREDINERROR, 065 /** 066 * Health information for this individual is unavailable/unknown. 067 */ 068 HEALTHUNKNOWN, 069 /** 070 * added to help the parsers with the generic types 071 */ 072 NULL; 073 public static FamilyHistoryStatus fromCode(String codeString) throws FHIRException { 074 if (codeString == null || "".equals(codeString)) 075 return null; 076 if ("partial".equals(codeString)) 077 return PARTIAL; 078 if ("completed".equals(codeString)) 079 return COMPLETED; 080 if ("entered-in-error".equals(codeString)) 081 return ENTEREDINERROR; 082 if ("health-unknown".equals(codeString)) 083 return HEALTHUNKNOWN; 084 if (Configuration.isAcceptInvalidEnums()) 085 return null; 086 else 087 throw new FHIRException("Unknown FamilyHistoryStatus code '"+codeString+"'"); 088 } 089 public String toCode() { 090 switch (this) { 091 case PARTIAL: return "partial"; 092 case COMPLETED: return "completed"; 093 case ENTEREDINERROR: return "entered-in-error"; 094 case HEALTHUNKNOWN: return "health-unknown"; 095 default: return "?"; 096 } 097 } 098 public String getSystem() { 099 switch (this) { 100 case PARTIAL: return "http://hl7.org/fhir/history-status"; 101 case COMPLETED: return "http://hl7.org/fhir/history-status"; 102 case ENTEREDINERROR: return "http://hl7.org/fhir/history-status"; 103 case HEALTHUNKNOWN: return "http://hl7.org/fhir/history-status"; 104 default: return "?"; 105 } 106 } 107 public String getDefinition() { 108 switch (this) { 109 case PARTIAL: return "Some health information is known and captured, but not complete - see notes for details."; 110 case COMPLETED: return "All available related health information is captured as of the date (and possibly time) when the family member history was taken."; 111 case ENTEREDINERROR: return "This instance should not have been part of this patient's medical record."; 112 case HEALTHUNKNOWN: return "Health information for this individual is unavailable/unknown."; 113 default: return "?"; 114 } 115 } 116 public String getDisplay() { 117 switch (this) { 118 case PARTIAL: return "Partial"; 119 case COMPLETED: return "Completed"; 120 case ENTEREDINERROR: return "Entered in error"; 121 case HEALTHUNKNOWN: return "Health unknown"; 122 default: return "?"; 123 } 124 } 125 } 126 127 public static class FamilyHistoryStatusEnumFactory implements EnumFactory<FamilyHistoryStatus> { 128 public FamilyHistoryStatus fromCode(String codeString) throws IllegalArgumentException { 129 if (codeString == null || "".equals(codeString)) 130 if (codeString == null || "".equals(codeString)) 131 return null; 132 if ("partial".equals(codeString)) 133 return FamilyHistoryStatus.PARTIAL; 134 if ("completed".equals(codeString)) 135 return FamilyHistoryStatus.COMPLETED; 136 if ("entered-in-error".equals(codeString)) 137 return FamilyHistoryStatus.ENTEREDINERROR; 138 if ("health-unknown".equals(codeString)) 139 return FamilyHistoryStatus.HEALTHUNKNOWN; 140 throw new IllegalArgumentException("Unknown FamilyHistoryStatus code '"+codeString+"'"); 141 } 142 public Enumeration<FamilyHistoryStatus> fromType(Base code) throws FHIRException { 143 if (code == null) 144 return null; 145 if (code.isEmpty()) 146 return new Enumeration<FamilyHistoryStatus>(this); 147 String codeString = ((PrimitiveType) code).asStringValue(); 148 if (codeString == null || "".equals(codeString)) 149 return null; 150 if ("partial".equals(codeString)) 151 return new Enumeration<FamilyHistoryStatus>(this, FamilyHistoryStatus.PARTIAL); 152 if ("completed".equals(codeString)) 153 return new Enumeration<FamilyHistoryStatus>(this, FamilyHistoryStatus.COMPLETED); 154 if ("entered-in-error".equals(codeString)) 155 return new Enumeration<FamilyHistoryStatus>(this, FamilyHistoryStatus.ENTEREDINERROR); 156 if ("health-unknown".equals(codeString)) 157 return new Enumeration<FamilyHistoryStatus>(this, FamilyHistoryStatus.HEALTHUNKNOWN); 158 throw new FHIRException("Unknown FamilyHistoryStatus code '"+codeString+"'"); 159 } 160 public String toCode(FamilyHistoryStatus code) { 161 if (code == FamilyHistoryStatus.PARTIAL) 162 return "partial"; 163 if (code == FamilyHistoryStatus.COMPLETED) 164 return "completed"; 165 if (code == FamilyHistoryStatus.ENTEREDINERROR) 166 return "entered-in-error"; 167 if (code == FamilyHistoryStatus.HEALTHUNKNOWN) 168 return "health-unknown"; 169 return "?"; 170 } 171 public String toSystem(FamilyHistoryStatus code) { 172 return code.getSystem(); 173 } 174 } 175 176 @Block() 177 public static class FamilyMemberHistoryConditionComponent extends BackboneElement implements IBaseBackboneElement { 178 /** 179 * The actual condition specified. Could be a coded condition (like MI or Diabetes) or a less specific string like 'cancer' depending on how much is known about the condition and the capabilities of the creating system. 180 */ 181 @Child(name = "code", type = {CodeableConcept.class}, order=1, min=1, max=1, modifier=false, summary=false) 182 @Description(shortDefinition="Condition suffered by relation", formalDefinition="The actual condition specified. Could be a coded condition (like MI or Diabetes) or a less specific string like 'cancer' depending on how much is known about the condition and the capabilities of the creating system." ) 183 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/condition-code") 184 protected CodeableConcept code; 185 186 /** 187 * Indicates what happened as a result of this condition. If the condition resulted in death, deceased date is captured on the relation. 188 */ 189 @Child(name = "outcome", type = {CodeableConcept.class}, order=2, min=0, max=1, modifier=false, summary=false) 190 @Description(shortDefinition="deceased | permanent disability | etc.", formalDefinition="Indicates what happened as a result of this condition. If the condition resulted in death, deceased date is captured on the relation." ) 191 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/condition-outcome") 192 protected CodeableConcept outcome; 193 194 /** 195 * Either the age of onset, range of approximate age or descriptive string can be recorded. For conditions with multiple occurrences, this describes the first known occurrence. 196 */ 197 @Child(name = "onset", type = {Age.class, Range.class, Period.class, StringType.class}, order=3, min=0, max=1, modifier=false, summary=false) 198 @Description(shortDefinition="When condition first manifested", formalDefinition="Either the age of onset, range of approximate age or descriptive string can be recorded. For conditions with multiple occurrences, this describes the first known occurrence." ) 199 protected Type onset; 200 201 /** 202 * An area where general notes can be placed about this specific condition. 203 */ 204 @Child(name = "note", type = {Annotation.class}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 205 @Description(shortDefinition="Extra information about condition", formalDefinition="An area where general notes can be placed about this specific condition." ) 206 protected List<Annotation> note; 207 208 private static final long serialVersionUID = 598309281L; 209 210 /** 211 * Constructor 212 */ 213 public FamilyMemberHistoryConditionComponent() { 214 super(); 215 } 216 217 /** 218 * Constructor 219 */ 220 public FamilyMemberHistoryConditionComponent(CodeableConcept code) { 221 super(); 222 this.code = code; 223 } 224 225 /** 226 * @return {@link #code} (The actual condition specified. Could be a coded condition (like MI or Diabetes) or a less specific string like 'cancer' depending on how much is known about the condition and the capabilities of the creating system.) 227 */ 228 public CodeableConcept getCode() { 229 if (this.code == null) 230 if (Configuration.errorOnAutoCreate()) 231 throw new Error("Attempt to auto-create FamilyMemberHistoryConditionComponent.code"); 232 else if (Configuration.doAutoCreate()) 233 this.code = new CodeableConcept(); // cc 234 return this.code; 235 } 236 237 public boolean hasCode() { 238 return this.code != null && !this.code.isEmpty(); 239 } 240 241 /** 242 * @param value {@link #code} (The actual condition specified. Could be a coded condition (like MI or Diabetes) or a less specific string like 'cancer' depending on how much is known about the condition and the capabilities of the creating system.) 243 */ 244 public FamilyMemberHistoryConditionComponent setCode(CodeableConcept value) { 245 this.code = value; 246 return this; 247 } 248 249 /** 250 * @return {@link #outcome} (Indicates what happened as a result of this condition. If the condition resulted in death, deceased date is captured on the relation.) 251 */ 252 public CodeableConcept getOutcome() { 253 if (this.outcome == null) 254 if (Configuration.errorOnAutoCreate()) 255 throw new Error("Attempt to auto-create FamilyMemberHistoryConditionComponent.outcome"); 256 else if (Configuration.doAutoCreate()) 257 this.outcome = new CodeableConcept(); // cc 258 return this.outcome; 259 } 260 261 public boolean hasOutcome() { 262 return this.outcome != null && !this.outcome.isEmpty(); 263 } 264 265 /** 266 * @param value {@link #outcome} (Indicates what happened as a result of this condition. If the condition resulted in death, deceased date is captured on the relation.) 267 */ 268 public FamilyMemberHistoryConditionComponent setOutcome(CodeableConcept value) { 269 this.outcome = value; 270 return this; 271 } 272 273 /** 274 * @return {@link #onset} (Either the age of onset, range of approximate age or descriptive string can be recorded. For conditions with multiple occurrences, this describes the first known occurrence.) 275 */ 276 public Type getOnset() { 277 return this.onset; 278 } 279 280 /** 281 * @return {@link #onset} (Either the age of onset, range of approximate age or descriptive string can be recorded. For conditions with multiple occurrences, this describes the first known occurrence.) 282 */ 283 public Age getOnsetAge() throws FHIRException { 284 if (this.onset == null) 285 return null; 286 if (!(this.onset instanceof Age)) 287 throw new FHIRException("Type mismatch: the type Age was expected, but "+this.onset.getClass().getName()+" was encountered"); 288 return (Age) this.onset; 289 } 290 291 public boolean hasOnsetAge() { 292 return this != null && this.onset instanceof Age; 293 } 294 295 /** 296 * @return {@link #onset} (Either the age of onset, range of approximate age or descriptive string can be recorded. For conditions with multiple occurrences, this describes the first known occurrence.) 297 */ 298 public Range getOnsetRange() throws FHIRException { 299 if (this.onset == null) 300 return null; 301 if (!(this.onset instanceof Range)) 302 throw new FHIRException("Type mismatch: the type Range was expected, but "+this.onset.getClass().getName()+" was encountered"); 303 return (Range) this.onset; 304 } 305 306 public boolean hasOnsetRange() { 307 return this != null && this.onset instanceof Range; 308 } 309 310 /** 311 * @return {@link #onset} (Either the age of onset, range of approximate age or descriptive string can be recorded. For conditions with multiple occurrences, this describes the first known occurrence.) 312 */ 313 public Period getOnsetPeriod() throws FHIRException { 314 if (this.onset == null) 315 return null; 316 if (!(this.onset instanceof Period)) 317 throw new FHIRException("Type mismatch: the type Period was expected, but "+this.onset.getClass().getName()+" was encountered"); 318 return (Period) this.onset; 319 } 320 321 public boolean hasOnsetPeriod() { 322 return this != null && this.onset instanceof Period; 323 } 324 325 /** 326 * @return {@link #onset} (Either the age of onset, range of approximate age or descriptive string can be recorded. For conditions with multiple occurrences, this describes the first known occurrence.) 327 */ 328 public StringType getOnsetStringType() throws FHIRException { 329 if (this.onset == null) 330 return null; 331 if (!(this.onset instanceof StringType)) 332 throw new FHIRException("Type mismatch: the type StringType was expected, but "+this.onset.getClass().getName()+" was encountered"); 333 return (StringType) this.onset; 334 } 335 336 public boolean hasOnsetStringType() { 337 return this != null && this.onset instanceof StringType; 338 } 339 340 public boolean hasOnset() { 341 return this.onset != null && !this.onset.isEmpty(); 342 } 343 344 /** 345 * @param value {@link #onset} (Either the age of onset, range of approximate age or descriptive string can be recorded. For conditions with multiple occurrences, this describes the first known occurrence.) 346 */ 347 public FamilyMemberHistoryConditionComponent setOnset(Type value) { 348 if (value != null && !(value instanceof Age || value instanceof Range || value instanceof Period || value instanceof StringType)) 349 throw new Error("Not the right type for FamilyMemberHistory.condition.onset[x]: "+value.fhirType()); 350 this.onset = value; 351 return this; 352 } 353 354 /** 355 * @return {@link #note} (An area where general notes can be placed about this specific condition.) 356 */ 357 public List<Annotation> getNote() { 358 if (this.note == null) 359 this.note = new ArrayList<Annotation>(); 360 return this.note; 361 } 362 363 /** 364 * @return Returns a reference to <code>this</code> for easy method chaining 365 */ 366 public FamilyMemberHistoryConditionComponent setNote(List<Annotation> theNote) { 367 this.note = theNote; 368 return this; 369 } 370 371 public boolean hasNote() { 372 if (this.note == null) 373 return false; 374 for (Annotation item : this.note) 375 if (!item.isEmpty()) 376 return true; 377 return false; 378 } 379 380 public Annotation addNote() { //3 381 Annotation t = new Annotation(); 382 if (this.note == null) 383 this.note = new ArrayList<Annotation>(); 384 this.note.add(t); 385 return t; 386 } 387 388 public FamilyMemberHistoryConditionComponent addNote(Annotation t) { //3 389 if (t == null) 390 return this; 391 if (this.note == null) 392 this.note = new ArrayList<Annotation>(); 393 this.note.add(t); 394 return this; 395 } 396 397 /** 398 * @return The first repetition of repeating field {@link #note}, creating it if it does not already exist 399 */ 400 public Annotation getNoteFirstRep() { 401 if (getNote().isEmpty()) { 402 addNote(); 403 } 404 return getNote().get(0); 405 } 406 407 protected void listChildren(List<Property> children) { 408 super.listChildren(children); 409 children.add(new Property("code", "CodeableConcept", "The actual condition specified. Could be a coded condition (like MI or Diabetes) or a less specific string like 'cancer' depending on how much is known about the condition and the capabilities of the creating system.", 0, 1, code)); 410 children.add(new Property("outcome", "CodeableConcept", "Indicates what happened as a result of this condition. If the condition resulted in death, deceased date is captured on the relation.", 0, 1, outcome)); 411 children.add(new Property("onset[x]", "Age|Range|Period|string", "Either the age of onset, range of approximate age or descriptive string can be recorded. For conditions with multiple occurrences, this describes the first known occurrence.", 0, 1, onset)); 412 children.add(new Property("note", "Annotation", "An area where general notes can be placed about this specific condition.", 0, java.lang.Integer.MAX_VALUE, note)); 413 } 414 415 @Override 416 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 417 switch (_hash) { 418 case 3059181: /*code*/ return new Property("code", "CodeableConcept", "The actual condition specified. Could be a coded condition (like MI or Diabetes) or a less specific string like 'cancer' depending on how much is known about the condition and the capabilities of the creating system.", 0, 1, code); 419 case -1106507950: /*outcome*/ return new Property("outcome", "CodeableConcept", "Indicates what happened as a result of this condition. If the condition resulted in death, deceased date is captured on the relation.", 0, 1, outcome); 420 case -1886216323: /*onset[x]*/ return new Property("onset[x]", "Age|Range|Period|string", "Either the age of onset, range of approximate age or descriptive string can be recorded. For conditions with multiple occurrences, this describes the first known occurrence.", 0, 1, onset); 421 case 105901603: /*onset*/ return new Property("onset[x]", "Age|Range|Period|string", "Either the age of onset, range of approximate age or descriptive string can be recorded. For conditions with multiple occurrences, this describes the first known occurrence.", 0, 1, onset); 422 case -1886241828: /*onsetAge*/ return new Property("onset[x]", "Age|Range|Period|string", "Either the age of onset, range of approximate age or descriptive string can be recorded. For conditions with multiple occurrences, this describes the first known occurrence.", 0, 1, onset); 423 case -186664742: /*onsetRange*/ return new Property("onset[x]", "Age|Range|Period|string", "Either the age of onset, range of approximate age or descriptive string can be recorded. For conditions with multiple occurrences, this describes the first known occurrence.", 0, 1, onset); 424 case -1545082428: /*onsetPeriod*/ return new Property("onset[x]", "Age|Range|Period|string", "Either the age of onset, range of approximate age or descriptive string can be recorded. For conditions with multiple occurrences, this describes the first known occurrence.", 0, 1, onset); 425 case -1445342188: /*onsetString*/ return new Property("onset[x]", "Age|Range|Period|string", "Either the age of onset, range of approximate age or descriptive string can be recorded. For conditions with multiple occurrences, this describes the first known occurrence.", 0, 1, onset); 426 case 3387378: /*note*/ return new Property("note", "Annotation", "An area where general notes can be placed about this specific condition.", 0, java.lang.Integer.MAX_VALUE, note); 427 default: return super.getNamedProperty(_hash, _name, _checkValid); 428 } 429 430 } 431 432 @Override 433 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 434 switch (hash) { 435 case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept 436 case -1106507950: /*outcome*/ return this.outcome == null ? new Base[0] : new Base[] {this.outcome}; // CodeableConcept 437 case 105901603: /*onset*/ return this.onset == null ? new Base[0] : new Base[] {this.onset}; // Type 438 case 3387378: /*note*/ return this.note == null ? new Base[0] : this.note.toArray(new Base[this.note.size()]); // Annotation 439 default: return super.getProperty(hash, name, checkValid); 440 } 441 442 } 443 444 @Override 445 public Base setProperty(int hash, String name, Base value) throws FHIRException { 446 switch (hash) { 447 case 3059181: // code 448 this.code = castToCodeableConcept(value); // CodeableConcept 449 return value; 450 case -1106507950: // outcome 451 this.outcome = castToCodeableConcept(value); // CodeableConcept 452 return value; 453 case 105901603: // onset 454 this.onset = castToType(value); // Type 455 return value; 456 case 3387378: // note 457 this.getNote().add(castToAnnotation(value)); // Annotation 458 return value; 459 default: return super.setProperty(hash, name, value); 460 } 461 462 } 463 464 @Override 465 public Base setProperty(String name, Base value) throws FHIRException { 466 if (name.equals("code")) { 467 this.code = castToCodeableConcept(value); // CodeableConcept 468 } else if (name.equals("outcome")) { 469 this.outcome = castToCodeableConcept(value); // CodeableConcept 470 } else if (name.equals("onset[x]")) { 471 this.onset = castToType(value); // Type 472 } else if (name.equals("note")) { 473 this.getNote().add(castToAnnotation(value)); 474 } else 475 return super.setProperty(name, value); 476 return value; 477 } 478 479 @Override 480 public Base makeProperty(int hash, String name) throws FHIRException { 481 switch (hash) { 482 case 3059181: return getCode(); 483 case -1106507950: return getOutcome(); 484 case -1886216323: return getOnset(); 485 case 105901603: return getOnset(); 486 case 3387378: return addNote(); 487 default: return super.makeProperty(hash, name); 488 } 489 490 } 491 492 @Override 493 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 494 switch (hash) { 495 case 3059181: /*code*/ return new String[] {"CodeableConcept"}; 496 case -1106507950: /*outcome*/ return new String[] {"CodeableConcept"}; 497 case 105901603: /*onset*/ return new String[] {"Age", "Range", "Period", "string"}; 498 case 3387378: /*note*/ return new String[] {"Annotation"}; 499 default: return super.getTypesForProperty(hash, name); 500 } 501 502 } 503 504 @Override 505 public Base addChild(String name) throws FHIRException { 506 if (name.equals("code")) { 507 this.code = new CodeableConcept(); 508 return this.code; 509 } 510 else if (name.equals("outcome")) { 511 this.outcome = new CodeableConcept(); 512 return this.outcome; 513 } 514 else if (name.equals("onsetAge")) { 515 this.onset = new Age(); 516 return this.onset; 517 } 518 else if (name.equals("onsetRange")) { 519 this.onset = new Range(); 520 return this.onset; 521 } 522 else if (name.equals("onsetPeriod")) { 523 this.onset = new Period(); 524 return this.onset; 525 } 526 else if (name.equals("onsetString")) { 527 this.onset = new StringType(); 528 return this.onset; 529 } 530 else if (name.equals("note")) { 531 return addNote(); 532 } 533 else 534 return super.addChild(name); 535 } 536 537 public FamilyMemberHistoryConditionComponent copy() { 538 FamilyMemberHistoryConditionComponent dst = new FamilyMemberHistoryConditionComponent(); 539 copyValues(dst); 540 dst.code = code == null ? null : code.copy(); 541 dst.outcome = outcome == null ? null : outcome.copy(); 542 dst.onset = onset == null ? null : onset.copy(); 543 if (note != null) { 544 dst.note = new ArrayList<Annotation>(); 545 for (Annotation i : note) 546 dst.note.add(i.copy()); 547 }; 548 return dst; 549 } 550 551 @Override 552 public boolean equalsDeep(Base other_) { 553 if (!super.equalsDeep(other_)) 554 return false; 555 if (!(other_ instanceof FamilyMemberHistoryConditionComponent)) 556 return false; 557 FamilyMemberHistoryConditionComponent o = (FamilyMemberHistoryConditionComponent) other_; 558 return compareDeep(code, o.code, true) && compareDeep(outcome, o.outcome, true) && compareDeep(onset, o.onset, true) 559 && compareDeep(note, o.note, true); 560 } 561 562 @Override 563 public boolean equalsShallow(Base other_) { 564 if (!super.equalsShallow(other_)) 565 return false; 566 if (!(other_ instanceof FamilyMemberHistoryConditionComponent)) 567 return false; 568 FamilyMemberHistoryConditionComponent o = (FamilyMemberHistoryConditionComponent) other_; 569 return true; 570 } 571 572 public boolean isEmpty() { 573 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, outcome, onset, note 574 ); 575 } 576 577 public String fhirType() { 578 return "FamilyMemberHistory.condition"; 579 580 } 581 582 } 583 584 /** 585 * Business identifiers assigned to this family member history by the performer or other systems which remain constant as the resource is updated and propagates from server to server. 586 */ 587 @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 588 @Description(shortDefinition="External Id(s) for this record", formalDefinition="Business identifiers assigned to this family member history by the performer or other systems which remain constant as the resource is updated and propagates from server to server." ) 589 protected List<Identifier> identifier; 590 591 /** 592 * A protocol or questionnaire that was adhered to in whole or in part by this event. 593 */ 594 @Child(name = "instantiates", type = {UriType.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 595 @Description(shortDefinition="Instantiates protocol or definition", formalDefinition="A protocol or questionnaire that was adhered to in whole or in part by this event." ) 596 protected List<UriType> instantiates; 597 598 /** 599 * A code specifying the status of the record of the family history of a specific family member. 600 */ 601 @Child(name = "status", type = {CodeType.class}, order=2, min=1, max=1, modifier=true, summary=true) 602 @Description(shortDefinition="partial | completed | entered-in-error | health-unknown", formalDefinition="A code specifying the status of the record of the family history of a specific family member." ) 603 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/history-status") 604 protected Enumeration<FamilyHistoryStatus> status; 605 606 /** 607 * Describes why the family member's history is not available. 608 */ 609 @Child(name = "dataAbsentReason", type = {CodeableConcept.class}, order=3, min=0, max=1, modifier=false, summary=true) 610 @Description(shortDefinition="subject-unknown | withheld | unable-to-obtain | deferred", formalDefinition="Describes why the family member's history is not available." ) 611 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/history-absent-reason") 612 protected CodeableConcept dataAbsentReason; 613 614 /** 615 * The person who this history concerns. 616 */ 617 @Child(name = "patient", type = {Patient.class}, order=4, min=1, max=1, modifier=false, summary=true) 618 @Description(shortDefinition="Patient history is about", formalDefinition="The person who this history concerns." ) 619 protected Reference patient; 620 621 /** 622 * The actual object that is the target of the reference (The person who this history concerns.) 623 */ 624 protected Patient patientTarget; 625 626 /** 627 * The date (and possibly time) when the family member history was recorded or last updated. 628 */ 629 @Child(name = "date", type = {DateTimeType.class}, order=5, min=0, max=1, modifier=false, summary=true) 630 @Description(shortDefinition="When history was recorded or last updated", formalDefinition="The date (and possibly time) when the family member history was recorded or last updated." ) 631 protected DateTimeType date; 632 633 /** 634 * This will either be a name or a description; e.g. "Aunt Susan", "my cousin with the red hair". 635 */ 636 @Child(name = "name", type = {StringType.class}, order=6, min=0, max=1, modifier=false, summary=true) 637 @Description(shortDefinition="The family member described", formalDefinition="This will either be a name or a description; e.g. \"Aunt Susan\", \"my cousin with the red hair\"." ) 638 protected StringType name; 639 640 /** 641 * The type of relationship this person has to the patient (father, mother, brother etc.). 642 */ 643 @Child(name = "relationship", type = {CodeableConcept.class}, order=7, min=1, max=1, modifier=false, summary=true) 644 @Description(shortDefinition="Relationship to the subject", formalDefinition="The type of relationship this person has to the patient (father, mother, brother etc.)." ) 645 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/v3-FamilyMember") 646 protected CodeableConcept relationship; 647 648 /** 649 * Administrative Gender - the gender that the relative is considered to have for administration and record keeping purposes. 650 */ 651 @Child(name = "gender", type = {CodeType.class}, order=8, min=0, max=1, modifier=false, summary=true) 652 @Description(shortDefinition="male | female | other | unknown", formalDefinition="Administrative Gender - the gender that the relative is considered to have for administration and record keeping purposes." ) 653 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/administrative-gender") 654 protected Enumeration<AdministrativeGender> gender; 655 656 /** 657 * The actual or approximate date of birth of the relative. 658 */ 659 @Child(name = "born", type = {Period.class, DateType.class, StringType.class}, order=9, min=0, max=1, modifier=false, summary=false) 660 @Description(shortDefinition="(approximate) date of birth", formalDefinition="The actual or approximate date of birth of the relative." ) 661 protected Type born; 662 663 /** 664 * The age of the relative at the time the family member history is recorded. 665 */ 666 @Child(name = "age", type = {Age.class, Range.class, StringType.class}, order=10, min=0, max=1, modifier=false, summary=true) 667 @Description(shortDefinition="(approximate) age", formalDefinition="The age of the relative at the time the family member history is recorded." ) 668 protected Type age; 669 670 /** 671 * If true, indicates that the age value specified is an estimated value. 672 */ 673 @Child(name = "estimatedAge", type = {BooleanType.class}, order=11, min=0, max=1, modifier=false, summary=true) 674 @Description(shortDefinition="Age is estimated?", formalDefinition="If true, indicates that the age value specified is an estimated value." ) 675 protected BooleanType estimatedAge; 676 677 /** 678 * Deceased flag or the actual or approximate age of the relative at the time of death for the family member history record. 679 */ 680 @Child(name = "deceased", type = {BooleanType.class, Age.class, Range.class, DateType.class, StringType.class}, order=12, min=0, max=1, modifier=false, summary=true) 681 @Description(shortDefinition="Dead? How old/when?", formalDefinition="Deceased flag or the actual or approximate age of the relative at the time of death for the family member history record." ) 682 protected Type deceased; 683 684 /** 685 * Describes why the family member history occurred in coded or textual form. 686 */ 687 @Child(name = "reasonCode", type = {CodeableConcept.class}, order=13, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 688 @Description(shortDefinition="Why was family member history performed?", formalDefinition="Describes why the family member history occurred in coded or textual form." ) 689 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/clinical-findings") 690 protected List<CodeableConcept> reasonCode; 691 692 /** 693 * Indicates a Condition, Observation, AllergyIntolerance, or QuestionnaireResponse that justifies this family member history event. 694 */ 695 @Child(name = "reasonReference", type = {Condition.class, Observation.class, AllergyIntolerance.class, QuestionnaireResponse.class, DiagnosticReport.class, DocumentReference.class}, order=14, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 696 @Description(shortDefinition="Why was family member history performed?", formalDefinition="Indicates a Condition, Observation, AllergyIntolerance, or QuestionnaireResponse that justifies this family member history event." ) 697 protected List<Reference> reasonReference; 698 /** 699 * The actual objects that are the target of the reference (Indicates a Condition, Observation, AllergyIntolerance, or QuestionnaireResponse that justifies this family member history event.) 700 */ 701 protected List<Resource> reasonReferenceTarget; 702 703 704 /** 705 * This property allows a non condition-specific note to the made about the related person. Ideally, the note would be in the condition property, but this is not always possible. 706 */ 707 @Child(name = "note", type = {Annotation.class}, order=15, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 708 @Description(shortDefinition="General note about related person", formalDefinition="This property allows a non condition-specific note to the made about the related person. Ideally, the note would be in the condition property, but this is not always possible." ) 709 protected List<Annotation> note; 710 711 /** 712 * The significant Conditions (or condition) that the family member had. This is a repeating section to allow a system to represent more than one condition per resource, though there is nothing stopping multiple resources - one per condition. 713 */ 714 @Child(name = "condition", type = {}, order=16, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 715 @Description(shortDefinition="Condition that the related person had", formalDefinition="The significant Conditions (or condition) that the family member had. This is a repeating section to allow a system to represent more than one condition per resource, though there is nothing stopping multiple resources - one per condition." ) 716 protected List<FamilyMemberHistoryConditionComponent> condition; 717 718 private static final long serialVersionUID = 1058161761L; 719 720 /** 721 * Constructor 722 */ 723 public FamilyMemberHistory() { 724 super(); 725 } 726 727 /** 728 * Constructor 729 */ 730 public FamilyMemberHistory(Enumeration<FamilyHistoryStatus> status, Reference patient, CodeableConcept relationship) { 731 super(); 732 this.status = status; 733 this.patient = patient; 734 this.relationship = relationship; 735 } 736 737 /** 738 * @return {@link #identifier} (Business identifiers assigned to this family member history by the performer or other systems which remain constant as the resource is updated and propagates from server to server.) 739 */ 740 public List<Identifier> getIdentifier() { 741 if (this.identifier == null) 742 this.identifier = new ArrayList<Identifier>(); 743 return this.identifier; 744 } 745 746 /** 747 * @return Returns a reference to <code>this</code> for easy method chaining 748 */ 749 public FamilyMemberHistory setIdentifier(List<Identifier> theIdentifier) { 750 this.identifier = theIdentifier; 751 return this; 752 } 753 754 public boolean hasIdentifier() { 755 if (this.identifier == null) 756 return false; 757 for (Identifier item : this.identifier) 758 if (!item.isEmpty()) 759 return true; 760 return false; 761 } 762 763 public Identifier addIdentifier() { //3 764 Identifier t = new Identifier(); 765 if (this.identifier == null) 766 this.identifier = new ArrayList<Identifier>(); 767 this.identifier.add(t); 768 return t; 769 } 770 771 public FamilyMemberHistory addIdentifier(Identifier t) { //3 772 if (t == null) 773 return this; 774 if (this.identifier == null) 775 this.identifier = new ArrayList<Identifier>(); 776 this.identifier.add(t); 777 return this; 778 } 779 780 /** 781 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist 782 */ 783 public Identifier getIdentifierFirstRep() { 784 if (getIdentifier().isEmpty()) { 785 addIdentifier(); 786 } 787 return getIdentifier().get(0); 788 } 789 790 /** 791 * @return {@link #instantiates} (A protocol or questionnaire that was adhered to in whole or in part by this event.) 792 */ 793 public List<UriType> getInstantiates() { 794 if (this.instantiates == null) 795 this.instantiates = new ArrayList<UriType>(); 796 return this.instantiates; 797 } 798 799 /** 800 * @return Returns a reference to <code>this</code> for easy method chaining 801 */ 802 public FamilyMemberHistory setInstantiates(List<UriType> theInstantiates) { 803 this.instantiates = theInstantiates; 804 return this; 805 } 806 807 public boolean hasInstantiates() { 808 if (this.instantiates == null) 809 return false; 810 for (UriType item : this.instantiates) 811 if (!item.isEmpty()) 812 return true; 813 return false; 814 } 815 816 /** 817 * @return {@link #instantiates} (A protocol or questionnaire that was adhered to in whole or in part by this event.) 818 */ 819 public UriType addInstantiatesElement() {//2 820 UriType t = new UriType(); 821 if (this.instantiates == null) 822 this.instantiates = new ArrayList<UriType>(); 823 this.instantiates.add(t); 824 return t; 825 } 826 827 /** 828 * @param value {@link #instantiates} (A protocol or questionnaire that was adhered to in whole or in part by this event.) 829 */ 830 public FamilyMemberHistory addInstantiates(String value) { //1 831 UriType t = new UriType(); 832 t.setValue(value); 833 if (this.instantiates == null) 834 this.instantiates = new ArrayList<UriType>(); 835 this.instantiates.add(t); 836 return this; 837 } 838 839 /** 840 * @param value {@link #instantiates} (A protocol or questionnaire that was adhered to in whole or in part by this event.) 841 */ 842 public boolean hasInstantiates(String value) { 843 if (this.instantiates == null) 844 return false; 845 for (UriType v : this.instantiates) 846 if (v.getValue().equals(value)) // uri 847 return true; 848 return false; 849 } 850 851 /** 852 * @return {@link #status} (A code specifying the status of the record of the family history of a specific family member.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 853 */ 854 public Enumeration<FamilyHistoryStatus> getStatusElement() { 855 if (this.status == null) 856 if (Configuration.errorOnAutoCreate()) 857 throw new Error("Attempt to auto-create FamilyMemberHistory.status"); 858 else if (Configuration.doAutoCreate()) 859 this.status = new Enumeration<FamilyHistoryStatus>(new FamilyHistoryStatusEnumFactory()); // bb 860 return this.status; 861 } 862 863 public boolean hasStatusElement() { 864 return this.status != null && !this.status.isEmpty(); 865 } 866 867 public boolean hasStatus() { 868 return this.status != null && !this.status.isEmpty(); 869 } 870 871 /** 872 * @param value {@link #status} (A code specifying the status of the record of the family history of a specific family member.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 873 */ 874 public FamilyMemberHistory setStatusElement(Enumeration<FamilyHistoryStatus> value) { 875 this.status = value; 876 return this; 877 } 878 879 /** 880 * @return A code specifying the status of the record of the family history of a specific family member. 881 */ 882 public FamilyHistoryStatus getStatus() { 883 return this.status == null ? null : this.status.getValue(); 884 } 885 886 /** 887 * @param value A code specifying the status of the record of the family history of a specific family member. 888 */ 889 public FamilyMemberHistory setStatus(FamilyHistoryStatus value) { 890 if (this.status == null) 891 this.status = new Enumeration<FamilyHistoryStatus>(new FamilyHistoryStatusEnumFactory()); 892 this.status.setValue(value); 893 return this; 894 } 895 896 /** 897 * @return {@link #dataAbsentReason} (Describes why the family member's history is not available.) 898 */ 899 public CodeableConcept getDataAbsentReason() { 900 if (this.dataAbsentReason == null) 901 if (Configuration.errorOnAutoCreate()) 902 throw new Error("Attempt to auto-create FamilyMemberHistory.dataAbsentReason"); 903 else if (Configuration.doAutoCreate()) 904 this.dataAbsentReason = new CodeableConcept(); // cc 905 return this.dataAbsentReason; 906 } 907 908 public boolean hasDataAbsentReason() { 909 return this.dataAbsentReason != null && !this.dataAbsentReason.isEmpty(); 910 } 911 912 /** 913 * @param value {@link #dataAbsentReason} (Describes why the family member's history is not available.) 914 */ 915 public FamilyMemberHistory setDataAbsentReason(CodeableConcept value) { 916 this.dataAbsentReason = value; 917 return this; 918 } 919 920 /** 921 * @return {@link #patient} (The person who this history concerns.) 922 */ 923 public Reference getPatient() { 924 if (this.patient == null) 925 if (Configuration.errorOnAutoCreate()) 926 throw new Error("Attempt to auto-create FamilyMemberHistory.patient"); 927 else if (Configuration.doAutoCreate()) 928 this.patient = new Reference(); // cc 929 return this.patient; 930 } 931 932 public boolean hasPatient() { 933 return this.patient != null && !this.patient.isEmpty(); 934 } 935 936 /** 937 * @param value {@link #patient} (The person who this history concerns.) 938 */ 939 public FamilyMemberHistory setPatient(Reference value) { 940 this.patient = value; 941 return this; 942 } 943 944 /** 945 * @return {@link #patient} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The person who this history concerns.) 946 */ 947 public Patient getPatientTarget() { 948 if (this.patientTarget == null) 949 if (Configuration.errorOnAutoCreate()) 950 throw new Error("Attempt to auto-create FamilyMemberHistory.patient"); 951 else if (Configuration.doAutoCreate()) 952 this.patientTarget = new Patient(); // aa 953 return this.patientTarget; 954 } 955 956 /** 957 * @param value {@link #patient} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The person who this history concerns.) 958 */ 959 public FamilyMemberHistory setPatientTarget(Patient value) { 960 this.patientTarget = value; 961 return this; 962 } 963 964 /** 965 * @return {@link #date} (The date (and possibly time) when the family member history was recorded or last updated.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value 966 */ 967 public DateTimeType getDateElement() { 968 if (this.date == null) 969 if (Configuration.errorOnAutoCreate()) 970 throw new Error("Attempt to auto-create FamilyMemberHistory.date"); 971 else if (Configuration.doAutoCreate()) 972 this.date = new DateTimeType(); // bb 973 return this.date; 974 } 975 976 public boolean hasDateElement() { 977 return this.date != null && !this.date.isEmpty(); 978 } 979 980 public boolean hasDate() { 981 return this.date != null && !this.date.isEmpty(); 982 } 983 984 /** 985 * @param value {@link #date} (The date (and possibly time) when the family member history was recorded or last updated.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value 986 */ 987 public FamilyMemberHistory setDateElement(DateTimeType value) { 988 this.date = value; 989 return this; 990 } 991 992 /** 993 * @return The date (and possibly time) when the family member history was recorded or last updated. 994 */ 995 public Date getDate() { 996 return this.date == null ? null : this.date.getValue(); 997 } 998 999 /** 1000 * @param value The date (and possibly time) when the family member history was recorded or last updated. 1001 */ 1002 public FamilyMemberHistory setDate(Date value) { 1003 if (value == null) 1004 this.date = null; 1005 else { 1006 if (this.date == null) 1007 this.date = new DateTimeType(); 1008 this.date.setValue(value); 1009 } 1010 return this; 1011 } 1012 1013 /** 1014 * @return {@link #name} (This will either be a name or a description; e.g. "Aunt Susan", "my cousin with the red hair".). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value 1015 */ 1016 public StringType getNameElement() { 1017 if (this.name == null) 1018 if (Configuration.errorOnAutoCreate()) 1019 throw new Error("Attempt to auto-create FamilyMemberHistory.name"); 1020 else if (Configuration.doAutoCreate()) 1021 this.name = new StringType(); // bb 1022 return this.name; 1023 } 1024 1025 public boolean hasNameElement() { 1026 return this.name != null && !this.name.isEmpty(); 1027 } 1028 1029 public boolean hasName() { 1030 return this.name != null && !this.name.isEmpty(); 1031 } 1032 1033 /** 1034 * @param value {@link #name} (This will either be a name or a description; e.g. "Aunt Susan", "my cousin with the red hair".). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value 1035 */ 1036 public FamilyMemberHistory setNameElement(StringType value) { 1037 this.name = value; 1038 return this; 1039 } 1040 1041 /** 1042 * @return This will either be a name or a description; e.g. "Aunt Susan", "my cousin with the red hair". 1043 */ 1044 public String getName() { 1045 return this.name == null ? null : this.name.getValue(); 1046 } 1047 1048 /** 1049 * @param value This will either be a name or a description; e.g. "Aunt Susan", "my cousin with the red hair". 1050 */ 1051 public FamilyMemberHistory setName(String value) { 1052 if (Utilities.noString(value)) 1053 this.name = null; 1054 else { 1055 if (this.name == null) 1056 this.name = new StringType(); 1057 this.name.setValue(value); 1058 } 1059 return this; 1060 } 1061 1062 /** 1063 * @return {@link #relationship} (The type of relationship this person has to the patient (father, mother, brother etc.).) 1064 */ 1065 public CodeableConcept getRelationship() { 1066 if (this.relationship == null) 1067 if (Configuration.errorOnAutoCreate()) 1068 throw new Error("Attempt to auto-create FamilyMemberHistory.relationship"); 1069 else if (Configuration.doAutoCreate()) 1070 this.relationship = new CodeableConcept(); // cc 1071 return this.relationship; 1072 } 1073 1074 public boolean hasRelationship() { 1075 return this.relationship != null && !this.relationship.isEmpty(); 1076 } 1077 1078 /** 1079 * @param value {@link #relationship} (The type of relationship this person has to the patient (father, mother, brother etc.).) 1080 */ 1081 public FamilyMemberHistory setRelationship(CodeableConcept value) { 1082 this.relationship = value; 1083 return this; 1084 } 1085 1086 /** 1087 * @return {@link #gender} (Administrative Gender - the gender that the relative 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 1088 */ 1089 public Enumeration<AdministrativeGender> getGenderElement() { 1090 if (this.gender == null) 1091 if (Configuration.errorOnAutoCreate()) 1092 throw new Error("Attempt to auto-create FamilyMemberHistory.gender"); 1093 else if (Configuration.doAutoCreate()) 1094 this.gender = new Enumeration<AdministrativeGender>(new AdministrativeGenderEnumFactory()); // bb 1095 return this.gender; 1096 } 1097 1098 public boolean hasGenderElement() { 1099 return this.gender != null && !this.gender.isEmpty(); 1100 } 1101 1102 public boolean hasGender() { 1103 return this.gender != null && !this.gender.isEmpty(); 1104 } 1105 1106 /** 1107 * @param value {@link #gender} (Administrative Gender - the gender that the relative 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 1108 */ 1109 public FamilyMemberHistory setGenderElement(Enumeration<AdministrativeGender> value) { 1110 this.gender = value; 1111 return this; 1112 } 1113 1114 /** 1115 * @return Administrative Gender - the gender that the relative is considered to have for administration and record keeping purposes. 1116 */ 1117 public AdministrativeGender getGender() { 1118 return this.gender == null ? null : this.gender.getValue(); 1119 } 1120 1121 /** 1122 * @param value Administrative Gender - the gender that the relative is considered to have for administration and record keeping purposes. 1123 */ 1124 public FamilyMemberHistory setGender(AdministrativeGender value) { 1125 if (value == null) 1126 this.gender = null; 1127 else { 1128 if (this.gender == null) 1129 this.gender = new Enumeration<AdministrativeGender>(new AdministrativeGenderEnumFactory()); 1130 this.gender.setValue(value); 1131 } 1132 return this; 1133 } 1134 1135 /** 1136 * @return {@link #born} (The actual or approximate date of birth of the relative.) 1137 */ 1138 public Type getBorn() { 1139 return this.born; 1140 } 1141 1142 /** 1143 * @return {@link #born} (The actual or approximate date of birth of the relative.) 1144 */ 1145 public Period getBornPeriod() throws FHIRException { 1146 if (this.born == null) 1147 return null; 1148 if (!(this.born instanceof Period)) 1149 throw new FHIRException("Type mismatch: the type Period was expected, but "+this.born.getClass().getName()+" was encountered"); 1150 return (Period) this.born; 1151 } 1152 1153 public boolean hasBornPeriod() { 1154 return this != null && this.born instanceof Period; 1155 } 1156 1157 /** 1158 * @return {@link #born} (The actual or approximate date of birth of the relative.) 1159 */ 1160 public DateType getBornDateType() throws FHIRException { 1161 if (this.born == null) 1162 return null; 1163 if (!(this.born instanceof DateType)) 1164 throw new FHIRException("Type mismatch: the type DateType was expected, but "+this.born.getClass().getName()+" was encountered"); 1165 return (DateType) this.born; 1166 } 1167 1168 public boolean hasBornDateType() { 1169 return this != null && this.born instanceof DateType; 1170 } 1171 1172 /** 1173 * @return {@link #born} (The actual or approximate date of birth of the relative.) 1174 */ 1175 public StringType getBornStringType() throws FHIRException { 1176 if (this.born == null) 1177 return null; 1178 if (!(this.born instanceof StringType)) 1179 throw new FHIRException("Type mismatch: the type StringType was expected, but "+this.born.getClass().getName()+" was encountered"); 1180 return (StringType) this.born; 1181 } 1182 1183 public boolean hasBornStringType() { 1184 return this != null && this.born instanceof StringType; 1185 } 1186 1187 public boolean hasBorn() { 1188 return this.born != null && !this.born.isEmpty(); 1189 } 1190 1191 /** 1192 * @param value {@link #born} (The actual or approximate date of birth of the relative.) 1193 */ 1194 public FamilyMemberHistory setBorn(Type value) { 1195 if (value != null && !(value instanceof Period || value instanceof DateType || value instanceof StringType)) 1196 throw new Error("Not the right type for FamilyMemberHistory.born[x]: "+value.fhirType()); 1197 this.born = value; 1198 return this; 1199 } 1200 1201 /** 1202 * @return {@link #age} (The age of the relative at the time the family member history is recorded.) 1203 */ 1204 public Type getAge() { 1205 return this.age; 1206 } 1207 1208 /** 1209 * @return {@link #age} (The age of the relative at the time the family member history is recorded.) 1210 */ 1211 public Age getAgeAge() throws FHIRException { 1212 if (this.age == null) 1213 return null; 1214 if (!(this.age instanceof Age)) 1215 throw new FHIRException("Type mismatch: the type Age was expected, but "+this.age.getClass().getName()+" was encountered"); 1216 return (Age) this.age; 1217 } 1218 1219 public boolean hasAgeAge() { 1220 return this != null && this.age instanceof Age; 1221 } 1222 1223 /** 1224 * @return {@link #age} (The age of the relative at the time the family member history is recorded.) 1225 */ 1226 public Range getAgeRange() throws FHIRException { 1227 if (this.age == null) 1228 return null; 1229 if (!(this.age instanceof Range)) 1230 throw new FHIRException("Type mismatch: the type Range was expected, but "+this.age.getClass().getName()+" was encountered"); 1231 return (Range) this.age; 1232 } 1233 1234 public boolean hasAgeRange() { 1235 return this != null && this.age instanceof Range; 1236 } 1237 1238 /** 1239 * @return {@link #age} (The age of the relative at the time the family member history is recorded.) 1240 */ 1241 public StringType getAgeStringType() throws FHIRException { 1242 if (this.age == null) 1243 return null; 1244 if (!(this.age instanceof StringType)) 1245 throw new FHIRException("Type mismatch: the type StringType was expected, but "+this.age.getClass().getName()+" was encountered"); 1246 return (StringType) this.age; 1247 } 1248 1249 public boolean hasAgeStringType() { 1250 return this != null && this.age instanceof StringType; 1251 } 1252 1253 public boolean hasAge() { 1254 return this.age != null && !this.age.isEmpty(); 1255 } 1256 1257 /** 1258 * @param value {@link #age} (The age of the relative at the time the family member history is recorded.) 1259 */ 1260 public FamilyMemberHistory setAge(Type value) { 1261 if (value != null && !(value instanceof Age || value instanceof Range || value instanceof StringType)) 1262 throw new Error("Not the right type for FamilyMemberHistory.age[x]: "+value.fhirType()); 1263 this.age = value; 1264 return this; 1265 } 1266 1267 /** 1268 * @return {@link #estimatedAge} (If true, indicates that the age value specified is an estimated value.). This is the underlying object with id, value and extensions. The accessor "getEstimatedAge" gives direct access to the value 1269 */ 1270 public BooleanType getEstimatedAgeElement() { 1271 if (this.estimatedAge == null) 1272 if (Configuration.errorOnAutoCreate()) 1273 throw new Error("Attempt to auto-create FamilyMemberHistory.estimatedAge"); 1274 else if (Configuration.doAutoCreate()) 1275 this.estimatedAge = new BooleanType(); // bb 1276 return this.estimatedAge; 1277 } 1278 1279 public boolean hasEstimatedAgeElement() { 1280 return this.estimatedAge != null && !this.estimatedAge.isEmpty(); 1281 } 1282 1283 public boolean hasEstimatedAge() { 1284 return this.estimatedAge != null && !this.estimatedAge.isEmpty(); 1285 } 1286 1287 /** 1288 * @param value {@link #estimatedAge} (If true, indicates that the age value specified is an estimated value.). This is the underlying object with id, value and extensions. The accessor "getEstimatedAge" gives direct access to the value 1289 */ 1290 public FamilyMemberHistory setEstimatedAgeElement(BooleanType value) { 1291 this.estimatedAge = value; 1292 return this; 1293 } 1294 1295 /** 1296 * @return If true, indicates that the age value specified is an estimated value. 1297 */ 1298 public boolean getEstimatedAge() { 1299 return this.estimatedAge == null || this.estimatedAge.isEmpty() ? false : this.estimatedAge.getValue(); 1300 } 1301 1302 /** 1303 * @param value If true, indicates that the age value specified is an estimated value. 1304 */ 1305 public FamilyMemberHistory setEstimatedAge(boolean value) { 1306 if (this.estimatedAge == null) 1307 this.estimatedAge = new BooleanType(); 1308 this.estimatedAge.setValue(value); 1309 return this; 1310 } 1311 1312 /** 1313 * @return {@link #deceased} (Deceased flag or the actual or approximate age of the relative at the time of death for the family member history record.) 1314 */ 1315 public Type getDeceased() { 1316 return this.deceased; 1317 } 1318 1319 /** 1320 * @return {@link #deceased} (Deceased flag or the actual or approximate age of the relative at the time of death for the family member history record.) 1321 */ 1322 public BooleanType getDeceasedBooleanType() throws FHIRException { 1323 if (this.deceased == null) 1324 return null; 1325 if (!(this.deceased instanceof BooleanType)) 1326 throw new FHIRException("Type mismatch: the type BooleanType was expected, but "+this.deceased.getClass().getName()+" was encountered"); 1327 return (BooleanType) this.deceased; 1328 } 1329 1330 public boolean hasDeceasedBooleanType() { 1331 return this != null && this.deceased instanceof BooleanType; 1332 } 1333 1334 /** 1335 * @return {@link #deceased} (Deceased flag or the actual or approximate age of the relative at the time of death for the family member history record.) 1336 */ 1337 public Age getDeceasedAge() throws FHIRException { 1338 if (this.deceased == null) 1339 return null; 1340 if (!(this.deceased instanceof Age)) 1341 throw new FHIRException("Type mismatch: the type Age was expected, but "+this.deceased.getClass().getName()+" was encountered"); 1342 return (Age) this.deceased; 1343 } 1344 1345 public boolean hasDeceasedAge() { 1346 return this != null && this.deceased instanceof Age; 1347 } 1348 1349 /** 1350 * @return {@link #deceased} (Deceased flag or the actual or approximate age of the relative at the time of death for the family member history record.) 1351 */ 1352 public Range getDeceasedRange() throws FHIRException { 1353 if (this.deceased == null) 1354 return null; 1355 if (!(this.deceased instanceof Range)) 1356 throw new FHIRException("Type mismatch: the type Range was expected, but "+this.deceased.getClass().getName()+" was encountered"); 1357 return (Range) this.deceased; 1358 } 1359 1360 public boolean hasDeceasedRange() { 1361 return this != null && this.deceased instanceof Range; 1362 } 1363 1364 /** 1365 * @return {@link #deceased} (Deceased flag or the actual or approximate age of the relative at the time of death for the family member history record.) 1366 */ 1367 public DateType getDeceasedDateType() throws FHIRException { 1368 if (this.deceased == null) 1369 return null; 1370 if (!(this.deceased instanceof DateType)) 1371 throw new FHIRException("Type mismatch: the type DateType was expected, but "+this.deceased.getClass().getName()+" was encountered"); 1372 return (DateType) this.deceased; 1373 } 1374 1375 public boolean hasDeceasedDateType() { 1376 return this != null && this.deceased instanceof DateType; 1377 } 1378 1379 /** 1380 * @return {@link #deceased} (Deceased flag or the actual or approximate age of the relative at the time of death for the family member history record.) 1381 */ 1382 public StringType getDeceasedStringType() throws FHIRException { 1383 if (this.deceased == null) 1384 return null; 1385 if (!(this.deceased instanceof StringType)) 1386 throw new FHIRException("Type mismatch: the type StringType was expected, but "+this.deceased.getClass().getName()+" was encountered"); 1387 return (StringType) this.deceased; 1388 } 1389 1390 public boolean hasDeceasedStringType() { 1391 return this != null && this.deceased instanceof StringType; 1392 } 1393 1394 public boolean hasDeceased() { 1395 return this.deceased != null && !this.deceased.isEmpty(); 1396 } 1397 1398 /** 1399 * @param value {@link #deceased} (Deceased flag or the actual or approximate age of the relative at the time of death for the family member history record.) 1400 */ 1401 public FamilyMemberHistory setDeceased(Type value) { 1402 if (value != null && !(value instanceof BooleanType || value instanceof Age || value instanceof Range || value instanceof DateType || value instanceof StringType)) 1403 throw new Error("Not the right type for FamilyMemberHistory.deceased[x]: "+value.fhirType()); 1404 this.deceased = value; 1405 return this; 1406 } 1407 1408 /** 1409 * @return {@link #reasonCode} (Describes why the family member history occurred in coded or textual form.) 1410 */ 1411 public List<CodeableConcept> getReasonCode() { 1412 if (this.reasonCode == null) 1413 this.reasonCode = new ArrayList<CodeableConcept>(); 1414 return this.reasonCode; 1415 } 1416 1417 /** 1418 * @return Returns a reference to <code>this</code> for easy method chaining 1419 */ 1420 public FamilyMemberHistory setReasonCode(List<CodeableConcept> theReasonCode) { 1421 this.reasonCode = theReasonCode; 1422 return this; 1423 } 1424 1425 public boolean hasReasonCode() { 1426 if (this.reasonCode == null) 1427 return false; 1428 for (CodeableConcept item : this.reasonCode) 1429 if (!item.isEmpty()) 1430 return true; 1431 return false; 1432 } 1433 1434 public CodeableConcept addReasonCode() { //3 1435 CodeableConcept t = new CodeableConcept(); 1436 if (this.reasonCode == null) 1437 this.reasonCode = new ArrayList<CodeableConcept>(); 1438 this.reasonCode.add(t); 1439 return t; 1440 } 1441 1442 public FamilyMemberHistory addReasonCode(CodeableConcept t) { //3 1443 if (t == null) 1444 return this; 1445 if (this.reasonCode == null) 1446 this.reasonCode = new ArrayList<CodeableConcept>(); 1447 this.reasonCode.add(t); 1448 return this; 1449 } 1450 1451 /** 1452 * @return The first repetition of repeating field {@link #reasonCode}, creating it if it does not already exist 1453 */ 1454 public CodeableConcept getReasonCodeFirstRep() { 1455 if (getReasonCode().isEmpty()) { 1456 addReasonCode(); 1457 } 1458 return getReasonCode().get(0); 1459 } 1460 1461 /** 1462 * @return {@link #reasonReference} (Indicates a Condition, Observation, AllergyIntolerance, or QuestionnaireResponse that justifies this family member history event.) 1463 */ 1464 public List<Reference> getReasonReference() { 1465 if (this.reasonReference == null) 1466 this.reasonReference = new ArrayList<Reference>(); 1467 return this.reasonReference; 1468 } 1469 1470 /** 1471 * @return Returns a reference to <code>this</code> for easy method chaining 1472 */ 1473 public FamilyMemberHistory setReasonReference(List<Reference> theReasonReference) { 1474 this.reasonReference = theReasonReference; 1475 return this; 1476 } 1477 1478 public boolean hasReasonReference() { 1479 if (this.reasonReference == null) 1480 return false; 1481 for (Reference item : this.reasonReference) 1482 if (!item.isEmpty()) 1483 return true; 1484 return false; 1485 } 1486 1487 public Reference addReasonReference() { //3 1488 Reference t = new Reference(); 1489 if (this.reasonReference == null) 1490 this.reasonReference = new ArrayList<Reference>(); 1491 this.reasonReference.add(t); 1492 return t; 1493 } 1494 1495 public FamilyMemberHistory addReasonReference(Reference t) { //3 1496 if (t == null) 1497 return this; 1498 if (this.reasonReference == null) 1499 this.reasonReference = new ArrayList<Reference>(); 1500 this.reasonReference.add(t); 1501 return this; 1502 } 1503 1504 /** 1505 * @return The first repetition of repeating field {@link #reasonReference}, creating it if it does not already exist 1506 */ 1507 public Reference getReasonReferenceFirstRep() { 1508 if (getReasonReference().isEmpty()) { 1509 addReasonReference(); 1510 } 1511 return getReasonReference().get(0); 1512 } 1513 1514 /** 1515 * @deprecated Use Reference#setResource(IBaseResource) instead 1516 */ 1517 @Deprecated 1518 public List<Resource> getReasonReferenceTarget() { 1519 if (this.reasonReferenceTarget == null) 1520 this.reasonReferenceTarget = new ArrayList<Resource>(); 1521 return this.reasonReferenceTarget; 1522 } 1523 1524 /** 1525 * @return {@link #note} (This property allows a non condition-specific note to the made about the related person. Ideally, the note would be in the condition property, but this is not always possible.) 1526 */ 1527 public List<Annotation> getNote() { 1528 if (this.note == null) 1529 this.note = new ArrayList<Annotation>(); 1530 return this.note; 1531 } 1532 1533 /** 1534 * @return Returns a reference to <code>this</code> for easy method chaining 1535 */ 1536 public FamilyMemberHistory setNote(List<Annotation> theNote) { 1537 this.note = theNote; 1538 return this; 1539 } 1540 1541 public boolean hasNote() { 1542 if (this.note == null) 1543 return false; 1544 for (Annotation item : this.note) 1545 if (!item.isEmpty()) 1546 return true; 1547 return false; 1548 } 1549 1550 public Annotation addNote() { //3 1551 Annotation t = new Annotation(); 1552 if (this.note == null) 1553 this.note = new ArrayList<Annotation>(); 1554 this.note.add(t); 1555 return t; 1556 } 1557 1558 public FamilyMemberHistory addNote(Annotation t) { //3 1559 if (t == null) 1560 return this; 1561 if (this.note == null) 1562 this.note = new ArrayList<Annotation>(); 1563 this.note.add(t); 1564 return this; 1565 } 1566 1567 /** 1568 * @return The first repetition of repeating field {@link #note}, creating it if it does not already exist 1569 */ 1570 public Annotation getNoteFirstRep() { 1571 if (getNote().isEmpty()) { 1572 addNote(); 1573 } 1574 return getNote().get(0); 1575 } 1576 1577 /** 1578 * @return {@link #condition} (The significant Conditions (or condition) that the family member had. This is a repeating section to allow a system to represent more than one condition per resource, though there is nothing stopping multiple resources - one per condition.) 1579 */ 1580 public List<FamilyMemberHistoryConditionComponent> getCondition() { 1581 if (this.condition == null) 1582 this.condition = new ArrayList<FamilyMemberHistoryConditionComponent>(); 1583 return this.condition; 1584 } 1585 1586 /** 1587 * @return Returns a reference to <code>this</code> for easy method chaining 1588 */ 1589 public FamilyMemberHistory setCondition(List<FamilyMemberHistoryConditionComponent> theCondition) { 1590 this.condition = theCondition; 1591 return this; 1592 } 1593 1594 public boolean hasCondition() { 1595 if (this.condition == null) 1596 return false; 1597 for (FamilyMemberHistoryConditionComponent item : this.condition) 1598 if (!item.isEmpty()) 1599 return true; 1600 return false; 1601 } 1602 1603 public FamilyMemberHistoryConditionComponent addCondition() { //3 1604 FamilyMemberHistoryConditionComponent t = new FamilyMemberHistoryConditionComponent(); 1605 if (this.condition == null) 1606 this.condition = new ArrayList<FamilyMemberHistoryConditionComponent>(); 1607 this.condition.add(t); 1608 return t; 1609 } 1610 1611 public FamilyMemberHistory addCondition(FamilyMemberHistoryConditionComponent t) { //3 1612 if (t == null) 1613 return this; 1614 if (this.condition == null) 1615 this.condition = new ArrayList<FamilyMemberHistoryConditionComponent>(); 1616 this.condition.add(t); 1617 return this; 1618 } 1619 1620 /** 1621 * @return The first repetition of repeating field {@link #condition}, creating it if it does not already exist 1622 */ 1623 public FamilyMemberHistoryConditionComponent getConditionFirstRep() { 1624 if (getCondition().isEmpty()) { 1625 addCondition(); 1626 } 1627 return getCondition().get(0); 1628 } 1629 1630 protected void listChildren(List<Property> children) { 1631 super.listChildren(children); 1632 children.add(new Property("identifier", "Identifier", "Business identifiers assigned to this family member history by the performer or other systems which remain constant as the resource is updated and propagates from server to server.", 0, java.lang.Integer.MAX_VALUE, identifier)); 1633 children.add(new Property("instantiates", "uri", "A protocol or questionnaire that was adhered to in whole or in part by this event.", 0, java.lang.Integer.MAX_VALUE, instantiates)); 1634 children.add(new Property("status", "code", "A code specifying the status of the record of the family history of a specific family member.", 0, 1, status)); 1635 children.add(new Property("dataAbsentReason", "CodeableConcept", "Describes why the family member's history is not available.", 0, 1, dataAbsentReason)); 1636 children.add(new Property("patient", "Reference(Patient)", "The person who this history concerns.", 0, 1, patient)); 1637 children.add(new Property("date", "dateTime", "The date (and possibly time) when the family member history was recorded or last updated.", 0, 1, date)); 1638 children.add(new Property("name", "string", "This will either be a name or a description; e.g. \"Aunt Susan\", \"my cousin with the red hair\".", 0, 1, name)); 1639 children.add(new Property("relationship", "CodeableConcept", "The type of relationship this person has to the patient (father, mother, brother etc.).", 0, 1, relationship)); 1640 children.add(new Property("gender", "code", "Administrative Gender - the gender that the relative is considered to have for administration and record keeping purposes.", 0, 1, gender)); 1641 children.add(new Property("born[x]", "Period|date|string", "The actual or approximate date of birth of the relative.", 0, 1, born)); 1642 children.add(new Property("age[x]", "Age|Range|string", "The age of the relative at the time the family member history is recorded.", 0, 1, age)); 1643 children.add(new Property("estimatedAge", "boolean", "If true, indicates that the age value specified is an estimated value.", 0, 1, estimatedAge)); 1644 children.add(new Property("deceased[x]", "boolean|Age|Range|date|string", "Deceased flag or the actual or approximate age of the relative at the time of death for the family member history record.", 0, 1, deceased)); 1645 children.add(new Property("reasonCode", "CodeableConcept", "Describes why the family member history occurred in coded or textual form.", 0, java.lang.Integer.MAX_VALUE, reasonCode)); 1646 children.add(new Property("reasonReference", "Reference(Condition|Observation|AllergyIntolerance|QuestionnaireResponse|DiagnosticReport|DocumentReference)", "Indicates a Condition, Observation, AllergyIntolerance, or QuestionnaireResponse that justifies this family member history event.", 0, java.lang.Integer.MAX_VALUE, reasonReference)); 1647 children.add(new Property("note", "Annotation", "This property allows a non condition-specific note to the made about the related person. Ideally, the note would be in the condition property, but this is not always possible.", 0, java.lang.Integer.MAX_VALUE, note)); 1648 children.add(new Property("condition", "", "The significant Conditions (or condition) that the family member had. This is a repeating section to allow a system to represent more than one condition per resource, though there is nothing stopping multiple resources - one per condition.", 0, java.lang.Integer.MAX_VALUE, condition)); 1649 } 1650 1651 @Override 1652 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1653 switch (_hash) { 1654 case -1618432855: /*identifier*/ return new Property("identifier", "Identifier", "Business identifiers assigned to this family member history by the performer or other systems which remain constant as the resource is updated and propagates from server to server.", 0, java.lang.Integer.MAX_VALUE, identifier); 1655 case -246883639: /*instantiates*/ return new Property("instantiates", "uri", "A protocol or questionnaire that was adhered to in whole or in part by this event.", 0, java.lang.Integer.MAX_VALUE, instantiates); 1656 case -892481550: /*status*/ return new Property("status", "code", "A code specifying the status of the record of the family history of a specific family member.", 0, 1, status); 1657 case 1034315687: /*dataAbsentReason*/ return new Property("dataAbsentReason", "CodeableConcept", "Describes why the family member's history is not available.", 0, 1, dataAbsentReason); 1658 case -791418107: /*patient*/ return new Property("patient", "Reference(Patient)", "The person who this history concerns.", 0, 1, patient); 1659 case 3076014: /*date*/ return new Property("date", "dateTime", "The date (and possibly time) when the family member history was recorded or last updated.", 0, 1, date); 1660 case 3373707: /*name*/ return new Property("name", "string", "This will either be a name or a description; e.g. \"Aunt Susan\", \"my cousin with the red hair\".", 0, 1, name); 1661 case -261851592: /*relationship*/ return new Property("relationship", "CodeableConcept", "The type of relationship this person has to the patient (father, mother, brother etc.).", 0, 1, relationship); 1662 case -1249512767: /*gender*/ return new Property("gender", "code", "Administrative Gender - the gender that the relative is considered to have for administration and record keeping purposes.", 0, 1, gender); 1663 case 67532951: /*born[x]*/ return new Property("born[x]", "Period|date|string", "The actual or approximate date of birth of the relative.", 0, 1, born); 1664 case 3029833: /*born*/ return new Property("born[x]", "Period|date|string", "The actual or approximate date of birth of the relative.", 0, 1, born); 1665 case 1497711210: /*bornPeriod*/ return new Property("born[x]", "Period|date|string", "The actual or approximate date of birth of the relative.", 0, 1, born); 1666 case 2092814999: /*bornDate*/ return new Property("born[x]", "Period|date|string", "The actual or approximate date of birth of the relative.", 0, 1, born); 1667 case 1597451450: /*bornString*/ return new Property("born[x]", "Period|date|string", "The actual or approximate date of birth of the relative.", 0, 1, born); 1668 case -1419716831: /*age[x]*/ return new Property("age[x]", "Age|Range|string", "The age of the relative at the time the family member history is recorded.", 0, 1, age); 1669 case 96511: /*age*/ return new Property("age[x]", "Age|Range|string", "The age of the relative at the time the family member history is recorded.", 0, 1, age); 1670 case -1419742336: /*ageAge*/ return new Property("age[x]", "Age|Range|string", "The age of the relative at the time the family member history is recorded.", 0, 1, age); 1671 case 1442748286: /*ageRange*/ return new Property("age[x]", "Age|Range|string", "The age of the relative at the time the family member history is recorded.", 0, 1, age); 1672 case 1821821424: /*ageString*/ return new Property("age[x]", "Age|Range|string", "The age of the relative at the time the family member history is recorded.", 0, 1, age); 1673 case 2130167587: /*estimatedAge*/ return new Property("estimatedAge", "boolean", "If true, indicates that the age value specified is an estimated value.", 0, 1, estimatedAge); 1674 case -1311442804: /*deceased[x]*/ return new Property("deceased[x]", "boolean|Age|Range|date|string", "Deceased flag or the actual or approximate age of the relative at the time of death for the family member history record.", 0, 1, deceased); 1675 case 561497972: /*deceased*/ return new Property("deceased[x]", "boolean|Age|Range|date|string", "Deceased flag or the actual or approximate age of the relative at the time of death for the family member history record.", 0, 1, deceased); 1676 case 497463828: /*deceasedBoolean*/ return new Property("deceased[x]", "boolean|Age|Range|date|string", "Deceased flag or the actual or approximate age of the relative at the time of death for the family member history record.", 0, 1, deceased); 1677 case -1311468309: /*deceasedAge*/ return new Property("deceased[x]", "boolean|Age|Range|date|string", "Deceased flag or the actual or approximate age of the relative at the time of death for the family member history record.", 0, 1, deceased); 1678 case -1880094167: /*deceasedRange*/ return new Property("deceased[x]", "boolean|Age|Range|date|string", "Deceased flag or the actual or approximate age of the relative at the time of death for the family member history record.", 0, 1, deceased); 1679 case -2000727742: /*deceasedDate*/ return new Property("deceased[x]", "boolean|Age|Range|date|string", "Deceased flag or the actual or approximate age of the relative at the time of death for the family member history record.", 0, 1, deceased); 1680 case 1892920485: /*deceasedString*/ return new Property("deceased[x]", "boolean|Age|Range|date|string", "Deceased flag or the actual or approximate age of the relative at the time of death for the family member history record.", 0, 1, deceased); 1681 case 722137681: /*reasonCode*/ return new Property("reasonCode", "CodeableConcept", "Describes why the family member history occurred in coded or textual form.", 0, java.lang.Integer.MAX_VALUE, reasonCode); 1682 case -1146218137: /*reasonReference*/ return new Property("reasonReference", "Reference(Condition|Observation|AllergyIntolerance|QuestionnaireResponse|DiagnosticReport|DocumentReference)", "Indicates a Condition, Observation, AllergyIntolerance, or QuestionnaireResponse that justifies this family member history event.", 0, java.lang.Integer.MAX_VALUE, reasonReference); 1683 case 3387378: /*note*/ return new Property("note", "Annotation", "This property allows a non condition-specific note to the made about the related person. Ideally, the note would be in the condition property, but this is not always possible.", 0, java.lang.Integer.MAX_VALUE, note); 1684 case -861311717: /*condition*/ return new Property("condition", "", "The significant Conditions (or condition) that the family member had. This is a repeating section to allow a system to represent more than one condition per resource, though there is nothing stopping multiple resources - one per condition.", 0, java.lang.Integer.MAX_VALUE, condition); 1685 default: return super.getNamedProperty(_hash, _name, _checkValid); 1686 } 1687 1688 } 1689 1690 @Override 1691 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1692 switch (hash) { 1693 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 1694 case -246883639: /*instantiates*/ return this.instantiates == null ? new Base[0] : this.instantiates.toArray(new Base[this.instantiates.size()]); // UriType 1695 case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<FamilyHistoryStatus> 1696 case 1034315687: /*dataAbsentReason*/ return this.dataAbsentReason == null ? new Base[0] : new Base[] {this.dataAbsentReason}; // CodeableConcept 1697 case -791418107: /*patient*/ return this.patient == null ? new Base[0] : new Base[] {this.patient}; // Reference 1698 case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType 1699 case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType 1700 case -261851592: /*relationship*/ return this.relationship == null ? new Base[0] : new Base[] {this.relationship}; // CodeableConcept 1701 case -1249512767: /*gender*/ return this.gender == null ? new Base[0] : new Base[] {this.gender}; // Enumeration<AdministrativeGender> 1702 case 3029833: /*born*/ return this.born == null ? new Base[0] : new Base[] {this.born}; // Type 1703 case 96511: /*age*/ return this.age == null ? new Base[0] : new Base[] {this.age}; // Type 1704 case 2130167587: /*estimatedAge*/ return this.estimatedAge == null ? new Base[0] : new Base[] {this.estimatedAge}; // BooleanType 1705 case 561497972: /*deceased*/ return this.deceased == null ? new Base[0] : new Base[] {this.deceased}; // Type 1706 case 722137681: /*reasonCode*/ return this.reasonCode == null ? new Base[0] : this.reasonCode.toArray(new Base[this.reasonCode.size()]); // CodeableConcept 1707 case -1146218137: /*reasonReference*/ return this.reasonReference == null ? new Base[0] : this.reasonReference.toArray(new Base[this.reasonReference.size()]); // Reference 1708 case 3387378: /*note*/ return this.note == null ? new Base[0] : this.note.toArray(new Base[this.note.size()]); // Annotation 1709 case -861311717: /*condition*/ return this.condition == null ? new Base[0] : this.condition.toArray(new Base[this.condition.size()]); // FamilyMemberHistoryConditionComponent 1710 default: return super.getProperty(hash, name, checkValid); 1711 } 1712 1713 } 1714 1715 @Override 1716 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1717 switch (hash) { 1718 case -1618432855: // identifier 1719 this.getIdentifier().add(castToIdentifier(value)); // Identifier 1720 return value; 1721 case -246883639: // instantiates 1722 this.getInstantiates().add(castToUri(value)); // UriType 1723 return value; 1724 case -892481550: // status 1725 value = new FamilyHistoryStatusEnumFactory().fromType(castToCode(value)); 1726 this.status = (Enumeration) value; // Enumeration<FamilyHistoryStatus> 1727 return value; 1728 case 1034315687: // dataAbsentReason 1729 this.dataAbsentReason = castToCodeableConcept(value); // CodeableConcept 1730 return value; 1731 case -791418107: // patient 1732 this.patient = castToReference(value); // Reference 1733 return value; 1734 case 3076014: // date 1735 this.date = castToDateTime(value); // DateTimeType 1736 return value; 1737 case 3373707: // name 1738 this.name = castToString(value); // StringType 1739 return value; 1740 case -261851592: // relationship 1741 this.relationship = castToCodeableConcept(value); // CodeableConcept 1742 return value; 1743 case -1249512767: // gender 1744 value = new AdministrativeGenderEnumFactory().fromType(castToCode(value)); 1745 this.gender = (Enumeration) value; // Enumeration<AdministrativeGender> 1746 return value; 1747 case 3029833: // born 1748 this.born = castToType(value); // Type 1749 return value; 1750 case 96511: // age 1751 this.age = castToType(value); // Type 1752 return value; 1753 case 2130167587: // estimatedAge 1754 this.estimatedAge = castToBoolean(value); // BooleanType 1755 return value; 1756 case 561497972: // deceased 1757 this.deceased = castToType(value); // Type 1758 return value; 1759 case 722137681: // reasonCode 1760 this.getReasonCode().add(castToCodeableConcept(value)); // CodeableConcept 1761 return value; 1762 case -1146218137: // reasonReference 1763 this.getReasonReference().add(castToReference(value)); // Reference 1764 return value; 1765 case 3387378: // note 1766 this.getNote().add(castToAnnotation(value)); // Annotation 1767 return value; 1768 case -861311717: // condition 1769 this.getCondition().add((FamilyMemberHistoryConditionComponent) value); // FamilyMemberHistoryConditionComponent 1770 return value; 1771 default: return super.setProperty(hash, name, value); 1772 } 1773 1774 } 1775 1776 @Override 1777 public Base setProperty(String name, Base value) throws FHIRException { 1778 if (name.equals("identifier")) { 1779 this.getIdentifier().add(castToIdentifier(value)); 1780 } else if (name.equals("instantiates")) { 1781 this.getInstantiates().add(castToUri(value)); 1782 } else if (name.equals("status")) { 1783 value = new FamilyHistoryStatusEnumFactory().fromType(castToCode(value)); 1784 this.status = (Enumeration) value; // Enumeration<FamilyHistoryStatus> 1785 } else if (name.equals("dataAbsentReason")) { 1786 this.dataAbsentReason = castToCodeableConcept(value); // CodeableConcept 1787 } else if (name.equals("patient")) { 1788 this.patient = castToReference(value); // Reference 1789 } else if (name.equals("date")) { 1790 this.date = castToDateTime(value); // DateTimeType 1791 } else if (name.equals("name")) { 1792 this.name = castToString(value); // StringType 1793 } else if (name.equals("relationship")) { 1794 this.relationship = castToCodeableConcept(value); // CodeableConcept 1795 } else if (name.equals("gender")) { 1796 value = new AdministrativeGenderEnumFactory().fromType(castToCode(value)); 1797 this.gender = (Enumeration) value; // Enumeration<AdministrativeGender> 1798 } else if (name.equals("born[x]")) { 1799 this.born = castToType(value); // Type 1800 } else if (name.equals("age[x]")) { 1801 this.age = castToType(value); // Type 1802 } else if (name.equals("estimatedAge")) { 1803 this.estimatedAge = castToBoolean(value); // BooleanType 1804 } else if (name.equals("deceased[x]")) { 1805 this.deceased = castToType(value); // Type 1806 } else if (name.equals("reasonCode")) { 1807 this.getReasonCode().add(castToCodeableConcept(value)); 1808 } else if (name.equals("reasonReference")) { 1809 this.getReasonReference().add(castToReference(value)); 1810 } else if (name.equals("note")) { 1811 this.getNote().add(castToAnnotation(value)); 1812 } else if (name.equals("condition")) { 1813 this.getCondition().add((FamilyMemberHistoryConditionComponent) value); 1814 } else 1815 return super.setProperty(name, value); 1816 return value; 1817 } 1818 1819 @Override 1820 public Base makeProperty(int hash, String name) throws FHIRException { 1821 switch (hash) { 1822 case -1618432855: return addIdentifier(); 1823 case -246883639: return addInstantiatesElement(); 1824 case -892481550: return getStatusElement(); 1825 case 1034315687: return getDataAbsentReason(); 1826 case -791418107: return getPatient(); 1827 case 3076014: return getDateElement(); 1828 case 3373707: return getNameElement(); 1829 case -261851592: return getRelationship(); 1830 case -1249512767: return getGenderElement(); 1831 case 67532951: return getBorn(); 1832 case 3029833: return getBorn(); 1833 case -1419716831: return getAge(); 1834 case 96511: return getAge(); 1835 case 2130167587: return getEstimatedAgeElement(); 1836 case -1311442804: return getDeceased(); 1837 case 561497972: return getDeceased(); 1838 case 722137681: return addReasonCode(); 1839 case -1146218137: return addReasonReference(); 1840 case 3387378: return addNote(); 1841 case -861311717: return addCondition(); 1842 default: return super.makeProperty(hash, name); 1843 } 1844 1845 } 1846 1847 @Override 1848 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1849 switch (hash) { 1850 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 1851 case -246883639: /*instantiates*/ return new String[] {"uri"}; 1852 case -892481550: /*status*/ return new String[] {"code"}; 1853 case 1034315687: /*dataAbsentReason*/ return new String[] {"CodeableConcept"}; 1854 case -791418107: /*patient*/ return new String[] {"Reference"}; 1855 case 3076014: /*date*/ return new String[] {"dateTime"}; 1856 case 3373707: /*name*/ return new String[] {"string"}; 1857 case -261851592: /*relationship*/ return new String[] {"CodeableConcept"}; 1858 case -1249512767: /*gender*/ return new String[] {"code"}; 1859 case 3029833: /*born*/ return new String[] {"Period", "date", "string"}; 1860 case 96511: /*age*/ return new String[] {"Age", "Range", "string"}; 1861 case 2130167587: /*estimatedAge*/ return new String[] {"boolean"}; 1862 case 561497972: /*deceased*/ return new String[] {"boolean", "Age", "Range", "date", "string"}; 1863 case 722137681: /*reasonCode*/ return new String[] {"CodeableConcept"}; 1864 case -1146218137: /*reasonReference*/ return new String[] {"Reference"}; 1865 case 3387378: /*note*/ return new String[] {"Annotation"}; 1866 case -861311717: /*condition*/ return new String[] {}; 1867 default: return super.getTypesForProperty(hash, name); 1868 } 1869 1870 } 1871 1872 @Override 1873 public Base addChild(String name) throws FHIRException { 1874 if (name.equals("identifier")) { 1875 return addIdentifier(); 1876 } 1877 else if (name.equals("instantiates")) { 1878 throw new FHIRException("Cannot call addChild on a primitive type FamilyMemberHistory.instantiates"); 1879 } 1880 else if (name.equals("status")) { 1881 throw new FHIRException("Cannot call addChild on a primitive type FamilyMemberHistory.status"); 1882 } 1883 else if (name.equals("dataAbsentReason")) { 1884 this.dataAbsentReason = new CodeableConcept(); 1885 return this.dataAbsentReason; 1886 } 1887 else if (name.equals("patient")) { 1888 this.patient = new Reference(); 1889 return this.patient; 1890 } 1891 else if (name.equals("date")) { 1892 throw new FHIRException("Cannot call addChild on a primitive type FamilyMemberHistory.date"); 1893 } 1894 else if (name.equals("name")) { 1895 throw new FHIRException("Cannot call addChild on a primitive type FamilyMemberHistory.name"); 1896 } 1897 else if (name.equals("relationship")) { 1898 this.relationship = new CodeableConcept(); 1899 return this.relationship; 1900 } 1901 else if (name.equals("gender")) { 1902 throw new FHIRException("Cannot call addChild on a primitive type FamilyMemberHistory.gender"); 1903 } 1904 else if (name.equals("bornPeriod")) { 1905 this.born = new Period(); 1906 return this.born; 1907 } 1908 else if (name.equals("bornDate")) { 1909 this.born = new DateType(); 1910 return this.born; 1911 } 1912 else if (name.equals("bornString")) { 1913 this.born = new StringType(); 1914 return this.born; 1915 } 1916 else if (name.equals("ageAge")) { 1917 this.age = new Age(); 1918 return this.age; 1919 } 1920 else if (name.equals("ageRange")) { 1921 this.age = new Range(); 1922 return this.age; 1923 } 1924 else if (name.equals("ageString")) { 1925 this.age = new StringType(); 1926 return this.age; 1927 } 1928 else if (name.equals("estimatedAge")) { 1929 throw new FHIRException("Cannot call addChild on a primitive type FamilyMemberHistory.estimatedAge"); 1930 } 1931 else if (name.equals("deceasedBoolean")) { 1932 this.deceased = new BooleanType(); 1933 return this.deceased; 1934 } 1935 else if (name.equals("deceasedAge")) { 1936 this.deceased = new Age(); 1937 return this.deceased; 1938 } 1939 else if (name.equals("deceasedRange")) { 1940 this.deceased = new Range(); 1941 return this.deceased; 1942 } 1943 else if (name.equals("deceasedDate")) { 1944 this.deceased = new DateType(); 1945 return this.deceased; 1946 } 1947 else if (name.equals("deceasedString")) { 1948 this.deceased = new StringType(); 1949 return this.deceased; 1950 } 1951 else if (name.equals("reasonCode")) { 1952 return addReasonCode(); 1953 } 1954 else if (name.equals("reasonReference")) { 1955 return addReasonReference(); 1956 } 1957 else if (name.equals("note")) { 1958 return addNote(); 1959 } 1960 else if (name.equals("condition")) { 1961 return addCondition(); 1962 } 1963 else 1964 return super.addChild(name); 1965 } 1966 1967 public String fhirType() { 1968 return "FamilyMemberHistory"; 1969 1970 } 1971 1972 public FamilyMemberHistory copy() { 1973 FamilyMemberHistory dst = new FamilyMemberHistory(); 1974 copyValues(dst); 1975 if (identifier != null) { 1976 dst.identifier = new ArrayList<Identifier>(); 1977 for (Identifier i : identifier) 1978 dst.identifier.add(i.copy()); 1979 }; 1980 if (instantiates != null) { 1981 dst.instantiates = new ArrayList<UriType>(); 1982 for (UriType i : instantiates) 1983 dst.instantiates.add(i.copy()); 1984 }; 1985 dst.status = status == null ? null : status.copy(); 1986 dst.dataAbsentReason = dataAbsentReason == null ? null : dataAbsentReason.copy(); 1987 dst.patient = patient == null ? null : patient.copy(); 1988 dst.date = date == null ? null : date.copy(); 1989 dst.name = name == null ? null : name.copy(); 1990 dst.relationship = relationship == null ? null : relationship.copy(); 1991 dst.gender = gender == null ? null : gender.copy(); 1992 dst.born = born == null ? null : born.copy(); 1993 dst.age = age == null ? null : age.copy(); 1994 dst.estimatedAge = estimatedAge == null ? null : estimatedAge.copy(); 1995 dst.deceased = deceased == null ? null : deceased.copy(); 1996 if (reasonCode != null) { 1997 dst.reasonCode = new ArrayList<CodeableConcept>(); 1998 for (CodeableConcept i : reasonCode) 1999 dst.reasonCode.add(i.copy()); 2000 }; 2001 if (reasonReference != null) { 2002 dst.reasonReference = new ArrayList<Reference>(); 2003 for (Reference i : reasonReference) 2004 dst.reasonReference.add(i.copy()); 2005 }; 2006 if (note != null) { 2007 dst.note = new ArrayList<Annotation>(); 2008 for (Annotation i : note) 2009 dst.note.add(i.copy()); 2010 }; 2011 if (condition != null) { 2012 dst.condition = new ArrayList<FamilyMemberHistoryConditionComponent>(); 2013 for (FamilyMemberHistoryConditionComponent i : condition) 2014 dst.condition.add(i.copy()); 2015 }; 2016 return dst; 2017 } 2018 2019 protected FamilyMemberHistory typedCopy() { 2020 return copy(); 2021 } 2022 2023 @Override 2024 public boolean equalsDeep(Base other_) { 2025 if (!super.equalsDeep(other_)) 2026 return false; 2027 if (!(other_ instanceof FamilyMemberHistory)) 2028 return false; 2029 FamilyMemberHistory o = (FamilyMemberHistory) other_; 2030 return compareDeep(identifier, o.identifier, true) && compareDeep(instantiates, o.instantiates, true) 2031 && compareDeep(status, o.status, true) && compareDeep(dataAbsentReason, o.dataAbsentReason, true) 2032 && compareDeep(patient, o.patient, true) && compareDeep(date, o.date, true) && compareDeep(name, o.name, true) 2033 && compareDeep(relationship, o.relationship, true) && compareDeep(gender, o.gender, true) && compareDeep(born, o.born, true) 2034 && compareDeep(age, o.age, true) && compareDeep(estimatedAge, o.estimatedAge, true) && compareDeep(deceased, o.deceased, true) 2035 && compareDeep(reasonCode, o.reasonCode, true) && compareDeep(reasonReference, o.reasonReference, true) 2036 && compareDeep(note, o.note, true) && compareDeep(condition, o.condition, true); 2037 } 2038 2039 @Override 2040 public boolean equalsShallow(Base other_) { 2041 if (!super.equalsShallow(other_)) 2042 return false; 2043 if (!(other_ instanceof FamilyMemberHistory)) 2044 return false; 2045 FamilyMemberHistory o = (FamilyMemberHistory) other_; 2046 return compareValues(instantiates, o.instantiates, true) && compareValues(status, o.status, true) && compareValues(date, o.date, true) 2047 && compareValues(name, o.name, true) && compareValues(gender, o.gender, true) && compareValues(estimatedAge, o.estimatedAge, true) 2048 ; 2049 } 2050 2051 public boolean isEmpty() { 2052 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, instantiates, status 2053 , dataAbsentReason, patient, date, name, relationship, gender, born, age, estimatedAge 2054 , deceased, reasonCode, reasonReference, note, condition); 2055 } 2056 2057 @Override 2058 public ResourceType getResourceType() { 2059 return ResourceType.FamilyMemberHistory; 2060 } 2061 2062 /** 2063 * Search parameter: <b>date</b> 2064 * <p> 2065 * Description: <b>When history was recorded or last updated</b><br> 2066 * Type: <b>date</b><br> 2067 * Path: <b>FamilyMemberHistory.date</b><br> 2068 * </p> 2069 */ 2070 @SearchParamDefinition(name="date", path="FamilyMemberHistory.date", description="When history was recorded or last updated", type="date" ) 2071 public static final String SP_DATE = "date"; 2072 /** 2073 * <b>Fluent Client</b> search parameter constant for <b>date</b> 2074 * <p> 2075 * Description: <b>When history was recorded or last updated</b><br> 2076 * Type: <b>date</b><br> 2077 * Path: <b>FamilyMemberHistory.date</b><br> 2078 * </p> 2079 */ 2080 public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE); 2081 2082 /** 2083 * Search parameter: <b>identifier</b> 2084 * <p> 2085 * Description: <b>A search by a record identifier</b><br> 2086 * Type: <b>token</b><br> 2087 * Path: <b>FamilyMemberHistory.identifier</b><br> 2088 * </p> 2089 */ 2090 @SearchParamDefinition(name="identifier", path="FamilyMemberHistory.identifier", description="A search by a record identifier", type="token" ) 2091 public static final String SP_IDENTIFIER = "identifier"; 2092 /** 2093 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 2094 * <p> 2095 * Description: <b>A search by a record identifier</b><br> 2096 * Type: <b>token</b><br> 2097 * Path: <b>FamilyMemberHistory.identifier</b><br> 2098 * </p> 2099 */ 2100 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 2101 2102 /** 2103 * Search parameter: <b>instantiates</b> 2104 * <p> 2105 * Description: <b>Instantiates protocol or definition</b><br> 2106 * Type: <b>uri</b><br> 2107 * Path: <b>FamilyMemberHistory.instantiates</b><br> 2108 * </p> 2109 */ 2110 @SearchParamDefinition(name="instantiates", path="FamilyMemberHistory.instantiates", description="Instantiates protocol or definition", type="uri" ) 2111 public static final String SP_INSTANTIATES = "instantiates"; 2112 /** 2113 * <b>Fluent Client</b> search parameter constant for <b>instantiates</b> 2114 * <p> 2115 * Description: <b>Instantiates protocol or definition</b><br> 2116 * Type: <b>uri</b><br> 2117 * Path: <b>FamilyMemberHistory.instantiates</b><br> 2118 * </p> 2119 */ 2120 public static final ca.uhn.fhir.rest.gclient.UriClientParam INSTANTIATES = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_INSTANTIATES); 2121 2122 /** 2123 * Search parameter: <b>code</b> 2124 * <p> 2125 * Description: <b>A search by a condition code</b><br> 2126 * Type: <b>token</b><br> 2127 * Path: <b>FamilyMemberHistory.condition.code</b><br> 2128 * </p> 2129 */ 2130 @SearchParamDefinition(name="code", path="FamilyMemberHistory.condition.code", description="A search by a condition code", type="token" ) 2131 public static final String SP_CODE = "code"; 2132 /** 2133 * <b>Fluent Client</b> search parameter constant for <b>code</b> 2134 * <p> 2135 * Description: <b>A search by a condition code</b><br> 2136 * Type: <b>token</b><br> 2137 * Path: <b>FamilyMemberHistory.condition.code</b><br> 2138 * </p> 2139 */ 2140 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CODE); 2141 2142 /** 2143 * Search parameter: <b>gender</b> 2144 * <p> 2145 * Description: <b>A search by a gender code of a family member</b><br> 2146 * Type: <b>token</b><br> 2147 * Path: <b>FamilyMemberHistory.gender</b><br> 2148 * </p> 2149 */ 2150 @SearchParamDefinition(name="gender", path="FamilyMemberHistory.gender", description="A search by a gender code of a family member", type="token" ) 2151 public static final String SP_GENDER = "gender"; 2152 /** 2153 * <b>Fluent Client</b> search parameter constant for <b>gender</b> 2154 * <p> 2155 * Description: <b>A search by a gender code of a family member</b><br> 2156 * Type: <b>token</b><br> 2157 * Path: <b>FamilyMemberHistory.gender</b><br> 2158 * </p> 2159 */ 2160 public static final ca.uhn.fhir.rest.gclient.TokenClientParam GENDER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_GENDER); 2161 2162 /** 2163 * Search parameter: <b>patient</b> 2164 * <p> 2165 * Description: <b>The identity of a subject to list family member history items for</b><br> 2166 * Type: <b>reference</b><br> 2167 * Path: <b>FamilyMemberHistory.patient</b><br> 2168 * </p> 2169 */ 2170 @SearchParamDefinition(name="patient", path="FamilyMemberHistory.patient", description="The identity of a subject to list family member history items for", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Patient") }, target={Patient.class } ) 2171 public static final String SP_PATIENT = "patient"; 2172 /** 2173 * <b>Fluent Client</b> search parameter constant for <b>patient</b> 2174 * <p> 2175 * Description: <b>The identity of a subject to list family member history items for</b><br> 2176 * Type: <b>reference</b><br> 2177 * Path: <b>FamilyMemberHistory.patient</b><br> 2178 * </p> 2179 */ 2180 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PATIENT); 2181 2182/** 2183 * Constant for fluent queries to be used to add include statements. Specifies 2184 * the path value of "<b>FamilyMemberHistory:patient</b>". 2185 */ 2186 public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("FamilyMemberHistory:patient").toLocked(); 2187 2188 /** 2189 * Search parameter: <b>relationship</b> 2190 * <p> 2191 * Description: <b>A search by a relationship type</b><br> 2192 * Type: <b>token</b><br> 2193 * Path: <b>FamilyMemberHistory.relationship</b><br> 2194 * </p> 2195 */ 2196 @SearchParamDefinition(name="relationship", path="FamilyMemberHistory.relationship", description="A search by a relationship type", type="token" ) 2197 public static final String SP_RELATIONSHIP = "relationship"; 2198 /** 2199 * <b>Fluent Client</b> search parameter constant for <b>relationship</b> 2200 * <p> 2201 * Description: <b>A search by a relationship type</b><br> 2202 * Type: <b>token</b><br> 2203 * Path: <b>FamilyMemberHistory.relationship</b><br> 2204 * </p> 2205 */ 2206 public static final ca.uhn.fhir.rest.gclient.TokenClientParam RELATIONSHIP = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_RELATIONSHIP); 2207 2208 /** 2209 * Search parameter: <b>status</b> 2210 * <p> 2211 * Description: <b>partial | completed | entered-in-error | health-unknown</b><br> 2212 * Type: <b>token</b><br> 2213 * Path: <b>FamilyMemberHistory.status</b><br> 2214 * </p> 2215 */ 2216 @SearchParamDefinition(name="status", path="FamilyMemberHistory.status", description="partial | completed | entered-in-error | health-unknown", type="token" ) 2217 public static final String SP_STATUS = "status"; 2218 /** 2219 * <b>Fluent Client</b> search parameter constant for <b>status</b> 2220 * <p> 2221 * Description: <b>partial | completed | entered-in-error | health-unknown</b><br> 2222 * Type: <b>token</b><br> 2223 * Path: <b>FamilyMemberHistory.status</b><br> 2224 * </p> 2225 */ 2226 public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS); 2227 2228 2229} 2230