001package org.hl7.fhir.r4b.model; 002 003 004/* 005 Copyright (c) 2011+, HL7, Inc. 006 All rights reserved. 007 008 Redistribution and use in source and binary forms, with or without modification, \ 009 are permitted provided that the following conditions are met: 010 011 * Redistributions of source code must retain the above copyright notice, this \ 012 list of conditions and the following disclaimer. 013 * Redistributions in binary form must reproduce the above copyright notice, \ 014 this list of conditions and the following disclaimer in the documentation \ 015 and/or other materials provided with the distribution. 016 * Neither the name of HL7 nor the names of its contributors may be used to 017 endorse or promote products derived from this software without specific 018 prior written permission. 019 020 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \ 021 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \ 022 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \ 023 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \ 024 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT \ 025 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR \ 026 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, \ 027 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) \ 028 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE \ 029 POSSIBILITY OF SUCH DAMAGE. 030 */ 031 032// Generated on Fri, Dec 31, 2021 05:58+1100 for FHIR v4.3.0-snapshot1 033 034import java.util.ArrayList; 035import java.util.Date; 036import java.util.List; 037import org.hl7.fhir.utilities.Utilities; 038import org.hl7.fhir.r4b.model.Enumerations.*; 039import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 040import org.hl7.fhir.exceptions.FHIRException; 041import org.hl7.fhir.instance.model.api.ICompositeType; 042import ca.uhn.fhir.model.api.annotation.ResourceDef; 043import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 044import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 045import ca.uhn.fhir.model.api.annotation.Child; 046import ca.uhn.fhir.model.api.annotation.ChildOrder; 047import ca.uhn.fhir.model.api.annotation.Description; 048import ca.uhn.fhir.model.api.annotation.Block; 049 050/** 051 * The ResearchElementDefinition resource describes a "PICO" element that knowledge (evidence, assertion, recommendation) is about. 052 */ 053@ResourceDef(name="ResearchElementDefinition", profile="http://hl7.org/fhir/StructureDefinition/ResearchElementDefinition") 054public class ResearchElementDefinition extends DomainResource { 055 056 public enum ResearchElementType { 057 /** 058 * The element defines the population that forms the basis for research. 059 */ 060 POPULATION, 061 /** 062 * The element defines an exposure within the population that is being researched. 063 */ 064 EXPOSURE, 065 /** 066 * The element defines an outcome within the population that is being researched. 067 */ 068 OUTCOME, 069 /** 070 * added to help the parsers with the generic types 071 */ 072 NULL; 073 public static ResearchElementType fromCode(String codeString) throws FHIRException { 074 if (codeString == null || "".equals(codeString)) 075 return null; 076 if ("population".equals(codeString)) 077 return POPULATION; 078 if ("exposure".equals(codeString)) 079 return EXPOSURE; 080 if ("outcome".equals(codeString)) 081 return OUTCOME; 082 if (Configuration.isAcceptInvalidEnums()) 083 return null; 084 else 085 throw new FHIRException("Unknown ResearchElementType code '"+codeString+"'"); 086 } 087 public String toCode() { 088 switch (this) { 089 case POPULATION: return "population"; 090 case EXPOSURE: return "exposure"; 091 case OUTCOME: return "outcome"; 092 case NULL: return null; 093 default: return "?"; 094 } 095 } 096 public String getSystem() { 097 switch (this) { 098 case POPULATION: return "http://hl7.org/fhir/research-element-type"; 099 case EXPOSURE: return "http://hl7.org/fhir/research-element-type"; 100 case OUTCOME: return "http://hl7.org/fhir/research-element-type"; 101 case NULL: return null; 102 default: return "?"; 103 } 104 } 105 public String getDefinition() { 106 switch (this) { 107 case POPULATION: return "The element defines the population that forms the basis for research."; 108 case EXPOSURE: return "The element defines an exposure within the population that is being researched."; 109 case OUTCOME: return "The element defines an outcome within the population that is being researched."; 110 case NULL: return null; 111 default: return "?"; 112 } 113 } 114 public String getDisplay() { 115 switch (this) { 116 case POPULATION: return "Population"; 117 case EXPOSURE: return "Exposure"; 118 case OUTCOME: return "Outcome"; 119 case NULL: return null; 120 default: return "?"; 121 } 122 } 123 } 124 125 public static class ResearchElementTypeEnumFactory implements EnumFactory<ResearchElementType> { 126 public ResearchElementType fromCode(String codeString) throws IllegalArgumentException { 127 if (codeString == null || "".equals(codeString)) 128 if (codeString == null || "".equals(codeString)) 129 return null; 130 if ("population".equals(codeString)) 131 return ResearchElementType.POPULATION; 132 if ("exposure".equals(codeString)) 133 return ResearchElementType.EXPOSURE; 134 if ("outcome".equals(codeString)) 135 return ResearchElementType.OUTCOME; 136 throw new IllegalArgumentException("Unknown ResearchElementType code '"+codeString+"'"); 137 } 138 public Enumeration<ResearchElementType> fromType(Base code) throws FHIRException { 139 if (code == null) 140 return null; 141 if (code.isEmpty()) 142 return new Enumeration<ResearchElementType>(this); 143 String codeString = ((PrimitiveType) code).asStringValue(); 144 if (codeString == null || "".equals(codeString)) 145 return null; 146 if ("population".equals(codeString)) 147 return new Enumeration<ResearchElementType>(this, ResearchElementType.POPULATION); 148 if ("exposure".equals(codeString)) 149 return new Enumeration<ResearchElementType>(this, ResearchElementType.EXPOSURE); 150 if ("outcome".equals(codeString)) 151 return new Enumeration<ResearchElementType>(this, ResearchElementType.OUTCOME); 152 throw new FHIRException("Unknown ResearchElementType code '"+codeString+"'"); 153 } 154 public String toCode(ResearchElementType code) { 155 if (code == ResearchElementType.POPULATION) 156 return "population"; 157 if (code == ResearchElementType.EXPOSURE) 158 return "exposure"; 159 if (code == ResearchElementType.OUTCOME) 160 return "outcome"; 161 return "?"; 162 } 163 public String toSystem(ResearchElementType code) { 164 return code.getSystem(); 165 } 166 } 167 168 public enum VariableType { 169 /** 170 * The variable is dichotomous, such as present or absent. 171 */ 172 DICHOTOMOUS, 173 /** 174 * The variable is a continuous result such as a quantity. 175 */ 176 CONTINUOUS, 177 /** 178 * The variable is described narratively rather than quantitatively. 179 */ 180 DESCRIPTIVE, 181 /** 182 * added to help the parsers with the generic types 183 */ 184 NULL; 185 public static VariableType fromCode(String codeString) throws FHIRException { 186 if (codeString == null || "".equals(codeString)) 187 return null; 188 if ("dichotomous".equals(codeString)) 189 return DICHOTOMOUS; 190 if ("continuous".equals(codeString)) 191 return CONTINUOUS; 192 if ("descriptive".equals(codeString)) 193 return DESCRIPTIVE; 194 if (Configuration.isAcceptInvalidEnums()) 195 return null; 196 else 197 throw new FHIRException("Unknown VariableType code '"+codeString+"'"); 198 } 199 public String toCode() { 200 switch (this) { 201 case DICHOTOMOUS: return "dichotomous"; 202 case CONTINUOUS: return "continuous"; 203 case DESCRIPTIVE: return "descriptive"; 204 case NULL: return null; 205 default: return "?"; 206 } 207 } 208 public String getSystem() { 209 switch (this) { 210 case DICHOTOMOUS: return "http://hl7.org/fhir/variable-type"; 211 case CONTINUOUS: return "http://hl7.org/fhir/variable-type"; 212 case DESCRIPTIVE: return "http://hl7.org/fhir/variable-type"; 213 case NULL: return null; 214 default: return "?"; 215 } 216 } 217 public String getDefinition() { 218 switch (this) { 219 case DICHOTOMOUS: return "The variable is dichotomous, such as present or absent."; 220 case CONTINUOUS: return "The variable is a continuous result such as a quantity."; 221 case DESCRIPTIVE: return "The variable is described narratively rather than quantitatively."; 222 case NULL: return null; 223 default: return "?"; 224 } 225 } 226 public String getDisplay() { 227 switch (this) { 228 case DICHOTOMOUS: return "Dichotomous"; 229 case CONTINUOUS: return "Continuous"; 230 case DESCRIPTIVE: return "Descriptive"; 231 case NULL: return null; 232 default: return "?"; 233 } 234 } 235 } 236 237 public static class VariableTypeEnumFactory implements EnumFactory<VariableType> { 238 public VariableType fromCode(String codeString) throws IllegalArgumentException { 239 if (codeString == null || "".equals(codeString)) 240 if (codeString == null || "".equals(codeString)) 241 return null; 242 if ("dichotomous".equals(codeString)) 243 return VariableType.DICHOTOMOUS; 244 if ("continuous".equals(codeString)) 245 return VariableType.CONTINUOUS; 246 if ("descriptive".equals(codeString)) 247 return VariableType.DESCRIPTIVE; 248 throw new IllegalArgumentException("Unknown VariableType code '"+codeString+"'"); 249 } 250 public Enumeration<VariableType> fromType(Base code) throws FHIRException { 251 if (code == null) 252 return null; 253 if (code.isEmpty()) 254 return new Enumeration<VariableType>(this); 255 String codeString = ((PrimitiveType) code).asStringValue(); 256 if (codeString == null || "".equals(codeString)) 257 return null; 258 if ("dichotomous".equals(codeString)) 259 return new Enumeration<VariableType>(this, VariableType.DICHOTOMOUS); 260 if ("continuous".equals(codeString)) 261 return new Enumeration<VariableType>(this, VariableType.CONTINUOUS); 262 if ("descriptive".equals(codeString)) 263 return new Enumeration<VariableType>(this, VariableType.DESCRIPTIVE); 264 throw new FHIRException("Unknown VariableType code '"+codeString+"'"); 265 } 266 public String toCode(VariableType code) { 267 if (code == VariableType.DICHOTOMOUS) 268 return "dichotomous"; 269 if (code == VariableType.CONTINUOUS) 270 return "continuous"; 271 if (code == VariableType.DESCRIPTIVE) 272 return "descriptive"; 273 return "?"; 274 } 275 public String toSystem(VariableType code) { 276 return code.getSystem(); 277 } 278 } 279 280 @Block() 281 public static class ResearchElementDefinitionCharacteristicComponent extends BackboneElement implements IBaseBackboneElement { 282 /** 283 * Define members of the research element using Codes (such as condition, medication, or observation), Expressions ( using an expression language such as FHIRPath or CQL) or DataRequirements (such as Diabetes diagnosis onset in the last year). 284 */ 285 @Child(name = "definition", type = {CodeableConcept.class, CanonicalType.class, Expression.class, DataRequirement.class}, order=1, min=1, max=1, modifier=false, summary=true) 286 @Description(shortDefinition="What code or expression defines members?", formalDefinition="Define members of the research element using Codes (such as condition, medication, or observation), Expressions ( using an expression language such as FHIRPath or CQL) or DataRequirements (such as Diabetes diagnosis onset in the last year)." ) 287 protected DataType definition; 288 289 /** 290 * Use UsageContext to define the members of the population, such as Age Ranges, Genders, Settings. 291 */ 292 @Child(name = "usageContext", type = {UsageContext.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 293 @Description(shortDefinition="What code/value pairs define members?", formalDefinition="Use UsageContext to define the members of the population, such as Age Ranges, Genders, Settings." ) 294 protected List<UsageContext> usageContext; 295 296 /** 297 * When true, members with this characteristic are excluded from the element. 298 */ 299 @Child(name = "exclude", type = {BooleanType.class}, order=3, min=0, max=1, modifier=false, summary=false) 300 @Description(shortDefinition="Whether the characteristic includes or excludes members", formalDefinition="When true, members with this characteristic are excluded from the element." ) 301 protected BooleanType exclude; 302 303 /** 304 * Specifies the UCUM unit for the outcome. 305 */ 306 @Child(name = "unitOfMeasure", type = {CodeableConcept.class}, order=4, min=0, max=1, modifier=false, summary=false) 307 @Description(shortDefinition="What unit is the outcome described in?", formalDefinition="Specifies the UCUM unit for the outcome." ) 308 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/ucum-units") 309 protected CodeableConcept unitOfMeasure; 310 311 /** 312 * A narrative description of the time period the study covers. 313 */ 314 @Child(name = "studyEffectiveDescription", type = {StringType.class}, order=5, min=0, max=1, modifier=false, summary=false) 315 @Description(shortDefinition="What time period does the study cover", formalDefinition="A narrative description of the time period the study covers." ) 316 protected StringType studyEffectiveDescription; 317 318 /** 319 * Indicates what effective period the study covers. 320 */ 321 @Child(name = "studyEffective", type = {DateTimeType.class, Period.class, Duration.class, Timing.class}, order=6, min=0, max=1, modifier=false, summary=false) 322 @Description(shortDefinition="What time period does the study cover", formalDefinition="Indicates what effective period the study covers." ) 323 protected DataType studyEffective; 324 325 /** 326 * Indicates duration from the study initiation. 327 */ 328 @Child(name = "studyEffectiveTimeFromStart", type = {Duration.class}, order=7, min=0, max=1, modifier=false, summary=false) 329 @Description(shortDefinition="Observation time from study start", formalDefinition="Indicates duration from the study initiation." ) 330 protected Duration studyEffectiveTimeFromStart; 331 332 /** 333 * Indicates how elements are aggregated within the study effective period. 334 */ 335 @Child(name = "studyEffectiveGroupMeasure", type = {CodeType.class}, order=8, min=0, max=1, modifier=false, summary=false) 336 @Description(shortDefinition="mean | median | mean-of-mean | mean-of-median | median-of-mean | median-of-median", formalDefinition="Indicates how elements are aggregated within the study effective period." ) 337 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/group-measure") 338 protected Enumeration<GroupMeasure> studyEffectiveGroupMeasure; 339 340 /** 341 * A narrative description of the time period the study covers. 342 */ 343 @Child(name = "participantEffectiveDescription", type = {StringType.class}, order=9, min=0, max=1, modifier=false, summary=false) 344 @Description(shortDefinition="What time period do participants cover", formalDefinition="A narrative description of the time period the study covers." ) 345 protected StringType participantEffectiveDescription; 346 347 /** 348 * Indicates what effective period the study covers. 349 */ 350 @Child(name = "participantEffective", type = {DateTimeType.class, Period.class, Duration.class, Timing.class}, order=10, min=0, max=1, modifier=false, summary=false) 351 @Description(shortDefinition="What time period do participants cover", formalDefinition="Indicates what effective period the study covers." ) 352 protected DataType participantEffective; 353 354 /** 355 * Indicates duration from the participant's study entry. 356 */ 357 @Child(name = "participantEffectiveTimeFromStart", type = {Duration.class}, order=11, min=0, max=1, modifier=false, summary=false) 358 @Description(shortDefinition="Observation time from study start", formalDefinition="Indicates duration from the participant's study entry." ) 359 protected Duration participantEffectiveTimeFromStart; 360 361 /** 362 * Indicates how elements are aggregated within the study effective period. 363 */ 364 @Child(name = "participantEffectiveGroupMeasure", type = {CodeType.class}, order=12, min=0, max=1, modifier=false, summary=false) 365 @Description(shortDefinition="mean | median | mean-of-mean | mean-of-median | median-of-mean | median-of-median", formalDefinition="Indicates how elements are aggregated within the study effective period." ) 366 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/group-measure") 367 protected Enumeration<GroupMeasure> participantEffectiveGroupMeasure; 368 369 private static final long serialVersionUID = -1591847631L; 370 371 /** 372 * Constructor 373 */ 374 public ResearchElementDefinitionCharacteristicComponent() { 375 super(); 376 } 377 378 /** 379 * Constructor 380 */ 381 public ResearchElementDefinitionCharacteristicComponent(DataType definition) { 382 super(); 383 this.setDefinition(definition); 384 } 385 386 /** 387 * @return {@link #definition} (Define members of the research element using Codes (such as condition, medication, or observation), Expressions ( using an expression language such as FHIRPath or CQL) or DataRequirements (such as Diabetes diagnosis onset in the last year).) 388 */ 389 public DataType getDefinition() { 390 return this.definition; 391 } 392 393 /** 394 * @return {@link #definition} (Define members of the research element using Codes (such as condition, medication, or observation), Expressions ( using an expression language such as FHIRPath or CQL) or DataRequirements (such as Diabetes diagnosis onset in the last year).) 395 */ 396 public CodeableConcept getDefinitionCodeableConcept() throws FHIRException { 397 if (this.definition == null) 398 this.definition = new CodeableConcept(); 399 if (!(this.definition instanceof CodeableConcept)) 400 throw new FHIRException("Type mismatch: the type CodeableConcept was expected, but "+this.definition.getClass().getName()+" was encountered"); 401 return (CodeableConcept) this.definition; 402 } 403 404 public boolean hasDefinitionCodeableConcept() { 405 return this != null && this.definition instanceof CodeableConcept; 406 } 407 408 /** 409 * @return {@link #definition} (Define members of the research element using Codes (such as condition, medication, or observation), Expressions ( using an expression language such as FHIRPath or CQL) or DataRequirements (such as Diabetes diagnosis onset in the last year).) 410 */ 411 public CanonicalType getDefinitionCanonicalType() throws FHIRException { 412 if (this.definition == null) 413 this.definition = new CanonicalType(); 414 if (!(this.definition instanceof CanonicalType)) 415 throw new FHIRException("Type mismatch: the type CanonicalType was expected, but "+this.definition.getClass().getName()+" was encountered"); 416 return (CanonicalType) this.definition; 417 } 418 419 public boolean hasDefinitionCanonicalType() { 420 return this != null && this.definition instanceof CanonicalType; 421 } 422 423 /** 424 * @return {@link #definition} (Define members of the research element using Codes (such as condition, medication, or observation), Expressions ( using an expression language such as FHIRPath or CQL) or DataRequirements (such as Diabetes diagnosis onset in the last year).) 425 */ 426 public Expression getDefinitionExpression() throws FHIRException { 427 if (this.definition == null) 428 this.definition = new Expression(); 429 if (!(this.definition instanceof Expression)) 430 throw new FHIRException("Type mismatch: the type Expression was expected, but "+this.definition.getClass().getName()+" was encountered"); 431 return (Expression) this.definition; 432 } 433 434 public boolean hasDefinitionExpression() { 435 return this != null && this.definition instanceof Expression; 436 } 437 438 /** 439 * @return {@link #definition} (Define members of the research element using Codes (such as condition, medication, or observation), Expressions ( using an expression language such as FHIRPath or CQL) or DataRequirements (such as Diabetes diagnosis onset in the last year).) 440 */ 441 public DataRequirement getDefinitionDataRequirement() throws FHIRException { 442 if (this.definition == null) 443 this.definition = new DataRequirement(); 444 if (!(this.definition instanceof DataRequirement)) 445 throw new FHIRException("Type mismatch: the type DataRequirement was expected, but "+this.definition.getClass().getName()+" was encountered"); 446 return (DataRequirement) this.definition; 447 } 448 449 public boolean hasDefinitionDataRequirement() { 450 return this != null && this.definition instanceof DataRequirement; 451 } 452 453 public boolean hasDefinition() { 454 return this.definition != null && !this.definition.isEmpty(); 455 } 456 457 /** 458 * @param value {@link #definition} (Define members of the research element using Codes (such as condition, medication, or observation), Expressions ( using an expression language such as FHIRPath or CQL) or DataRequirements (such as Diabetes diagnosis onset in the last year).) 459 */ 460 public ResearchElementDefinitionCharacteristicComponent setDefinition(DataType value) { 461 if (value != null && !(value instanceof CodeableConcept || value instanceof CanonicalType || value instanceof Expression || value instanceof DataRequirement)) 462 throw new Error("Not the right type for ResearchElementDefinition.characteristic.definition[x]: "+value.fhirType()); 463 this.definition = value; 464 return this; 465 } 466 467 /** 468 * @return {@link #usageContext} (Use UsageContext to define the members of the population, such as Age Ranges, Genders, Settings.) 469 */ 470 public List<UsageContext> getUsageContext() { 471 if (this.usageContext == null) 472 this.usageContext = new ArrayList<UsageContext>(); 473 return this.usageContext; 474 } 475 476 /** 477 * @return Returns a reference to <code>this</code> for easy method chaining 478 */ 479 public ResearchElementDefinitionCharacteristicComponent setUsageContext(List<UsageContext> theUsageContext) { 480 this.usageContext = theUsageContext; 481 return this; 482 } 483 484 public boolean hasUsageContext() { 485 if (this.usageContext == null) 486 return false; 487 for (UsageContext item : this.usageContext) 488 if (!item.isEmpty()) 489 return true; 490 return false; 491 } 492 493 public UsageContext addUsageContext() { //3 494 UsageContext t = new UsageContext(); 495 if (this.usageContext == null) 496 this.usageContext = new ArrayList<UsageContext>(); 497 this.usageContext.add(t); 498 return t; 499 } 500 501 public ResearchElementDefinitionCharacteristicComponent addUsageContext(UsageContext t) { //3 502 if (t == null) 503 return this; 504 if (this.usageContext == null) 505 this.usageContext = new ArrayList<UsageContext>(); 506 this.usageContext.add(t); 507 return this; 508 } 509 510 /** 511 * @return The first repetition of repeating field {@link #usageContext}, creating it if it does not already exist {3} 512 */ 513 public UsageContext getUsageContextFirstRep() { 514 if (getUsageContext().isEmpty()) { 515 addUsageContext(); 516 } 517 return getUsageContext().get(0); 518 } 519 520 /** 521 * @return {@link #exclude} (When true, members with this characteristic are excluded from the element.). This is the underlying object with id, value and extensions. The accessor "getExclude" gives direct access to the value 522 */ 523 public BooleanType getExcludeElement() { 524 if (this.exclude == null) 525 if (Configuration.errorOnAutoCreate()) 526 throw new Error("Attempt to auto-create ResearchElementDefinitionCharacteristicComponent.exclude"); 527 else if (Configuration.doAutoCreate()) 528 this.exclude = new BooleanType(); // bb 529 return this.exclude; 530 } 531 532 public boolean hasExcludeElement() { 533 return this.exclude != null && !this.exclude.isEmpty(); 534 } 535 536 public boolean hasExclude() { 537 return this.exclude != null && !this.exclude.isEmpty(); 538 } 539 540 /** 541 * @param value {@link #exclude} (When true, members with this characteristic are excluded from the element.). This is the underlying object with id, value and extensions. The accessor "getExclude" gives direct access to the value 542 */ 543 public ResearchElementDefinitionCharacteristicComponent setExcludeElement(BooleanType value) { 544 this.exclude = value; 545 return this; 546 } 547 548 /** 549 * @return When true, members with this characteristic are excluded from the element. 550 */ 551 public boolean getExclude() { 552 return this.exclude == null || this.exclude.isEmpty() ? false : this.exclude.getValue(); 553 } 554 555 /** 556 * @param value When true, members with this characteristic are excluded from the element. 557 */ 558 public ResearchElementDefinitionCharacteristicComponent setExclude(boolean value) { 559 if (this.exclude == null) 560 this.exclude = new BooleanType(); 561 this.exclude.setValue(value); 562 return this; 563 } 564 565 /** 566 * @return {@link #unitOfMeasure} (Specifies the UCUM unit for the outcome.) 567 */ 568 public CodeableConcept getUnitOfMeasure() { 569 if (this.unitOfMeasure == null) 570 if (Configuration.errorOnAutoCreate()) 571 throw new Error("Attempt to auto-create ResearchElementDefinitionCharacteristicComponent.unitOfMeasure"); 572 else if (Configuration.doAutoCreate()) 573 this.unitOfMeasure = new CodeableConcept(); // cc 574 return this.unitOfMeasure; 575 } 576 577 public boolean hasUnitOfMeasure() { 578 return this.unitOfMeasure != null && !this.unitOfMeasure.isEmpty(); 579 } 580 581 /** 582 * @param value {@link #unitOfMeasure} (Specifies the UCUM unit for the outcome.) 583 */ 584 public ResearchElementDefinitionCharacteristicComponent setUnitOfMeasure(CodeableConcept value) { 585 this.unitOfMeasure = value; 586 return this; 587 } 588 589 /** 590 * @return {@link #studyEffectiveDescription} (A narrative description of the time period the study covers.). This is the underlying object with id, value and extensions. The accessor "getStudyEffectiveDescription" gives direct access to the value 591 */ 592 public StringType getStudyEffectiveDescriptionElement() { 593 if (this.studyEffectiveDescription == null) 594 if (Configuration.errorOnAutoCreate()) 595 throw new Error("Attempt to auto-create ResearchElementDefinitionCharacteristicComponent.studyEffectiveDescription"); 596 else if (Configuration.doAutoCreate()) 597 this.studyEffectiveDescription = new StringType(); // bb 598 return this.studyEffectiveDescription; 599 } 600 601 public boolean hasStudyEffectiveDescriptionElement() { 602 return this.studyEffectiveDescription != null && !this.studyEffectiveDescription.isEmpty(); 603 } 604 605 public boolean hasStudyEffectiveDescription() { 606 return this.studyEffectiveDescription != null && !this.studyEffectiveDescription.isEmpty(); 607 } 608 609 /** 610 * @param value {@link #studyEffectiveDescription} (A narrative description of the time period the study covers.). This is the underlying object with id, value and extensions. The accessor "getStudyEffectiveDescription" gives direct access to the value 611 */ 612 public ResearchElementDefinitionCharacteristicComponent setStudyEffectiveDescriptionElement(StringType value) { 613 this.studyEffectiveDescription = value; 614 return this; 615 } 616 617 /** 618 * @return A narrative description of the time period the study covers. 619 */ 620 public String getStudyEffectiveDescription() { 621 return this.studyEffectiveDescription == null ? null : this.studyEffectiveDescription.getValue(); 622 } 623 624 /** 625 * @param value A narrative description of the time period the study covers. 626 */ 627 public ResearchElementDefinitionCharacteristicComponent setStudyEffectiveDescription(String value) { 628 if (Utilities.noString(value)) 629 this.studyEffectiveDescription = null; 630 else { 631 if (this.studyEffectiveDescription == null) 632 this.studyEffectiveDescription = new StringType(); 633 this.studyEffectiveDescription.setValue(value); 634 } 635 return this; 636 } 637 638 /** 639 * @return {@link #studyEffective} (Indicates what effective period the study covers.) 640 */ 641 public DataType getStudyEffective() { 642 return this.studyEffective; 643 } 644 645 /** 646 * @return {@link #studyEffective} (Indicates what effective period the study covers.) 647 */ 648 public DateTimeType getStudyEffectiveDateTimeType() throws FHIRException { 649 if (this.studyEffective == null) 650 this.studyEffective = new DateTimeType(); 651 if (!(this.studyEffective instanceof DateTimeType)) 652 throw new FHIRException("Type mismatch: the type DateTimeType was expected, but "+this.studyEffective.getClass().getName()+" was encountered"); 653 return (DateTimeType) this.studyEffective; 654 } 655 656 public boolean hasStudyEffectiveDateTimeType() { 657 return this != null && this.studyEffective instanceof DateTimeType; 658 } 659 660 /** 661 * @return {@link #studyEffective} (Indicates what effective period the study covers.) 662 */ 663 public Period getStudyEffectivePeriod() throws FHIRException { 664 if (this.studyEffective == null) 665 this.studyEffective = new Period(); 666 if (!(this.studyEffective instanceof Period)) 667 throw new FHIRException("Type mismatch: the type Period was expected, but "+this.studyEffective.getClass().getName()+" was encountered"); 668 return (Period) this.studyEffective; 669 } 670 671 public boolean hasStudyEffectivePeriod() { 672 return this != null && this.studyEffective instanceof Period; 673 } 674 675 /** 676 * @return {@link #studyEffective} (Indicates what effective period the study covers.) 677 */ 678 public Duration getStudyEffectiveDuration() throws FHIRException { 679 if (this.studyEffective == null) 680 this.studyEffective = new Duration(); 681 if (!(this.studyEffective instanceof Duration)) 682 throw new FHIRException("Type mismatch: the type Duration was expected, but "+this.studyEffective.getClass().getName()+" was encountered"); 683 return (Duration) this.studyEffective; 684 } 685 686 public boolean hasStudyEffectiveDuration() { 687 return this != null && this.studyEffective instanceof Duration; 688 } 689 690 /** 691 * @return {@link #studyEffective} (Indicates what effective period the study covers.) 692 */ 693 public Timing getStudyEffectiveTiming() throws FHIRException { 694 if (this.studyEffective == null) 695 this.studyEffective = new Timing(); 696 if (!(this.studyEffective instanceof Timing)) 697 throw new FHIRException("Type mismatch: the type Timing was expected, but "+this.studyEffective.getClass().getName()+" was encountered"); 698 return (Timing) this.studyEffective; 699 } 700 701 public boolean hasStudyEffectiveTiming() { 702 return this != null && this.studyEffective instanceof Timing; 703 } 704 705 public boolean hasStudyEffective() { 706 return this.studyEffective != null && !this.studyEffective.isEmpty(); 707 } 708 709 /** 710 * @param value {@link #studyEffective} (Indicates what effective period the study covers.) 711 */ 712 public ResearchElementDefinitionCharacteristicComponent setStudyEffective(DataType value) { 713 if (value != null && !(value instanceof DateTimeType || value instanceof Period || value instanceof Duration || value instanceof Timing)) 714 throw new Error("Not the right type for ResearchElementDefinition.characteristic.studyEffective[x]: "+value.fhirType()); 715 this.studyEffective = value; 716 return this; 717 } 718 719 /** 720 * @return {@link #studyEffectiveTimeFromStart} (Indicates duration from the study initiation.) 721 */ 722 public Duration getStudyEffectiveTimeFromStart() { 723 if (this.studyEffectiveTimeFromStart == null) 724 if (Configuration.errorOnAutoCreate()) 725 throw new Error("Attempt to auto-create ResearchElementDefinitionCharacteristicComponent.studyEffectiveTimeFromStart"); 726 else if (Configuration.doAutoCreate()) 727 this.studyEffectiveTimeFromStart = new Duration(); // cc 728 return this.studyEffectiveTimeFromStart; 729 } 730 731 public boolean hasStudyEffectiveTimeFromStart() { 732 return this.studyEffectiveTimeFromStart != null && !this.studyEffectiveTimeFromStart.isEmpty(); 733 } 734 735 /** 736 * @param value {@link #studyEffectiveTimeFromStart} (Indicates duration from the study initiation.) 737 */ 738 public ResearchElementDefinitionCharacteristicComponent setStudyEffectiveTimeFromStart(Duration value) { 739 this.studyEffectiveTimeFromStart = value; 740 return this; 741 } 742 743 /** 744 * @return {@link #studyEffectiveGroupMeasure} (Indicates how elements are aggregated within the study effective period.). This is the underlying object with id, value and extensions. The accessor "getStudyEffectiveGroupMeasure" gives direct access to the value 745 */ 746 public Enumeration<GroupMeasure> getStudyEffectiveGroupMeasureElement() { 747 if (this.studyEffectiveGroupMeasure == null) 748 if (Configuration.errorOnAutoCreate()) 749 throw new Error("Attempt to auto-create ResearchElementDefinitionCharacteristicComponent.studyEffectiveGroupMeasure"); 750 else if (Configuration.doAutoCreate()) 751 this.studyEffectiveGroupMeasure = new Enumeration<GroupMeasure>(new GroupMeasureEnumFactory()); // bb 752 return this.studyEffectiveGroupMeasure; 753 } 754 755 public boolean hasStudyEffectiveGroupMeasureElement() { 756 return this.studyEffectiveGroupMeasure != null && !this.studyEffectiveGroupMeasure.isEmpty(); 757 } 758 759 public boolean hasStudyEffectiveGroupMeasure() { 760 return this.studyEffectiveGroupMeasure != null && !this.studyEffectiveGroupMeasure.isEmpty(); 761 } 762 763 /** 764 * @param value {@link #studyEffectiveGroupMeasure} (Indicates how elements are aggregated within the study effective period.). This is the underlying object with id, value and extensions. The accessor "getStudyEffectiveGroupMeasure" gives direct access to the value 765 */ 766 public ResearchElementDefinitionCharacteristicComponent setStudyEffectiveGroupMeasureElement(Enumeration<GroupMeasure> value) { 767 this.studyEffectiveGroupMeasure = value; 768 return this; 769 } 770 771 /** 772 * @return Indicates how elements are aggregated within the study effective period. 773 */ 774 public GroupMeasure getStudyEffectiveGroupMeasure() { 775 return this.studyEffectiveGroupMeasure == null ? null : this.studyEffectiveGroupMeasure.getValue(); 776 } 777 778 /** 779 * @param value Indicates how elements are aggregated within the study effective period. 780 */ 781 public ResearchElementDefinitionCharacteristicComponent setStudyEffectiveGroupMeasure(GroupMeasure value) { 782 if (value == null) 783 this.studyEffectiveGroupMeasure = null; 784 else { 785 if (this.studyEffectiveGroupMeasure == null) 786 this.studyEffectiveGroupMeasure = new Enumeration<GroupMeasure>(new GroupMeasureEnumFactory()); 787 this.studyEffectiveGroupMeasure.setValue(value); 788 } 789 return this; 790 } 791 792 /** 793 * @return {@link #participantEffectiveDescription} (A narrative description of the time period the study covers.). This is the underlying object with id, value and extensions. The accessor "getParticipantEffectiveDescription" gives direct access to the value 794 */ 795 public StringType getParticipantEffectiveDescriptionElement() { 796 if (this.participantEffectiveDescription == null) 797 if (Configuration.errorOnAutoCreate()) 798 throw new Error("Attempt to auto-create ResearchElementDefinitionCharacteristicComponent.participantEffectiveDescription"); 799 else if (Configuration.doAutoCreate()) 800 this.participantEffectiveDescription = new StringType(); // bb 801 return this.participantEffectiveDescription; 802 } 803 804 public boolean hasParticipantEffectiveDescriptionElement() { 805 return this.participantEffectiveDescription != null && !this.participantEffectiveDescription.isEmpty(); 806 } 807 808 public boolean hasParticipantEffectiveDescription() { 809 return this.participantEffectiveDescription != null && !this.participantEffectiveDescription.isEmpty(); 810 } 811 812 /** 813 * @param value {@link #participantEffectiveDescription} (A narrative description of the time period the study covers.). This is the underlying object with id, value and extensions. The accessor "getParticipantEffectiveDescription" gives direct access to the value 814 */ 815 public ResearchElementDefinitionCharacteristicComponent setParticipantEffectiveDescriptionElement(StringType value) { 816 this.participantEffectiveDescription = value; 817 return this; 818 } 819 820 /** 821 * @return A narrative description of the time period the study covers. 822 */ 823 public String getParticipantEffectiveDescription() { 824 return this.participantEffectiveDescription == null ? null : this.participantEffectiveDescription.getValue(); 825 } 826 827 /** 828 * @param value A narrative description of the time period the study covers. 829 */ 830 public ResearchElementDefinitionCharacteristicComponent setParticipantEffectiveDescription(String value) { 831 if (Utilities.noString(value)) 832 this.participantEffectiveDescription = null; 833 else { 834 if (this.participantEffectiveDescription == null) 835 this.participantEffectiveDescription = new StringType(); 836 this.participantEffectiveDescription.setValue(value); 837 } 838 return this; 839 } 840 841 /** 842 * @return {@link #participantEffective} (Indicates what effective period the study covers.) 843 */ 844 public DataType getParticipantEffective() { 845 return this.participantEffective; 846 } 847 848 /** 849 * @return {@link #participantEffective} (Indicates what effective period the study covers.) 850 */ 851 public DateTimeType getParticipantEffectiveDateTimeType() throws FHIRException { 852 if (this.participantEffective == null) 853 this.participantEffective = new DateTimeType(); 854 if (!(this.participantEffective instanceof DateTimeType)) 855 throw new FHIRException("Type mismatch: the type DateTimeType was expected, but "+this.participantEffective.getClass().getName()+" was encountered"); 856 return (DateTimeType) this.participantEffective; 857 } 858 859 public boolean hasParticipantEffectiveDateTimeType() { 860 return this != null && this.participantEffective instanceof DateTimeType; 861 } 862 863 /** 864 * @return {@link #participantEffective} (Indicates what effective period the study covers.) 865 */ 866 public Period getParticipantEffectivePeriod() throws FHIRException { 867 if (this.participantEffective == null) 868 this.participantEffective = new Period(); 869 if (!(this.participantEffective instanceof Period)) 870 throw new FHIRException("Type mismatch: the type Period was expected, but "+this.participantEffective.getClass().getName()+" was encountered"); 871 return (Period) this.participantEffective; 872 } 873 874 public boolean hasParticipantEffectivePeriod() { 875 return this != null && this.participantEffective instanceof Period; 876 } 877 878 /** 879 * @return {@link #participantEffective} (Indicates what effective period the study covers.) 880 */ 881 public Duration getParticipantEffectiveDuration() throws FHIRException { 882 if (this.participantEffective == null) 883 this.participantEffective = new Duration(); 884 if (!(this.participantEffective instanceof Duration)) 885 throw new FHIRException("Type mismatch: the type Duration was expected, but "+this.participantEffective.getClass().getName()+" was encountered"); 886 return (Duration) this.participantEffective; 887 } 888 889 public boolean hasParticipantEffectiveDuration() { 890 return this != null && this.participantEffective instanceof Duration; 891 } 892 893 /** 894 * @return {@link #participantEffective} (Indicates what effective period the study covers.) 895 */ 896 public Timing getParticipantEffectiveTiming() throws FHIRException { 897 if (this.participantEffective == null) 898 this.participantEffective = new Timing(); 899 if (!(this.participantEffective instanceof Timing)) 900 throw new FHIRException("Type mismatch: the type Timing was expected, but "+this.participantEffective.getClass().getName()+" was encountered"); 901 return (Timing) this.participantEffective; 902 } 903 904 public boolean hasParticipantEffectiveTiming() { 905 return this != null && this.participantEffective instanceof Timing; 906 } 907 908 public boolean hasParticipantEffective() { 909 return this.participantEffective != null && !this.participantEffective.isEmpty(); 910 } 911 912 /** 913 * @param value {@link #participantEffective} (Indicates what effective period the study covers.) 914 */ 915 public ResearchElementDefinitionCharacteristicComponent setParticipantEffective(DataType value) { 916 if (value != null && !(value instanceof DateTimeType || value instanceof Period || value instanceof Duration || value instanceof Timing)) 917 throw new Error("Not the right type for ResearchElementDefinition.characteristic.participantEffective[x]: "+value.fhirType()); 918 this.participantEffective = value; 919 return this; 920 } 921 922 /** 923 * @return {@link #participantEffectiveTimeFromStart} (Indicates duration from the participant's study entry.) 924 */ 925 public Duration getParticipantEffectiveTimeFromStart() { 926 if (this.participantEffectiveTimeFromStart == null) 927 if (Configuration.errorOnAutoCreate()) 928 throw new Error("Attempt to auto-create ResearchElementDefinitionCharacteristicComponent.participantEffectiveTimeFromStart"); 929 else if (Configuration.doAutoCreate()) 930 this.participantEffectiveTimeFromStart = new Duration(); // cc 931 return this.participantEffectiveTimeFromStart; 932 } 933 934 public boolean hasParticipantEffectiveTimeFromStart() { 935 return this.participantEffectiveTimeFromStart != null && !this.participantEffectiveTimeFromStart.isEmpty(); 936 } 937 938 /** 939 * @param value {@link #participantEffectiveTimeFromStart} (Indicates duration from the participant's study entry.) 940 */ 941 public ResearchElementDefinitionCharacteristicComponent setParticipantEffectiveTimeFromStart(Duration value) { 942 this.participantEffectiveTimeFromStart = value; 943 return this; 944 } 945 946 /** 947 * @return {@link #participantEffectiveGroupMeasure} (Indicates how elements are aggregated within the study effective period.). This is the underlying object with id, value and extensions. The accessor "getParticipantEffectiveGroupMeasure" gives direct access to the value 948 */ 949 public Enumeration<GroupMeasure> getParticipantEffectiveGroupMeasureElement() { 950 if (this.participantEffectiveGroupMeasure == null) 951 if (Configuration.errorOnAutoCreate()) 952 throw new Error("Attempt to auto-create ResearchElementDefinitionCharacteristicComponent.participantEffectiveGroupMeasure"); 953 else if (Configuration.doAutoCreate()) 954 this.participantEffectiveGroupMeasure = new Enumeration<GroupMeasure>(new GroupMeasureEnumFactory()); // bb 955 return this.participantEffectiveGroupMeasure; 956 } 957 958 public boolean hasParticipantEffectiveGroupMeasureElement() { 959 return this.participantEffectiveGroupMeasure != null && !this.participantEffectiveGroupMeasure.isEmpty(); 960 } 961 962 public boolean hasParticipantEffectiveGroupMeasure() { 963 return this.participantEffectiveGroupMeasure != null && !this.participantEffectiveGroupMeasure.isEmpty(); 964 } 965 966 /** 967 * @param value {@link #participantEffectiveGroupMeasure} (Indicates how elements are aggregated within the study effective period.). This is the underlying object with id, value and extensions. The accessor "getParticipantEffectiveGroupMeasure" gives direct access to the value 968 */ 969 public ResearchElementDefinitionCharacteristicComponent setParticipantEffectiveGroupMeasureElement(Enumeration<GroupMeasure> value) { 970 this.participantEffectiveGroupMeasure = value; 971 return this; 972 } 973 974 /** 975 * @return Indicates how elements are aggregated within the study effective period. 976 */ 977 public GroupMeasure getParticipantEffectiveGroupMeasure() { 978 return this.participantEffectiveGroupMeasure == null ? null : this.participantEffectiveGroupMeasure.getValue(); 979 } 980 981 /** 982 * @param value Indicates how elements are aggregated within the study effective period. 983 */ 984 public ResearchElementDefinitionCharacteristicComponent setParticipantEffectiveGroupMeasure(GroupMeasure value) { 985 if (value == null) 986 this.participantEffectiveGroupMeasure = null; 987 else { 988 if (this.participantEffectiveGroupMeasure == null) 989 this.participantEffectiveGroupMeasure = new Enumeration<GroupMeasure>(new GroupMeasureEnumFactory()); 990 this.participantEffectiveGroupMeasure.setValue(value); 991 } 992 return this; 993 } 994 995 protected void listChildren(List<Property> children) { 996 super.listChildren(children); 997 children.add(new Property("definition[x]", "CodeableConcept|canonical(ValueSet)|Expression|DataRequirement", "Define members of the research element using Codes (such as condition, medication, or observation), Expressions ( using an expression language such as FHIRPath or CQL) or DataRequirements (such as Diabetes diagnosis onset in the last year).", 0, 1, definition)); 998 children.add(new Property("usageContext", "UsageContext", "Use UsageContext to define the members of the population, such as Age Ranges, Genders, Settings.", 0, java.lang.Integer.MAX_VALUE, usageContext)); 999 children.add(new Property("exclude", "boolean", "When true, members with this characteristic are excluded from the element.", 0, 1, exclude)); 1000 children.add(new Property("unitOfMeasure", "CodeableConcept", "Specifies the UCUM unit for the outcome.", 0, 1, unitOfMeasure)); 1001 children.add(new Property("studyEffectiveDescription", "string", "A narrative description of the time period the study covers.", 0, 1, studyEffectiveDescription)); 1002 children.add(new Property("studyEffective[x]", "dateTime|Period|Duration|Timing", "Indicates what effective period the study covers.", 0, 1, studyEffective)); 1003 children.add(new Property("studyEffectiveTimeFromStart", "Duration", "Indicates duration from the study initiation.", 0, 1, studyEffectiveTimeFromStart)); 1004 children.add(new Property("studyEffectiveGroupMeasure", "code", "Indicates how elements are aggregated within the study effective period.", 0, 1, studyEffectiveGroupMeasure)); 1005 children.add(new Property("participantEffectiveDescription", "string", "A narrative description of the time period the study covers.", 0, 1, participantEffectiveDescription)); 1006 children.add(new Property("participantEffective[x]", "dateTime|Period|Duration|Timing", "Indicates what effective period the study covers.", 0, 1, participantEffective)); 1007 children.add(new Property("participantEffectiveTimeFromStart", "Duration", "Indicates duration from the participant's study entry.", 0, 1, participantEffectiveTimeFromStart)); 1008 children.add(new Property("participantEffectiveGroupMeasure", "code", "Indicates how elements are aggregated within the study effective period.", 0, 1, participantEffectiveGroupMeasure)); 1009 } 1010 1011 @Override 1012 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1013 switch (_hash) { 1014 case -1139422643: /*definition[x]*/ return new Property("definition[x]", "CodeableConcept|canonical(ValueSet)|Expression|DataRequirement", "Define members of the research element using Codes (such as condition, medication, or observation), Expressions ( using an expression language such as FHIRPath or CQL) or DataRequirements (such as Diabetes diagnosis onset in the last year).", 0, 1, definition); 1015 case -1014418093: /*definition*/ return new Property("definition[x]", "CodeableConcept|canonical(ValueSet)|Expression|DataRequirement", "Define members of the research element using Codes (such as condition, medication, or observation), Expressions ( using an expression language such as FHIRPath or CQL) or DataRequirements (such as Diabetes diagnosis onset in the last year).", 0, 1, definition); 1016 case -1446002226: /*definitionCodeableConcept*/ return new Property("definition[x]", "CodeableConcept", "Define members of the research element using Codes (such as condition, medication, or observation), Expressions ( using an expression language such as FHIRPath or CQL) or DataRequirements (such as Diabetes diagnosis onset in the last year).", 0, 1, definition); 1017 case 933485793: /*definitionCanonical*/ return new Property("definition[x]", "canonical(ValueSet)", "Define members of the research element using Codes (such as condition, medication, or observation), Expressions ( using an expression language such as FHIRPath or CQL) or DataRequirements (such as Diabetes diagnosis onset in the last year).", 0, 1, definition); 1018 case 1463703627: /*definitionExpression*/ return new Property("definition[x]", "Expression", "Define members of the research element using Codes (such as condition, medication, or observation), Expressions ( using an expression language such as FHIRPath or CQL) or DataRequirements (such as Diabetes diagnosis onset in the last year).", 0, 1, definition); 1019 case -660350874: /*definitionDataRequirement*/ return new Property("definition[x]", "DataRequirement", "Define members of the research element using Codes (such as condition, medication, or observation), Expressions ( using an expression language such as FHIRPath or CQL) or DataRequirements (such as Diabetes diagnosis onset in the last year).", 0, 1, definition); 1020 case 907012302: /*usageContext*/ return new Property("usageContext", "UsageContext", "Use UsageContext to define the members of the population, such as Age Ranges, Genders, Settings.", 0, java.lang.Integer.MAX_VALUE, usageContext); 1021 case -1321148966: /*exclude*/ return new Property("exclude", "boolean", "When true, members with this characteristic are excluded from the element.", 0, 1, exclude); 1022 case -750257565: /*unitOfMeasure*/ return new Property("unitOfMeasure", "CodeableConcept", "Specifies the UCUM unit for the outcome.", 0, 1, unitOfMeasure); 1023 case 237553470: /*studyEffectiveDescription*/ return new Property("studyEffectiveDescription", "string", "A narrative description of the time period the study covers.", 0, 1, studyEffectiveDescription); 1024 case -1832549918: /*studyEffective[x]*/ return new Property("studyEffective[x]", "dateTime|Period|Duration|Timing", "Indicates what effective period the study covers.", 0, 1, studyEffective); 1025 case -836391458: /*studyEffective*/ return new Property("studyEffective[x]", "dateTime|Period|Duration|Timing", "Indicates what effective period the study covers.", 0, 1, studyEffective); 1026 case 439780249: /*studyEffectiveDateTime*/ return new Property("studyEffective[x]", "dateTime", "Indicates what effective period the study covers.", 0, 1, studyEffective); 1027 case -497045185: /*studyEffectivePeriod*/ return new Property("studyEffective[x]", "Period", "Indicates what effective period the study covers.", 0, 1, studyEffective); 1028 case 949985682: /*studyEffectiveDuration*/ return new Property("studyEffective[x]", "Duration", "Indicates what effective period the study covers.", 0, 1, studyEffective); 1029 case -378983480: /*studyEffectiveTiming*/ return new Property("studyEffective[x]", "Timing", "Indicates what effective period the study covers.", 0, 1, studyEffective); 1030 case -2107828915: /*studyEffectiveTimeFromStart*/ return new Property("studyEffectiveTimeFromStart", "Duration", "Indicates duration from the study initiation.", 0, 1, studyEffectiveTimeFromStart); 1031 case 1284435677: /*studyEffectiveGroupMeasure*/ return new Property("studyEffectiveGroupMeasure", "code", "Indicates how elements are aggregated within the study effective period.", 0, 1, studyEffectiveGroupMeasure); 1032 case 1333186472: /*participantEffectiveDescription*/ return new Property("participantEffectiveDescription", "string", "A narrative description of the time period the study covers.", 0, 1, participantEffectiveDescription); 1033 case 1777308748: /*participantEffective[x]*/ return new Property("participantEffective[x]", "dateTime|Period|Duration|Timing", "Indicates what effective period the study covers.", 0, 1, participantEffective); 1034 case 1376306100: /*participantEffective*/ return new Property("participantEffective[x]", "dateTime|Period|Duration|Timing", "Indicates what effective period the study covers.", 0, 1, participantEffective); 1035 case -1721146513: /*participantEffectiveDateTime*/ return new Property("participantEffective[x]", "dateTime", "Indicates what effective period the study covers.", 0, 1, participantEffective); 1036 case -883650923: /*participantEffectivePeriod*/ return new Property("participantEffective[x]", "Period", "Indicates what effective period the study covers.", 0, 1, participantEffective); 1037 case -1210941080: /*participantEffectiveDuration*/ return new Property("participantEffective[x]", "Duration", "Indicates what effective period the study covers.", 0, 1, participantEffective); 1038 case -765589218: /*participantEffectiveTiming*/ return new Property("participantEffective[x]", "Timing", "Indicates what effective period the study covers.", 0, 1, participantEffective); 1039 case -1471501513: /*participantEffectiveTimeFromStart*/ return new Property("participantEffectiveTimeFromStart", "Duration", "Indicates duration from the participant's study entry.", 0, 1, participantEffectiveTimeFromStart); 1040 case 889320371: /*participantEffectiveGroupMeasure*/ return new Property("participantEffectiveGroupMeasure", "code", "Indicates how elements are aggregated within the study effective period.", 0, 1, participantEffectiveGroupMeasure); 1041 default: return super.getNamedProperty(_hash, _name, _checkValid); 1042 } 1043 1044 } 1045 1046 @Override 1047 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1048 switch (hash) { 1049 case -1014418093: /*definition*/ return this.definition == null ? new Base[0] : new Base[] {this.definition}; // DataType 1050 case 907012302: /*usageContext*/ return this.usageContext == null ? new Base[0] : this.usageContext.toArray(new Base[this.usageContext.size()]); // UsageContext 1051 case -1321148966: /*exclude*/ return this.exclude == null ? new Base[0] : new Base[] {this.exclude}; // BooleanType 1052 case -750257565: /*unitOfMeasure*/ return this.unitOfMeasure == null ? new Base[0] : new Base[] {this.unitOfMeasure}; // CodeableConcept 1053 case 237553470: /*studyEffectiveDescription*/ return this.studyEffectiveDescription == null ? new Base[0] : new Base[] {this.studyEffectiveDescription}; // StringType 1054 case -836391458: /*studyEffective*/ return this.studyEffective == null ? new Base[0] : new Base[] {this.studyEffective}; // DataType 1055 case -2107828915: /*studyEffectiveTimeFromStart*/ return this.studyEffectiveTimeFromStart == null ? new Base[0] : new Base[] {this.studyEffectiveTimeFromStart}; // Duration 1056 case 1284435677: /*studyEffectiveGroupMeasure*/ return this.studyEffectiveGroupMeasure == null ? new Base[0] : new Base[] {this.studyEffectiveGroupMeasure}; // Enumeration<GroupMeasure> 1057 case 1333186472: /*participantEffectiveDescription*/ return this.participantEffectiveDescription == null ? new Base[0] : new Base[] {this.participantEffectiveDescription}; // StringType 1058 case 1376306100: /*participantEffective*/ return this.participantEffective == null ? new Base[0] : new Base[] {this.participantEffective}; // DataType 1059 case -1471501513: /*participantEffectiveTimeFromStart*/ return this.participantEffectiveTimeFromStart == null ? new Base[0] : new Base[] {this.participantEffectiveTimeFromStart}; // Duration 1060 case 889320371: /*participantEffectiveGroupMeasure*/ return this.participantEffectiveGroupMeasure == null ? new Base[0] : new Base[] {this.participantEffectiveGroupMeasure}; // Enumeration<GroupMeasure> 1061 default: return super.getProperty(hash, name, checkValid); 1062 } 1063 1064 } 1065 1066 @Override 1067 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1068 switch (hash) { 1069 case -1014418093: // definition 1070 this.definition = TypeConvertor.castToType(value); // DataType 1071 return value; 1072 case 907012302: // usageContext 1073 this.getUsageContext().add(TypeConvertor.castToUsageContext(value)); // UsageContext 1074 return value; 1075 case -1321148966: // exclude 1076 this.exclude = TypeConvertor.castToBoolean(value); // BooleanType 1077 return value; 1078 case -750257565: // unitOfMeasure 1079 this.unitOfMeasure = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1080 return value; 1081 case 237553470: // studyEffectiveDescription 1082 this.studyEffectiveDescription = TypeConvertor.castToString(value); // StringType 1083 return value; 1084 case -836391458: // studyEffective 1085 this.studyEffective = TypeConvertor.castToType(value); // DataType 1086 return value; 1087 case -2107828915: // studyEffectiveTimeFromStart 1088 this.studyEffectiveTimeFromStart = TypeConvertor.castToDuration(value); // Duration 1089 return value; 1090 case 1284435677: // studyEffectiveGroupMeasure 1091 value = new GroupMeasureEnumFactory().fromType(TypeConvertor.castToCode(value)); 1092 this.studyEffectiveGroupMeasure = (Enumeration) value; // Enumeration<GroupMeasure> 1093 return value; 1094 case 1333186472: // participantEffectiveDescription 1095 this.participantEffectiveDescription = TypeConvertor.castToString(value); // StringType 1096 return value; 1097 case 1376306100: // participantEffective 1098 this.participantEffective = TypeConvertor.castToType(value); // DataType 1099 return value; 1100 case -1471501513: // participantEffectiveTimeFromStart 1101 this.participantEffectiveTimeFromStart = TypeConvertor.castToDuration(value); // Duration 1102 return value; 1103 case 889320371: // participantEffectiveGroupMeasure 1104 value = new GroupMeasureEnumFactory().fromType(TypeConvertor.castToCode(value)); 1105 this.participantEffectiveGroupMeasure = (Enumeration) value; // Enumeration<GroupMeasure> 1106 return value; 1107 default: return super.setProperty(hash, name, value); 1108 } 1109 1110 } 1111 1112 @Override 1113 public Base setProperty(String name, Base value) throws FHIRException { 1114 if (name.equals("definition[x]")) { 1115 this.definition = TypeConvertor.castToType(value); // DataType 1116 } else if (name.equals("usageContext")) { 1117 this.getUsageContext().add(TypeConvertor.castToUsageContext(value)); 1118 } else if (name.equals("exclude")) { 1119 this.exclude = TypeConvertor.castToBoolean(value); // BooleanType 1120 } else if (name.equals("unitOfMeasure")) { 1121 this.unitOfMeasure = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1122 } else if (name.equals("studyEffectiveDescription")) { 1123 this.studyEffectiveDescription = TypeConvertor.castToString(value); // StringType 1124 } else if (name.equals("studyEffective[x]")) { 1125 this.studyEffective = TypeConvertor.castToType(value); // DataType 1126 } else if (name.equals("studyEffectiveTimeFromStart")) { 1127 this.studyEffectiveTimeFromStart = TypeConvertor.castToDuration(value); // Duration 1128 } else if (name.equals("studyEffectiveGroupMeasure")) { 1129 value = new GroupMeasureEnumFactory().fromType(TypeConvertor.castToCode(value)); 1130 this.studyEffectiveGroupMeasure = (Enumeration) value; // Enumeration<GroupMeasure> 1131 } else if (name.equals("participantEffectiveDescription")) { 1132 this.participantEffectiveDescription = TypeConvertor.castToString(value); // StringType 1133 } else if (name.equals("participantEffective[x]")) { 1134 this.participantEffective = TypeConvertor.castToType(value); // DataType 1135 } else if (name.equals("participantEffectiveTimeFromStart")) { 1136 this.participantEffectiveTimeFromStart = TypeConvertor.castToDuration(value); // Duration 1137 } else if (name.equals("participantEffectiveGroupMeasure")) { 1138 value = new GroupMeasureEnumFactory().fromType(TypeConvertor.castToCode(value)); 1139 this.participantEffectiveGroupMeasure = (Enumeration) value; // Enumeration<GroupMeasure> 1140 } else 1141 return super.setProperty(name, value); 1142 return value; 1143 } 1144 1145 @Override 1146 public Base makeProperty(int hash, String name) throws FHIRException { 1147 switch (hash) { 1148 case -1139422643: return getDefinition(); 1149 case -1014418093: return getDefinition(); 1150 case 907012302: return addUsageContext(); 1151 case -1321148966: return getExcludeElement(); 1152 case -750257565: return getUnitOfMeasure(); 1153 case 237553470: return getStudyEffectiveDescriptionElement(); 1154 case -1832549918: return getStudyEffective(); 1155 case -836391458: return getStudyEffective(); 1156 case -2107828915: return getStudyEffectiveTimeFromStart(); 1157 case 1284435677: return getStudyEffectiveGroupMeasureElement(); 1158 case 1333186472: return getParticipantEffectiveDescriptionElement(); 1159 case 1777308748: return getParticipantEffective(); 1160 case 1376306100: return getParticipantEffective(); 1161 case -1471501513: return getParticipantEffectiveTimeFromStart(); 1162 case 889320371: return getParticipantEffectiveGroupMeasureElement(); 1163 default: return super.makeProperty(hash, name); 1164 } 1165 1166 } 1167 1168 @Override 1169 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1170 switch (hash) { 1171 case -1014418093: /*definition*/ return new String[] {"CodeableConcept", "canonical", "Expression", "DataRequirement"}; 1172 case 907012302: /*usageContext*/ return new String[] {"UsageContext"}; 1173 case -1321148966: /*exclude*/ return new String[] {"boolean"}; 1174 case -750257565: /*unitOfMeasure*/ return new String[] {"CodeableConcept"}; 1175 case 237553470: /*studyEffectiveDescription*/ return new String[] {"string"}; 1176 case -836391458: /*studyEffective*/ return new String[] {"dateTime", "Period", "Duration", "Timing"}; 1177 case -2107828915: /*studyEffectiveTimeFromStart*/ return new String[] {"Duration"}; 1178 case 1284435677: /*studyEffectiveGroupMeasure*/ return new String[] {"code"}; 1179 case 1333186472: /*participantEffectiveDescription*/ return new String[] {"string"}; 1180 case 1376306100: /*participantEffective*/ return new String[] {"dateTime", "Period", "Duration", "Timing"}; 1181 case -1471501513: /*participantEffectiveTimeFromStart*/ return new String[] {"Duration"}; 1182 case 889320371: /*participantEffectiveGroupMeasure*/ return new String[] {"code"}; 1183 default: return super.getTypesForProperty(hash, name); 1184 } 1185 1186 } 1187 1188 @Override 1189 public Base addChild(String name) throws FHIRException { 1190 if (name.equals("definitionCodeableConcept")) { 1191 this.definition = new CodeableConcept(); 1192 return this.definition; 1193 } 1194 else if (name.equals("definitionCanonical")) { 1195 this.definition = new CanonicalType(); 1196 return this.definition; 1197 } 1198 else if (name.equals("definitionExpression")) { 1199 this.definition = new Expression(); 1200 return this.definition; 1201 } 1202 else if (name.equals("definitionDataRequirement")) { 1203 this.definition = new DataRequirement(); 1204 return this.definition; 1205 } 1206 else if (name.equals("usageContext")) { 1207 return addUsageContext(); 1208 } 1209 else if (name.equals("exclude")) { 1210 throw new FHIRException("Cannot call addChild on a primitive type ResearchElementDefinition.characteristic.exclude"); 1211 } 1212 else if (name.equals("unitOfMeasure")) { 1213 this.unitOfMeasure = new CodeableConcept(); 1214 return this.unitOfMeasure; 1215 } 1216 else if (name.equals("studyEffectiveDescription")) { 1217 throw new FHIRException("Cannot call addChild on a primitive type ResearchElementDefinition.characteristic.studyEffectiveDescription"); 1218 } 1219 else if (name.equals("studyEffectiveDateTime")) { 1220 this.studyEffective = new DateTimeType(); 1221 return this.studyEffective; 1222 } 1223 else if (name.equals("studyEffectivePeriod")) { 1224 this.studyEffective = new Period(); 1225 return this.studyEffective; 1226 } 1227 else if (name.equals("studyEffectiveDuration")) { 1228 this.studyEffective = new Duration(); 1229 return this.studyEffective; 1230 } 1231 else if (name.equals("studyEffectiveTiming")) { 1232 this.studyEffective = new Timing(); 1233 return this.studyEffective; 1234 } 1235 else if (name.equals("studyEffectiveTimeFromStart")) { 1236 this.studyEffectiveTimeFromStart = new Duration(); 1237 return this.studyEffectiveTimeFromStart; 1238 } 1239 else if (name.equals("studyEffectiveGroupMeasure")) { 1240 throw new FHIRException("Cannot call addChild on a primitive type ResearchElementDefinition.characteristic.studyEffectiveGroupMeasure"); 1241 } 1242 else if (name.equals("participantEffectiveDescription")) { 1243 throw new FHIRException("Cannot call addChild on a primitive type ResearchElementDefinition.characteristic.participantEffectiveDescription"); 1244 } 1245 else if (name.equals("participantEffectiveDateTime")) { 1246 this.participantEffective = new DateTimeType(); 1247 return this.participantEffective; 1248 } 1249 else if (name.equals("participantEffectivePeriod")) { 1250 this.participantEffective = new Period(); 1251 return this.participantEffective; 1252 } 1253 else if (name.equals("participantEffectiveDuration")) { 1254 this.participantEffective = new Duration(); 1255 return this.participantEffective; 1256 } 1257 else if (name.equals("participantEffectiveTiming")) { 1258 this.participantEffective = new Timing(); 1259 return this.participantEffective; 1260 } 1261 else if (name.equals("participantEffectiveTimeFromStart")) { 1262 this.participantEffectiveTimeFromStart = new Duration(); 1263 return this.participantEffectiveTimeFromStart; 1264 } 1265 else if (name.equals("participantEffectiveGroupMeasure")) { 1266 throw new FHIRException("Cannot call addChild on a primitive type ResearchElementDefinition.characteristic.participantEffectiveGroupMeasure"); 1267 } 1268 else 1269 return super.addChild(name); 1270 } 1271 1272 public ResearchElementDefinitionCharacteristicComponent copy() { 1273 ResearchElementDefinitionCharacteristicComponent dst = new ResearchElementDefinitionCharacteristicComponent(); 1274 copyValues(dst); 1275 return dst; 1276 } 1277 1278 public void copyValues(ResearchElementDefinitionCharacteristicComponent dst) { 1279 super.copyValues(dst); 1280 dst.definition = definition == null ? null : definition.copy(); 1281 if (usageContext != null) { 1282 dst.usageContext = new ArrayList<UsageContext>(); 1283 for (UsageContext i : usageContext) 1284 dst.usageContext.add(i.copy()); 1285 }; 1286 dst.exclude = exclude == null ? null : exclude.copy(); 1287 dst.unitOfMeasure = unitOfMeasure == null ? null : unitOfMeasure.copy(); 1288 dst.studyEffectiveDescription = studyEffectiveDescription == null ? null : studyEffectiveDescription.copy(); 1289 dst.studyEffective = studyEffective == null ? null : studyEffective.copy(); 1290 dst.studyEffectiveTimeFromStart = studyEffectiveTimeFromStart == null ? null : studyEffectiveTimeFromStart.copy(); 1291 dst.studyEffectiveGroupMeasure = studyEffectiveGroupMeasure == null ? null : studyEffectiveGroupMeasure.copy(); 1292 dst.participantEffectiveDescription = participantEffectiveDescription == null ? null : participantEffectiveDescription.copy(); 1293 dst.participantEffective = participantEffective == null ? null : participantEffective.copy(); 1294 dst.participantEffectiveTimeFromStart = participantEffectiveTimeFromStart == null ? null : participantEffectiveTimeFromStart.copy(); 1295 dst.participantEffectiveGroupMeasure = participantEffectiveGroupMeasure == null ? null : participantEffectiveGroupMeasure.copy(); 1296 } 1297 1298 @Override 1299 public boolean equalsDeep(Base other_) { 1300 if (!super.equalsDeep(other_)) 1301 return false; 1302 if (!(other_ instanceof ResearchElementDefinitionCharacteristicComponent)) 1303 return false; 1304 ResearchElementDefinitionCharacteristicComponent o = (ResearchElementDefinitionCharacteristicComponent) other_; 1305 return compareDeep(definition, o.definition, true) && compareDeep(usageContext, o.usageContext, true) 1306 && compareDeep(exclude, o.exclude, true) && compareDeep(unitOfMeasure, o.unitOfMeasure, true) && compareDeep(studyEffectiveDescription, o.studyEffectiveDescription, true) 1307 && compareDeep(studyEffective, o.studyEffective, true) && compareDeep(studyEffectiveTimeFromStart, o.studyEffectiveTimeFromStart, true) 1308 && compareDeep(studyEffectiveGroupMeasure, o.studyEffectiveGroupMeasure, true) && compareDeep(participantEffectiveDescription, o.participantEffectiveDescription, true) 1309 && compareDeep(participantEffective, o.participantEffective, true) && compareDeep(participantEffectiveTimeFromStart, o.participantEffectiveTimeFromStart, true) 1310 && compareDeep(participantEffectiveGroupMeasure, o.participantEffectiveGroupMeasure, true); 1311 } 1312 1313 @Override 1314 public boolean equalsShallow(Base other_) { 1315 if (!super.equalsShallow(other_)) 1316 return false; 1317 if (!(other_ instanceof ResearchElementDefinitionCharacteristicComponent)) 1318 return false; 1319 ResearchElementDefinitionCharacteristicComponent o = (ResearchElementDefinitionCharacteristicComponent) other_; 1320 return compareValues(exclude, o.exclude, true) && compareValues(studyEffectiveDescription, o.studyEffectiveDescription, true) 1321 && compareValues(studyEffectiveGroupMeasure, o.studyEffectiveGroupMeasure, true) && compareValues(participantEffectiveDescription, o.participantEffectiveDescription, true) 1322 && compareValues(participantEffectiveGroupMeasure, o.participantEffectiveGroupMeasure, true); 1323 } 1324 1325 public boolean isEmpty() { 1326 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(definition, usageContext, exclude 1327 , unitOfMeasure, studyEffectiveDescription, studyEffective, studyEffectiveTimeFromStart 1328 , studyEffectiveGroupMeasure, participantEffectiveDescription, participantEffective, participantEffectiveTimeFromStart 1329 , participantEffectiveGroupMeasure); 1330 } 1331 1332 public String fhirType() { 1333 return "ResearchElementDefinition.characteristic"; 1334 1335 } 1336 1337 } 1338 1339 /** 1340 * An absolute URI that is used to identify this research element definition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this research element definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the research element definition is stored on different servers. 1341 */ 1342 @Child(name = "url", type = {UriType.class}, order=0, min=0, max=1, modifier=false, summary=true) 1343 @Description(shortDefinition="Canonical identifier for this research element definition, represented as a URI (globally unique)", formalDefinition="An absolute URI that is used to identify this research element definition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this research element definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the research element definition is stored on different servers." ) 1344 protected UriType url; 1345 1346 /** 1347 * A formal identifier that is used to identify this research element definition when it is represented in other formats, or referenced in a specification, model, design or an instance. 1348 */ 1349 @Child(name = "identifier", type = {Identifier.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 1350 @Description(shortDefinition="Additional identifier for the research element definition", formalDefinition="A formal identifier that is used to identify this research element definition when it is represented in other formats, or referenced in a specification, model, design or an instance." ) 1351 protected List<Identifier> identifier; 1352 1353 /** 1354 * The identifier that is used to identify this version of the research element definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the research element definition author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active artifacts. 1355 */ 1356 @Child(name = "version", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=true) 1357 @Description(shortDefinition="Business version of the research element definition", formalDefinition="The identifier that is used to identify this version of the research element definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the research element definition author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active artifacts." ) 1358 protected StringType version; 1359 1360 /** 1361 * A natural language name identifying the research element definition. This name should be usable as an identifier for the module by machine processing applications such as code generation. 1362 */ 1363 @Child(name = "name", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=true) 1364 @Description(shortDefinition="Name for this research element definition (computer friendly)", formalDefinition="A natural language name identifying the research element definition. This name should be usable as an identifier for the module by machine processing applications such as code generation." ) 1365 protected StringType name; 1366 1367 /** 1368 * A short, descriptive, user-friendly title for the research element definition. 1369 */ 1370 @Child(name = "title", type = {StringType.class}, order=4, min=0, max=1, modifier=false, summary=true) 1371 @Description(shortDefinition="Name for this research element definition (human friendly)", formalDefinition="A short, descriptive, user-friendly title for the research element definition." ) 1372 protected StringType title; 1373 1374 /** 1375 * The short title provides an alternate title for use in informal descriptive contexts where the full, formal title is not necessary. 1376 */ 1377 @Child(name = "shortTitle", type = {StringType.class}, order=5, min=0, max=1, modifier=false, summary=true) 1378 @Description(shortDefinition="Title for use in informal contexts", formalDefinition="The short title provides an alternate title for use in informal descriptive contexts where the full, formal title is not necessary." ) 1379 protected StringType shortTitle; 1380 1381 /** 1382 * An explanatory or alternate title for the ResearchElementDefinition giving additional information about its content. 1383 */ 1384 @Child(name = "subtitle", type = {StringType.class}, order=6, min=0, max=1, modifier=false, summary=false) 1385 @Description(shortDefinition="Subordinate title of the ResearchElementDefinition", formalDefinition="An explanatory or alternate title for the ResearchElementDefinition giving additional information about its content." ) 1386 protected StringType subtitle; 1387 1388 /** 1389 * The status of this research element definition. Enables tracking the life-cycle of the content. 1390 */ 1391 @Child(name = "status", type = {CodeType.class}, order=7, min=1, max=1, modifier=true, summary=true) 1392 @Description(shortDefinition="draft | active | retired | unknown", formalDefinition="The status of this research element definition. Enables tracking the life-cycle of the content." ) 1393 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/publication-status") 1394 protected Enumeration<PublicationStatus> status; 1395 1396 /** 1397 * A Boolean value to indicate that this research element definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage. 1398 */ 1399 @Child(name = "experimental", type = {BooleanType.class}, order=8, min=0, max=1, modifier=false, summary=true) 1400 @Description(shortDefinition="For testing purposes, not real usage", formalDefinition="A Boolean value to indicate that this research element definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage." ) 1401 protected BooleanType experimental; 1402 1403 /** 1404 * The intended subjects for the ResearchElementDefinition. If this element is not provided, a Patient subject is assumed, but the subject of the ResearchElementDefinition can be anything. 1405 */ 1406 @Child(name = "subject", type = {CodeableConcept.class, Group.class}, order=9, min=0, max=1, modifier=false, summary=false) 1407 @Description(shortDefinition="E.g. Patient, Practitioner, RelatedPerson, Organization, Location, Device", formalDefinition="The intended subjects for the ResearchElementDefinition. If this element is not provided, a Patient subject is assumed, but the subject of the ResearchElementDefinition can be anything." ) 1408 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/subject-type") 1409 protected DataType subject; 1410 1411 /** 1412 * The date (and optionally time) when the research element definition was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the research element definition changes. 1413 */ 1414 @Child(name = "date", type = {DateTimeType.class}, order=10, min=0, max=1, modifier=false, summary=true) 1415 @Description(shortDefinition="Date last changed", formalDefinition="The date (and optionally time) when the research element definition was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the research element definition changes." ) 1416 protected DateTimeType date; 1417 1418 /** 1419 * The name of the organization or individual that published the research element definition. 1420 */ 1421 @Child(name = "publisher", type = {StringType.class}, order=11, min=0, max=1, modifier=false, summary=true) 1422 @Description(shortDefinition="Name of the publisher (organization or individual)", formalDefinition="The name of the organization or individual that published the research element definition." ) 1423 protected StringType publisher; 1424 1425 /** 1426 * Contact details to assist a user in finding and communicating with the publisher. 1427 */ 1428 @Child(name = "contact", type = {ContactDetail.class}, order=12, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 1429 @Description(shortDefinition="Contact details for the publisher", formalDefinition="Contact details to assist a user in finding and communicating with the publisher." ) 1430 protected List<ContactDetail> contact; 1431 1432 /** 1433 * A free text natural language description of the research element definition from a consumer's perspective. 1434 */ 1435 @Child(name = "description", type = {MarkdownType.class}, order=13, min=0, max=1, modifier=false, summary=true) 1436 @Description(shortDefinition="Natural language description of the research element definition", formalDefinition="A free text natural language description of the research element definition from a consumer's perspective." ) 1437 protected MarkdownType description; 1438 1439 /** 1440 * A human-readable string to clarify or explain concepts about the resource. 1441 */ 1442 @Child(name = "comment", type = {StringType.class}, order=14, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1443 @Description(shortDefinition="Used for footnotes or explanatory notes", formalDefinition="A human-readable string to clarify or explain concepts about the resource." ) 1444 protected List<StringType> comment; 1445 1446 /** 1447 * The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate research element definition instances. 1448 */ 1449 @Child(name = "useContext", type = {UsageContext.class}, order=15, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 1450 @Description(shortDefinition="The context that the content is intended to support", formalDefinition="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate research element definition instances." ) 1451 protected List<UsageContext> useContext; 1452 1453 /** 1454 * A legal or geographic region in which the research element definition is intended to be used. 1455 */ 1456 @Child(name = "jurisdiction", type = {CodeableConcept.class}, order=16, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 1457 @Description(shortDefinition="Intended jurisdiction for research element definition (if applicable)", formalDefinition="A legal or geographic region in which the research element definition is intended to be used." ) 1458 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/jurisdiction") 1459 protected List<CodeableConcept> jurisdiction; 1460 1461 /** 1462 * Explanation of why this research element definition is needed and why it has been designed as it has. 1463 */ 1464 @Child(name = "purpose", type = {MarkdownType.class}, order=17, min=0, max=1, modifier=false, summary=false) 1465 @Description(shortDefinition="Why this research element definition is defined", formalDefinition="Explanation of why this research element definition is needed and why it has been designed as it has." ) 1466 protected MarkdownType purpose; 1467 1468 /** 1469 * A detailed description, from a clinical perspective, of how the ResearchElementDefinition is used. 1470 */ 1471 @Child(name = "usage", type = {StringType.class}, order=18, min=0, max=1, modifier=false, summary=false) 1472 @Description(shortDefinition="Describes the clinical usage of the ResearchElementDefinition", formalDefinition="A detailed description, from a clinical perspective, of how the ResearchElementDefinition is used." ) 1473 protected StringType usage; 1474 1475 /** 1476 * A copyright statement relating to the research element definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the research element definition. 1477 */ 1478 @Child(name = "copyright", type = {MarkdownType.class}, order=19, min=0, max=1, modifier=false, summary=false) 1479 @Description(shortDefinition="Use and/or publishing restrictions", formalDefinition="A copyright statement relating to the research element definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the research element definition." ) 1480 protected MarkdownType copyright; 1481 1482 /** 1483 * The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage. 1484 */ 1485 @Child(name = "approvalDate", type = {DateType.class}, order=20, min=0, max=1, modifier=false, summary=false) 1486 @Description(shortDefinition="When the research element definition was approved by publisher", formalDefinition="The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage." ) 1487 protected DateType approvalDate; 1488 1489 /** 1490 * The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date. 1491 */ 1492 @Child(name = "lastReviewDate", type = {DateType.class}, order=21, min=0, max=1, modifier=false, summary=false) 1493 @Description(shortDefinition="When the research element definition was last reviewed", formalDefinition="The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date." ) 1494 protected DateType lastReviewDate; 1495 1496 /** 1497 * The period during which the research element definition content was or is planned to be in active use. 1498 */ 1499 @Child(name = "effectivePeriod", type = {Period.class}, order=22, min=0, max=1, modifier=false, summary=true) 1500 @Description(shortDefinition="When the research element definition is expected to be used", formalDefinition="The period during which the research element definition content was or is planned to be in active use." ) 1501 protected Period effectivePeriod; 1502 1503 /** 1504 * Descriptive topics related to the content of the ResearchElementDefinition. Topics provide a high-level categorization grouping types of ResearchElementDefinitions that can be useful for filtering and searching. 1505 */ 1506 @Child(name = "topic", type = {CodeableConcept.class}, order=23, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1507 @Description(shortDefinition="The category of the ResearchElementDefinition, such as Education, Treatment, Assessment, etc.", formalDefinition="Descriptive topics related to the content of the ResearchElementDefinition. Topics provide a high-level categorization grouping types of ResearchElementDefinitions that can be useful for filtering and searching." ) 1508 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/definition-topic") 1509 protected List<CodeableConcept> topic; 1510 1511 /** 1512 * An individiual or organization primarily involved in the creation and maintenance of the content. 1513 */ 1514 @Child(name = "author", type = {ContactDetail.class}, order=24, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1515 @Description(shortDefinition="Who authored the content", formalDefinition="An individiual or organization primarily involved in the creation and maintenance of the content." ) 1516 protected List<ContactDetail> author; 1517 1518 /** 1519 * An individual or organization primarily responsible for internal coherence of the content. 1520 */ 1521 @Child(name = "editor", type = {ContactDetail.class}, order=25, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1522 @Description(shortDefinition="Who edited the content", formalDefinition="An individual or organization primarily responsible for internal coherence of the content." ) 1523 protected List<ContactDetail> editor; 1524 1525 /** 1526 * An individual or organization primarily responsible for review of some aspect of the content. 1527 */ 1528 @Child(name = "reviewer", type = {ContactDetail.class}, order=26, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1529 @Description(shortDefinition="Who reviewed the content", formalDefinition="An individual or organization primarily responsible for review of some aspect of the content." ) 1530 protected List<ContactDetail> reviewer; 1531 1532 /** 1533 * An individual or organization responsible for officially endorsing the content for use in some setting. 1534 */ 1535 @Child(name = "endorser", type = {ContactDetail.class}, order=27, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1536 @Description(shortDefinition="Who endorsed the content", formalDefinition="An individual or organization responsible for officially endorsing the content for use in some setting." ) 1537 protected List<ContactDetail> endorser; 1538 1539 /** 1540 * Related artifacts such as additional documentation, justification, or bibliographic references. 1541 */ 1542 @Child(name = "relatedArtifact", type = {RelatedArtifact.class}, order=28, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1543 @Description(shortDefinition="Additional documentation, citations, etc.", formalDefinition="Related artifacts such as additional documentation, justification, or bibliographic references." ) 1544 protected List<RelatedArtifact> relatedArtifact; 1545 1546 /** 1547 * A reference to a Library resource containing the formal logic used by the ResearchElementDefinition. 1548 */ 1549 @Child(name = "library", type = {CanonicalType.class}, order=29, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1550 @Description(shortDefinition="Logic used by the ResearchElementDefinition", formalDefinition="A reference to a Library resource containing the formal logic used by the ResearchElementDefinition." ) 1551 protected List<CanonicalType> library; 1552 1553 /** 1554 * The type of research element, a population, an exposure, or an outcome. 1555 */ 1556 @Child(name = "type", type = {CodeType.class}, order=30, min=1, max=1, modifier=false, summary=true) 1557 @Description(shortDefinition="population | exposure | outcome", formalDefinition="The type of research element, a population, an exposure, or an outcome." ) 1558 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/research-element-type") 1559 protected Enumeration<ResearchElementType> type; 1560 1561 /** 1562 * The type of the outcome (e.g. Dichotomous, Continuous, or Descriptive). 1563 */ 1564 @Child(name = "variableType", type = {CodeType.class}, order=31, min=0, max=1, modifier=false, summary=false) 1565 @Description(shortDefinition="dichotomous | continuous | descriptive", formalDefinition="The type of the outcome (e.g. Dichotomous, Continuous, or Descriptive)." ) 1566 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/variable-type") 1567 protected Enumeration<VariableType> variableType; 1568 1569 /** 1570 * A characteristic that defines the members of the research element. Multiple characteristics are applied with "and" semantics. 1571 */ 1572 @Child(name = "characteristic", type = {}, order=32, min=1, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 1573 @Description(shortDefinition="What defines the members of the research element", formalDefinition="A characteristic that defines the members of the research element. Multiple characteristics are applied with \"and\" semantics." ) 1574 protected List<ResearchElementDefinitionCharacteristicComponent> characteristic; 1575 1576 private static final long serialVersionUID = -621916137L; 1577 1578 /** 1579 * Constructor 1580 */ 1581 public ResearchElementDefinition() { 1582 super(); 1583 } 1584 1585 /** 1586 * Constructor 1587 */ 1588 public ResearchElementDefinition(PublicationStatus status, ResearchElementType type, ResearchElementDefinitionCharacteristicComponent characteristic) { 1589 super(); 1590 this.setStatus(status); 1591 this.setType(type); 1592 this.addCharacteristic(characteristic); 1593 } 1594 1595 /** 1596 * @return {@link #url} (An absolute URI that is used to identify this research element definition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this research element definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the research element definition is stored on different servers.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value 1597 */ 1598 public UriType getUrlElement() { 1599 if (this.url == null) 1600 if (Configuration.errorOnAutoCreate()) 1601 throw new Error("Attempt to auto-create ResearchElementDefinition.url"); 1602 else if (Configuration.doAutoCreate()) 1603 this.url = new UriType(); // bb 1604 return this.url; 1605 } 1606 1607 public boolean hasUrlElement() { 1608 return this.url != null && !this.url.isEmpty(); 1609 } 1610 1611 public boolean hasUrl() { 1612 return this.url != null && !this.url.isEmpty(); 1613 } 1614 1615 /** 1616 * @param value {@link #url} (An absolute URI that is used to identify this research element definition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this research element definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the research element definition is stored on different servers.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value 1617 */ 1618 public ResearchElementDefinition setUrlElement(UriType value) { 1619 this.url = value; 1620 return this; 1621 } 1622 1623 /** 1624 * @return An absolute URI that is used to identify this research element definition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this research element definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the research element definition is stored on different servers. 1625 */ 1626 public String getUrl() { 1627 return this.url == null ? null : this.url.getValue(); 1628 } 1629 1630 /** 1631 * @param value An absolute URI that is used to identify this research element definition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this research element definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the research element definition is stored on different servers. 1632 */ 1633 public ResearchElementDefinition setUrl(String value) { 1634 if (Utilities.noString(value)) 1635 this.url = null; 1636 else { 1637 if (this.url == null) 1638 this.url = new UriType(); 1639 this.url.setValue(value); 1640 } 1641 return this; 1642 } 1643 1644 /** 1645 * @return {@link #identifier} (A formal identifier that is used to identify this research element definition when it is represented in other formats, or referenced in a specification, model, design or an instance.) 1646 */ 1647 public List<Identifier> getIdentifier() { 1648 if (this.identifier == null) 1649 this.identifier = new ArrayList<Identifier>(); 1650 return this.identifier; 1651 } 1652 1653 /** 1654 * @return Returns a reference to <code>this</code> for easy method chaining 1655 */ 1656 public ResearchElementDefinition setIdentifier(List<Identifier> theIdentifier) { 1657 this.identifier = theIdentifier; 1658 return this; 1659 } 1660 1661 public boolean hasIdentifier() { 1662 if (this.identifier == null) 1663 return false; 1664 for (Identifier item : this.identifier) 1665 if (!item.isEmpty()) 1666 return true; 1667 return false; 1668 } 1669 1670 public Identifier addIdentifier() { //3 1671 Identifier t = new Identifier(); 1672 if (this.identifier == null) 1673 this.identifier = new ArrayList<Identifier>(); 1674 this.identifier.add(t); 1675 return t; 1676 } 1677 1678 public ResearchElementDefinition addIdentifier(Identifier t) { //3 1679 if (t == null) 1680 return this; 1681 if (this.identifier == null) 1682 this.identifier = new ArrayList<Identifier>(); 1683 this.identifier.add(t); 1684 return this; 1685 } 1686 1687 /** 1688 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3} 1689 */ 1690 public Identifier getIdentifierFirstRep() { 1691 if (getIdentifier().isEmpty()) { 1692 addIdentifier(); 1693 } 1694 return getIdentifier().get(0); 1695 } 1696 1697 /** 1698 * @return {@link #version} (The identifier that is used to identify this version of the research element definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the research element definition author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active artifacts.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value 1699 */ 1700 public StringType getVersionElement() { 1701 if (this.version == null) 1702 if (Configuration.errorOnAutoCreate()) 1703 throw new Error("Attempt to auto-create ResearchElementDefinition.version"); 1704 else if (Configuration.doAutoCreate()) 1705 this.version = new StringType(); // bb 1706 return this.version; 1707 } 1708 1709 public boolean hasVersionElement() { 1710 return this.version != null && !this.version.isEmpty(); 1711 } 1712 1713 public boolean hasVersion() { 1714 return this.version != null && !this.version.isEmpty(); 1715 } 1716 1717 /** 1718 * @param value {@link #version} (The identifier that is used to identify this version of the research element definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the research element definition author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active artifacts.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value 1719 */ 1720 public ResearchElementDefinition setVersionElement(StringType value) { 1721 this.version = value; 1722 return this; 1723 } 1724 1725 /** 1726 * @return The identifier that is used to identify this version of the research element definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the research element definition author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active artifacts. 1727 */ 1728 public String getVersion() { 1729 return this.version == null ? null : this.version.getValue(); 1730 } 1731 1732 /** 1733 * @param value The identifier that is used to identify this version of the research element definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the research element definition author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active artifacts. 1734 */ 1735 public ResearchElementDefinition setVersion(String value) { 1736 if (Utilities.noString(value)) 1737 this.version = null; 1738 else { 1739 if (this.version == null) 1740 this.version = new StringType(); 1741 this.version.setValue(value); 1742 } 1743 return this; 1744 } 1745 1746 /** 1747 * @return {@link #name} (A natural language name identifying the research element definition. This name should be usable as an identifier for the module by machine processing applications such as code generation.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value 1748 */ 1749 public StringType getNameElement() { 1750 if (this.name == null) 1751 if (Configuration.errorOnAutoCreate()) 1752 throw new Error("Attempt to auto-create ResearchElementDefinition.name"); 1753 else if (Configuration.doAutoCreate()) 1754 this.name = new StringType(); // bb 1755 return this.name; 1756 } 1757 1758 public boolean hasNameElement() { 1759 return this.name != null && !this.name.isEmpty(); 1760 } 1761 1762 public boolean hasName() { 1763 return this.name != null && !this.name.isEmpty(); 1764 } 1765 1766 /** 1767 * @param value {@link #name} (A natural language name identifying the research element definition. This name should be usable as an identifier for the module by machine processing applications such as code generation.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value 1768 */ 1769 public ResearchElementDefinition setNameElement(StringType value) { 1770 this.name = value; 1771 return this; 1772 } 1773 1774 /** 1775 * @return A natural language name identifying the research element definition. This name should be usable as an identifier for the module by machine processing applications such as code generation. 1776 */ 1777 public String getName() { 1778 return this.name == null ? null : this.name.getValue(); 1779 } 1780 1781 /** 1782 * @param value A natural language name identifying the research element definition. This name should be usable as an identifier for the module by machine processing applications such as code generation. 1783 */ 1784 public ResearchElementDefinition setName(String value) { 1785 if (Utilities.noString(value)) 1786 this.name = null; 1787 else { 1788 if (this.name == null) 1789 this.name = new StringType(); 1790 this.name.setValue(value); 1791 } 1792 return this; 1793 } 1794 1795 /** 1796 * @return {@link #title} (A short, descriptive, user-friendly title for the research element definition.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value 1797 */ 1798 public StringType getTitleElement() { 1799 if (this.title == null) 1800 if (Configuration.errorOnAutoCreate()) 1801 throw new Error("Attempt to auto-create ResearchElementDefinition.title"); 1802 else if (Configuration.doAutoCreate()) 1803 this.title = new StringType(); // bb 1804 return this.title; 1805 } 1806 1807 public boolean hasTitleElement() { 1808 return this.title != null && !this.title.isEmpty(); 1809 } 1810 1811 public boolean hasTitle() { 1812 return this.title != null && !this.title.isEmpty(); 1813 } 1814 1815 /** 1816 * @param value {@link #title} (A short, descriptive, user-friendly title for the research element definition.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value 1817 */ 1818 public ResearchElementDefinition setTitleElement(StringType value) { 1819 this.title = value; 1820 return this; 1821 } 1822 1823 /** 1824 * @return A short, descriptive, user-friendly title for the research element definition. 1825 */ 1826 public String getTitle() { 1827 return this.title == null ? null : this.title.getValue(); 1828 } 1829 1830 /** 1831 * @param value A short, descriptive, user-friendly title for the research element definition. 1832 */ 1833 public ResearchElementDefinition setTitle(String value) { 1834 if (Utilities.noString(value)) 1835 this.title = null; 1836 else { 1837 if (this.title == null) 1838 this.title = new StringType(); 1839 this.title.setValue(value); 1840 } 1841 return this; 1842 } 1843 1844 /** 1845 * @return {@link #shortTitle} (The short title provides an alternate title for use in informal descriptive contexts where the full, formal title is not necessary.). This is the underlying object with id, value and extensions. The accessor "getShortTitle" gives direct access to the value 1846 */ 1847 public StringType getShortTitleElement() { 1848 if (this.shortTitle == null) 1849 if (Configuration.errorOnAutoCreate()) 1850 throw new Error("Attempt to auto-create ResearchElementDefinition.shortTitle"); 1851 else if (Configuration.doAutoCreate()) 1852 this.shortTitle = new StringType(); // bb 1853 return this.shortTitle; 1854 } 1855 1856 public boolean hasShortTitleElement() { 1857 return this.shortTitle != null && !this.shortTitle.isEmpty(); 1858 } 1859 1860 public boolean hasShortTitle() { 1861 return this.shortTitle != null && !this.shortTitle.isEmpty(); 1862 } 1863 1864 /** 1865 * @param value {@link #shortTitle} (The short title provides an alternate title for use in informal descriptive contexts where the full, formal title is not necessary.). This is the underlying object with id, value and extensions. The accessor "getShortTitle" gives direct access to the value 1866 */ 1867 public ResearchElementDefinition setShortTitleElement(StringType value) { 1868 this.shortTitle = value; 1869 return this; 1870 } 1871 1872 /** 1873 * @return The short title provides an alternate title for use in informal descriptive contexts where the full, formal title is not necessary. 1874 */ 1875 public String getShortTitle() { 1876 return this.shortTitle == null ? null : this.shortTitle.getValue(); 1877 } 1878 1879 /** 1880 * @param value The short title provides an alternate title for use in informal descriptive contexts where the full, formal title is not necessary. 1881 */ 1882 public ResearchElementDefinition setShortTitle(String value) { 1883 if (Utilities.noString(value)) 1884 this.shortTitle = null; 1885 else { 1886 if (this.shortTitle == null) 1887 this.shortTitle = new StringType(); 1888 this.shortTitle.setValue(value); 1889 } 1890 return this; 1891 } 1892 1893 /** 1894 * @return {@link #subtitle} (An explanatory or alternate title for the ResearchElementDefinition giving additional information about its content.). This is the underlying object with id, value and extensions. The accessor "getSubtitle" gives direct access to the value 1895 */ 1896 public StringType getSubtitleElement() { 1897 if (this.subtitle == null) 1898 if (Configuration.errorOnAutoCreate()) 1899 throw new Error("Attempt to auto-create ResearchElementDefinition.subtitle"); 1900 else if (Configuration.doAutoCreate()) 1901 this.subtitle = new StringType(); // bb 1902 return this.subtitle; 1903 } 1904 1905 public boolean hasSubtitleElement() { 1906 return this.subtitle != null && !this.subtitle.isEmpty(); 1907 } 1908 1909 public boolean hasSubtitle() { 1910 return this.subtitle != null && !this.subtitle.isEmpty(); 1911 } 1912 1913 /** 1914 * @param value {@link #subtitle} (An explanatory or alternate title for the ResearchElementDefinition giving additional information about its content.). This is the underlying object with id, value and extensions. The accessor "getSubtitle" gives direct access to the value 1915 */ 1916 public ResearchElementDefinition setSubtitleElement(StringType value) { 1917 this.subtitle = value; 1918 return this; 1919 } 1920 1921 /** 1922 * @return An explanatory or alternate title for the ResearchElementDefinition giving additional information about its content. 1923 */ 1924 public String getSubtitle() { 1925 return this.subtitle == null ? null : this.subtitle.getValue(); 1926 } 1927 1928 /** 1929 * @param value An explanatory or alternate title for the ResearchElementDefinition giving additional information about its content. 1930 */ 1931 public ResearchElementDefinition setSubtitle(String value) { 1932 if (Utilities.noString(value)) 1933 this.subtitle = null; 1934 else { 1935 if (this.subtitle == null) 1936 this.subtitle = new StringType(); 1937 this.subtitle.setValue(value); 1938 } 1939 return this; 1940 } 1941 1942 /** 1943 * @return {@link #status} (The status of this research element definition. Enables tracking the life-cycle of the content.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 1944 */ 1945 public Enumeration<PublicationStatus> getStatusElement() { 1946 if (this.status == null) 1947 if (Configuration.errorOnAutoCreate()) 1948 throw new Error("Attempt to auto-create ResearchElementDefinition.status"); 1949 else if (Configuration.doAutoCreate()) 1950 this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); // bb 1951 return this.status; 1952 } 1953 1954 public boolean hasStatusElement() { 1955 return this.status != null && !this.status.isEmpty(); 1956 } 1957 1958 public boolean hasStatus() { 1959 return this.status != null && !this.status.isEmpty(); 1960 } 1961 1962 /** 1963 * @param value {@link #status} (The status of this research element definition. Enables tracking the life-cycle of the content.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 1964 */ 1965 public ResearchElementDefinition setStatusElement(Enumeration<PublicationStatus> value) { 1966 this.status = value; 1967 return this; 1968 } 1969 1970 /** 1971 * @return The status of this research element definition. Enables tracking the life-cycle of the content. 1972 */ 1973 public PublicationStatus getStatus() { 1974 return this.status == null ? null : this.status.getValue(); 1975 } 1976 1977 /** 1978 * @param value The status of this research element definition. Enables tracking the life-cycle of the content. 1979 */ 1980 public ResearchElementDefinition setStatus(PublicationStatus value) { 1981 if (this.status == null) 1982 this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); 1983 this.status.setValue(value); 1984 return this; 1985 } 1986 1987 /** 1988 * @return {@link #experimental} (A Boolean value to indicate that this research element definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.). This is the underlying object with id, value and extensions. The accessor "getExperimental" gives direct access to the value 1989 */ 1990 public BooleanType getExperimentalElement() { 1991 if (this.experimental == null) 1992 if (Configuration.errorOnAutoCreate()) 1993 throw new Error("Attempt to auto-create ResearchElementDefinition.experimental"); 1994 else if (Configuration.doAutoCreate()) 1995 this.experimental = new BooleanType(); // bb 1996 return this.experimental; 1997 } 1998 1999 public boolean hasExperimentalElement() { 2000 return this.experimental != null && !this.experimental.isEmpty(); 2001 } 2002 2003 public boolean hasExperimental() { 2004 return this.experimental != null && !this.experimental.isEmpty(); 2005 } 2006 2007 /** 2008 * @param value {@link #experimental} (A Boolean value to indicate that this research element definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.). This is the underlying object with id, value and extensions. The accessor "getExperimental" gives direct access to the value 2009 */ 2010 public ResearchElementDefinition setExperimentalElement(BooleanType value) { 2011 this.experimental = value; 2012 return this; 2013 } 2014 2015 /** 2016 * @return A Boolean value to indicate that this research element definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage. 2017 */ 2018 public boolean getExperimental() { 2019 return this.experimental == null || this.experimental.isEmpty() ? false : this.experimental.getValue(); 2020 } 2021 2022 /** 2023 * @param value A Boolean value to indicate that this research element definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage. 2024 */ 2025 public ResearchElementDefinition setExperimental(boolean value) { 2026 if (this.experimental == null) 2027 this.experimental = new BooleanType(); 2028 this.experimental.setValue(value); 2029 return this; 2030 } 2031 2032 /** 2033 * @return {@link #subject} (The intended subjects for the ResearchElementDefinition. If this element is not provided, a Patient subject is assumed, but the subject of the ResearchElementDefinition can be anything.) 2034 */ 2035 public DataType getSubject() { 2036 return this.subject; 2037 } 2038 2039 /** 2040 * @return {@link #subject} (The intended subjects for the ResearchElementDefinition. If this element is not provided, a Patient subject is assumed, but the subject of the ResearchElementDefinition can be anything.) 2041 */ 2042 public CodeableConcept getSubjectCodeableConcept() throws FHIRException { 2043 if (this.subject == null) 2044 this.subject = new CodeableConcept(); 2045 if (!(this.subject instanceof CodeableConcept)) 2046 throw new FHIRException("Type mismatch: the type CodeableConcept was expected, but "+this.subject.getClass().getName()+" was encountered"); 2047 return (CodeableConcept) this.subject; 2048 } 2049 2050 public boolean hasSubjectCodeableConcept() { 2051 return this != null && this.subject instanceof CodeableConcept; 2052 } 2053 2054 /** 2055 * @return {@link #subject} (The intended subjects for the ResearchElementDefinition. If this element is not provided, a Patient subject is assumed, but the subject of the ResearchElementDefinition can be anything.) 2056 */ 2057 public Reference getSubjectReference() throws FHIRException { 2058 if (this.subject == null) 2059 this.subject = new Reference(); 2060 if (!(this.subject instanceof Reference)) 2061 throw new FHIRException("Type mismatch: the type Reference was expected, but "+this.subject.getClass().getName()+" was encountered"); 2062 return (Reference) this.subject; 2063 } 2064 2065 public boolean hasSubjectReference() { 2066 return this != null && this.subject instanceof Reference; 2067 } 2068 2069 public boolean hasSubject() { 2070 return this.subject != null && !this.subject.isEmpty(); 2071 } 2072 2073 /** 2074 * @param value {@link #subject} (The intended subjects for the ResearchElementDefinition. If this element is not provided, a Patient subject is assumed, but the subject of the ResearchElementDefinition can be anything.) 2075 */ 2076 public ResearchElementDefinition setSubject(DataType value) { 2077 if (value != null && !(value instanceof CodeableConcept || value instanceof Reference)) 2078 throw new Error("Not the right type for ResearchElementDefinition.subject[x]: "+value.fhirType()); 2079 this.subject = value; 2080 return this; 2081 } 2082 2083 /** 2084 * @return {@link #date} (The date (and optionally time) when the research element definition was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the research element definition changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value 2085 */ 2086 public DateTimeType getDateElement() { 2087 if (this.date == null) 2088 if (Configuration.errorOnAutoCreate()) 2089 throw new Error("Attempt to auto-create ResearchElementDefinition.date"); 2090 else if (Configuration.doAutoCreate()) 2091 this.date = new DateTimeType(); // bb 2092 return this.date; 2093 } 2094 2095 public boolean hasDateElement() { 2096 return this.date != null && !this.date.isEmpty(); 2097 } 2098 2099 public boolean hasDate() { 2100 return this.date != null && !this.date.isEmpty(); 2101 } 2102 2103 /** 2104 * @param value {@link #date} (The date (and optionally time) when the research element definition was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the research element definition changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value 2105 */ 2106 public ResearchElementDefinition setDateElement(DateTimeType value) { 2107 this.date = value; 2108 return this; 2109 } 2110 2111 /** 2112 * @return The date (and optionally time) when the research element definition was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the research element definition changes. 2113 */ 2114 public Date getDate() { 2115 return this.date == null ? null : this.date.getValue(); 2116 } 2117 2118 /** 2119 * @param value The date (and optionally time) when the research element definition was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the research element definition changes. 2120 */ 2121 public ResearchElementDefinition setDate(Date value) { 2122 if (value == null) 2123 this.date = null; 2124 else { 2125 if (this.date == null) 2126 this.date = new DateTimeType(); 2127 this.date.setValue(value); 2128 } 2129 return this; 2130 } 2131 2132 /** 2133 * @return {@link #publisher} (The name of the organization or individual that published the research element definition.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value 2134 */ 2135 public StringType getPublisherElement() { 2136 if (this.publisher == null) 2137 if (Configuration.errorOnAutoCreate()) 2138 throw new Error("Attempt to auto-create ResearchElementDefinition.publisher"); 2139 else if (Configuration.doAutoCreate()) 2140 this.publisher = new StringType(); // bb 2141 return this.publisher; 2142 } 2143 2144 public boolean hasPublisherElement() { 2145 return this.publisher != null && !this.publisher.isEmpty(); 2146 } 2147 2148 public boolean hasPublisher() { 2149 return this.publisher != null && !this.publisher.isEmpty(); 2150 } 2151 2152 /** 2153 * @param value {@link #publisher} (The name of the organization or individual that published the research element definition.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value 2154 */ 2155 public ResearchElementDefinition setPublisherElement(StringType value) { 2156 this.publisher = value; 2157 return this; 2158 } 2159 2160 /** 2161 * @return The name of the organization or individual that published the research element definition. 2162 */ 2163 public String getPublisher() { 2164 return this.publisher == null ? null : this.publisher.getValue(); 2165 } 2166 2167 /** 2168 * @param value The name of the organization or individual that published the research element definition. 2169 */ 2170 public ResearchElementDefinition setPublisher(String value) { 2171 if (Utilities.noString(value)) 2172 this.publisher = null; 2173 else { 2174 if (this.publisher == null) 2175 this.publisher = new StringType(); 2176 this.publisher.setValue(value); 2177 } 2178 return this; 2179 } 2180 2181 /** 2182 * @return {@link #contact} (Contact details to assist a user in finding and communicating with the publisher.) 2183 */ 2184 public List<ContactDetail> getContact() { 2185 if (this.contact == null) 2186 this.contact = new ArrayList<ContactDetail>(); 2187 return this.contact; 2188 } 2189 2190 /** 2191 * @return Returns a reference to <code>this</code> for easy method chaining 2192 */ 2193 public ResearchElementDefinition setContact(List<ContactDetail> theContact) { 2194 this.contact = theContact; 2195 return this; 2196 } 2197 2198 public boolean hasContact() { 2199 if (this.contact == null) 2200 return false; 2201 for (ContactDetail item : this.contact) 2202 if (!item.isEmpty()) 2203 return true; 2204 return false; 2205 } 2206 2207 public ContactDetail addContact() { //3 2208 ContactDetail t = new ContactDetail(); 2209 if (this.contact == null) 2210 this.contact = new ArrayList<ContactDetail>(); 2211 this.contact.add(t); 2212 return t; 2213 } 2214 2215 public ResearchElementDefinition addContact(ContactDetail t) { //3 2216 if (t == null) 2217 return this; 2218 if (this.contact == null) 2219 this.contact = new ArrayList<ContactDetail>(); 2220 this.contact.add(t); 2221 return this; 2222 } 2223 2224 /** 2225 * @return The first repetition of repeating field {@link #contact}, creating it if it does not already exist {3} 2226 */ 2227 public ContactDetail getContactFirstRep() { 2228 if (getContact().isEmpty()) { 2229 addContact(); 2230 } 2231 return getContact().get(0); 2232 } 2233 2234 /** 2235 * @return {@link #description} (A free text natural language description of the research element definition from a consumer's perspective.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 2236 */ 2237 public MarkdownType getDescriptionElement() { 2238 if (this.description == null) 2239 if (Configuration.errorOnAutoCreate()) 2240 throw new Error("Attempt to auto-create ResearchElementDefinition.description"); 2241 else if (Configuration.doAutoCreate()) 2242 this.description = new MarkdownType(); // bb 2243 return this.description; 2244 } 2245 2246 public boolean hasDescriptionElement() { 2247 return this.description != null && !this.description.isEmpty(); 2248 } 2249 2250 public boolean hasDescription() { 2251 return this.description != null && !this.description.isEmpty(); 2252 } 2253 2254 /** 2255 * @param value {@link #description} (A free text natural language description of the research element definition from a consumer's perspective.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 2256 */ 2257 public ResearchElementDefinition setDescriptionElement(MarkdownType value) { 2258 this.description = value; 2259 return this; 2260 } 2261 2262 /** 2263 * @return A free text natural language description of the research element definition from a consumer's perspective. 2264 */ 2265 public String getDescription() { 2266 return this.description == null ? null : this.description.getValue(); 2267 } 2268 2269 /** 2270 * @param value A free text natural language description of the research element definition from a consumer's perspective. 2271 */ 2272 public ResearchElementDefinition setDescription(String value) { 2273 if (value == null) 2274 this.description = null; 2275 else { 2276 if (this.description == null) 2277 this.description = new MarkdownType(); 2278 this.description.setValue(value); 2279 } 2280 return this; 2281 } 2282 2283 /** 2284 * @return {@link #comment} (A human-readable string to clarify or explain concepts about the resource.) 2285 */ 2286 public List<StringType> getComment() { 2287 if (this.comment == null) 2288 this.comment = new ArrayList<StringType>(); 2289 return this.comment; 2290 } 2291 2292 /** 2293 * @return Returns a reference to <code>this</code> for easy method chaining 2294 */ 2295 public ResearchElementDefinition setComment(List<StringType> theComment) { 2296 this.comment = theComment; 2297 return this; 2298 } 2299 2300 public boolean hasComment() { 2301 if (this.comment == null) 2302 return false; 2303 for (StringType item : this.comment) 2304 if (!item.isEmpty()) 2305 return true; 2306 return false; 2307 } 2308 2309 /** 2310 * @return {@link #comment} (A human-readable string to clarify or explain concepts about the resource.) 2311 */ 2312 public StringType addCommentElement() {//2 2313 StringType t = new StringType(); 2314 if (this.comment == null) 2315 this.comment = new ArrayList<StringType>(); 2316 this.comment.add(t); 2317 return t; 2318 } 2319 2320 /** 2321 * @param value {@link #comment} (A human-readable string to clarify or explain concepts about the resource.) 2322 */ 2323 public ResearchElementDefinition addComment(String value) { //1 2324 StringType t = new StringType(); 2325 t.setValue(value); 2326 if (this.comment == null) 2327 this.comment = new ArrayList<StringType>(); 2328 this.comment.add(t); 2329 return this; 2330 } 2331 2332 /** 2333 * @param value {@link #comment} (A human-readable string to clarify or explain concepts about the resource.) 2334 */ 2335 public boolean hasComment(String value) { 2336 if (this.comment == null) 2337 return false; 2338 for (StringType v : this.comment) 2339 if (v.getValue().equals(value)) // string 2340 return true; 2341 return false; 2342 } 2343 2344 /** 2345 * @return {@link #useContext} (The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate research element definition instances.) 2346 */ 2347 public List<UsageContext> getUseContext() { 2348 if (this.useContext == null) 2349 this.useContext = new ArrayList<UsageContext>(); 2350 return this.useContext; 2351 } 2352 2353 /** 2354 * @return Returns a reference to <code>this</code> for easy method chaining 2355 */ 2356 public ResearchElementDefinition setUseContext(List<UsageContext> theUseContext) { 2357 this.useContext = theUseContext; 2358 return this; 2359 } 2360 2361 public boolean hasUseContext() { 2362 if (this.useContext == null) 2363 return false; 2364 for (UsageContext item : this.useContext) 2365 if (!item.isEmpty()) 2366 return true; 2367 return false; 2368 } 2369 2370 public UsageContext addUseContext() { //3 2371 UsageContext t = new UsageContext(); 2372 if (this.useContext == null) 2373 this.useContext = new ArrayList<UsageContext>(); 2374 this.useContext.add(t); 2375 return t; 2376 } 2377 2378 public ResearchElementDefinition addUseContext(UsageContext t) { //3 2379 if (t == null) 2380 return this; 2381 if (this.useContext == null) 2382 this.useContext = new ArrayList<UsageContext>(); 2383 this.useContext.add(t); 2384 return this; 2385 } 2386 2387 /** 2388 * @return The first repetition of repeating field {@link #useContext}, creating it if it does not already exist {3} 2389 */ 2390 public UsageContext getUseContextFirstRep() { 2391 if (getUseContext().isEmpty()) { 2392 addUseContext(); 2393 } 2394 return getUseContext().get(0); 2395 } 2396 2397 /** 2398 * @return {@link #jurisdiction} (A legal or geographic region in which the research element definition is intended to be used.) 2399 */ 2400 public List<CodeableConcept> getJurisdiction() { 2401 if (this.jurisdiction == null) 2402 this.jurisdiction = new ArrayList<CodeableConcept>(); 2403 return this.jurisdiction; 2404 } 2405 2406 /** 2407 * @return Returns a reference to <code>this</code> for easy method chaining 2408 */ 2409 public ResearchElementDefinition setJurisdiction(List<CodeableConcept> theJurisdiction) { 2410 this.jurisdiction = theJurisdiction; 2411 return this; 2412 } 2413 2414 public boolean hasJurisdiction() { 2415 if (this.jurisdiction == null) 2416 return false; 2417 for (CodeableConcept item : this.jurisdiction) 2418 if (!item.isEmpty()) 2419 return true; 2420 return false; 2421 } 2422 2423 public CodeableConcept addJurisdiction() { //3 2424 CodeableConcept t = new CodeableConcept(); 2425 if (this.jurisdiction == null) 2426 this.jurisdiction = new ArrayList<CodeableConcept>(); 2427 this.jurisdiction.add(t); 2428 return t; 2429 } 2430 2431 public ResearchElementDefinition addJurisdiction(CodeableConcept t) { //3 2432 if (t == null) 2433 return this; 2434 if (this.jurisdiction == null) 2435 this.jurisdiction = new ArrayList<CodeableConcept>(); 2436 this.jurisdiction.add(t); 2437 return this; 2438 } 2439 2440 /** 2441 * @return The first repetition of repeating field {@link #jurisdiction}, creating it if it does not already exist {3} 2442 */ 2443 public CodeableConcept getJurisdictionFirstRep() { 2444 if (getJurisdiction().isEmpty()) { 2445 addJurisdiction(); 2446 } 2447 return getJurisdiction().get(0); 2448 } 2449 2450 /** 2451 * @return {@link #purpose} (Explanation of why this research element definition is needed and why it has been designed as it has.). This is the underlying object with id, value and extensions. The accessor "getPurpose" gives direct access to the value 2452 */ 2453 public MarkdownType getPurposeElement() { 2454 if (this.purpose == null) 2455 if (Configuration.errorOnAutoCreate()) 2456 throw new Error("Attempt to auto-create ResearchElementDefinition.purpose"); 2457 else if (Configuration.doAutoCreate()) 2458 this.purpose = new MarkdownType(); // bb 2459 return this.purpose; 2460 } 2461 2462 public boolean hasPurposeElement() { 2463 return this.purpose != null && !this.purpose.isEmpty(); 2464 } 2465 2466 public boolean hasPurpose() { 2467 return this.purpose != null && !this.purpose.isEmpty(); 2468 } 2469 2470 /** 2471 * @param value {@link #purpose} (Explanation of why this research element definition is needed and why it has been designed as it has.). This is the underlying object with id, value and extensions. The accessor "getPurpose" gives direct access to the value 2472 */ 2473 public ResearchElementDefinition setPurposeElement(MarkdownType value) { 2474 this.purpose = value; 2475 return this; 2476 } 2477 2478 /** 2479 * @return Explanation of why this research element definition is needed and why it has been designed as it has. 2480 */ 2481 public String getPurpose() { 2482 return this.purpose == null ? null : this.purpose.getValue(); 2483 } 2484 2485 /** 2486 * @param value Explanation of why this research element definition is needed and why it has been designed as it has. 2487 */ 2488 public ResearchElementDefinition setPurpose(String value) { 2489 if (value == null) 2490 this.purpose = null; 2491 else { 2492 if (this.purpose == null) 2493 this.purpose = new MarkdownType(); 2494 this.purpose.setValue(value); 2495 } 2496 return this; 2497 } 2498 2499 /** 2500 * @return {@link #usage} (A detailed description, from a clinical perspective, of how the ResearchElementDefinition is used.). This is the underlying object with id, value and extensions. The accessor "getUsage" gives direct access to the value 2501 */ 2502 public StringType getUsageElement() { 2503 if (this.usage == null) 2504 if (Configuration.errorOnAutoCreate()) 2505 throw new Error("Attempt to auto-create ResearchElementDefinition.usage"); 2506 else if (Configuration.doAutoCreate()) 2507 this.usage = new StringType(); // bb 2508 return this.usage; 2509 } 2510 2511 public boolean hasUsageElement() { 2512 return this.usage != null && !this.usage.isEmpty(); 2513 } 2514 2515 public boolean hasUsage() { 2516 return this.usage != null && !this.usage.isEmpty(); 2517 } 2518 2519 /** 2520 * @param value {@link #usage} (A detailed description, from a clinical perspective, of how the ResearchElementDefinition is used.). This is the underlying object with id, value and extensions. The accessor "getUsage" gives direct access to the value 2521 */ 2522 public ResearchElementDefinition setUsageElement(StringType value) { 2523 this.usage = value; 2524 return this; 2525 } 2526 2527 /** 2528 * @return A detailed description, from a clinical perspective, of how the ResearchElementDefinition is used. 2529 */ 2530 public String getUsage() { 2531 return this.usage == null ? null : this.usage.getValue(); 2532 } 2533 2534 /** 2535 * @param value A detailed description, from a clinical perspective, of how the ResearchElementDefinition is used. 2536 */ 2537 public ResearchElementDefinition setUsage(String value) { 2538 if (Utilities.noString(value)) 2539 this.usage = null; 2540 else { 2541 if (this.usage == null) 2542 this.usage = new StringType(); 2543 this.usage.setValue(value); 2544 } 2545 return this; 2546 } 2547 2548 /** 2549 * @return {@link #copyright} (A copyright statement relating to the research element definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the research element definition.). This is the underlying object with id, value and extensions. The accessor "getCopyright" gives direct access to the value 2550 */ 2551 public MarkdownType getCopyrightElement() { 2552 if (this.copyright == null) 2553 if (Configuration.errorOnAutoCreate()) 2554 throw new Error("Attempt to auto-create ResearchElementDefinition.copyright"); 2555 else if (Configuration.doAutoCreate()) 2556 this.copyright = new MarkdownType(); // bb 2557 return this.copyright; 2558 } 2559 2560 public boolean hasCopyrightElement() { 2561 return this.copyright != null && !this.copyright.isEmpty(); 2562 } 2563 2564 public boolean hasCopyright() { 2565 return this.copyright != null && !this.copyright.isEmpty(); 2566 } 2567 2568 /** 2569 * @param value {@link #copyright} (A copyright statement relating to the research element definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the research element definition.). This is the underlying object with id, value and extensions. The accessor "getCopyright" gives direct access to the value 2570 */ 2571 public ResearchElementDefinition setCopyrightElement(MarkdownType value) { 2572 this.copyright = value; 2573 return this; 2574 } 2575 2576 /** 2577 * @return A copyright statement relating to the research element definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the research element definition. 2578 */ 2579 public String getCopyright() { 2580 return this.copyright == null ? null : this.copyright.getValue(); 2581 } 2582 2583 /** 2584 * @param value A copyright statement relating to the research element definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the research element definition. 2585 */ 2586 public ResearchElementDefinition setCopyright(String value) { 2587 if (value == null) 2588 this.copyright = null; 2589 else { 2590 if (this.copyright == null) 2591 this.copyright = new MarkdownType(); 2592 this.copyright.setValue(value); 2593 } 2594 return this; 2595 } 2596 2597 /** 2598 * @return {@link #approvalDate} (The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.). This is the underlying object with id, value and extensions. The accessor "getApprovalDate" gives direct access to the value 2599 */ 2600 public DateType getApprovalDateElement() { 2601 if (this.approvalDate == null) 2602 if (Configuration.errorOnAutoCreate()) 2603 throw new Error("Attempt to auto-create ResearchElementDefinition.approvalDate"); 2604 else if (Configuration.doAutoCreate()) 2605 this.approvalDate = new DateType(); // bb 2606 return this.approvalDate; 2607 } 2608 2609 public boolean hasApprovalDateElement() { 2610 return this.approvalDate != null && !this.approvalDate.isEmpty(); 2611 } 2612 2613 public boolean hasApprovalDate() { 2614 return this.approvalDate != null && !this.approvalDate.isEmpty(); 2615 } 2616 2617 /** 2618 * @param value {@link #approvalDate} (The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.). This is the underlying object with id, value and extensions. The accessor "getApprovalDate" gives direct access to the value 2619 */ 2620 public ResearchElementDefinition setApprovalDateElement(DateType value) { 2621 this.approvalDate = value; 2622 return this; 2623 } 2624 2625 /** 2626 * @return The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage. 2627 */ 2628 public Date getApprovalDate() { 2629 return this.approvalDate == null ? null : this.approvalDate.getValue(); 2630 } 2631 2632 /** 2633 * @param value The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage. 2634 */ 2635 public ResearchElementDefinition setApprovalDate(Date value) { 2636 if (value == null) 2637 this.approvalDate = null; 2638 else { 2639 if (this.approvalDate == null) 2640 this.approvalDate = new DateType(); 2641 this.approvalDate.setValue(value); 2642 } 2643 return this; 2644 } 2645 2646 /** 2647 * @return {@link #lastReviewDate} (The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.). This is the underlying object with id, value and extensions. The accessor "getLastReviewDate" gives direct access to the value 2648 */ 2649 public DateType getLastReviewDateElement() { 2650 if (this.lastReviewDate == null) 2651 if (Configuration.errorOnAutoCreate()) 2652 throw new Error("Attempt to auto-create ResearchElementDefinition.lastReviewDate"); 2653 else if (Configuration.doAutoCreate()) 2654 this.lastReviewDate = new DateType(); // bb 2655 return this.lastReviewDate; 2656 } 2657 2658 public boolean hasLastReviewDateElement() { 2659 return this.lastReviewDate != null && !this.lastReviewDate.isEmpty(); 2660 } 2661 2662 public boolean hasLastReviewDate() { 2663 return this.lastReviewDate != null && !this.lastReviewDate.isEmpty(); 2664 } 2665 2666 /** 2667 * @param value {@link #lastReviewDate} (The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.). This is the underlying object with id, value and extensions. The accessor "getLastReviewDate" gives direct access to the value 2668 */ 2669 public ResearchElementDefinition setLastReviewDateElement(DateType value) { 2670 this.lastReviewDate = value; 2671 return this; 2672 } 2673 2674 /** 2675 * @return The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date. 2676 */ 2677 public Date getLastReviewDate() { 2678 return this.lastReviewDate == null ? null : this.lastReviewDate.getValue(); 2679 } 2680 2681 /** 2682 * @param value The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date. 2683 */ 2684 public ResearchElementDefinition setLastReviewDate(Date value) { 2685 if (value == null) 2686 this.lastReviewDate = null; 2687 else { 2688 if (this.lastReviewDate == null) 2689 this.lastReviewDate = new DateType(); 2690 this.lastReviewDate.setValue(value); 2691 } 2692 return this; 2693 } 2694 2695 /** 2696 * @return {@link #effectivePeriod} (The period during which the research element definition content was or is planned to be in active use.) 2697 */ 2698 public Period getEffectivePeriod() { 2699 if (this.effectivePeriod == null) 2700 if (Configuration.errorOnAutoCreate()) 2701 throw new Error("Attempt to auto-create ResearchElementDefinition.effectivePeriod"); 2702 else if (Configuration.doAutoCreate()) 2703 this.effectivePeriod = new Period(); // cc 2704 return this.effectivePeriod; 2705 } 2706 2707 public boolean hasEffectivePeriod() { 2708 return this.effectivePeriod != null && !this.effectivePeriod.isEmpty(); 2709 } 2710 2711 /** 2712 * @param value {@link #effectivePeriod} (The period during which the research element definition content was or is planned to be in active use.) 2713 */ 2714 public ResearchElementDefinition setEffectivePeriod(Period value) { 2715 this.effectivePeriod = value; 2716 return this; 2717 } 2718 2719 /** 2720 * @return {@link #topic} (Descriptive topics related to the content of the ResearchElementDefinition. Topics provide a high-level categorization grouping types of ResearchElementDefinitions that can be useful for filtering and searching.) 2721 */ 2722 public List<CodeableConcept> getTopic() { 2723 if (this.topic == null) 2724 this.topic = new ArrayList<CodeableConcept>(); 2725 return this.topic; 2726 } 2727 2728 /** 2729 * @return Returns a reference to <code>this</code> for easy method chaining 2730 */ 2731 public ResearchElementDefinition setTopic(List<CodeableConcept> theTopic) { 2732 this.topic = theTopic; 2733 return this; 2734 } 2735 2736 public boolean hasTopic() { 2737 if (this.topic == null) 2738 return false; 2739 for (CodeableConcept item : this.topic) 2740 if (!item.isEmpty()) 2741 return true; 2742 return false; 2743 } 2744 2745 public CodeableConcept addTopic() { //3 2746 CodeableConcept t = new CodeableConcept(); 2747 if (this.topic == null) 2748 this.topic = new ArrayList<CodeableConcept>(); 2749 this.topic.add(t); 2750 return t; 2751 } 2752 2753 public ResearchElementDefinition addTopic(CodeableConcept t) { //3 2754 if (t == null) 2755 return this; 2756 if (this.topic == null) 2757 this.topic = new ArrayList<CodeableConcept>(); 2758 this.topic.add(t); 2759 return this; 2760 } 2761 2762 /** 2763 * @return The first repetition of repeating field {@link #topic}, creating it if it does not already exist {3} 2764 */ 2765 public CodeableConcept getTopicFirstRep() { 2766 if (getTopic().isEmpty()) { 2767 addTopic(); 2768 } 2769 return getTopic().get(0); 2770 } 2771 2772 /** 2773 * @return {@link #author} (An individiual or organization primarily involved in the creation and maintenance of the content.) 2774 */ 2775 public List<ContactDetail> getAuthor() { 2776 if (this.author == null) 2777 this.author = new ArrayList<ContactDetail>(); 2778 return this.author; 2779 } 2780 2781 /** 2782 * @return Returns a reference to <code>this</code> for easy method chaining 2783 */ 2784 public ResearchElementDefinition setAuthor(List<ContactDetail> theAuthor) { 2785 this.author = theAuthor; 2786 return this; 2787 } 2788 2789 public boolean hasAuthor() { 2790 if (this.author == null) 2791 return false; 2792 for (ContactDetail item : this.author) 2793 if (!item.isEmpty()) 2794 return true; 2795 return false; 2796 } 2797 2798 public ContactDetail addAuthor() { //3 2799 ContactDetail t = new ContactDetail(); 2800 if (this.author == null) 2801 this.author = new ArrayList<ContactDetail>(); 2802 this.author.add(t); 2803 return t; 2804 } 2805 2806 public ResearchElementDefinition addAuthor(ContactDetail t) { //3 2807 if (t == null) 2808 return this; 2809 if (this.author == null) 2810 this.author = new ArrayList<ContactDetail>(); 2811 this.author.add(t); 2812 return this; 2813 } 2814 2815 /** 2816 * @return The first repetition of repeating field {@link #author}, creating it if it does not already exist {3} 2817 */ 2818 public ContactDetail getAuthorFirstRep() { 2819 if (getAuthor().isEmpty()) { 2820 addAuthor(); 2821 } 2822 return getAuthor().get(0); 2823 } 2824 2825 /** 2826 * @return {@link #editor} (An individual or organization primarily responsible for internal coherence of the content.) 2827 */ 2828 public List<ContactDetail> getEditor() { 2829 if (this.editor == null) 2830 this.editor = new ArrayList<ContactDetail>(); 2831 return this.editor; 2832 } 2833 2834 /** 2835 * @return Returns a reference to <code>this</code> for easy method chaining 2836 */ 2837 public ResearchElementDefinition setEditor(List<ContactDetail> theEditor) { 2838 this.editor = theEditor; 2839 return this; 2840 } 2841 2842 public boolean hasEditor() { 2843 if (this.editor == null) 2844 return false; 2845 for (ContactDetail item : this.editor) 2846 if (!item.isEmpty()) 2847 return true; 2848 return false; 2849 } 2850 2851 public ContactDetail addEditor() { //3 2852 ContactDetail t = new ContactDetail(); 2853 if (this.editor == null) 2854 this.editor = new ArrayList<ContactDetail>(); 2855 this.editor.add(t); 2856 return t; 2857 } 2858 2859 public ResearchElementDefinition addEditor(ContactDetail t) { //3 2860 if (t == null) 2861 return this; 2862 if (this.editor == null) 2863 this.editor = new ArrayList<ContactDetail>(); 2864 this.editor.add(t); 2865 return this; 2866 } 2867 2868 /** 2869 * @return The first repetition of repeating field {@link #editor}, creating it if it does not already exist {3} 2870 */ 2871 public ContactDetail getEditorFirstRep() { 2872 if (getEditor().isEmpty()) { 2873 addEditor(); 2874 } 2875 return getEditor().get(0); 2876 } 2877 2878 /** 2879 * @return {@link #reviewer} (An individual or organization primarily responsible for review of some aspect of the content.) 2880 */ 2881 public List<ContactDetail> getReviewer() { 2882 if (this.reviewer == null) 2883 this.reviewer = new ArrayList<ContactDetail>(); 2884 return this.reviewer; 2885 } 2886 2887 /** 2888 * @return Returns a reference to <code>this</code> for easy method chaining 2889 */ 2890 public ResearchElementDefinition setReviewer(List<ContactDetail> theReviewer) { 2891 this.reviewer = theReviewer; 2892 return this; 2893 } 2894 2895 public boolean hasReviewer() { 2896 if (this.reviewer == null) 2897 return false; 2898 for (ContactDetail item : this.reviewer) 2899 if (!item.isEmpty()) 2900 return true; 2901 return false; 2902 } 2903 2904 public ContactDetail addReviewer() { //3 2905 ContactDetail t = new ContactDetail(); 2906 if (this.reviewer == null) 2907 this.reviewer = new ArrayList<ContactDetail>(); 2908 this.reviewer.add(t); 2909 return t; 2910 } 2911 2912 public ResearchElementDefinition addReviewer(ContactDetail t) { //3 2913 if (t == null) 2914 return this; 2915 if (this.reviewer == null) 2916 this.reviewer = new ArrayList<ContactDetail>(); 2917 this.reviewer.add(t); 2918 return this; 2919 } 2920 2921 /** 2922 * @return The first repetition of repeating field {@link #reviewer}, creating it if it does not already exist {3} 2923 */ 2924 public ContactDetail getReviewerFirstRep() { 2925 if (getReviewer().isEmpty()) { 2926 addReviewer(); 2927 } 2928 return getReviewer().get(0); 2929 } 2930 2931 /** 2932 * @return {@link #endorser} (An individual or organization responsible for officially endorsing the content for use in some setting.) 2933 */ 2934 public List<ContactDetail> getEndorser() { 2935 if (this.endorser == null) 2936 this.endorser = new ArrayList<ContactDetail>(); 2937 return this.endorser; 2938 } 2939 2940 /** 2941 * @return Returns a reference to <code>this</code> for easy method chaining 2942 */ 2943 public ResearchElementDefinition setEndorser(List<ContactDetail> theEndorser) { 2944 this.endorser = theEndorser; 2945 return this; 2946 } 2947 2948 public boolean hasEndorser() { 2949 if (this.endorser == null) 2950 return false; 2951 for (ContactDetail item : this.endorser) 2952 if (!item.isEmpty()) 2953 return true; 2954 return false; 2955 } 2956 2957 public ContactDetail addEndorser() { //3 2958 ContactDetail t = new ContactDetail(); 2959 if (this.endorser == null) 2960 this.endorser = new ArrayList<ContactDetail>(); 2961 this.endorser.add(t); 2962 return t; 2963 } 2964 2965 public ResearchElementDefinition addEndorser(ContactDetail t) { //3 2966 if (t == null) 2967 return this; 2968 if (this.endorser == null) 2969 this.endorser = new ArrayList<ContactDetail>(); 2970 this.endorser.add(t); 2971 return this; 2972 } 2973 2974 /** 2975 * @return The first repetition of repeating field {@link #endorser}, creating it if it does not already exist {3} 2976 */ 2977 public ContactDetail getEndorserFirstRep() { 2978 if (getEndorser().isEmpty()) { 2979 addEndorser(); 2980 } 2981 return getEndorser().get(0); 2982 } 2983 2984 /** 2985 * @return {@link #relatedArtifact} (Related artifacts such as additional documentation, justification, or bibliographic references.) 2986 */ 2987 public List<RelatedArtifact> getRelatedArtifact() { 2988 if (this.relatedArtifact == null) 2989 this.relatedArtifact = new ArrayList<RelatedArtifact>(); 2990 return this.relatedArtifact; 2991 } 2992 2993 /** 2994 * @return Returns a reference to <code>this</code> for easy method chaining 2995 */ 2996 public ResearchElementDefinition setRelatedArtifact(List<RelatedArtifact> theRelatedArtifact) { 2997 this.relatedArtifact = theRelatedArtifact; 2998 return this; 2999 } 3000 3001 public boolean hasRelatedArtifact() { 3002 if (this.relatedArtifact == null) 3003 return false; 3004 for (RelatedArtifact item : this.relatedArtifact) 3005 if (!item.isEmpty()) 3006 return true; 3007 return false; 3008 } 3009 3010 public RelatedArtifact addRelatedArtifact() { //3 3011 RelatedArtifact t = new RelatedArtifact(); 3012 if (this.relatedArtifact == null) 3013 this.relatedArtifact = new ArrayList<RelatedArtifact>(); 3014 this.relatedArtifact.add(t); 3015 return t; 3016 } 3017 3018 public ResearchElementDefinition addRelatedArtifact(RelatedArtifact t) { //3 3019 if (t == null) 3020 return this; 3021 if (this.relatedArtifact == null) 3022 this.relatedArtifact = new ArrayList<RelatedArtifact>(); 3023 this.relatedArtifact.add(t); 3024 return this; 3025 } 3026 3027 /** 3028 * @return The first repetition of repeating field {@link #relatedArtifact}, creating it if it does not already exist {3} 3029 */ 3030 public RelatedArtifact getRelatedArtifactFirstRep() { 3031 if (getRelatedArtifact().isEmpty()) { 3032 addRelatedArtifact(); 3033 } 3034 return getRelatedArtifact().get(0); 3035 } 3036 3037 /** 3038 * @return {@link #library} (A reference to a Library resource containing the formal logic used by the ResearchElementDefinition.) 3039 */ 3040 public List<CanonicalType> getLibrary() { 3041 if (this.library == null) 3042 this.library = new ArrayList<CanonicalType>(); 3043 return this.library; 3044 } 3045 3046 /** 3047 * @return Returns a reference to <code>this</code> for easy method chaining 3048 */ 3049 public ResearchElementDefinition setLibrary(List<CanonicalType> theLibrary) { 3050 this.library = theLibrary; 3051 return this; 3052 } 3053 3054 public boolean hasLibrary() { 3055 if (this.library == null) 3056 return false; 3057 for (CanonicalType item : this.library) 3058 if (!item.isEmpty()) 3059 return true; 3060 return false; 3061 } 3062 3063 /** 3064 * @return {@link #library} (A reference to a Library resource containing the formal logic used by the ResearchElementDefinition.) 3065 */ 3066 public CanonicalType addLibraryElement() {//2 3067 CanonicalType t = new CanonicalType(); 3068 if (this.library == null) 3069 this.library = new ArrayList<CanonicalType>(); 3070 this.library.add(t); 3071 return t; 3072 } 3073 3074 /** 3075 * @param value {@link #library} (A reference to a Library resource containing the formal logic used by the ResearchElementDefinition.) 3076 */ 3077 public ResearchElementDefinition addLibrary(String value) { //1 3078 CanonicalType t = new CanonicalType(); 3079 t.setValue(value); 3080 if (this.library == null) 3081 this.library = new ArrayList<CanonicalType>(); 3082 this.library.add(t); 3083 return this; 3084 } 3085 3086 /** 3087 * @param value {@link #library} (A reference to a Library resource containing the formal logic used by the ResearchElementDefinition.) 3088 */ 3089 public boolean hasLibrary(String value) { 3090 if (this.library == null) 3091 return false; 3092 for (CanonicalType v : this.library) 3093 if (v.getValue().equals(value)) // canonical 3094 return true; 3095 return false; 3096 } 3097 3098 /** 3099 * @return {@link #type} (The type of research element, a population, an exposure, or an outcome.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value 3100 */ 3101 public Enumeration<ResearchElementType> getTypeElement() { 3102 if (this.type == null) 3103 if (Configuration.errorOnAutoCreate()) 3104 throw new Error("Attempt to auto-create ResearchElementDefinition.type"); 3105 else if (Configuration.doAutoCreate()) 3106 this.type = new Enumeration<ResearchElementType>(new ResearchElementTypeEnumFactory()); // bb 3107 return this.type; 3108 } 3109 3110 public boolean hasTypeElement() { 3111 return this.type != null && !this.type.isEmpty(); 3112 } 3113 3114 public boolean hasType() { 3115 return this.type != null && !this.type.isEmpty(); 3116 } 3117 3118 /** 3119 * @param value {@link #type} (The type of research element, a population, an exposure, or an outcome.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value 3120 */ 3121 public ResearchElementDefinition setTypeElement(Enumeration<ResearchElementType> value) { 3122 this.type = value; 3123 return this; 3124 } 3125 3126 /** 3127 * @return The type of research element, a population, an exposure, or an outcome. 3128 */ 3129 public ResearchElementType getType() { 3130 return this.type == null ? null : this.type.getValue(); 3131 } 3132 3133 /** 3134 * @param value The type of research element, a population, an exposure, or an outcome. 3135 */ 3136 public ResearchElementDefinition setType(ResearchElementType value) { 3137 if (this.type == null) 3138 this.type = new Enumeration<ResearchElementType>(new ResearchElementTypeEnumFactory()); 3139 this.type.setValue(value); 3140 return this; 3141 } 3142 3143 /** 3144 * @return {@link #variableType} (The type of the outcome (e.g. Dichotomous, Continuous, or Descriptive).). This is the underlying object with id, value and extensions. The accessor "getVariableType" gives direct access to the value 3145 */ 3146 public Enumeration<VariableType> getVariableTypeElement() { 3147 if (this.variableType == null) 3148 if (Configuration.errorOnAutoCreate()) 3149 throw new Error("Attempt to auto-create ResearchElementDefinition.variableType"); 3150 else if (Configuration.doAutoCreate()) 3151 this.variableType = new Enumeration<VariableType>(new VariableTypeEnumFactory()); // bb 3152 return this.variableType; 3153 } 3154 3155 public boolean hasVariableTypeElement() { 3156 return this.variableType != null && !this.variableType.isEmpty(); 3157 } 3158 3159 public boolean hasVariableType() { 3160 return this.variableType != null && !this.variableType.isEmpty(); 3161 } 3162 3163 /** 3164 * @param value {@link #variableType} (The type of the outcome (e.g. Dichotomous, Continuous, or Descriptive).). This is the underlying object with id, value and extensions. The accessor "getVariableType" gives direct access to the value 3165 */ 3166 public ResearchElementDefinition setVariableTypeElement(Enumeration<VariableType> value) { 3167 this.variableType = value; 3168 return this; 3169 } 3170 3171 /** 3172 * @return The type of the outcome (e.g. Dichotomous, Continuous, or Descriptive). 3173 */ 3174 public VariableType getVariableType() { 3175 return this.variableType == null ? null : this.variableType.getValue(); 3176 } 3177 3178 /** 3179 * @param value The type of the outcome (e.g. Dichotomous, Continuous, or Descriptive). 3180 */ 3181 public ResearchElementDefinition setVariableType(VariableType value) { 3182 if (value == null) 3183 this.variableType = null; 3184 else { 3185 if (this.variableType == null) 3186 this.variableType = new Enumeration<VariableType>(new VariableTypeEnumFactory()); 3187 this.variableType.setValue(value); 3188 } 3189 return this; 3190 } 3191 3192 /** 3193 * @return {@link #characteristic} (A characteristic that defines the members of the research element. Multiple characteristics are applied with "and" semantics.) 3194 */ 3195 public List<ResearchElementDefinitionCharacteristicComponent> getCharacteristic() { 3196 if (this.characteristic == null) 3197 this.characteristic = new ArrayList<ResearchElementDefinitionCharacteristicComponent>(); 3198 return this.characteristic; 3199 } 3200 3201 /** 3202 * @return Returns a reference to <code>this</code> for easy method chaining 3203 */ 3204 public ResearchElementDefinition setCharacteristic(List<ResearchElementDefinitionCharacteristicComponent> theCharacteristic) { 3205 this.characteristic = theCharacteristic; 3206 return this; 3207 } 3208 3209 public boolean hasCharacteristic() { 3210 if (this.characteristic == null) 3211 return false; 3212 for (ResearchElementDefinitionCharacteristicComponent item : this.characteristic) 3213 if (!item.isEmpty()) 3214 return true; 3215 return false; 3216 } 3217 3218 public ResearchElementDefinitionCharacteristicComponent addCharacteristic() { //3 3219 ResearchElementDefinitionCharacteristicComponent t = new ResearchElementDefinitionCharacteristicComponent(); 3220 if (this.characteristic == null) 3221 this.characteristic = new ArrayList<ResearchElementDefinitionCharacteristicComponent>(); 3222 this.characteristic.add(t); 3223 return t; 3224 } 3225 3226 public ResearchElementDefinition addCharacteristic(ResearchElementDefinitionCharacteristicComponent t) { //3 3227 if (t == null) 3228 return this; 3229 if (this.characteristic == null) 3230 this.characteristic = new ArrayList<ResearchElementDefinitionCharacteristicComponent>(); 3231 this.characteristic.add(t); 3232 return this; 3233 } 3234 3235 /** 3236 * @return The first repetition of repeating field {@link #characteristic}, creating it if it does not already exist {3} 3237 */ 3238 public ResearchElementDefinitionCharacteristicComponent getCharacteristicFirstRep() { 3239 if (getCharacteristic().isEmpty()) { 3240 addCharacteristic(); 3241 } 3242 return getCharacteristic().get(0); 3243 } 3244 3245 protected void listChildren(List<Property> children) { 3246 super.listChildren(children); 3247 children.add(new Property("url", "uri", "An absolute URI that is used to identify this research element definition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this research element definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the research element definition is stored on different servers.", 0, 1, url)); 3248 children.add(new Property("identifier", "Identifier", "A formal identifier that is used to identify this research element definition when it is represented in other formats, or referenced in a specification, model, design or an instance.", 0, java.lang.Integer.MAX_VALUE, identifier)); 3249 children.add(new Property("version", "string", "The identifier that is used to identify this version of the research element definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the research element definition author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active artifacts.", 0, 1, version)); 3250 children.add(new Property("name", "string", "A natural language name identifying the research element definition. This name should be usable as an identifier for the module by machine processing applications such as code generation.", 0, 1, name)); 3251 children.add(new Property("title", "string", "A short, descriptive, user-friendly title for the research element definition.", 0, 1, title)); 3252 children.add(new Property("shortTitle", "string", "The short title provides an alternate title for use in informal descriptive contexts where the full, formal title is not necessary.", 0, 1, shortTitle)); 3253 children.add(new Property("subtitle", "string", "An explanatory or alternate title for the ResearchElementDefinition giving additional information about its content.", 0, 1, subtitle)); 3254 children.add(new Property("status", "code", "The status of this research element definition. Enables tracking the life-cycle of the content.", 0, 1, status)); 3255 children.add(new Property("experimental", "boolean", "A Boolean value to indicate that this research element definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.", 0, 1, experimental)); 3256 children.add(new Property("subject[x]", "CodeableConcept|Reference(Group)", "The intended subjects for the ResearchElementDefinition. If this element is not provided, a Patient subject is assumed, but the subject of the ResearchElementDefinition can be anything.", 0, 1, subject)); 3257 children.add(new Property("date", "dateTime", "The date (and optionally time) when the research element definition was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the research element definition changes.", 0, 1, date)); 3258 children.add(new Property("publisher", "string", "The name of the organization or individual that published the research element definition.", 0, 1, publisher)); 3259 children.add(new Property("contact", "ContactDetail", "Contact details to assist a user in finding and communicating with the publisher.", 0, java.lang.Integer.MAX_VALUE, contact)); 3260 children.add(new Property("description", "markdown", "A free text natural language description of the research element definition from a consumer's perspective.", 0, 1, description)); 3261 children.add(new Property("comment", "string", "A human-readable string to clarify or explain concepts about the resource.", 0, java.lang.Integer.MAX_VALUE, comment)); 3262 children.add(new Property("useContext", "UsageContext", "The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate research element definition instances.", 0, java.lang.Integer.MAX_VALUE, useContext)); 3263 children.add(new Property("jurisdiction", "CodeableConcept", "A legal or geographic region in which the research element definition is intended to be used.", 0, java.lang.Integer.MAX_VALUE, jurisdiction)); 3264 children.add(new Property("purpose", "markdown", "Explanation of why this research element definition is needed and why it has been designed as it has.", 0, 1, purpose)); 3265 children.add(new Property("usage", "string", "A detailed description, from a clinical perspective, of how the ResearchElementDefinition is used.", 0, 1, usage)); 3266 children.add(new Property("copyright", "markdown", "A copyright statement relating to the research element definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the research element definition.", 0, 1, copyright)); 3267 children.add(new Property("approvalDate", "date", "The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.", 0, 1, approvalDate)); 3268 children.add(new Property("lastReviewDate", "date", "The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.", 0, 1, lastReviewDate)); 3269 children.add(new Property("effectivePeriod", "Period", "The period during which the research element definition content was or is planned to be in active use.", 0, 1, effectivePeriod)); 3270 children.add(new Property("topic", "CodeableConcept", "Descriptive topics related to the content of the ResearchElementDefinition. Topics provide a high-level categorization grouping types of ResearchElementDefinitions that can be useful for filtering and searching.", 0, java.lang.Integer.MAX_VALUE, topic)); 3271 children.add(new Property("author", "ContactDetail", "An individiual or organization primarily involved in the creation and maintenance of the content.", 0, java.lang.Integer.MAX_VALUE, author)); 3272 children.add(new Property("editor", "ContactDetail", "An individual or organization primarily responsible for internal coherence of the content.", 0, java.lang.Integer.MAX_VALUE, editor)); 3273 children.add(new Property("reviewer", "ContactDetail", "An individual or organization primarily responsible for review of some aspect of the content.", 0, java.lang.Integer.MAX_VALUE, reviewer)); 3274 children.add(new Property("endorser", "ContactDetail", "An individual or organization responsible for officially endorsing the content for use in some setting.", 0, java.lang.Integer.MAX_VALUE, endorser)); 3275 children.add(new Property("relatedArtifact", "RelatedArtifact", "Related artifacts such as additional documentation, justification, or bibliographic references.", 0, java.lang.Integer.MAX_VALUE, relatedArtifact)); 3276 children.add(new Property("library", "canonical(Library)", "A reference to a Library resource containing the formal logic used by the ResearchElementDefinition.", 0, java.lang.Integer.MAX_VALUE, library)); 3277 children.add(new Property("type", "code", "The type of research element, a population, an exposure, or an outcome.", 0, 1, type)); 3278 children.add(new Property("variableType", "code", "The type of the outcome (e.g. Dichotomous, Continuous, or Descriptive).", 0, 1, variableType)); 3279 children.add(new Property("characteristic", "", "A characteristic that defines the members of the research element. Multiple characteristics are applied with \"and\" semantics.", 0, java.lang.Integer.MAX_VALUE, characteristic)); 3280 } 3281 3282 @Override 3283 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 3284 switch (_hash) { 3285 case 116079: /*url*/ return new Property("url", "uri", "An absolute URI that is used to identify this research element definition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this research element definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the research element definition is stored on different servers.", 0, 1, url); 3286 case -1618432855: /*identifier*/ return new Property("identifier", "Identifier", "A formal identifier that is used to identify this research element definition when it is represented in other formats, or referenced in a specification, model, design or an instance.", 0, java.lang.Integer.MAX_VALUE, identifier); 3287 case 351608024: /*version*/ return new Property("version", "string", "The identifier that is used to identify this version of the research element definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the research element definition author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active artifacts.", 0, 1, version); 3288 case 3373707: /*name*/ return new Property("name", "string", "A natural language name identifying the research element definition. This name should be usable as an identifier for the module by machine processing applications such as code generation.", 0, 1, name); 3289 case 110371416: /*title*/ return new Property("title", "string", "A short, descriptive, user-friendly title for the research element definition.", 0, 1, title); 3290 case 1555503932: /*shortTitle*/ return new Property("shortTitle", "string", "The short title provides an alternate title for use in informal descriptive contexts where the full, formal title is not necessary.", 0, 1, shortTitle); 3291 case -2060497896: /*subtitle*/ return new Property("subtitle", "string", "An explanatory or alternate title for the ResearchElementDefinition giving additional information about its content.", 0, 1, subtitle); 3292 case -892481550: /*status*/ return new Property("status", "code", "The status of this research element definition. Enables tracking the life-cycle of the content.", 0, 1, status); 3293 case -404562712: /*experimental*/ return new Property("experimental", "boolean", "A Boolean value to indicate that this research element definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.", 0, 1, experimental); 3294 case -573640748: /*subject[x]*/ return new Property("subject[x]", "CodeableConcept|Reference(Group)", "The intended subjects for the ResearchElementDefinition. If this element is not provided, a Patient subject is assumed, but the subject of the ResearchElementDefinition can be anything.", 0, 1, subject); 3295 case -1867885268: /*subject*/ return new Property("subject[x]", "CodeableConcept|Reference(Group)", "The intended subjects for the ResearchElementDefinition. If this element is not provided, a Patient subject is assumed, but the subject of the ResearchElementDefinition can be anything.", 0, 1, subject); 3296 case -1257122603: /*subjectCodeableConcept*/ return new Property("subject[x]", "CodeableConcept", "The intended subjects for the ResearchElementDefinition. If this element is not provided, a Patient subject is assumed, but the subject of the ResearchElementDefinition can be anything.", 0, 1, subject); 3297 case 772938623: /*subjectReference*/ return new Property("subject[x]", "Reference(Group)", "The intended subjects for the ResearchElementDefinition. If this element is not provided, a Patient subject is assumed, but the subject of the ResearchElementDefinition can be anything.", 0, 1, subject); 3298 case 3076014: /*date*/ return new Property("date", "dateTime", "The date (and optionally time) when the research element definition was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the research element definition changes.", 0, 1, date); 3299 case 1447404028: /*publisher*/ return new Property("publisher", "string", "The name of the organization or individual that published the research element definition.", 0, 1, publisher); 3300 case 951526432: /*contact*/ return new Property("contact", "ContactDetail", "Contact details to assist a user in finding and communicating with the publisher.", 0, java.lang.Integer.MAX_VALUE, contact); 3301 case -1724546052: /*description*/ return new Property("description", "markdown", "A free text natural language description of the research element definition from a consumer's perspective.", 0, 1, description); 3302 case 950398559: /*comment*/ return new Property("comment", "string", "A human-readable string to clarify or explain concepts about the resource.", 0, java.lang.Integer.MAX_VALUE, comment); 3303 case -669707736: /*useContext*/ return new Property("useContext", "UsageContext", "The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate research element definition instances.", 0, java.lang.Integer.MAX_VALUE, useContext); 3304 case -507075711: /*jurisdiction*/ return new Property("jurisdiction", "CodeableConcept", "A legal or geographic region in which the research element definition is intended to be used.", 0, java.lang.Integer.MAX_VALUE, jurisdiction); 3305 case -220463842: /*purpose*/ return new Property("purpose", "markdown", "Explanation of why this research element definition is needed and why it has been designed as it has.", 0, 1, purpose); 3306 case 111574433: /*usage*/ return new Property("usage", "string", "A detailed description, from a clinical perspective, of how the ResearchElementDefinition is used.", 0, 1, usage); 3307 case 1522889671: /*copyright*/ return new Property("copyright", "markdown", "A copyright statement relating to the research element definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the research element definition.", 0, 1, copyright); 3308 case 223539345: /*approvalDate*/ return new Property("approvalDate", "date", "The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.", 0, 1, approvalDate); 3309 case -1687512484: /*lastReviewDate*/ return new Property("lastReviewDate", "date", "The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.", 0, 1, lastReviewDate); 3310 case -403934648: /*effectivePeriod*/ return new Property("effectivePeriod", "Period", "The period during which the research element definition content was or is planned to be in active use.", 0, 1, effectivePeriod); 3311 case 110546223: /*topic*/ return new Property("topic", "CodeableConcept", "Descriptive topics related to the content of the ResearchElementDefinition. Topics provide a high-level categorization grouping types of ResearchElementDefinitions that can be useful for filtering and searching.", 0, java.lang.Integer.MAX_VALUE, topic); 3312 case -1406328437: /*author*/ return new Property("author", "ContactDetail", "An individiual or organization primarily involved in the creation and maintenance of the content.", 0, java.lang.Integer.MAX_VALUE, author); 3313 case -1307827859: /*editor*/ return new Property("editor", "ContactDetail", "An individual or organization primarily responsible for internal coherence of the content.", 0, java.lang.Integer.MAX_VALUE, editor); 3314 case -261190139: /*reviewer*/ return new Property("reviewer", "ContactDetail", "An individual or organization primarily responsible for review of some aspect of the content.", 0, java.lang.Integer.MAX_VALUE, reviewer); 3315 case 1740277666: /*endorser*/ return new Property("endorser", "ContactDetail", "An individual or organization responsible for officially endorsing the content for use in some setting.", 0, java.lang.Integer.MAX_VALUE, endorser); 3316 case 666807069: /*relatedArtifact*/ return new Property("relatedArtifact", "RelatedArtifact", "Related artifacts such as additional documentation, justification, or bibliographic references.", 0, java.lang.Integer.MAX_VALUE, relatedArtifact); 3317 case 166208699: /*library*/ return new Property("library", "canonical(Library)", "A reference to a Library resource containing the formal logic used by the ResearchElementDefinition.", 0, java.lang.Integer.MAX_VALUE, library); 3318 case 3575610: /*type*/ return new Property("type", "code", "The type of research element, a population, an exposure, or an outcome.", 0, 1, type); 3319 case -372820010: /*variableType*/ return new Property("variableType", "code", "The type of the outcome (e.g. Dichotomous, Continuous, or Descriptive).", 0, 1, variableType); 3320 case 366313883: /*characteristic*/ return new Property("characteristic", "", "A characteristic that defines the members of the research element. Multiple characteristics are applied with \"and\" semantics.", 0, java.lang.Integer.MAX_VALUE, characteristic); 3321 default: return super.getNamedProperty(_hash, _name, _checkValid); 3322 } 3323 3324 } 3325 3326 @Override 3327 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 3328 switch (hash) { 3329 case 116079: /*url*/ return this.url == null ? new Base[0] : new Base[] {this.url}; // UriType 3330 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 3331 case 351608024: /*version*/ return this.version == null ? new Base[0] : new Base[] {this.version}; // StringType 3332 case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType 3333 case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType 3334 case 1555503932: /*shortTitle*/ return this.shortTitle == null ? new Base[0] : new Base[] {this.shortTitle}; // StringType 3335 case -2060497896: /*subtitle*/ return this.subtitle == null ? new Base[0] : new Base[] {this.subtitle}; // StringType 3336 case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<PublicationStatus> 3337 case -404562712: /*experimental*/ return this.experimental == null ? new Base[0] : new Base[] {this.experimental}; // BooleanType 3338 case -1867885268: /*subject*/ return this.subject == null ? new Base[0] : new Base[] {this.subject}; // DataType 3339 case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType 3340 case 1447404028: /*publisher*/ return this.publisher == null ? new Base[0] : new Base[] {this.publisher}; // StringType 3341 case 951526432: /*contact*/ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // ContactDetail 3342 case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType 3343 case 950398559: /*comment*/ return this.comment == null ? new Base[0] : this.comment.toArray(new Base[this.comment.size()]); // StringType 3344 case -669707736: /*useContext*/ return this.useContext == null ? new Base[0] : this.useContext.toArray(new Base[this.useContext.size()]); // UsageContext 3345 case -507075711: /*jurisdiction*/ return this.jurisdiction == null ? new Base[0] : this.jurisdiction.toArray(new Base[this.jurisdiction.size()]); // CodeableConcept 3346 case -220463842: /*purpose*/ return this.purpose == null ? new Base[0] : new Base[] {this.purpose}; // MarkdownType 3347 case 111574433: /*usage*/ return this.usage == null ? new Base[0] : new Base[] {this.usage}; // StringType 3348 case 1522889671: /*copyright*/ return this.copyright == null ? new Base[0] : new Base[] {this.copyright}; // MarkdownType 3349 case 223539345: /*approvalDate*/ return this.approvalDate == null ? new Base[0] : new Base[] {this.approvalDate}; // DateType 3350 case -1687512484: /*lastReviewDate*/ return this.lastReviewDate == null ? new Base[0] : new Base[] {this.lastReviewDate}; // DateType 3351 case -403934648: /*effectivePeriod*/ return this.effectivePeriod == null ? new Base[0] : new Base[] {this.effectivePeriod}; // Period 3352 case 110546223: /*topic*/ return this.topic == null ? new Base[0] : this.topic.toArray(new Base[this.topic.size()]); // CodeableConcept 3353 case -1406328437: /*author*/ return this.author == null ? new Base[0] : this.author.toArray(new Base[this.author.size()]); // ContactDetail 3354 case -1307827859: /*editor*/ return this.editor == null ? new Base[0] : this.editor.toArray(new Base[this.editor.size()]); // ContactDetail 3355 case -261190139: /*reviewer*/ return this.reviewer == null ? new Base[0] : this.reviewer.toArray(new Base[this.reviewer.size()]); // ContactDetail 3356 case 1740277666: /*endorser*/ return this.endorser == null ? new Base[0] : this.endorser.toArray(new Base[this.endorser.size()]); // ContactDetail 3357 case 666807069: /*relatedArtifact*/ return this.relatedArtifact == null ? new Base[0] : this.relatedArtifact.toArray(new Base[this.relatedArtifact.size()]); // RelatedArtifact 3358 case 166208699: /*library*/ return this.library == null ? new Base[0] : this.library.toArray(new Base[this.library.size()]); // CanonicalType 3359 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // Enumeration<ResearchElementType> 3360 case -372820010: /*variableType*/ return this.variableType == null ? new Base[0] : new Base[] {this.variableType}; // Enumeration<VariableType> 3361 case 366313883: /*characteristic*/ return this.characteristic == null ? new Base[0] : this.characteristic.toArray(new Base[this.characteristic.size()]); // ResearchElementDefinitionCharacteristicComponent 3362 default: return super.getProperty(hash, name, checkValid); 3363 } 3364 3365 } 3366 3367 @Override 3368 public Base setProperty(int hash, String name, Base value) throws FHIRException { 3369 switch (hash) { 3370 case 116079: // url 3371 this.url = TypeConvertor.castToUri(value); // UriType 3372 return value; 3373 case -1618432855: // identifier 3374 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier 3375 return value; 3376 case 351608024: // version 3377 this.version = TypeConvertor.castToString(value); // StringType 3378 return value; 3379 case 3373707: // name 3380 this.name = TypeConvertor.castToString(value); // StringType 3381 return value; 3382 case 110371416: // title 3383 this.title = TypeConvertor.castToString(value); // StringType 3384 return value; 3385 case 1555503932: // shortTitle 3386 this.shortTitle = TypeConvertor.castToString(value); // StringType 3387 return value; 3388 case -2060497896: // subtitle 3389 this.subtitle = TypeConvertor.castToString(value); // StringType 3390 return value; 3391 case -892481550: // status 3392 value = new PublicationStatusEnumFactory().fromType(TypeConvertor.castToCode(value)); 3393 this.status = (Enumeration) value; // Enumeration<PublicationStatus> 3394 return value; 3395 case -404562712: // experimental 3396 this.experimental = TypeConvertor.castToBoolean(value); // BooleanType 3397 return value; 3398 case -1867885268: // subject 3399 this.subject = TypeConvertor.castToType(value); // DataType 3400 return value; 3401 case 3076014: // date 3402 this.date = TypeConvertor.castToDateTime(value); // DateTimeType 3403 return value; 3404 case 1447404028: // publisher 3405 this.publisher = TypeConvertor.castToString(value); // StringType 3406 return value; 3407 case 951526432: // contact 3408 this.getContact().add(TypeConvertor.castToContactDetail(value)); // ContactDetail 3409 return value; 3410 case -1724546052: // description 3411 this.description = TypeConvertor.castToMarkdown(value); // MarkdownType 3412 return value; 3413 case 950398559: // comment 3414 this.getComment().add(TypeConvertor.castToString(value)); // StringType 3415 return value; 3416 case -669707736: // useContext 3417 this.getUseContext().add(TypeConvertor.castToUsageContext(value)); // UsageContext 3418 return value; 3419 case -507075711: // jurisdiction 3420 this.getJurisdiction().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 3421 return value; 3422 case -220463842: // purpose 3423 this.purpose = TypeConvertor.castToMarkdown(value); // MarkdownType 3424 return value; 3425 case 111574433: // usage 3426 this.usage = TypeConvertor.castToString(value); // StringType 3427 return value; 3428 case 1522889671: // copyright 3429 this.copyright = TypeConvertor.castToMarkdown(value); // MarkdownType 3430 return value; 3431 case 223539345: // approvalDate 3432 this.approvalDate = TypeConvertor.castToDate(value); // DateType 3433 return value; 3434 case -1687512484: // lastReviewDate 3435 this.lastReviewDate = TypeConvertor.castToDate(value); // DateType 3436 return value; 3437 case -403934648: // effectivePeriod 3438 this.effectivePeriod = TypeConvertor.castToPeriod(value); // Period 3439 return value; 3440 case 110546223: // topic 3441 this.getTopic().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 3442 return value; 3443 case -1406328437: // author 3444 this.getAuthor().add(TypeConvertor.castToContactDetail(value)); // ContactDetail 3445 return value; 3446 case -1307827859: // editor 3447 this.getEditor().add(TypeConvertor.castToContactDetail(value)); // ContactDetail 3448 return value; 3449 case -261190139: // reviewer 3450 this.getReviewer().add(TypeConvertor.castToContactDetail(value)); // ContactDetail 3451 return value; 3452 case 1740277666: // endorser 3453 this.getEndorser().add(TypeConvertor.castToContactDetail(value)); // ContactDetail 3454 return value; 3455 case 666807069: // relatedArtifact 3456 this.getRelatedArtifact().add(TypeConvertor.castToRelatedArtifact(value)); // RelatedArtifact 3457 return value; 3458 case 166208699: // library 3459 this.getLibrary().add(TypeConvertor.castToCanonical(value)); // CanonicalType 3460 return value; 3461 case 3575610: // type 3462 value = new ResearchElementTypeEnumFactory().fromType(TypeConvertor.castToCode(value)); 3463 this.type = (Enumeration) value; // Enumeration<ResearchElementType> 3464 return value; 3465 case -372820010: // variableType 3466 value = new VariableTypeEnumFactory().fromType(TypeConvertor.castToCode(value)); 3467 this.variableType = (Enumeration) value; // Enumeration<VariableType> 3468 return value; 3469 case 366313883: // characteristic 3470 this.getCharacteristic().add((ResearchElementDefinitionCharacteristicComponent) value); // ResearchElementDefinitionCharacteristicComponent 3471 return value; 3472 default: return super.setProperty(hash, name, value); 3473 } 3474 3475 } 3476 3477 @Override 3478 public Base setProperty(String name, Base value) throws FHIRException { 3479 if (name.equals("url")) { 3480 this.url = TypeConvertor.castToUri(value); // UriType 3481 } else if (name.equals("identifier")) { 3482 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); 3483 } else if (name.equals("version")) { 3484 this.version = TypeConvertor.castToString(value); // StringType 3485 } else if (name.equals("name")) { 3486 this.name = TypeConvertor.castToString(value); // StringType 3487 } else if (name.equals("title")) { 3488 this.title = TypeConvertor.castToString(value); // StringType 3489 } else if (name.equals("shortTitle")) { 3490 this.shortTitle = TypeConvertor.castToString(value); // StringType 3491 } else if (name.equals("subtitle")) { 3492 this.subtitle = TypeConvertor.castToString(value); // StringType 3493 } else if (name.equals("status")) { 3494 value = new PublicationStatusEnumFactory().fromType(TypeConvertor.castToCode(value)); 3495 this.status = (Enumeration) value; // Enumeration<PublicationStatus> 3496 } else if (name.equals("experimental")) { 3497 this.experimental = TypeConvertor.castToBoolean(value); // BooleanType 3498 } else if (name.equals("subject[x]")) { 3499 this.subject = TypeConvertor.castToType(value); // DataType 3500 } else if (name.equals("date")) { 3501 this.date = TypeConvertor.castToDateTime(value); // DateTimeType 3502 } else if (name.equals("publisher")) { 3503 this.publisher = TypeConvertor.castToString(value); // StringType 3504 } else if (name.equals("contact")) { 3505 this.getContact().add(TypeConvertor.castToContactDetail(value)); 3506 } else if (name.equals("description")) { 3507 this.description = TypeConvertor.castToMarkdown(value); // MarkdownType 3508 } else if (name.equals("comment")) { 3509 this.getComment().add(TypeConvertor.castToString(value)); 3510 } else if (name.equals("useContext")) { 3511 this.getUseContext().add(TypeConvertor.castToUsageContext(value)); 3512 } else if (name.equals("jurisdiction")) { 3513 this.getJurisdiction().add(TypeConvertor.castToCodeableConcept(value)); 3514 } else if (name.equals("purpose")) { 3515 this.purpose = TypeConvertor.castToMarkdown(value); // MarkdownType 3516 } else if (name.equals("usage")) { 3517 this.usage = TypeConvertor.castToString(value); // StringType 3518 } else if (name.equals("copyright")) { 3519 this.copyright = TypeConvertor.castToMarkdown(value); // MarkdownType 3520 } else if (name.equals("approvalDate")) { 3521 this.approvalDate = TypeConvertor.castToDate(value); // DateType 3522 } else if (name.equals("lastReviewDate")) { 3523 this.lastReviewDate = TypeConvertor.castToDate(value); // DateType 3524 } else if (name.equals("effectivePeriod")) { 3525 this.effectivePeriod = TypeConvertor.castToPeriod(value); // Period 3526 } else if (name.equals("topic")) { 3527 this.getTopic().add(TypeConvertor.castToCodeableConcept(value)); 3528 } else if (name.equals("author")) { 3529 this.getAuthor().add(TypeConvertor.castToContactDetail(value)); 3530 } else if (name.equals("editor")) { 3531 this.getEditor().add(TypeConvertor.castToContactDetail(value)); 3532 } else if (name.equals("reviewer")) { 3533 this.getReviewer().add(TypeConvertor.castToContactDetail(value)); 3534 } else if (name.equals("endorser")) { 3535 this.getEndorser().add(TypeConvertor.castToContactDetail(value)); 3536 } else if (name.equals("relatedArtifact")) { 3537 this.getRelatedArtifact().add(TypeConvertor.castToRelatedArtifact(value)); 3538 } else if (name.equals("library")) { 3539 this.getLibrary().add(TypeConvertor.castToCanonical(value)); 3540 } else if (name.equals("type")) { 3541 value = new ResearchElementTypeEnumFactory().fromType(TypeConvertor.castToCode(value)); 3542 this.type = (Enumeration) value; // Enumeration<ResearchElementType> 3543 } else if (name.equals("variableType")) { 3544 value = new VariableTypeEnumFactory().fromType(TypeConvertor.castToCode(value)); 3545 this.variableType = (Enumeration) value; // Enumeration<VariableType> 3546 } else if (name.equals("characteristic")) { 3547 this.getCharacteristic().add((ResearchElementDefinitionCharacteristicComponent) value); 3548 } else 3549 return super.setProperty(name, value); 3550 return value; 3551 } 3552 3553 @Override 3554 public Base makeProperty(int hash, String name) throws FHIRException { 3555 switch (hash) { 3556 case 116079: return getUrlElement(); 3557 case -1618432855: return addIdentifier(); 3558 case 351608024: return getVersionElement(); 3559 case 3373707: return getNameElement(); 3560 case 110371416: return getTitleElement(); 3561 case 1555503932: return getShortTitleElement(); 3562 case -2060497896: return getSubtitleElement(); 3563 case -892481550: return getStatusElement(); 3564 case -404562712: return getExperimentalElement(); 3565 case -573640748: return getSubject(); 3566 case -1867885268: return getSubject(); 3567 case 3076014: return getDateElement(); 3568 case 1447404028: return getPublisherElement(); 3569 case 951526432: return addContact(); 3570 case -1724546052: return getDescriptionElement(); 3571 case 950398559: return addCommentElement(); 3572 case -669707736: return addUseContext(); 3573 case -507075711: return addJurisdiction(); 3574 case -220463842: return getPurposeElement(); 3575 case 111574433: return getUsageElement(); 3576 case 1522889671: return getCopyrightElement(); 3577 case 223539345: return getApprovalDateElement(); 3578 case -1687512484: return getLastReviewDateElement(); 3579 case -403934648: return getEffectivePeriod(); 3580 case 110546223: return addTopic(); 3581 case -1406328437: return addAuthor(); 3582 case -1307827859: return addEditor(); 3583 case -261190139: return addReviewer(); 3584 case 1740277666: return addEndorser(); 3585 case 666807069: return addRelatedArtifact(); 3586 case 166208699: return addLibraryElement(); 3587 case 3575610: return getTypeElement(); 3588 case -372820010: return getVariableTypeElement(); 3589 case 366313883: return addCharacteristic(); 3590 default: return super.makeProperty(hash, name); 3591 } 3592 3593 } 3594 3595 @Override 3596 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 3597 switch (hash) { 3598 case 116079: /*url*/ return new String[] {"uri"}; 3599 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 3600 case 351608024: /*version*/ return new String[] {"string"}; 3601 case 3373707: /*name*/ return new String[] {"string"}; 3602 case 110371416: /*title*/ return new String[] {"string"}; 3603 case 1555503932: /*shortTitle*/ return new String[] {"string"}; 3604 case -2060497896: /*subtitle*/ return new String[] {"string"}; 3605 case -892481550: /*status*/ return new String[] {"code"}; 3606 case -404562712: /*experimental*/ return new String[] {"boolean"}; 3607 case -1867885268: /*subject*/ return new String[] {"CodeableConcept", "Reference"}; 3608 case 3076014: /*date*/ return new String[] {"dateTime"}; 3609 case 1447404028: /*publisher*/ return new String[] {"string"}; 3610 case 951526432: /*contact*/ return new String[] {"ContactDetail"}; 3611 case -1724546052: /*description*/ return new String[] {"markdown"}; 3612 case 950398559: /*comment*/ return new String[] {"string"}; 3613 case -669707736: /*useContext*/ return new String[] {"UsageContext"}; 3614 case -507075711: /*jurisdiction*/ return new String[] {"CodeableConcept"}; 3615 case -220463842: /*purpose*/ return new String[] {"markdown"}; 3616 case 111574433: /*usage*/ return new String[] {"string"}; 3617 case 1522889671: /*copyright*/ return new String[] {"markdown"}; 3618 case 223539345: /*approvalDate*/ return new String[] {"date"}; 3619 case -1687512484: /*lastReviewDate*/ return new String[] {"date"}; 3620 case -403934648: /*effectivePeriod*/ return new String[] {"Period"}; 3621 case 110546223: /*topic*/ return new String[] {"CodeableConcept"}; 3622 case -1406328437: /*author*/ return new String[] {"ContactDetail"}; 3623 case -1307827859: /*editor*/ return new String[] {"ContactDetail"}; 3624 case -261190139: /*reviewer*/ return new String[] {"ContactDetail"}; 3625 case 1740277666: /*endorser*/ return new String[] {"ContactDetail"}; 3626 case 666807069: /*relatedArtifact*/ return new String[] {"RelatedArtifact"}; 3627 case 166208699: /*library*/ return new String[] {"canonical"}; 3628 case 3575610: /*type*/ return new String[] {"code"}; 3629 case -372820010: /*variableType*/ return new String[] {"code"}; 3630 case 366313883: /*characteristic*/ return new String[] {}; 3631 default: return super.getTypesForProperty(hash, name); 3632 } 3633 3634 } 3635 3636 @Override 3637 public Base addChild(String name) throws FHIRException { 3638 if (name.equals("url")) { 3639 throw new FHIRException("Cannot call addChild on a primitive type ResearchElementDefinition.url"); 3640 } 3641 else if (name.equals("identifier")) { 3642 return addIdentifier(); 3643 } 3644 else if (name.equals("version")) { 3645 throw new FHIRException("Cannot call addChild on a primitive type ResearchElementDefinition.version"); 3646 } 3647 else if (name.equals("name")) { 3648 throw new FHIRException("Cannot call addChild on a primitive type ResearchElementDefinition.name"); 3649 } 3650 else if (name.equals("title")) { 3651 throw new FHIRException("Cannot call addChild on a primitive type ResearchElementDefinition.title"); 3652 } 3653 else if (name.equals("shortTitle")) { 3654 throw new FHIRException("Cannot call addChild on a primitive type ResearchElementDefinition.shortTitle"); 3655 } 3656 else if (name.equals("subtitle")) { 3657 throw new FHIRException("Cannot call addChild on a primitive type ResearchElementDefinition.subtitle"); 3658 } 3659 else if (name.equals("status")) { 3660 throw new FHIRException("Cannot call addChild on a primitive type ResearchElementDefinition.status"); 3661 } 3662 else if (name.equals("experimental")) { 3663 throw new FHIRException("Cannot call addChild on a primitive type ResearchElementDefinition.experimental"); 3664 } 3665 else if (name.equals("subjectCodeableConcept")) { 3666 this.subject = new CodeableConcept(); 3667 return this.subject; 3668 } 3669 else if (name.equals("subjectReference")) { 3670 this.subject = new Reference(); 3671 return this.subject; 3672 } 3673 else if (name.equals("date")) { 3674 throw new FHIRException("Cannot call addChild on a primitive type ResearchElementDefinition.date"); 3675 } 3676 else if (name.equals("publisher")) { 3677 throw new FHIRException("Cannot call addChild on a primitive type ResearchElementDefinition.publisher"); 3678 } 3679 else if (name.equals("contact")) { 3680 return addContact(); 3681 } 3682 else if (name.equals("description")) { 3683 throw new FHIRException("Cannot call addChild on a primitive type ResearchElementDefinition.description"); 3684 } 3685 else if (name.equals("comment")) { 3686 throw new FHIRException("Cannot call addChild on a primitive type ResearchElementDefinition.comment"); 3687 } 3688 else if (name.equals("useContext")) { 3689 return addUseContext(); 3690 } 3691 else if (name.equals("jurisdiction")) { 3692 return addJurisdiction(); 3693 } 3694 else if (name.equals("purpose")) { 3695 throw new FHIRException("Cannot call addChild on a primitive type ResearchElementDefinition.purpose"); 3696 } 3697 else if (name.equals("usage")) { 3698 throw new FHIRException("Cannot call addChild on a primitive type ResearchElementDefinition.usage"); 3699 } 3700 else if (name.equals("copyright")) { 3701 throw new FHIRException("Cannot call addChild on a primitive type ResearchElementDefinition.copyright"); 3702 } 3703 else if (name.equals("approvalDate")) { 3704 throw new FHIRException("Cannot call addChild on a primitive type ResearchElementDefinition.approvalDate"); 3705 } 3706 else if (name.equals("lastReviewDate")) { 3707 throw new FHIRException("Cannot call addChild on a primitive type ResearchElementDefinition.lastReviewDate"); 3708 } 3709 else if (name.equals("effectivePeriod")) { 3710 this.effectivePeriod = new Period(); 3711 return this.effectivePeriod; 3712 } 3713 else if (name.equals("topic")) { 3714 return addTopic(); 3715 } 3716 else if (name.equals("author")) { 3717 return addAuthor(); 3718 } 3719 else if (name.equals("editor")) { 3720 return addEditor(); 3721 } 3722 else if (name.equals("reviewer")) { 3723 return addReviewer(); 3724 } 3725 else if (name.equals("endorser")) { 3726 return addEndorser(); 3727 } 3728 else if (name.equals("relatedArtifact")) { 3729 return addRelatedArtifact(); 3730 } 3731 else if (name.equals("library")) { 3732 throw new FHIRException("Cannot call addChild on a primitive type ResearchElementDefinition.library"); 3733 } 3734 else if (name.equals("type")) { 3735 throw new FHIRException("Cannot call addChild on a primitive type ResearchElementDefinition.type"); 3736 } 3737 else if (name.equals("variableType")) { 3738 throw new FHIRException("Cannot call addChild on a primitive type ResearchElementDefinition.variableType"); 3739 } 3740 else if (name.equals("characteristic")) { 3741 return addCharacteristic(); 3742 } 3743 else 3744 return super.addChild(name); 3745 } 3746 3747 public String fhirType() { 3748 return "ResearchElementDefinition"; 3749 3750 } 3751 3752 public ResearchElementDefinition copy() { 3753 ResearchElementDefinition dst = new ResearchElementDefinition(); 3754 copyValues(dst); 3755 return dst; 3756 } 3757 3758 public void copyValues(ResearchElementDefinition dst) { 3759 super.copyValues(dst); 3760 dst.url = url == null ? null : url.copy(); 3761 if (identifier != null) { 3762 dst.identifier = new ArrayList<Identifier>(); 3763 for (Identifier i : identifier) 3764 dst.identifier.add(i.copy()); 3765 }; 3766 dst.version = version == null ? null : version.copy(); 3767 dst.name = name == null ? null : name.copy(); 3768 dst.title = title == null ? null : title.copy(); 3769 dst.shortTitle = shortTitle == null ? null : shortTitle.copy(); 3770 dst.subtitle = subtitle == null ? null : subtitle.copy(); 3771 dst.status = status == null ? null : status.copy(); 3772 dst.experimental = experimental == null ? null : experimental.copy(); 3773 dst.subject = subject == null ? null : subject.copy(); 3774 dst.date = date == null ? null : date.copy(); 3775 dst.publisher = publisher == null ? null : publisher.copy(); 3776 if (contact != null) { 3777 dst.contact = new ArrayList<ContactDetail>(); 3778 for (ContactDetail i : contact) 3779 dst.contact.add(i.copy()); 3780 }; 3781 dst.description = description == null ? null : description.copy(); 3782 if (comment != null) { 3783 dst.comment = new ArrayList<StringType>(); 3784 for (StringType i : comment) 3785 dst.comment.add(i.copy()); 3786 }; 3787 if (useContext != null) { 3788 dst.useContext = new ArrayList<UsageContext>(); 3789 for (UsageContext i : useContext) 3790 dst.useContext.add(i.copy()); 3791 }; 3792 if (jurisdiction != null) { 3793 dst.jurisdiction = new ArrayList<CodeableConcept>(); 3794 for (CodeableConcept i : jurisdiction) 3795 dst.jurisdiction.add(i.copy()); 3796 }; 3797 dst.purpose = purpose == null ? null : purpose.copy(); 3798 dst.usage = usage == null ? null : usage.copy(); 3799 dst.copyright = copyright == null ? null : copyright.copy(); 3800 dst.approvalDate = approvalDate == null ? null : approvalDate.copy(); 3801 dst.lastReviewDate = lastReviewDate == null ? null : lastReviewDate.copy(); 3802 dst.effectivePeriod = effectivePeriod == null ? null : effectivePeriod.copy(); 3803 if (topic != null) { 3804 dst.topic = new ArrayList<CodeableConcept>(); 3805 for (CodeableConcept i : topic) 3806 dst.topic.add(i.copy()); 3807 }; 3808 if (author != null) { 3809 dst.author = new ArrayList<ContactDetail>(); 3810 for (ContactDetail i : author) 3811 dst.author.add(i.copy()); 3812 }; 3813 if (editor != null) { 3814 dst.editor = new ArrayList<ContactDetail>(); 3815 for (ContactDetail i : editor) 3816 dst.editor.add(i.copy()); 3817 }; 3818 if (reviewer != null) { 3819 dst.reviewer = new ArrayList<ContactDetail>(); 3820 for (ContactDetail i : reviewer) 3821 dst.reviewer.add(i.copy()); 3822 }; 3823 if (endorser != null) { 3824 dst.endorser = new ArrayList<ContactDetail>(); 3825 for (ContactDetail i : endorser) 3826 dst.endorser.add(i.copy()); 3827 }; 3828 if (relatedArtifact != null) { 3829 dst.relatedArtifact = new ArrayList<RelatedArtifact>(); 3830 for (RelatedArtifact i : relatedArtifact) 3831 dst.relatedArtifact.add(i.copy()); 3832 }; 3833 if (library != null) { 3834 dst.library = new ArrayList<CanonicalType>(); 3835 for (CanonicalType i : library) 3836 dst.library.add(i.copy()); 3837 }; 3838 dst.type = type == null ? null : type.copy(); 3839 dst.variableType = variableType == null ? null : variableType.copy(); 3840 if (characteristic != null) { 3841 dst.characteristic = new ArrayList<ResearchElementDefinitionCharacteristicComponent>(); 3842 for (ResearchElementDefinitionCharacteristicComponent i : characteristic) 3843 dst.characteristic.add(i.copy()); 3844 }; 3845 } 3846 3847 protected ResearchElementDefinition typedCopy() { 3848 return copy(); 3849 } 3850 3851 @Override 3852 public boolean equalsDeep(Base other_) { 3853 if (!super.equalsDeep(other_)) 3854 return false; 3855 if (!(other_ instanceof ResearchElementDefinition)) 3856 return false; 3857 ResearchElementDefinition o = (ResearchElementDefinition) other_; 3858 return compareDeep(url, o.url, true) && compareDeep(identifier, o.identifier, true) && compareDeep(version, o.version, true) 3859 && compareDeep(name, o.name, true) && compareDeep(title, o.title, true) && compareDeep(shortTitle, o.shortTitle, true) 3860 && compareDeep(subtitle, o.subtitle, true) && compareDeep(status, o.status, true) && compareDeep(experimental, o.experimental, true) 3861 && compareDeep(subject, o.subject, true) && compareDeep(date, o.date, true) && compareDeep(publisher, o.publisher, true) 3862 && compareDeep(contact, o.contact, true) && compareDeep(description, o.description, true) && compareDeep(comment, o.comment, true) 3863 && compareDeep(useContext, o.useContext, true) && compareDeep(jurisdiction, o.jurisdiction, true) 3864 && compareDeep(purpose, o.purpose, true) && compareDeep(usage, o.usage, true) && compareDeep(copyright, o.copyright, true) 3865 && compareDeep(approvalDate, o.approvalDate, true) && compareDeep(lastReviewDate, o.lastReviewDate, true) 3866 && compareDeep(effectivePeriod, o.effectivePeriod, true) && compareDeep(topic, o.topic, true) && compareDeep(author, o.author, true) 3867 && compareDeep(editor, o.editor, true) && compareDeep(reviewer, o.reviewer, true) && compareDeep(endorser, o.endorser, true) 3868 && compareDeep(relatedArtifact, o.relatedArtifact, true) && compareDeep(library, o.library, true) 3869 && compareDeep(type, o.type, true) && compareDeep(variableType, o.variableType, true) && compareDeep(characteristic, o.characteristic, true) 3870 ; 3871 } 3872 3873 @Override 3874 public boolean equalsShallow(Base other_) { 3875 if (!super.equalsShallow(other_)) 3876 return false; 3877 if (!(other_ instanceof ResearchElementDefinition)) 3878 return false; 3879 ResearchElementDefinition o = (ResearchElementDefinition) other_; 3880 return compareValues(url, o.url, true) && compareValues(version, o.version, true) && compareValues(name, o.name, true) 3881 && compareValues(title, o.title, true) && compareValues(shortTitle, o.shortTitle, true) && compareValues(subtitle, o.subtitle, true) 3882 && compareValues(status, o.status, true) && compareValues(experimental, o.experimental, true) && compareValues(date, o.date, true) 3883 && compareValues(publisher, o.publisher, true) && compareValues(description, o.description, true) && compareValues(comment, o.comment, true) 3884 && compareValues(purpose, o.purpose, true) && compareValues(usage, o.usage, true) && compareValues(copyright, o.copyright, true) 3885 && compareValues(approvalDate, o.approvalDate, true) && compareValues(lastReviewDate, o.lastReviewDate, true) 3886 && compareValues(library, o.library, true) && compareValues(type, o.type, true) && compareValues(variableType, o.variableType, true) 3887 ; 3888 } 3889 3890 public boolean isEmpty() { 3891 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(url, identifier, version 3892 , name, title, shortTitle, subtitle, status, experimental, subject, date, publisher 3893 , contact, description, comment, useContext, jurisdiction, purpose, usage, copyright 3894 , approvalDate, lastReviewDate, effectivePeriod, topic, author, editor, reviewer 3895 , endorser, relatedArtifact, library, type, variableType, characteristic); 3896 } 3897 3898 @Override 3899 public ResourceType getResourceType() { 3900 return ResourceType.ResearchElementDefinition; 3901 } 3902 3903 /** 3904 * Search parameter: <b>composed-of</b> 3905 * <p> 3906 * Description: <b>What resource is being referenced</b><br> 3907 * Type: <b>reference</b><br> 3908 * Path: <b>ResearchElementDefinition.relatedArtifact.where(type='composed-of').resource</b><br> 3909 * </p> 3910 */ 3911 @SearchParamDefinition(name="composed-of", path="ResearchElementDefinition.relatedArtifact.where(type='composed-of').resource", description="What resource is being referenced", type="reference", target={Account.class, ActivityDefinition.class, AdministrableProductDefinition.class, AdverseEvent.class, AllergyIntolerance.class, Appointment.class, AppointmentResponse.class, AuditEvent.class, Basic.class, Binary.class, BiologicallyDerivedProduct.class, BodyStructure.class, Bundle.class, CapabilityStatement.class, CarePlan.class, CareTeam.class, CatalogEntry.class, ChargeItem.class, ChargeItemDefinition.class, Citation.class, Claim.class, ClaimResponse.class, ClinicalImpression.class, ClinicalUseDefinition.class, CodeSystem.class, Communication.class, CommunicationRequest.class, CompartmentDefinition.class, Composition.class, ConceptMap.class, Condition.class, Consent.class, Contract.class, Coverage.class, CoverageEligibilityRequest.class, CoverageEligibilityResponse.class, DetectedIssue.class, Device.class, DeviceDefinition.class, DeviceMetric.class, DeviceRequest.class, DeviceUseStatement.class, DiagnosticReport.class, DocumentManifest.class, DocumentReference.class, Encounter.class, Endpoint.class, EnrollmentRequest.class, EnrollmentResponse.class, EpisodeOfCare.class, EventDefinition.class, Evidence.class, EvidenceReport.class, EvidenceVariable.class, ExampleScenario.class, ExplanationOfBenefit.class, FamilyMemberHistory.class, Flag.class, Goal.class, GraphDefinition.class, Group.class, GuidanceResponse.class, HealthcareService.class, ImagingStudy.class, Immunization.class, ImmunizationEvaluation.class, ImmunizationRecommendation.class, ImplementationGuide.class, Ingredient.class, InsurancePlan.class, Invoice.class, Library.class, Linkage.class, ListResource.class, Location.class, ManufacturedItemDefinition.class, Measure.class, MeasureReport.class, Media.class, Medication.class, MedicationAdministration.class, MedicationDispense.class, MedicationKnowledge.class, MedicationRequest.class, MedicationStatement.class, MedicinalProductDefinition.class, MessageDefinition.class, MessageHeader.class, MolecularSequence.class, NamingSystem.class, NutritionOrder.class, NutritionProduct.class, Observation.class, ObservationDefinition.class, OperationDefinition.class, OperationOutcome.class, Organization.class, OrganizationAffiliation.class, PackagedProductDefinition.class, Patient.class, PaymentNotice.class, PaymentReconciliation.class, Person.class, PlanDefinition.class, Practitioner.class, PractitionerRole.class, Procedure.class, Provenance.class, Questionnaire.class, QuestionnaireResponse.class, RegulatedAuthorization.class, RelatedPerson.class, RequestGroup.class, ResearchDefinition.class, ResearchElementDefinition.class, ResearchStudy.class, ResearchSubject.class, RiskAssessment.class, Schedule.class, SearchParameter.class, ServiceRequest.class, Slot.class, Specimen.class, SpecimenDefinition.class, StructureDefinition.class, StructureMap.class, Subscription.class, SubscriptionStatus.class, SubscriptionTopic.class, Substance.class, SubstanceDefinition.class, SupplyDelivery.class, SupplyRequest.class, Task.class, TerminologyCapabilities.class, TestReport.class, TestScript.class, ValueSet.class, VerificationResult.class, VisionPrescription.class } ) 3912 public static final String SP_COMPOSED_OF = "composed-of"; 3913 /** 3914 * <b>Fluent Client</b> search parameter constant for <b>composed-of</b> 3915 * <p> 3916 * Description: <b>What resource is being referenced</b><br> 3917 * Type: <b>reference</b><br> 3918 * Path: <b>ResearchElementDefinition.relatedArtifact.where(type='composed-of').resource</b><br> 3919 * </p> 3920 */ 3921 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam COMPOSED_OF = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_COMPOSED_OF); 3922 3923/** 3924 * Constant for fluent queries to be used to add include statements. Specifies 3925 * the path value of "<b>ResearchElementDefinition:composed-of</b>". 3926 */ 3927 public static final ca.uhn.fhir.model.api.Include INCLUDE_COMPOSED_OF = new ca.uhn.fhir.model.api.Include("ResearchElementDefinition:composed-of").toLocked(); 3928 3929 /** 3930 * Search parameter: <b>context-quantity</b> 3931 * <p> 3932 * Description: <b>A quantity- or range-valued use context assigned to the research element definition</b><br> 3933 * Type: <b>quantity</b><br> 3934 * Path: <b>(ResearchElementDefinition.useContext.value as Quantity) | (ResearchElementDefinition.useContext.value as Range)</b><br> 3935 * </p> 3936 */ 3937 @SearchParamDefinition(name="context-quantity", path="(ResearchElementDefinition.useContext.value as Quantity) | (ResearchElementDefinition.useContext.value as Range)", description="A quantity- or range-valued use context assigned to the research element definition", type="quantity" ) 3938 public static final String SP_CONTEXT_QUANTITY = "context-quantity"; 3939 /** 3940 * <b>Fluent Client</b> search parameter constant for <b>context-quantity</b> 3941 * <p> 3942 * Description: <b>A quantity- or range-valued use context assigned to the research element definition</b><br> 3943 * Type: <b>quantity</b><br> 3944 * Path: <b>(ResearchElementDefinition.useContext.value as Quantity) | (ResearchElementDefinition.useContext.value as Range)</b><br> 3945 * </p> 3946 */ 3947 public static final ca.uhn.fhir.rest.gclient.QuantityClientParam CONTEXT_QUANTITY = new ca.uhn.fhir.rest.gclient.QuantityClientParam(SP_CONTEXT_QUANTITY); 3948 3949 /** 3950 * Search parameter: <b>context-type-quantity</b> 3951 * <p> 3952 * Description: <b>A use context type and quantity- or range-based value assigned to the research element definition</b><br> 3953 * Type: <b>composite</b><br> 3954 * Path: <b>ResearchElementDefinition.useContext</b><br> 3955 * </p> 3956 */ 3957 @SearchParamDefinition(name="context-type-quantity", path="ResearchElementDefinition.useContext", description="A use context type and quantity- or range-based value assigned to the research element definition", type="composite", compositeOf={"context-type", "context-quantity"} ) 3958 public static final String SP_CONTEXT_TYPE_QUANTITY = "context-type-quantity"; 3959 /** 3960 * <b>Fluent Client</b> search parameter constant for <b>context-type-quantity</b> 3961 * <p> 3962 * Description: <b>A use context type and quantity- or range-based value assigned to the research element definition</b><br> 3963 * Type: <b>composite</b><br> 3964 * Path: <b>ResearchElementDefinition.useContext</b><br> 3965 * </p> 3966 */ 3967 public static final ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.QuantityClientParam> CONTEXT_TYPE_QUANTITY = new ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.QuantityClientParam>(SP_CONTEXT_TYPE_QUANTITY); 3968 3969 /** 3970 * Search parameter: <b>context-type-value</b> 3971 * <p> 3972 * Description: <b>A use context type and value assigned to the research element definition</b><br> 3973 * Type: <b>composite</b><br> 3974 * Path: <b>ResearchElementDefinition.useContext</b><br> 3975 * </p> 3976 */ 3977 @SearchParamDefinition(name="context-type-value", path="ResearchElementDefinition.useContext", description="A use context type and value assigned to the research element definition", type="composite", compositeOf={"context-type", "context"} ) 3978 public static final String SP_CONTEXT_TYPE_VALUE = "context-type-value"; 3979 /** 3980 * <b>Fluent Client</b> search parameter constant for <b>context-type-value</b> 3981 * <p> 3982 * Description: <b>A use context type and value assigned to the research element definition</b><br> 3983 * Type: <b>composite</b><br> 3984 * Path: <b>ResearchElementDefinition.useContext</b><br> 3985 * </p> 3986 */ 3987 public static final ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.TokenClientParam> CONTEXT_TYPE_VALUE = new ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.TokenClientParam>(SP_CONTEXT_TYPE_VALUE); 3988 3989 /** 3990 * Search parameter: <b>context-type</b> 3991 * <p> 3992 * Description: <b>A type of use context assigned to the research element definition</b><br> 3993 * Type: <b>token</b><br> 3994 * Path: <b>ResearchElementDefinition.useContext.code</b><br> 3995 * </p> 3996 */ 3997 @SearchParamDefinition(name="context-type", path="ResearchElementDefinition.useContext.code", description="A type of use context assigned to the research element definition", type="token" ) 3998 public static final String SP_CONTEXT_TYPE = "context-type"; 3999 /** 4000 * <b>Fluent Client</b> search parameter constant for <b>context-type</b> 4001 * <p> 4002 * Description: <b>A type of use context assigned to the research element definition</b><br> 4003 * Type: <b>token</b><br> 4004 * Path: <b>ResearchElementDefinition.useContext.code</b><br> 4005 * </p> 4006 */ 4007 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT_TYPE); 4008 4009 /** 4010 * Search parameter: <b>context</b> 4011 * <p> 4012 * Description: <b>A use context assigned to the research element definition</b><br> 4013 * Type: <b>token</b><br> 4014 * Path: <b>(ResearchElementDefinition.useContext.value as CodeableConcept)</b><br> 4015 * </p> 4016 */ 4017 @SearchParamDefinition(name="context", path="(ResearchElementDefinition.useContext.value as CodeableConcept)", description="A use context assigned to the research element definition", type="token" ) 4018 public static final String SP_CONTEXT = "context"; 4019 /** 4020 * <b>Fluent Client</b> search parameter constant for <b>context</b> 4021 * <p> 4022 * Description: <b>A use context assigned to the research element definition</b><br> 4023 * Type: <b>token</b><br> 4024 * Path: <b>(ResearchElementDefinition.useContext.value as CodeableConcept)</b><br> 4025 * </p> 4026 */ 4027 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT); 4028 4029 /** 4030 * Search parameter: <b>date</b> 4031 * <p> 4032 * Description: <b>The research element definition publication date</b><br> 4033 * Type: <b>date</b><br> 4034 * Path: <b>ResearchElementDefinition.date</b><br> 4035 * </p> 4036 */ 4037 @SearchParamDefinition(name="date", path="ResearchElementDefinition.date", description="The research element definition publication date", type="date" ) 4038 public static final String SP_DATE = "date"; 4039 /** 4040 * <b>Fluent Client</b> search parameter constant for <b>date</b> 4041 * <p> 4042 * Description: <b>The research element definition publication date</b><br> 4043 * Type: <b>date</b><br> 4044 * Path: <b>ResearchElementDefinition.date</b><br> 4045 * </p> 4046 */ 4047 public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE); 4048 4049 /** 4050 * Search parameter: <b>depends-on</b> 4051 * <p> 4052 * Description: <b>What resource is being referenced</b><br> 4053 * Type: <b>reference</b><br> 4054 * Path: <b>ResearchElementDefinition.relatedArtifact.where(type='depends-on').resource | ResearchElementDefinition.library</b><br> 4055 * </p> 4056 */ 4057 @SearchParamDefinition(name="depends-on", path="ResearchElementDefinition.relatedArtifact.where(type='depends-on').resource | ResearchElementDefinition.library", description="What resource is being referenced", type="reference", target={Account.class, ActivityDefinition.class, AdministrableProductDefinition.class, AdverseEvent.class, AllergyIntolerance.class, Appointment.class, AppointmentResponse.class, AuditEvent.class, Basic.class, Binary.class, BiologicallyDerivedProduct.class, BodyStructure.class, Bundle.class, CapabilityStatement.class, CarePlan.class, CareTeam.class, CatalogEntry.class, ChargeItem.class, ChargeItemDefinition.class, Citation.class, Claim.class, ClaimResponse.class, ClinicalImpression.class, ClinicalUseDefinition.class, CodeSystem.class, Communication.class, CommunicationRequest.class, CompartmentDefinition.class, Composition.class, ConceptMap.class, Condition.class, Consent.class, Contract.class, Coverage.class, CoverageEligibilityRequest.class, CoverageEligibilityResponse.class, DetectedIssue.class, Device.class, DeviceDefinition.class, DeviceMetric.class, DeviceRequest.class, DeviceUseStatement.class, DiagnosticReport.class, DocumentManifest.class, DocumentReference.class, Encounter.class, Endpoint.class, EnrollmentRequest.class, EnrollmentResponse.class, EpisodeOfCare.class, EventDefinition.class, Evidence.class, EvidenceReport.class, EvidenceVariable.class, ExampleScenario.class, ExplanationOfBenefit.class, FamilyMemberHistory.class, Flag.class, Goal.class, GraphDefinition.class, Group.class, GuidanceResponse.class, HealthcareService.class, ImagingStudy.class, Immunization.class, ImmunizationEvaluation.class, ImmunizationRecommendation.class, ImplementationGuide.class, Ingredient.class, InsurancePlan.class, Invoice.class, Library.class, Linkage.class, ListResource.class, Location.class, ManufacturedItemDefinition.class, Measure.class, MeasureReport.class, Media.class, Medication.class, MedicationAdministration.class, MedicationDispense.class, MedicationKnowledge.class, MedicationRequest.class, MedicationStatement.class, MedicinalProductDefinition.class, MessageDefinition.class, MessageHeader.class, MolecularSequence.class, NamingSystem.class, NutritionOrder.class, NutritionProduct.class, Observation.class, ObservationDefinition.class, OperationDefinition.class, OperationOutcome.class, Organization.class, OrganizationAffiliation.class, PackagedProductDefinition.class, Patient.class, PaymentNotice.class, PaymentReconciliation.class, Person.class, PlanDefinition.class, Practitioner.class, PractitionerRole.class, Procedure.class, Provenance.class, Questionnaire.class, QuestionnaireResponse.class, RegulatedAuthorization.class, RelatedPerson.class, RequestGroup.class, ResearchDefinition.class, ResearchElementDefinition.class, ResearchStudy.class, ResearchSubject.class, RiskAssessment.class, Schedule.class, SearchParameter.class, ServiceRequest.class, Slot.class, Specimen.class, SpecimenDefinition.class, StructureDefinition.class, StructureMap.class, Subscription.class, SubscriptionStatus.class, SubscriptionTopic.class, Substance.class, SubstanceDefinition.class, SupplyDelivery.class, SupplyRequest.class, Task.class, TerminologyCapabilities.class, TestReport.class, TestScript.class, ValueSet.class, VerificationResult.class, VisionPrescription.class } ) 4058 public static final String SP_DEPENDS_ON = "depends-on"; 4059 /** 4060 * <b>Fluent Client</b> search parameter constant for <b>depends-on</b> 4061 * <p> 4062 * Description: <b>What resource is being referenced</b><br> 4063 * Type: <b>reference</b><br> 4064 * Path: <b>ResearchElementDefinition.relatedArtifact.where(type='depends-on').resource | ResearchElementDefinition.library</b><br> 4065 * </p> 4066 */ 4067 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam DEPENDS_ON = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_DEPENDS_ON); 4068 4069/** 4070 * Constant for fluent queries to be used to add include statements. Specifies 4071 * the path value of "<b>ResearchElementDefinition:depends-on</b>". 4072 */ 4073 public static final ca.uhn.fhir.model.api.Include INCLUDE_DEPENDS_ON = new ca.uhn.fhir.model.api.Include("ResearchElementDefinition:depends-on").toLocked(); 4074 4075 /** 4076 * Search parameter: <b>derived-from</b> 4077 * <p> 4078 * Description: <b>What resource is being referenced</b><br> 4079 * Type: <b>reference</b><br> 4080 * Path: <b>ResearchElementDefinition.relatedArtifact.where(type='derived-from').resource</b><br> 4081 * </p> 4082 */ 4083 @SearchParamDefinition(name="derived-from", path="ResearchElementDefinition.relatedArtifact.where(type='derived-from').resource", description="What resource is being referenced", type="reference", target={Account.class, ActivityDefinition.class, AdministrableProductDefinition.class, AdverseEvent.class, AllergyIntolerance.class, Appointment.class, AppointmentResponse.class, AuditEvent.class, Basic.class, Binary.class, BiologicallyDerivedProduct.class, BodyStructure.class, Bundle.class, CapabilityStatement.class, CarePlan.class, CareTeam.class, CatalogEntry.class, ChargeItem.class, ChargeItemDefinition.class, Citation.class, Claim.class, ClaimResponse.class, ClinicalImpression.class, ClinicalUseDefinition.class, CodeSystem.class, Communication.class, CommunicationRequest.class, CompartmentDefinition.class, Composition.class, ConceptMap.class, Condition.class, Consent.class, Contract.class, Coverage.class, CoverageEligibilityRequest.class, CoverageEligibilityResponse.class, DetectedIssue.class, Device.class, DeviceDefinition.class, DeviceMetric.class, DeviceRequest.class, DeviceUseStatement.class, DiagnosticReport.class, DocumentManifest.class, DocumentReference.class, Encounter.class, Endpoint.class, EnrollmentRequest.class, EnrollmentResponse.class, EpisodeOfCare.class, EventDefinition.class, Evidence.class, EvidenceReport.class, EvidenceVariable.class, ExampleScenario.class, ExplanationOfBenefit.class, FamilyMemberHistory.class, Flag.class, Goal.class, GraphDefinition.class, Group.class, GuidanceResponse.class, HealthcareService.class, ImagingStudy.class, Immunization.class, ImmunizationEvaluation.class, ImmunizationRecommendation.class, ImplementationGuide.class, Ingredient.class, InsurancePlan.class, Invoice.class, Library.class, Linkage.class, ListResource.class, Location.class, ManufacturedItemDefinition.class, Measure.class, MeasureReport.class, Media.class, Medication.class, MedicationAdministration.class, MedicationDispense.class, MedicationKnowledge.class, MedicationRequest.class, MedicationStatement.class, MedicinalProductDefinition.class, MessageDefinition.class, MessageHeader.class, MolecularSequence.class, NamingSystem.class, NutritionOrder.class, NutritionProduct.class, Observation.class, ObservationDefinition.class, OperationDefinition.class, OperationOutcome.class, Organization.class, OrganizationAffiliation.class, PackagedProductDefinition.class, Patient.class, PaymentNotice.class, PaymentReconciliation.class, Person.class, PlanDefinition.class, Practitioner.class, PractitionerRole.class, Procedure.class, Provenance.class, Questionnaire.class, QuestionnaireResponse.class, RegulatedAuthorization.class, RelatedPerson.class, RequestGroup.class, ResearchDefinition.class, ResearchElementDefinition.class, ResearchStudy.class, ResearchSubject.class, RiskAssessment.class, Schedule.class, SearchParameter.class, ServiceRequest.class, Slot.class, Specimen.class, SpecimenDefinition.class, StructureDefinition.class, StructureMap.class, Subscription.class, SubscriptionStatus.class, SubscriptionTopic.class, Substance.class, SubstanceDefinition.class, SupplyDelivery.class, SupplyRequest.class, Task.class, TerminologyCapabilities.class, TestReport.class, TestScript.class, ValueSet.class, VerificationResult.class, VisionPrescription.class } ) 4084 public static final String SP_DERIVED_FROM = "derived-from"; 4085 /** 4086 * <b>Fluent Client</b> search parameter constant for <b>derived-from</b> 4087 * <p> 4088 * Description: <b>What resource is being referenced</b><br> 4089 * Type: <b>reference</b><br> 4090 * Path: <b>ResearchElementDefinition.relatedArtifact.where(type='derived-from').resource</b><br> 4091 * </p> 4092 */ 4093 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam DERIVED_FROM = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_DERIVED_FROM); 4094 4095/** 4096 * Constant for fluent queries to be used to add include statements. Specifies 4097 * the path value of "<b>ResearchElementDefinition:derived-from</b>". 4098 */ 4099 public static final ca.uhn.fhir.model.api.Include INCLUDE_DERIVED_FROM = new ca.uhn.fhir.model.api.Include("ResearchElementDefinition:derived-from").toLocked(); 4100 4101 /** 4102 * Search parameter: <b>description</b> 4103 * <p> 4104 * Description: <b>The description of the research element definition</b><br> 4105 * Type: <b>string</b><br> 4106 * Path: <b>ResearchElementDefinition.description</b><br> 4107 * </p> 4108 */ 4109 @SearchParamDefinition(name="description", path="ResearchElementDefinition.description", description="The description of the research element definition", type="string" ) 4110 public static final String SP_DESCRIPTION = "description"; 4111 /** 4112 * <b>Fluent Client</b> search parameter constant for <b>description</b> 4113 * <p> 4114 * Description: <b>The description of the research element definition</b><br> 4115 * Type: <b>string</b><br> 4116 * Path: <b>ResearchElementDefinition.description</b><br> 4117 * </p> 4118 */ 4119 public static final ca.uhn.fhir.rest.gclient.StringClientParam DESCRIPTION = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_DESCRIPTION); 4120 4121 /** 4122 * Search parameter: <b>effective</b> 4123 * <p> 4124 * Description: <b>The time during which the research element definition is intended to be in use</b><br> 4125 * Type: <b>date</b><br> 4126 * Path: <b>ResearchElementDefinition.effectivePeriod</b><br> 4127 * </p> 4128 */ 4129 @SearchParamDefinition(name="effective", path="ResearchElementDefinition.effectivePeriod", description="The time during which the research element definition is intended to be in use", type="date" ) 4130 public static final String SP_EFFECTIVE = "effective"; 4131 /** 4132 * <b>Fluent Client</b> search parameter constant for <b>effective</b> 4133 * <p> 4134 * Description: <b>The time during which the research element definition is intended to be in use</b><br> 4135 * Type: <b>date</b><br> 4136 * Path: <b>ResearchElementDefinition.effectivePeriod</b><br> 4137 * </p> 4138 */ 4139 public static final ca.uhn.fhir.rest.gclient.DateClientParam EFFECTIVE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_EFFECTIVE); 4140 4141 /** 4142 * Search parameter: <b>identifier</b> 4143 * <p> 4144 * Description: <b>External identifier for the research element definition</b><br> 4145 * Type: <b>token</b><br> 4146 * Path: <b>ResearchElementDefinition.identifier</b><br> 4147 * </p> 4148 */ 4149 @SearchParamDefinition(name="identifier", path="ResearchElementDefinition.identifier", description="External identifier for the research element definition", type="token" ) 4150 public static final String SP_IDENTIFIER = "identifier"; 4151 /** 4152 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 4153 * <p> 4154 * Description: <b>External identifier for the research element definition</b><br> 4155 * Type: <b>token</b><br> 4156 * Path: <b>ResearchElementDefinition.identifier</b><br> 4157 * </p> 4158 */ 4159 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 4160 4161 /** 4162 * Search parameter: <b>jurisdiction</b> 4163 * <p> 4164 * Description: <b>Intended jurisdiction for the research element definition</b><br> 4165 * Type: <b>token</b><br> 4166 * Path: <b>ResearchElementDefinition.jurisdiction</b><br> 4167 * </p> 4168 */ 4169 @SearchParamDefinition(name="jurisdiction", path="ResearchElementDefinition.jurisdiction", description="Intended jurisdiction for the research element definition", type="token" ) 4170 public static final String SP_JURISDICTION = "jurisdiction"; 4171 /** 4172 * <b>Fluent Client</b> search parameter constant for <b>jurisdiction</b> 4173 * <p> 4174 * Description: <b>Intended jurisdiction for the research element definition</b><br> 4175 * Type: <b>token</b><br> 4176 * Path: <b>ResearchElementDefinition.jurisdiction</b><br> 4177 * </p> 4178 */ 4179 public static final ca.uhn.fhir.rest.gclient.TokenClientParam JURISDICTION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_JURISDICTION); 4180 4181 /** 4182 * Search parameter: <b>name</b> 4183 * <p> 4184 * Description: <b>Computationally friendly name of the research element definition</b><br> 4185 * Type: <b>string</b><br> 4186 * Path: <b>ResearchElementDefinition.name</b><br> 4187 * </p> 4188 */ 4189 @SearchParamDefinition(name="name", path="ResearchElementDefinition.name", description="Computationally friendly name of the research element definition", type="string" ) 4190 public static final String SP_NAME = "name"; 4191 /** 4192 * <b>Fluent Client</b> search parameter constant for <b>name</b> 4193 * <p> 4194 * Description: <b>Computationally friendly name of the research element definition</b><br> 4195 * Type: <b>string</b><br> 4196 * Path: <b>ResearchElementDefinition.name</b><br> 4197 * </p> 4198 */ 4199 public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_NAME); 4200 4201 /** 4202 * Search parameter: <b>predecessor</b> 4203 * <p> 4204 * Description: <b>What resource is being referenced</b><br> 4205 * Type: <b>reference</b><br> 4206 * Path: <b>ResearchElementDefinition.relatedArtifact.where(type='predecessor').resource</b><br> 4207 * </p> 4208 */ 4209 @SearchParamDefinition(name="predecessor", path="ResearchElementDefinition.relatedArtifact.where(type='predecessor').resource", description="What resource is being referenced", type="reference", target={Account.class, ActivityDefinition.class, AdministrableProductDefinition.class, AdverseEvent.class, AllergyIntolerance.class, Appointment.class, AppointmentResponse.class, AuditEvent.class, Basic.class, Binary.class, BiologicallyDerivedProduct.class, BodyStructure.class, Bundle.class, CapabilityStatement.class, CarePlan.class, CareTeam.class, CatalogEntry.class, ChargeItem.class, ChargeItemDefinition.class, Citation.class, Claim.class, ClaimResponse.class, ClinicalImpression.class, ClinicalUseDefinition.class, CodeSystem.class, Communication.class, CommunicationRequest.class, CompartmentDefinition.class, Composition.class, ConceptMap.class, Condition.class, Consent.class, Contract.class, Coverage.class, CoverageEligibilityRequest.class, CoverageEligibilityResponse.class, DetectedIssue.class, Device.class, DeviceDefinition.class, DeviceMetric.class, DeviceRequest.class, DeviceUseStatement.class, DiagnosticReport.class, DocumentManifest.class, DocumentReference.class, Encounter.class, Endpoint.class, EnrollmentRequest.class, EnrollmentResponse.class, EpisodeOfCare.class, EventDefinition.class, Evidence.class, EvidenceReport.class, EvidenceVariable.class, ExampleScenario.class, ExplanationOfBenefit.class, FamilyMemberHistory.class, Flag.class, Goal.class, GraphDefinition.class, Group.class, GuidanceResponse.class, HealthcareService.class, ImagingStudy.class, Immunization.class, ImmunizationEvaluation.class, ImmunizationRecommendation.class, ImplementationGuide.class, Ingredient.class, InsurancePlan.class, Invoice.class, Library.class, Linkage.class, ListResource.class, Location.class, ManufacturedItemDefinition.class, Measure.class, MeasureReport.class, Media.class, Medication.class, MedicationAdministration.class, MedicationDispense.class, MedicationKnowledge.class, MedicationRequest.class, MedicationStatement.class, MedicinalProductDefinition.class, MessageDefinition.class, MessageHeader.class, MolecularSequence.class, NamingSystem.class, NutritionOrder.class, NutritionProduct.class, Observation.class, ObservationDefinition.class, OperationDefinition.class, OperationOutcome.class, Organization.class, OrganizationAffiliation.class, PackagedProductDefinition.class, Patient.class, PaymentNotice.class, PaymentReconciliation.class, Person.class, PlanDefinition.class, Practitioner.class, PractitionerRole.class, Procedure.class, Provenance.class, Questionnaire.class, QuestionnaireResponse.class, RegulatedAuthorization.class, RelatedPerson.class, RequestGroup.class, ResearchDefinition.class, ResearchElementDefinition.class, ResearchStudy.class, ResearchSubject.class, RiskAssessment.class, Schedule.class, SearchParameter.class, ServiceRequest.class, Slot.class, Specimen.class, SpecimenDefinition.class, StructureDefinition.class, StructureMap.class, Subscription.class, SubscriptionStatus.class, SubscriptionTopic.class, Substance.class, SubstanceDefinition.class, SupplyDelivery.class, SupplyRequest.class, Task.class, TerminologyCapabilities.class, TestReport.class, TestScript.class, ValueSet.class, VerificationResult.class, VisionPrescription.class } ) 4210 public static final String SP_PREDECESSOR = "predecessor"; 4211 /** 4212 * <b>Fluent Client</b> search parameter constant for <b>predecessor</b> 4213 * <p> 4214 * Description: <b>What resource is being referenced</b><br> 4215 * Type: <b>reference</b><br> 4216 * Path: <b>ResearchElementDefinition.relatedArtifact.where(type='predecessor').resource</b><br> 4217 * </p> 4218 */ 4219 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PREDECESSOR = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PREDECESSOR); 4220 4221/** 4222 * Constant for fluent queries to be used to add include statements. Specifies 4223 * the path value of "<b>ResearchElementDefinition:predecessor</b>". 4224 */ 4225 public static final ca.uhn.fhir.model.api.Include INCLUDE_PREDECESSOR = new ca.uhn.fhir.model.api.Include("ResearchElementDefinition:predecessor").toLocked(); 4226 4227 /** 4228 * Search parameter: <b>publisher</b> 4229 * <p> 4230 * Description: <b>Name of the publisher of the research element definition</b><br> 4231 * Type: <b>string</b><br> 4232 * Path: <b>ResearchElementDefinition.publisher</b><br> 4233 * </p> 4234 */ 4235 @SearchParamDefinition(name="publisher", path="ResearchElementDefinition.publisher", description="Name of the publisher of the research element definition", type="string" ) 4236 public static final String SP_PUBLISHER = "publisher"; 4237 /** 4238 * <b>Fluent Client</b> search parameter constant for <b>publisher</b> 4239 * <p> 4240 * Description: <b>Name of the publisher of the research element definition</b><br> 4241 * Type: <b>string</b><br> 4242 * Path: <b>ResearchElementDefinition.publisher</b><br> 4243 * </p> 4244 */ 4245 public static final ca.uhn.fhir.rest.gclient.StringClientParam PUBLISHER = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_PUBLISHER); 4246 4247 /** 4248 * Search parameter: <b>status</b> 4249 * <p> 4250 * Description: <b>The current status of the research element definition</b><br> 4251 * Type: <b>token</b><br> 4252 * Path: <b>ResearchElementDefinition.status</b><br> 4253 * </p> 4254 */ 4255 @SearchParamDefinition(name="status", path="ResearchElementDefinition.status", description="The current status of the research element definition", type="token" ) 4256 public static final String SP_STATUS = "status"; 4257 /** 4258 * <b>Fluent Client</b> search parameter constant for <b>status</b> 4259 * <p> 4260 * Description: <b>The current status of the research element definition</b><br> 4261 * Type: <b>token</b><br> 4262 * Path: <b>ResearchElementDefinition.status</b><br> 4263 * </p> 4264 */ 4265 public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS); 4266 4267 /** 4268 * Search parameter: <b>successor</b> 4269 * <p> 4270 * Description: <b>What resource is being referenced</b><br> 4271 * Type: <b>reference</b><br> 4272 * Path: <b>ResearchElementDefinition.relatedArtifact.where(type='successor').resource</b><br> 4273 * </p> 4274 */ 4275 @SearchParamDefinition(name="successor", path="ResearchElementDefinition.relatedArtifact.where(type='successor').resource", description="What resource is being referenced", type="reference", target={Account.class, ActivityDefinition.class, AdministrableProductDefinition.class, AdverseEvent.class, AllergyIntolerance.class, Appointment.class, AppointmentResponse.class, AuditEvent.class, Basic.class, Binary.class, BiologicallyDerivedProduct.class, BodyStructure.class, Bundle.class, CapabilityStatement.class, CarePlan.class, CareTeam.class, CatalogEntry.class, ChargeItem.class, ChargeItemDefinition.class, Citation.class, Claim.class, ClaimResponse.class, ClinicalImpression.class, ClinicalUseDefinition.class, CodeSystem.class, Communication.class, CommunicationRequest.class, CompartmentDefinition.class, Composition.class, ConceptMap.class, Condition.class, Consent.class, Contract.class, Coverage.class, CoverageEligibilityRequest.class, CoverageEligibilityResponse.class, DetectedIssue.class, Device.class, DeviceDefinition.class, DeviceMetric.class, DeviceRequest.class, DeviceUseStatement.class, DiagnosticReport.class, DocumentManifest.class, DocumentReference.class, Encounter.class, Endpoint.class, EnrollmentRequest.class, EnrollmentResponse.class, EpisodeOfCare.class, EventDefinition.class, Evidence.class, EvidenceReport.class, EvidenceVariable.class, ExampleScenario.class, ExplanationOfBenefit.class, FamilyMemberHistory.class, Flag.class, Goal.class, GraphDefinition.class, Group.class, GuidanceResponse.class, HealthcareService.class, ImagingStudy.class, Immunization.class, ImmunizationEvaluation.class, ImmunizationRecommendation.class, ImplementationGuide.class, Ingredient.class, InsurancePlan.class, Invoice.class, Library.class, Linkage.class, ListResource.class, Location.class, ManufacturedItemDefinition.class, Measure.class, MeasureReport.class, Media.class, Medication.class, MedicationAdministration.class, MedicationDispense.class, MedicationKnowledge.class, MedicationRequest.class, MedicationStatement.class, MedicinalProductDefinition.class, MessageDefinition.class, MessageHeader.class, MolecularSequence.class, NamingSystem.class, NutritionOrder.class, NutritionProduct.class, Observation.class, ObservationDefinition.class, OperationDefinition.class, OperationOutcome.class, Organization.class, OrganizationAffiliation.class, PackagedProductDefinition.class, Patient.class, PaymentNotice.class, PaymentReconciliation.class, Person.class, PlanDefinition.class, Practitioner.class, PractitionerRole.class, Procedure.class, Provenance.class, Questionnaire.class, QuestionnaireResponse.class, RegulatedAuthorization.class, RelatedPerson.class, RequestGroup.class, ResearchDefinition.class, ResearchElementDefinition.class, ResearchStudy.class, ResearchSubject.class, RiskAssessment.class, Schedule.class, SearchParameter.class, ServiceRequest.class, Slot.class, Specimen.class, SpecimenDefinition.class, StructureDefinition.class, StructureMap.class, Subscription.class, SubscriptionStatus.class, SubscriptionTopic.class, Substance.class, SubstanceDefinition.class, SupplyDelivery.class, SupplyRequest.class, Task.class, TerminologyCapabilities.class, TestReport.class, TestScript.class, ValueSet.class, VerificationResult.class, VisionPrescription.class } ) 4276 public static final String SP_SUCCESSOR = "successor"; 4277 /** 4278 * <b>Fluent Client</b> search parameter constant for <b>successor</b> 4279 * <p> 4280 * Description: <b>What resource is being referenced</b><br> 4281 * Type: <b>reference</b><br> 4282 * Path: <b>ResearchElementDefinition.relatedArtifact.where(type='successor').resource</b><br> 4283 * </p> 4284 */ 4285 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SUCCESSOR = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SUCCESSOR); 4286 4287/** 4288 * Constant for fluent queries to be used to add include statements. Specifies 4289 * the path value of "<b>ResearchElementDefinition:successor</b>". 4290 */ 4291 public static final ca.uhn.fhir.model.api.Include INCLUDE_SUCCESSOR = new ca.uhn.fhir.model.api.Include("ResearchElementDefinition:successor").toLocked(); 4292 4293 /** 4294 * Search parameter: <b>title</b> 4295 * <p> 4296 * Description: <b>The human-friendly name of the research element definition</b><br> 4297 * Type: <b>string</b><br> 4298 * Path: <b>ResearchElementDefinition.title</b><br> 4299 * </p> 4300 */ 4301 @SearchParamDefinition(name="title", path="ResearchElementDefinition.title", description="The human-friendly name of the research element definition", type="string" ) 4302 public static final String SP_TITLE = "title"; 4303 /** 4304 * <b>Fluent Client</b> search parameter constant for <b>title</b> 4305 * <p> 4306 * Description: <b>The human-friendly name of the research element definition</b><br> 4307 * Type: <b>string</b><br> 4308 * Path: <b>ResearchElementDefinition.title</b><br> 4309 * </p> 4310 */ 4311 public static final ca.uhn.fhir.rest.gclient.StringClientParam TITLE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_TITLE); 4312 4313 /** 4314 * Search parameter: <b>topic</b> 4315 * <p> 4316 * Description: <b>Topics associated with the ResearchElementDefinition</b><br> 4317 * Type: <b>token</b><br> 4318 * Path: <b>ResearchElementDefinition.topic</b><br> 4319 * </p> 4320 */ 4321 @SearchParamDefinition(name="topic", path="ResearchElementDefinition.topic", description="Topics associated with the ResearchElementDefinition", type="token" ) 4322 public static final String SP_TOPIC = "topic"; 4323 /** 4324 * <b>Fluent Client</b> search parameter constant for <b>topic</b> 4325 * <p> 4326 * Description: <b>Topics associated with the ResearchElementDefinition</b><br> 4327 * Type: <b>token</b><br> 4328 * Path: <b>ResearchElementDefinition.topic</b><br> 4329 * </p> 4330 */ 4331 public static final ca.uhn.fhir.rest.gclient.TokenClientParam TOPIC = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TOPIC); 4332 4333 /** 4334 * Search parameter: <b>url</b> 4335 * <p> 4336 * Description: <b>The uri that identifies the research element definition</b><br> 4337 * Type: <b>uri</b><br> 4338 * Path: <b>ResearchElementDefinition.url</b><br> 4339 * </p> 4340 */ 4341 @SearchParamDefinition(name="url", path="ResearchElementDefinition.url", description="The uri that identifies the research element definition", type="uri" ) 4342 public static final String SP_URL = "url"; 4343 /** 4344 * <b>Fluent Client</b> search parameter constant for <b>url</b> 4345 * <p> 4346 * Description: <b>The uri that identifies the research element definition</b><br> 4347 * Type: <b>uri</b><br> 4348 * Path: <b>ResearchElementDefinition.url</b><br> 4349 * </p> 4350 */ 4351 public static final ca.uhn.fhir.rest.gclient.UriClientParam URL = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_URL); 4352 4353 /** 4354 * Search parameter: <b>version</b> 4355 * <p> 4356 * Description: <b>The business version of the research element definition</b><br> 4357 * Type: <b>token</b><br> 4358 * Path: <b>ResearchElementDefinition.version</b><br> 4359 * </p> 4360 */ 4361 @SearchParamDefinition(name="version", path="ResearchElementDefinition.version", description="The business version of the research element definition", type="token" ) 4362 public static final String SP_VERSION = "version"; 4363 /** 4364 * <b>Fluent Client</b> search parameter constant for <b>version</b> 4365 * <p> 4366 * Description: <b>The business version of the research element definition</b><br> 4367 * Type: <b>token</b><br> 4368 * Path: <b>ResearchElementDefinition.version</b><br> 4369 * </p> 4370 */ 4371 public static final ca.uhn.fhir.rest.gclient.TokenClientParam VERSION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_VERSION); 4372 4373 4374} 4375