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