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