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