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