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