001package org.hl7.fhir.r4.model; 002 003/* 004 Copyright (c) 2011+, HL7, Inc. 005 All rights reserved. 006 007 Redistribution and use in source and binary forms, with or without modification, 008 are permitted provided that the following conditions are met: 009 010 * Redistributions of source code must retain the above copyright notice, this 011 list of conditions and the following disclaimer. 012 * Redistributions in binary form must reproduce the above copyright notice, 013 this list of conditions and the following disclaimer in the documentation 014 and/or other materials provided with the distribution. 015 * Neither the name of HL7 nor the names of its contributors may be used to 016 endorse or promote products derived from this software without specific 017 prior written permission. 018 019 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 020 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 021 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 022 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 023 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 024 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 025 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 026 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 027 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 028 POSSIBILITY OF SUCH DAMAGE. 029 030*/ 031 032// Generated on Thu, Dec 27, 2018 10:06-0500 for FHIR v4.0.0 033 034import java.util.*; 035 036import org.hl7.fhir.utilities.Utilities; 037import org.hl7.fhir.r4.model.Enumerations.*; 038import ca.uhn.fhir.model.api.annotation.ResourceDef; 039import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 040import ca.uhn.fhir.model.api.annotation.Child; 041import ca.uhn.fhir.model.api.annotation.ChildOrder; 042import ca.uhn.fhir.model.api.annotation.Description; 043import ca.uhn.fhir.model.api.annotation.Block; 044import org.hl7.fhir.instance.model.api.*; 045import org.hl7.fhir.exceptions.FHIRException; 046/** 047 * The ResearchDefinition resource describes the conditional state (population and any exposures being compared within the population) and outcome (if specified) that the knowledge (evidence, assertion, recommendation) is about. 048 */ 049@ResourceDef(name="ResearchDefinition", profile="http://hl7.org/fhir/StructureDefinition/ResearchDefinition") 050@ChildOrder(names={"url", "identifier", "version", "name", "title", "shortTitle", "subtitle", "status", "experimental", "subject[x]", "date", "publisher", "contact", "description", "comment", "useContext", "jurisdiction", "purpose", "usage", "copyright", "approvalDate", "lastReviewDate", "effectivePeriod", "topic", "author", "editor", "reviewer", "endorser", "relatedArtifact", "library", "population", "exposure", "exposureAlternative", "outcome"}) 051public class ResearchDefinition extends MetadataResource { 052 053 /** 054 * A formal identifier that is used to identify this research definition when it is represented in other formats, or referenced in a specification, model, design or an instance. 055 */ 056 @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 057 @Description(shortDefinition="Additional identifier for the research definition", formalDefinition="A formal identifier that is used to identify this research definition when it is represented in other formats, or referenced in a specification, model, design or an instance." ) 058 protected List<Identifier> identifier; 059 060 /** 061 * The short title provides an alternate title for use in informal descriptive contexts where the full, formal title is not necessary. 062 */ 063 @Child(name = "shortTitle", type = {StringType.class}, order=1, min=0, max=1, modifier=false, summary=false) 064 @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." ) 065 protected StringType shortTitle; 066 067 /** 068 * An explanatory or alternate title for the ResearchDefinition giving additional information about its content. 069 */ 070 @Child(name = "subtitle", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=false) 071 @Description(shortDefinition="Subordinate title of the ResearchDefinition", formalDefinition="An explanatory or alternate title for the ResearchDefinition giving additional information about its content." ) 072 protected StringType subtitle; 073 074 /** 075 * The intended subjects for the ResearchDefinition. If this element is not provided, a Patient subject is assumed, but the subject of the ResearchDefinition can be anything. 076 */ 077 @Child(name = "subject", type = {CodeableConcept.class, Group.class}, order=3, min=0, max=1, modifier=false, summary=false) 078 @Description(shortDefinition="E.g. Patient, Practitioner, RelatedPerson, Organization, Location, Device", formalDefinition="The intended subjects for the ResearchDefinition. If this element is not provided, a Patient subject is assumed, but the subject of the ResearchDefinition can be anything." ) 079 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/subject-type") 080 protected Type subject; 081 082 /** 083 * A human-readable string to clarify or explain concepts about the resource. 084 */ 085 @Child(name = "comment", type = {StringType.class}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 086 @Description(shortDefinition="Used for footnotes or explanatory notes", formalDefinition="A human-readable string to clarify or explain concepts about the resource." ) 087 protected List<StringType> comment; 088 089 /** 090 * Explanation of why this research definition is needed and why it has been designed as it has. 091 */ 092 @Child(name = "purpose", type = {MarkdownType.class}, order=5, min=0, max=1, modifier=false, summary=false) 093 @Description(shortDefinition="Why this research definition is defined", formalDefinition="Explanation of why this research definition is needed and why it has been designed as it has." ) 094 protected MarkdownType purpose; 095 096 /** 097 * A detailed description, from a clinical perspective, of how the ResearchDefinition is used. 098 */ 099 @Child(name = "usage", type = {StringType.class}, order=6, min=0, max=1, modifier=false, summary=false) 100 @Description(shortDefinition="Describes the clinical usage of the ResearchDefinition", formalDefinition="A detailed description, from a clinical perspective, of how the ResearchDefinition is used." ) 101 protected StringType usage; 102 103 /** 104 * A copyright statement relating to the research definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the research definition. 105 */ 106 @Child(name = "copyright", type = {MarkdownType.class}, order=7, min=0, max=1, modifier=false, summary=false) 107 @Description(shortDefinition="Use and/or publishing restrictions", formalDefinition="A copyright statement relating to the research definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the research definition." ) 108 protected MarkdownType copyright; 109 110 /** 111 * The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage. 112 */ 113 @Child(name = "approvalDate", type = {DateType.class}, order=8, min=0, max=1, modifier=false, summary=false) 114 @Description(shortDefinition="When the research 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." ) 115 protected DateType approvalDate; 116 117 /** 118 * The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date. 119 */ 120 @Child(name = "lastReviewDate", type = {DateType.class}, order=9, min=0, max=1, modifier=false, summary=false) 121 @Description(shortDefinition="When the research 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." ) 122 protected DateType lastReviewDate; 123 124 /** 125 * The period during which the research definition content was or is planned to be in active use. 126 */ 127 @Child(name = "effectivePeriod", type = {Period.class}, order=10, min=0, max=1, modifier=false, summary=true) 128 @Description(shortDefinition="When the research definition is expected to be used", formalDefinition="The period during which the research definition content was or is planned to be in active use." ) 129 protected Period effectivePeriod; 130 131 /** 132 * Descriptive topics related to the content of the ResearchDefinition. Topics provide a high-level categorization grouping types of ResearchDefinitions that can be useful for filtering and searching. 133 */ 134 @Child(name = "topic", type = {CodeableConcept.class}, order=11, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 135 @Description(shortDefinition="The category of the ResearchDefinition, such as Education, Treatment, Assessment, etc.", formalDefinition="Descriptive topics related to the content of the ResearchDefinition. Topics provide a high-level categorization grouping types of ResearchDefinitions that can be useful for filtering and searching." ) 136 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/definition-topic") 137 protected List<CodeableConcept> topic; 138 139 /** 140 * An individiual or organization primarily involved in the creation and maintenance of the content. 141 */ 142 @Child(name = "author", type = {ContactDetail.class}, order=12, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 143 @Description(shortDefinition="Who authored the content", formalDefinition="An individiual or organization primarily involved in the creation and maintenance of the content." ) 144 protected List<ContactDetail> author; 145 146 /** 147 * An individual or organization primarily responsible for internal coherence of the content. 148 */ 149 @Child(name = "editor", type = {ContactDetail.class}, order=13, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 150 @Description(shortDefinition="Who edited the content", formalDefinition="An individual or organization primarily responsible for internal coherence of the content." ) 151 protected List<ContactDetail> editor; 152 153 /** 154 * An individual or organization primarily responsible for review of some aspect of the content. 155 */ 156 @Child(name = "reviewer", type = {ContactDetail.class}, order=14, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 157 @Description(shortDefinition="Who reviewed the content", formalDefinition="An individual or organization primarily responsible for review of some aspect of the content." ) 158 protected List<ContactDetail> reviewer; 159 160 /** 161 * An individual or organization responsible for officially endorsing the content for use in some setting. 162 */ 163 @Child(name = "endorser", type = {ContactDetail.class}, order=15, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 164 @Description(shortDefinition="Who endorsed the content", formalDefinition="An individual or organization responsible for officially endorsing the content for use in some setting." ) 165 protected List<ContactDetail> endorser; 166 167 /** 168 * Related artifacts such as additional documentation, justification, or bibliographic references. 169 */ 170 @Child(name = "relatedArtifact", type = {RelatedArtifact.class}, order=16, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 171 @Description(shortDefinition="Additional documentation, citations, etc.", formalDefinition="Related artifacts such as additional documentation, justification, or bibliographic references." ) 172 protected List<RelatedArtifact> relatedArtifact; 173 174 /** 175 * A reference to a Library resource containing the formal logic used by the ResearchDefinition. 176 */ 177 @Child(name = "library", type = {CanonicalType.class}, order=17, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 178 @Description(shortDefinition="Logic used by the ResearchDefinition", formalDefinition="A reference to a Library resource containing the formal logic used by the ResearchDefinition." ) 179 protected List<CanonicalType> library; 180 181 /** 182 * A reference to a ResearchElementDefinition resource that defines the population for the research. 183 */ 184 @Child(name = "population", type = {ResearchElementDefinition.class}, order=18, min=1, max=1, modifier=false, summary=true) 185 @Description(shortDefinition="What population?", formalDefinition="A reference to a ResearchElementDefinition resource that defines the population for the research." ) 186 protected Reference population; 187 188 /** 189 * The actual object that is the target of the reference (A reference to a ResearchElementDefinition resource that defines the population for the research.) 190 */ 191 protected ResearchElementDefinition populationTarget; 192 193 /** 194 * A reference to a ResearchElementDefinition resource that defines the exposure for the research. 195 */ 196 @Child(name = "exposure", type = {ResearchElementDefinition.class}, order=19, min=0, max=1, modifier=false, summary=true) 197 @Description(shortDefinition="What exposure?", formalDefinition="A reference to a ResearchElementDefinition resource that defines the exposure for the research." ) 198 protected Reference exposure; 199 200 /** 201 * The actual object that is the target of the reference (A reference to a ResearchElementDefinition resource that defines the exposure for the research.) 202 */ 203 protected ResearchElementDefinition exposureTarget; 204 205 /** 206 * A reference to a ResearchElementDefinition resource that defines the exposureAlternative for the research. 207 */ 208 @Child(name = "exposureAlternative", type = {ResearchElementDefinition.class}, order=20, min=0, max=1, modifier=false, summary=true) 209 @Description(shortDefinition="What alternative exposure state?", formalDefinition="A reference to a ResearchElementDefinition resource that defines the exposureAlternative for the research." ) 210 protected Reference exposureAlternative; 211 212 /** 213 * The actual object that is the target of the reference (A reference to a ResearchElementDefinition resource that defines the exposureAlternative for the research.) 214 */ 215 protected ResearchElementDefinition exposureAlternativeTarget; 216 217 /** 218 * A reference to a ResearchElementDefinition resomece that defines the outcome for the research. 219 */ 220 @Child(name = "outcome", type = {ResearchElementDefinition.class}, order=21, min=0, max=1, modifier=false, summary=true) 221 @Description(shortDefinition="What outcome?", formalDefinition="A reference to a ResearchElementDefinition resomece that defines the outcome for the research." ) 222 protected Reference outcome; 223 224 /** 225 * The actual object that is the target of the reference (A reference to a ResearchElementDefinition resomece that defines the outcome for the research.) 226 */ 227 protected ResearchElementDefinition outcomeTarget; 228 229 private static final long serialVersionUID = -867649565L; 230 231 /** 232 * Constructor 233 */ 234 public ResearchDefinition() { 235 super(); 236 } 237 238 /** 239 * Constructor 240 */ 241 public ResearchDefinition(Enumeration<PublicationStatus> status, Reference population) { 242 super(); 243 this.status = status; 244 this.population = population; 245 } 246 247 /** 248 * @return {@link #url} (An absolute URI that is used to identify this research 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 definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the research 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 249 */ 250 public UriType getUrlElement() { 251 if (this.url == null) 252 if (Configuration.errorOnAutoCreate()) 253 throw new Error("Attempt to auto-create ResearchDefinition.url"); 254 else if (Configuration.doAutoCreate()) 255 this.url = new UriType(); // bb 256 return this.url; 257 } 258 259 public boolean hasUrlElement() { 260 return this.url != null && !this.url.isEmpty(); 261 } 262 263 public boolean hasUrl() { 264 return this.url != null && !this.url.isEmpty(); 265 } 266 267 /** 268 * @param value {@link #url} (An absolute URI that is used to identify this research 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 definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the research 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 269 */ 270 public ResearchDefinition setUrlElement(UriType value) { 271 this.url = value; 272 return this; 273 } 274 275 /** 276 * @return An absolute URI that is used to identify this research 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 definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the research definition is stored on different servers. 277 */ 278 public String getUrl() { 279 return this.url == null ? null : this.url.getValue(); 280 } 281 282 /** 283 * @param value An absolute URI that is used to identify this research 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 definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the research definition is stored on different servers. 284 */ 285 public ResearchDefinition setUrl(String value) { 286 if (Utilities.noString(value)) 287 this.url = null; 288 else { 289 if (this.url == null) 290 this.url = new UriType(); 291 this.url.setValue(value); 292 } 293 return this; 294 } 295 296 /** 297 * @return {@link #identifier} (A formal identifier that is used to identify this research definition when it is represented in other formats, or referenced in a specification, model, design or an instance.) 298 */ 299 public List<Identifier> getIdentifier() { 300 if (this.identifier == null) 301 this.identifier = new ArrayList<Identifier>(); 302 return this.identifier; 303 } 304 305 /** 306 * @return Returns a reference to <code>this</code> for easy method chaining 307 */ 308 public ResearchDefinition setIdentifier(List<Identifier> theIdentifier) { 309 this.identifier = theIdentifier; 310 return this; 311 } 312 313 public boolean hasIdentifier() { 314 if (this.identifier == null) 315 return false; 316 for (Identifier item : this.identifier) 317 if (!item.isEmpty()) 318 return true; 319 return false; 320 } 321 322 public Identifier addIdentifier() { //3 323 Identifier t = new Identifier(); 324 if (this.identifier == null) 325 this.identifier = new ArrayList<Identifier>(); 326 this.identifier.add(t); 327 return t; 328 } 329 330 public ResearchDefinition addIdentifier(Identifier t) { //3 331 if (t == null) 332 return this; 333 if (this.identifier == null) 334 this.identifier = new ArrayList<Identifier>(); 335 this.identifier.add(t); 336 return this; 337 } 338 339 /** 340 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist 341 */ 342 public Identifier getIdentifierFirstRep() { 343 if (getIdentifier().isEmpty()) { 344 addIdentifier(); 345 } 346 return getIdentifier().get(0); 347 } 348 349 /** 350 * @return {@link #version} (The identifier that is used to identify this version of the research definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the research 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 351 */ 352 public StringType getVersionElement() { 353 if (this.version == null) 354 if (Configuration.errorOnAutoCreate()) 355 throw new Error("Attempt to auto-create ResearchDefinition.version"); 356 else if (Configuration.doAutoCreate()) 357 this.version = new StringType(); // bb 358 return this.version; 359 } 360 361 public boolean hasVersionElement() { 362 return this.version != null && !this.version.isEmpty(); 363 } 364 365 public boolean hasVersion() { 366 return this.version != null && !this.version.isEmpty(); 367 } 368 369 /** 370 * @param value {@link #version} (The identifier that is used to identify this version of the research definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the research 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 371 */ 372 public ResearchDefinition setVersionElement(StringType value) { 373 this.version = value; 374 return this; 375 } 376 377 /** 378 * @return The identifier that is used to identify this version of the research definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the research 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. 379 */ 380 public String getVersion() { 381 return this.version == null ? null : this.version.getValue(); 382 } 383 384 /** 385 * @param value The identifier that is used to identify this version of the research definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the research 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. 386 */ 387 public ResearchDefinition setVersion(String value) { 388 if (Utilities.noString(value)) 389 this.version = null; 390 else { 391 if (this.version == null) 392 this.version = new StringType(); 393 this.version.setValue(value); 394 } 395 return this; 396 } 397 398 /** 399 * @return {@link #name} (A natural language name identifying the research 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 400 */ 401 public StringType getNameElement() { 402 if (this.name == null) 403 if (Configuration.errorOnAutoCreate()) 404 throw new Error("Attempt to auto-create ResearchDefinition.name"); 405 else if (Configuration.doAutoCreate()) 406 this.name = new StringType(); // bb 407 return this.name; 408 } 409 410 public boolean hasNameElement() { 411 return this.name != null && !this.name.isEmpty(); 412 } 413 414 public boolean hasName() { 415 return this.name != null && !this.name.isEmpty(); 416 } 417 418 /** 419 * @param value {@link #name} (A natural language name identifying the research 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 420 */ 421 public ResearchDefinition setNameElement(StringType value) { 422 this.name = value; 423 return this; 424 } 425 426 /** 427 * @return A natural language name identifying the research definition. This name should be usable as an identifier for the module by machine processing applications such as code generation. 428 */ 429 public String getName() { 430 return this.name == null ? null : this.name.getValue(); 431 } 432 433 /** 434 * @param value A natural language name identifying the research definition. This name should be usable as an identifier for the module by machine processing applications such as code generation. 435 */ 436 public ResearchDefinition setName(String value) { 437 if (Utilities.noString(value)) 438 this.name = null; 439 else { 440 if (this.name == null) 441 this.name = new StringType(); 442 this.name.setValue(value); 443 } 444 return this; 445 } 446 447 /** 448 * @return {@link #title} (A short, descriptive, user-friendly title for the research definition.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value 449 */ 450 public StringType getTitleElement() { 451 if (this.title == null) 452 if (Configuration.errorOnAutoCreate()) 453 throw new Error("Attempt to auto-create ResearchDefinition.title"); 454 else if (Configuration.doAutoCreate()) 455 this.title = new StringType(); // bb 456 return this.title; 457 } 458 459 public boolean hasTitleElement() { 460 return this.title != null && !this.title.isEmpty(); 461 } 462 463 public boolean hasTitle() { 464 return this.title != null && !this.title.isEmpty(); 465 } 466 467 /** 468 * @param value {@link #title} (A short, descriptive, user-friendly title for the research definition.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value 469 */ 470 public ResearchDefinition setTitleElement(StringType value) { 471 this.title = value; 472 return this; 473 } 474 475 /** 476 * @return A short, descriptive, user-friendly title for the research definition. 477 */ 478 public String getTitle() { 479 return this.title == null ? null : this.title.getValue(); 480 } 481 482 /** 483 * @param value A short, descriptive, user-friendly title for the research definition. 484 */ 485 public ResearchDefinition setTitle(String value) { 486 if (Utilities.noString(value)) 487 this.title = null; 488 else { 489 if (this.title == null) 490 this.title = new StringType(); 491 this.title.setValue(value); 492 } 493 return this; 494 } 495 496 /** 497 * @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 498 */ 499 public StringType getShortTitleElement() { 500 if (this.shortTitle == null) 501 if (Configuration.errorOnAutoCreate()) 502 throw new Error("Attempt to auto-create ResearchDefinition.shortTitle"); 503 else if (Configuration.doAutoCreate()) 504 this.shortTitle = new StringType(); // bb 505 return this.shortTitle; 506 } 507 508 public boolean hasShortTitleElement() { 509 return this.shortTitle != null && !this.shortTitle.isEmpty(); 510 } 511 512 public boolean hasShortTitle() { 513 return this.shortTitle != null && !this.shortTitle.isEmpty(); 514 } 515 516 /** 517 * @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 518 */ 519 public ResearchDefinition setShortTitleElement(StringType value) { 520 this.shortTitle = value; 521 return this; 522 } 523 524 /** 525 * @return The short title provides an alternate title for use in informal descriptive contexts where the full, formal title is not necessary. 526 */ 527 public String getShortTitle() { 528 return this.shortTitle == null ? null : this.shortTitle.getValue(); 529 } 530 531 /** 532 * @param value The short title provides an alternate title for use in informal descriptive contexts where the full, formal title is not necessary. 533 */ 534 public ResearchDefinition setShortTitle(String value) { 535 if (Utilities.noString(value)) 536 this.shortTitle = null; 537 else { 538 if (this.shortTitle == null) 539 this.shortTitle = new StringType(); 540 this.shortTitle.setValue(value); 541 } 542 return this; 543 } 544 545 /** 546 * @return {@link #subtitle} (An explanatory or alternate title for the ResearchDefinition 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 547 */ 548 public StringType getSubtitleElement() { 549 if (this.subtitle == null) 550 if (Configuration.errorOnAutoCreate()) 551 throw new Error("Attempt to auto-create ResearchDefinition.subtitle"); 552 else if (Configuration.doAutoCreate()) 553 this.subtitle = new StringType(); // bb 554 return this.subtitle; 555 } 556 557 public boolean hasSubtitleElement() { 558 return this.subtitle != null && !this.subtitle.isEmpty(); 559 } 560 561 public boolean hasSubtitle() { 562 return this.subtitle != null && !this.subtitle.isEmpty(); 563 } 564 565 /** 566 * @param value {@link #subtitle} (An explanatory or alternate title for the ResearchDefinition 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 567 */ 568 public ResearchDefinition setSubtitleElement(StringType value) { 569 this.subtitle = value; 570 return this; 571 } 572 573 /** 574 * @return An explanatory or alternate title for the ResearchDefinition giving additional information about its content. 575 */ 576 public String getSubtitle() { 577 return this.subtitle == null ? null : this.subtitle.getValue(); 578 } 579 580 /** 581 * @param value An explanatory or alternate title for the ResearchDefinition giving additional information about its content. 582 */ 583 public ResearchDefinition setSubtitle(String value) { 584 if (Utilities.noString(value)) 585 this.subtitle = null; 586 else { 587 if (this.subtitle == null) 588 this.subtitle = new StringType(); 589 this.subtitle.setValue(value); 590 } 591 return this; 592 } 593 594 /** 595 * @return {@link #status} (The status of this research 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 596 */ 597 public Enumeration<PublicationStatus> getStatusElement() { 598 if (this.status == null) 599 if (Configuration.errorOnAutoCreate()) 600 throw new Error("Attempt to auto-create ResearchDefinition.status"); 601 else if (Configuration.doAutoCreate()) 602 this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); // bb 603 return this.status; 604 } 605 606 public boolean hasStatusElement() { 607 return this.status != null && !this.status.isEmpty(); 608 } 609 610 public boolean hasStatus() { 611 return this.status != null && !this.status.isEmpty(); 612 } 613 614 /** 615 * @param value {@link #status} (The status of this research 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 616 */ 617 public ResearchDefinition setStatusElement(Enumeration<PublicationStatus> value) { 618 this.status = value; 619 return this; 620 } 621 622 /** 623 * @return The status of this research definition. Enables tracking the life-cycle of the content. 624 */ 625 public PublicationStatus getStatus() { 626 return this.status == null ? null : this.status.getValue(); 627 } 628 629 /** 630 * @param value The status of this research definition. Enables tracking the life-cycle of the content. 631 */ 632 public ResearchDefinition setStatus(PublicationStatus value) { 633 if (this.status == null) 634 this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); 635 this.status.setValue(value); 636 return this; 637 } 638 639 /** 640 * @return {@link #experimental} (A Boolean value to indicate that this research 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 641 */ 642 public BooleanType getExperimentalElement() { 643 if (this.experimental == null) 644 if (Configuration.errorOnAutoCreate()) 645 throw new Error("Attempt to auto-create ResearchDefinition.experimental"); 646 else if (Configuration.doAutoCreate()) 647 this.experimental = new BooleanType(); // bb 648 return this.experimental; 649 } 650 651 public boolean hasExperimentalElement() { 652 return this.experimental != null && !this.experimental.isEmpty(); 653 } 654 655 public boolean hasExperimental() { 656 return this.experimental != null && !this.experimental.isEmpty(); 657 } 658 659 /** 660 * @param value {@link #experimental} (A Boolean value to indicate that this research 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 661 */ 662 public ResearchDefinition setExperimentalElement(BooleanType value) { 663 this.experimental = value; 664 return this; 665 } 666 667 /** 668 * @return A Boolean value to indicate that this research definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage. 669 */ 670 public boolean getExperimental() { 671 return this.experimental == null || this.experimental.isEmpty() ? false : this.experimental.getValue(); 672 } 673 674 /** 675 * @param value A Boolean value to indicate that this research definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage. 676 */ 677 public ResearchDefinition setExperimental(boolean value) { 678 if (this.experimental == null) 679 this.experimental = new BooleanType(); 680 this.experimental.setValue(value); 681 return this; 682 } 683 684 /** 685 * @return {@link #subject} (The intended subjects for the ResearchDefinition. If this element is not provided, a Patient subject is assumed, but the subject of the ResearchDefinition can be anything.) 686 */ 687 public Type getSubject() { 688 return this.subject; 689 } 690 691 /** 692 * @return {@link #subject} (The intended subjects for the ResearchDefinition. If this element is not provided, a Patient subject is assumed, but the subject of the ResearchDefinition can be anything.) 693 */ 694 public CodeableConcept getSubjectCodeableConcept() throws FHIRException { 695 if (this.subject == null) 696 this.subject = new CodeableConcept(); 697 if (!(this.subject instanceof CodeableConcept)) 698 throw new FHIRException("Type mismatch: the type CodeableConcept was expected, but "+this.subject.getClass().getName()+" was encountered"); 699 return (CodeableConcept) this.subject; 700 } 701 702 public boolean hasSubjectCodeableConcept() { 703 return this != null && this.subject instanceof CodeableConcept; 704 } 705 706 /** 707 * @return {@link #subject} (The intended subjects for the ResearchDefinition. If this element is not provided, a Patient subject is assumed, but the subject of the ResearchDefinition can be anything.) 708 */ 709 public Reference getSubjectReference() throws FHIRException { 710 if (this.subject == null) 711 this.subject = new Reference(); 712 if (!(this.subject instanceof Reference)) 713 throw new FHIRException("Type mismatch: the type Reference was expected, but "+this.subject.getClass().getName()+" was encountered"); 714 return (Reference) this.subject; 715 } 716 717 public boolean hasSubjectReference() { 718 return this != null && this.subject instanceof Reference; 719 } 720 721 public boolean hasSubject() { 722 return this.subject != null && !this.subject.isEmpty(); 723 } 724 725 /** 726 * @param value {@link #subject} (The intended subjects for the ResearchDefinition. If this element is not provided, a Patient subject is assumed, but the subject of the ResearchDefinition can be anything.) 727 */ 728 public ResearchDefinition setSubject(Type value) { 729 if (value != null && !(value instanceof CodeableConcept || value instanceof Reference)) 730 throw new Error("Not the right type for ResearchDefinition.subject[x]: "+value.fhirType()); 731 this.subject = value; 732 return this; 733 } 734 735 /** 736 * @return {@link #date} (The date (and optionally time) when the research 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 definition changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value 737 */ 738 public DateTimeType getDateElement() { 739 if (this.date == null) 740 if (Configuration.errorOnAutoCreate()) 741 throw new Error("Attempt to auto-create ResearchDefinition.date"); 742 else if (Configuration.doAutoCreate()) 743 this.date = new DateTimeType(); // bb 744 return this.date; 745 } 746 747 public boolean hasDateElement() { 748 return this.date != null && !this.date.isEmpty(); 749 } 750 751 public boolean hasDate() { 752 return this.date != null && !this.date.isEmpty(); 753 } 754 755 /** 756 * @param value {@link #date} (The date (and optionally time) when the research 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 definition changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value 757 */ 758 public ResearchDefinition setDateElement(DateTimeType value) { 759 this.date = value; 760 return this; 761 } 762 763 /** 764 * @return The date (and optionally time) when the research 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 definition changes. 765 */ 766 public Date getDate() { 767 return this.date == null ? null : this.date.getValue(); 768 } 769 770 /** 771 * @param value The date (and optionally time) when the research 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 definition changes. 772 */ 773 public ResearchDefinition setDate(Date value) { 774 if (value == null) 775 this.date = null; 776 else { 777 if (this.date == null) 778 this.date = new DateTimeType(); 779 this.date.setValue(value); 780 } 781 return this; 782 } 783 784 /** 785 * @return {@link #publisher} (The name of the organization or individual that published the research definition.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value 786 */ 787 public StringType getPublisherElement() { 788 if (this.publisher == null) 789 if (Configuration.errorOnAutoCreate()) 790 throw new Error("Attempt to auto-create ResearchDefinition.publisher"); 791 else if (Configuration.doAutoCreate()) 792 this.publisher = new StringType(); // bb 793 return this.publisher; 794 } 795 796 public boolean hasPublisherElement() { 797 return this.publisher != null && !this.publisher.isEmpty(); 798 } 799 800 public boolean hasPublisher() { 801 return this.publisher != null && !this.publisher.isEmpty(); 802 } 803 804 /** 805 * @param value {@link #publisher} (The name of the organization or individual that published the research definition.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value 806 */ 807 public ResearchDefinition setPublisherElement(StringType value) { 808 this.publisher = value; 809 return this; 810 } 811 812 /** 813 * @return The name of the organization or individual that published the research definition. 814 */ 815 public String getPublisher() { 816 return this.publisher == null ? null : this.publisher.getValue(); 817 } 818 819 /** 820 * @param value The name of the organization or individual that published the research definition. 821 */ 822 public ResearchDefinition setPublisher(String value) { 823 if (Utilities.noString(value)) 824 this.publisher = null; 825 else { 826 if (this.publisher == null) 827 this.publisher = new StringType(); 828 this.publisher.setValue(value); 829 } 830 return this; 831 } 832 833 /** 834 * @return {@link #contact} (Contact details to assist a user in finding and communicating with the publisher.) 835 */ 836 public List<ContactDetail> getContact() { 837 if (this.contact == null) 838 this.contact = new ArrayList<ContactDetail>(); 839 return this.contact; 840 } 841 842 /** 843 * @return Returns a reference to <code>this</code> for easy method chaining 844 */ 845 public ResearchDefinition setContact(List<ContactDetail> theContact) { 846 this.contact = theContact; 847 return this; 848 } 849 850 public boolean hasContact() { 851 if (this.contact == null) 852 return false; 853 for (ContactDetail item : this.contact) 854 if (!item.isEmpty()) 855 return true; 856 return false; 857 } 858 859 public ContactDetail addContact() { //3 860 ContactDetail t = new ContactDetail(); 861 if (this.contact == null) 862 this.contact = new ArrayList<ContactDetail>(); 863 this.contact.add(t); 864 return t; 865 } 866 867 public ResearchDefinition addContact(ContactDetail t) { //3 868 if (t == null) 869 return this; 870 if (this.contact == null) 871 this.contact = new ArrayList<ContactDetail>(); 872 this.contact.add(t); 873 return this; 874 } 875 876 /** 877 * @return The first repetition of repeating field {@link #contact}, creating it if it does not already exist 878 */ 879 public ContactDetail getContactFirstRep() { 880 if (getContact().isEmpty()) { 881 addContact(); 882 } 883 return getContact().get(0); 884 } 885 886 /** 887 * @return {@link #description} (A free text natural language description of the research 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 888 */ 889 public MarkdownType getDescriptionElement() { 890 if (this.description == null) 891 if (Configuration.errorOnAutoCreate()) 892 throw new Error("Attempt to auto-create ResearchDefinition.description"); 893 else if (Configuration.doAutoCreate()) 894 this.description = new MarkdownType(); // bb 895 return this.description; 896 } 897 898 public boolean hasDescriptionElement() { 899 return this.description != null && !this.description.isEmpty(); 900 } 901 902 public boolean hasDescription() { 903 return this.description != null && !this.description.isEmpty(); 904 } 905 906 /** 907 * @param value {@link #description} (A free text natural language description of the research 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 908 */ 909 public ResearchDefinition setDescriptionElement(MarkdownType value) { 910 this.description = value; 911 return this; 912 } 913 914 /** 915 * @return A free text natural language description of the research definition from a consumer's perspective. 916 */ 917 public String getDescription() { 918 return this.description == null ? null : this.description.getValue(); 919 } 920 921 /** 922 * @param value A free text natural language description of the research definition from a consumer's perspective. 923 */ 924 public ResearchDefinition setDescription(String value) { 925 if (value == null) 926 this.description = null; 927 else { 928 if (this.description == null) 929 this.description = new MarkdownType(); 930 this.description.setValue(value); 931 } 932 return this; 933 } 934 935 /** 936 * @return {@link #comment} (A human-readable string to clarify or explain concepts about the resource.) 937 */ 938 public List<StringType> getComment() { 939 if (this.comment == null) 940 this.comment = new ArrayList<StringType>(); 941 return this.comment; 942 } 943 944 /** 945 * @return Returns a reference to <code>this</code> for easy method chaining 946 */ 947 public ResearchDefinition setComment(List<StringType> theComment) { 948 this.comment = theComment; 949 return this; 950 } 951 952 public boolean hasComment() { 953 if (this.comment == null) 954 return false; 955 for (StringType item : this.comment) 956 if (!item.isEmpty()) 957 return true; 958 return false; 959 } 960 961 /** 962 * @return {@link #comment} (A human-readable string to clarify or explain concepts about the resource.) 963 */ 964 public StringType addCommentElement() {//2 965 StringType t = new StringType(); 966 if (this.comment == null) 967 this.comment = new ArrayList<StringType>(); 968 this.comment.add(t); 969 return t; 970 } 971 972 /** 973 * @param value {@link #comment} (A human-readable string to clarify or explain concepts about the resource.) 974 */ 975 public ResearchDefinition addComment(String value) { //1 976 StringType t = new StringType(); 977 t.setValue(value); 978 if (this.comment == null) 979 this.comment = new ArrayList<StringType>(); 980 this.comment.add(t); 981 return this; 982 } 983 984 /** 985 * @param value {@link #comment} (A human-readable string to clarify or explain concepts about the resource.) 986 */ 987 public boolean hasComment(String value) { 988 if (this.comment == null) 989 return false; 990 for (StringType v : this.comment) 991 if (v.getValue().equals(value)) // string 992 return true; 993 return false; 994 } 995 996 /** 997 * @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 definition instances.) 998 */ 999 public List<UsageContext> getUseContext() { 1000 if (this.useContext == null) 1001 this.useContext = new ArrayList<UsageContext>(); 1002 return this.useContext; 1003 } 1004 1005 /** 1006 * @return Returns a reference to <code>this</code> for easy method chaining 1007 */ 1008 public ResearchDefinition setUseContext(List<UsageContext> theUseContext) { 1009 this.useContext = theUseContext; 1010 return this; 1011 } 1012 1013 public boolean hasUseContext() { 1014 if (this.useContext == null) 1015 return false; 1016 for (UsageContext item : this.useContext) 1017 if (!item.isEmpty()) 1018 return true; 1019 return false; 1020 } 1021 1022 public UsageContext addUseContext() { //3 1023 UsageContext t = new UsageContext(); 1024 if (this.useContext == null) 1025 this.useContext = new ArrayList<UsageContext>(); 1026 this.useContext.add(t); 1027 return t; 1028 } 1029 1030 public ResearchDefinition addUseContext(UsageContext t) { //3 1031 if (t == null) 1032 return this; 1033 if (this.useContext == null) 1034 this.useContext = new ArrayList<UsageContext>(); 1035 this.useContext.add(t); 1036 return this; 1037 } 1038 1039 /** 1040 * @return The first repetition of repeating field {@link #useContext}, creating it if it does not already exist 1041 */ 1042 public UsageContext getUseContextFirstRep() { 1043 if (getUseContext().isEmpty()) { 1044 addUseContext(); 1045 } 1046 return getUseContext().get(0); 1047 } 1048 1049 /** 1050 * @return {@link #jurisdiction} (A legal or geographic region in which the research definition is intended to be used.) 1051 */ 1052 public List<CodeableConcept> getJurisdiction() { 1053 if (this.jurisdiction == null) 1054 this.jurisdiction = new ArrayList<CodeableConcept>(); 1055 return this.jurisdiction; 1056 } 1057 1058 /** 1059 * @return Returns a reference to <code>this</code> for easy method chaining 1060 */ 1061 public ResearchDefinition setJurisdiction(List<CodeableConcept> theJurisdiction) { 1062 this.jurisdiction = theJurisdiction; 1063 return this; 1064 } 1065 1066 public boolean hasJurisdiction() { 1067 if (this.jurisdiction == null) 1068 return false; 1069 for (CodeableConcept item : this.jurisdiction) 1070 if (!item.isEmpty()) 1071 return true; 1072 return false; 1073 } 1074 1075 public CodeableConcept addJurisdiction() { //3 1076 CodeableConcept t = new CodeableConcept(); 1077 if (this.jurisdiction == null) 1078 this.jurisdiction = new ArrayList<CodeableConcept>(); 1079 this.jurisdiction.add(t); 1080 return t; 1081 } 1082 1083 public ResearchDefinition addJurisdiction(CodeableConcept t) { //3 1084 if (t == null) 1085 return this; 1086 if (this.jurisdiction == null) 1087 this.jurisdiction = new ArrayList<CodeableConcept>(); 1088 this.jurisdiction.add(t); 1089 return this; 1090 } 1091 1092 /** 1093 * @return The first repetition of repeating field {@link #jurisdiction}, creating it if it does not already exist 1094 */ 1095 public CodeableConcept getJurisdictionFirstRep() { 1096 if (getJurisdiction().isEmpty()) { 1097 addJurisdiction(); 1098 } 1099 return getJurisdiction().get(0); 1100 } 1101 1102 /** 1103 * @return {@link #purpose} (Explanation of why this research 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 1104 */ 1105 public MarkdownType getPurposeElement() { 1106 if (this.purpose == null) 1107 if (Configuration.errorOnAutoCreate()) 1108 throw new Error("Attempt to auto-create ResearchDefinition.purpose"); 1109 else if (Configuration.doAutoCreate()) 1110 this.purpose = new MarkdownType(); // bb 1111 return this.purpose; 1112 } 1113 1114 public boolean hasPurposeElement() { 1115 return this.purpose != null && !this.purpose.isEmpty(); 1116 } 1117 1118 public boolean hasPurpose() { 1119 return this.purpose != null && !this.purpose.isEmpty(); 1120 } 1121 1122 /** 1123 * @param value {@link #purpose} (Explanation of why this research 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 1124 */ 1125 public ResearchDefinition setPurposeElement(MarkdownType value) { 1126 this.purpose = value; 1127 return this; 1128 } 1129 1130 /** 1131 * @return Explanation of why this research definition is needed and why it has been designed as it has. 1132 */ 1133 public String getPurpose() { 1134 return this.purpose == null ? null : this.purpose.getValue(); 1135 } 1136 1137 /** 1138 * @param value Explanation of why this research definition is needed and why it has been designed as it has. 1139 */ 1140 public ResearchDefinition setPurpose(String value) { 1141 if (value == null) 1142 this.purpose = null; 1143 else { 1144 if (this.purpose == null) 1145 this.purpose = new MarkdownType(); 1146 this.purpose.setValue(value); 1147 } 1148 return this; 1149 } 1150 1151 /** 1152 * @return {@link #usage} (A detailed description, from a clinical perspective, of how the ResearchDefinition is used.). This is the underlying object with id, value and extensions. The accessor "getUsage" gives direct access to the value 1153 */ 1154 public StringType getUsageElement() { 1155 if (this.usage == null) 1156 if (Configuration.errorOnAutoCreate()) 1157 throw new Error("Attempt to auto-create ResearchDefinition.usage"); 1158 else if (Configuration.doAutoCreate()) 1159 this.usage = new StringType(); // bb 1160 return this.usage; 1161 } 1162 1163 public boolean hasUsageElement() { 1164 return this.usage != null && !this.usage.isEmpty(); 1165 } 1166 1167 public boolean hasUsage() { 1168 return this.usage != null && !this.usage.isEmpty(); 1169 } 1170 1171 /** 1172 * @param value {@link #usage} (A detailed description, from a clinical perspective, of how the ResearchDefinition is used.). This is the underlying object with id, value and extensions. The accessor "getUsage" gives direct access to the value 1173 */ 1174 public ResearchDefinition setUsageElement(StringType value) { 1175 this.usage = value; 1176 return this; 1177 } 1178 1179 /** 1180 * @return A detailed description, from a clinical perspective, of how the ResearchDefinition is used. 1181 */ 1182 public String getUsage() { 1183 return this.usage == null ? null : this.usage.getValue(); 1184 } 1185 1186 /** 1187 * @param value A detailed description, from a clinical perspective, of how the ResearchDefinition is used. 1188 */ 1189 public ResearchDefinition setUsage(String value) { 1190 if (Utilities.noString(value)) 1191 this.usage = null; 1192 else { 1193 if (this.usage == null) 1194 this.usage = new StringType(); 1195 this.usage.setValue(value); 1196 } 1197 return this; 1198 } 1199 1200 /** 1201 * @return {@link #copyright} (A copyright statement relating to the research definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the research definition.). This is the underlying object with id, value and extensions. The accessor "getCopyright" gives direct access to the value 1202 */ 1203 public MarkdownType getCopyrightElement() { 1204 if (this.copyright == null) 1205 if (Configuration.errorOnAutoCreate()) 1206 throw new Error("Attempt to auto-create ResearchDefinition.copyright"); 1207 else if (Configuration.doAutoCreate()) 1208 this.copyright = new MarkdownType(); // bb 1209 return this.copyright; 1210 } 1211 1212 public boolean hasCopyrightElement() { 1213 return this.copyright != null && !this.copyright.isEmpty(); 1214 } 1215 1216 public boolean hasCopyright() { 1217 return this.copyright != null && !this.copyright.isEmpty(); 1218 } 1219 1220 /** 1221 * @param value {@link #copyright} (A copyright statement relating to the research definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the research definition.). This is the underlying object with id, value and extensions. The accessor "getCopyright" gives direct access to the value 1222 */ 1223 public ResearchDefinition setCopyrightElement(MarkdownType value) { 1224 this.copyright = value; 1225 return this; 1226 } 1227 1228 /** 1229 * @return A copyright statement relating to the research definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the research definition. 1230 */ 1231 public String getCopyright() { 1232 return this.copyright == null ? null : this.copyright.getValue(); 1233 } 1234 1235 /** 1236 * @param value A copyright statement relating to the research definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the research definition. 1237 */ 1238 public ResearchDefinition setCopyright(String value) { 1239 if (value == null) 1240 this.copyright = null; 1241 else { 1242 if (this.copyright == null) 1243 this.copyright = new MarkdownType(); 1244 this.copyright.setValue(value); 1245 } 1246 return this; 1247 } 1248 1249 /** 1250 * @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 1251 */ 1252 public DateType getApprovalDateElement() { 1253 if (this.approvalDate == null) 1254 if (Configuration.errorOnAutoCreate()) 1255 throw new Error("Attempt to auto-create ResearchDefinition.approvalDate"); 1256 else if (Configuration.doAutoCreate()) 1257 this.approvalDate = new DateType(); // bb 1258 return this.approvalDate; 1259 } 1260 1261 public boolean hasApprovalDateElement() { 1262 return this.approvalDate != null && !this.approvalDate.isEmpty(); 1263 } 1264 1265 public boolean hasApprovalDate() { 1266 return this.approvalDate != null && !this.approvalDate.isEmpty(); 1267 } 1268 1269 /** 1270 * @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 1271 */ 1272 public ResearchDefinition setApprovalDateElement(DateType value) { 1273 this.approvalDate = value; 1274 return this; 1275 } 1276 1277 /** 1278 * @return The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage. 1279 */ 1280 public Date getApprovalDate() { 1281 return this.approvalDate == null ? null : this.approvalDate.getValue(); 1282 } 1283 1284 /** 1285 * @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. 1286 */ 1287 public ResearchDefinition setApprovalDate(Date value) { 1288 if (value == null) 1289 this.approvalDate = null; 1290 else { 1291 if (this.approvalDate == null) 1292 this.approvalDate = new DateType(); 1293 this.approvalDate.setValue(value); 1294 } 1295 return this; 1296 } 1297 1298 /** 1299 * @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 1300 */ 1301 public DateType getLastReviewDateElement() { 1302 if (this.lastReviewDate == null) 1303 if (Configuration.errorOnAutoCreate()) 1304 throw new Error("Attempt to auto-create ResearchDefinition.lastReviewDate"); 1305 else if (Configuration.doAutoCreate()) 1306 this.lastReviewDate = new DateType(); // bb 1307 return this.lastReviewDate; 1308 } 1309 1310 public boolean hasLastReviewDateElement() { 1311 return this.lastReviewDate != null && !this.lastReviewDate.isEmpty(); 1312 } 1313 1314 public boolean hasLastReviewDate() { 1315 return this.lastReviewDate != null && !this.lastReviewDate.isEmpty(); 1316 } 1317 1318 /** 1319 * @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 1320 */ 1321 public ResearchDefinition setLastReviewDateElement(DateType value) { 1322 this.lastReviewDate = value; 1323 return this; 1324 } 1325 1326 /** 1327 * @return The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date. 1328 */ 1329 public Date getLastReviewDate() { 1330 return this.lastReviewDate == null ? null : this.lastReviewDate.getValue(); 1331 } 1332 1333 /** 1334 * @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. 1335 */ 1336 public ResearchDefinition setLastReviewDate(Date value) { 1337 if (value == null) 1338 this.lastReviewDate = null; 1339 else { 1340 if (this.lastReviewDate == null) 1341 this.lastReviewDate = new DateType(); 1342 this.lastReviewDate.setValue(value); 1343 } 1344 return this; 1345 } 1346 1347 /** 1348 * @return {@link #effectivePeriod} (The period during which the research definition content was or is planned to be in active use.) 1349 */ 1350 public Period getEffectivePeriod() { 1351 if (this.effectivePeriod == null) 1352 if (Configuration.errorOnAutoCreate()) 1353 throw new Error("Attempt to auto-create ResearchDefinition.effectivePeriod"); 1354 else if (Configuration.doAutoCreate()) 1355 this.effectivePeriod = new Period(); // cc 1356 return this.effectivePeriod; 1357 } 1358 1359 public boolean hasEffectivePeriod() { 1360 return this.effectivePeriod != null && !this.effectivePeriod.isEmpty(); 1361 } 1362 1363 /** 1364 * @param value {@link #effectivePeriod} (The period during which the research definition content was or is planned to be in active use.) 1365 */ 1366 public ResearchDefinition setEffectivePeriod(Period value) { 1367 this.effectivePeriod = value; 1368 return this; 1369 } 1370 1371 /** 1372 * @return {@link #topic} (Descriptive topics related to the content of the ResearchDefinition. Topics provide a high-level categorization grouping types of ResearchDefinitions that can be useful for filtering and searching.) 1373 */ 1374 public List<CodeableConcept> getTopic() { 1375 if (this.topic == null) 1376 this.topic = new ArrayList<CodeableConcept>(); 1377 return this.topic; 1378 } 1379 1380 /** 1381 * @return Returns a reference to <code>this</code> for easy method chaining 1382 */ 1383 public ResearchDefinition setTopic(List<CodeableConcept> theTopic) { 1384 this.topic = theTopic; 1385 return this; 1386 } 1387 1388 public boolean hasTopic() { 1389 if (this.topic == null) 1390 return false; 1391 for (CodeableConcept item : this.topic) 1392 if (!item.isEmpty()) 1393 return true; 1394 return false; 1395 } 1396 1397 public CodeableConcept addTopic() { //3 1398 CodeableConcept t = new CodeableConcept(); 1399 if (this.topic == null) 1400 this.topic = new ArrayList<CodeableConcept>(); 1401 this.topic.add(t); 1402 return t; 1403 } 1404 1405 public ResearchDefinition addTopic(CodeableConcept t) { //3 1406 if (t == null) 1407 return this; 1408 if (this.topic == null) 1409 this.topic = new ArrayList<CodeableConcept>(); 1410 this.topic.add(t); 1411 return this; 1412 } 1413 1414 /** 1415 * @return The first repetition of repeating field {@link #topic}, creating it if it does not already exist 1416 */ 1417 public CodeableConcept getTopicFirstRep() { 1418 if (getTopic().isEmpty()) { 1419 addTopic(); 1420 } 1421 return getTopic().get(0); 1422 } 1423 1424 /** 1425 * @return {@link #author} (An individiual or organization primarily involved in the creation and maintenance of the content.) 1426 */ 1427 public List<ContactDetail> getAuthor() { 1428 if (this.author == null) 1429 this.author = new ArrayList<ContactDetail>(); 1430 return this.author; 1431 } 1432 1433 /** 1434 * @return Returns a reference to <code>this</code> for easy method chaining 1435 */ 1436 public ResearchDefinition setAuthor(List<ContactDetail> theAuthor) { 1437 this.author = theAuthor; 1438 return this; 1439 } 1440 1441 public boolean hasAuthor() { 1442 if (this.author == null) 1443 return false; 1444 for (ContactDetail item : this.author) 1445 if (!item.isEmpty()) 1446 return true; 1447 return false; 1448 } 1449 1450 public ContactDetail addAuthor() { //3 1451 ContactDetail t = new ContactDetail(); 1452 if (this.author == null) 1453 this.author = new ArrayList<ContactDetail>(); 1454 this.author.add(t); 1455 return t; 1456 } 1457 1458 public ResearchDefinition addAuthor(ContactDetail t) { //3 1459 if (t == null) 1460 return this; 1461 if (this.author == null) 1462 this.author = new ArrayList<ContactDetail>(); 1463 this.author.add(t); 1464 return this; 1465 } 1466 1467 /** 1468 * @return The first repetition of repeating field {@link #author}, creating it if it does not already exist 1469 */ 1470 public ContactDetail getAuthorFirstRep() { 1471 if (getAuthor().isEmpty()) { 1472 addAuthor(); 1473 } 1474 return getAuthor().get(0); 1475 } 1476 1477 /** 1478 * @return {@link #editor} (An individual or organization primarily responsible for internal coherence of the content.) 1479 */ 1480 public List<ContactDetail> getEditor() { 1481 if (this.editor == null) 1482 this.editor = new ArrayList<ContactDetail>(); 1483 return this.editor; 1484 } 1485 1486 /** 1487 * @return Returns a reference to <code>this</code> for easy method chaining 1488 */ 1489 public ResearchDefinition setEditor(List<ContactDetail> theEditor) { 1490 this.editor = theEditor; 1491 return this; 1492 } 1493 1494 public boolean hasEditor() { 1495 if (this.editor == null) 1496 return false; 1497 for (ContactDetail item : this.editor) 1498 if (!item.isEmpty()) 1499 return true; 1500 return false; 1501 } 1502 1503 public ContactDetail addEditor() { //3 1504 ContactDetail t = new ContactDetail(); 1505 if (this.editor == null) 1506 this.editor = new ArrayList<ContactDetail>(); 1507 this.editor.add(t); 1508 return t; 1509 } 1510 1511 public ResearchDefinition addEditor(ContactDetail t) { //3 1512 if (t == null) 1513 return this; 1514 if (this.editor == null) 1515 this.editor = new ArrayList<ContactDetail>(); 1516 this.editor.add(t); 1517 return this; 1518 } 1519 1520 /** 1521 * @return The first repetition of repeating field {@link #editor}, creating it if it does not already exist 1522 */ 1523 public ContactDetail getEditorFirstRep() { 1524 if (getEditor().isEmpty()) { 1525 addEditor(); 1526 } 1527 return getEditor().get(0); 1528 } 1529 1530 /** 1531 * @return {@link #reviewer} (An individual or organization primarily responsible for review of some aspect of the content.) 1532 */ 1533 public List<ContactDetail> getReviewer() { 1534 if (this.reviewer == null) 1535 this.reviewer = new ArrayList<ContactDetail>(); 1536 return this.reviewer; 1537 } 1538 1539 /** 1540 * @return Returns a reference to <code>this</code> for easy method chaining 1541 */ 1542 public ResearchDefinition setReviewer(List<ContactDetail> theReviewer) { 1543 this.reviewer = theReviewer; 1544 return this; 1545 } 1546 1547 public boolean hasReviewer() { 1548 if (this.reviewer == null) 1549 return false; 1550 for (ContactDetail item : this.reviewer) 1551 if (!item.isEmpty()) 1552 return true; 1553 return false; 1554 } 1555 1556 public ContactDetail addReviewer() { //3 1557 ContactDetail t = new ContactDetail(); 1558 if (this.reviewer == null) 1559 this.reviewer = new ArrayList<ContactDetail>(); 1560 this.reviewer.add(t); 1561 return t; 1562 } 1563 1564 public ResearchDefinition addReviewer(ContactDetail t) { //3 1565 if (t == null) 1566 return this; 1567 if (this.reviewer == null) 1568 this.reviewer = new ArrayList<ContactDetail>(); 1569 this.reviewer.add(t); 1570 return this; 1571 } 1572 1573 /** 1574 * @return The first repetition of repeating field {@link #reviewer}, creating it if it does not already exist 1575 */ 1576 public ContactDetail getReviewerFirstRep() { 1577 if (getReviewer().isEmpty()) { 1578 addReviewer(); 1579 } 1580 return getReviewer().get(0); 1581 } 1582 1583 /** 1584 * @return {@link #endorser} (An individual or organization responsible for officially endorsing the content for use in some setting.) 1585 */ 1586 public List<ContactDetail> getEndorser() { 1587 if (this.endorser == null) 1588 this.endorser = new ArrayList<ContactDetail>(); 1589 return this.endorser; 1590 } 1591 1592 /** 1593 * @return Returns a reference to <code>this</code> for easy method chaining 1594 */ 1595 public ResearchDefinition setEndorser(List<ContactDetail> theEndorser) { 1596 this.endorser = theEndorser; 1597 return this; 1598 } 1599 1600 public boolean hasEndorser() { 1601 if (this.endorser == null) 1602 return false; 1603 for (ContactDetail item : this.endorser) 1604 if (!item.isEmpty()) 1605 return true; 1606 return false; 1607 } 1608 1609 public ContactDetail addEndorser() { //3 1610 ContactDetail t = new ContactDetail(); 1611 if (this.endorser == null) 1612 this.endorser = new ArrayList<ContactDetail>(); 1613 this.endorser.add(t); 1614 return t; 1615 } 1616 1617 public ResearchDefinition addEndorser(ContactDetail t) { //3 1618 if (t == null) 1619 return this; 1620 if (this.endorser == null) 1621 this.endorser = new ArrayList<ContactDetail>(); 1622 this.endorser.add(t); 1623 return this; 1624 } 1625 1626 /** 1627 * @return The first repetition of repeating field {@link #endorser}, creating it if it does not already exist 1628 */ 1629 public ContactDetail getEndorserFirstRep() { 1630 if (getEndorser().isEmpty()) { 1631 addEndorser(); 1632 } 1633 return getEndorser().get(0); 1634 } 1635 1636 /** 1637 * @return {@link #relatedArtifact} (Related artifacts such as additional documentation, justification, or bibliographic references.) 1638 */ 1639 public List<RelatedArtifact> getRelatedArtifact() { 1640 if (this.relatedArtifact == null) 1641 this.relatedArtifact = new ArrayList<RelatedArtifact>(); 1642 return this.relatedArtifact; 1643 } 1644 1645 /** 1646 * @return Returns a reference to <code>this</code> for easy method chaining 1647 */ 1648 public ResearchDefinition setRelatedArtifact(List<RelatedArtifact> theRelatedArtifact) { 1649 this.relatedArtifact = theRelatedArtifact; 1650 return this; 1651 } 1652 1653 public boolean hasRelatedArtifact() { 1654 if (this.relatedArtifact == null) 1655 return false; 1656 for (RelatedArtifact item : this.relatedArtifact) 1657 if (!item.isEmpty()) 1658 return true; 1659 return false; 1660 } 1661 1662 public RelatedArtifact addRelatedArtifact() { //3 1663 RelatedArtifact t = new RelatedArtifact(); 1664 if (this.relatedArtifact == null) 1665 this.relatedArtifact = new ArrayList<RelatedArtifact>(); 1666 this.relatedArtifact.add(t); 1667 return t; 1668 } 1669 1670 public ResearchDefinition addRelatedArtifact(RelatedArtifact t) { //3 1671 if (t == null) 1672 return this; 1673 if (this.relatedArtifact == null) 1674 this.relatedArtifact = new ArrayList<RelatedArtifact>(); 1675 this.relatedArtifact.add(t); 1676 return this; 1677 } 1678 1679 /** 1680 * @return The first repetition of repeating field {@link #relatedArtifact}, creating it if it does not already exist 1681 */ 1682 public RelatedArtifact getRelatedArtifactFirstRep() { 1683 if (getRelatedArtifact().isEmpty()) { 1684 addRelatedArtifact(); 1685 } 1686 return getRelatedArtifact().get(0); 1687 } 1688 1689 /** 1690 * @return {@link #library} (A reference to a Library resource containing the formal logic used by the ResearchDefinition.) 1691 */ 1692 public List<CanonicalType> getLibrary() { 1693 if (this.library == null) 1694 this.library = new ArrayList<CanonicalType>(); 1695 return this.library; 1696 } 1697 1698 /** 1699 * @return Returns a reference to <code>this</code> for easy method chaining 1700 */ 1701 public ResearchDefinition setLibrary(List<CanonicalType> theLibrary) { 1702 this.library = theLibrary; 1703 return this; 1704 } 1705 1706 public boolean hasLibrary() { 1707 if (this.library == null) 1708 return false; 1709 for (CanonicalType item : this.library) 1710 if (!item.isEmpty()) 1711 return true; 1712 return false; 1713 } 1714 1715 /** 1716 * @return {@link #library} (A reference to a Library resource containing the formal logic used by the ResearchDefinition.) 1717 */ 1718 public CanonicalType addLibraryElement() {//2 1719 CanonicalType t = new CanonicalType(); 1720 if (this.library == null) 1721 this.library = new ArrayList<CanonicalType>(); 1722 this.library.add(t); 1723 return t; 1724 } 1725 1726 /** 1727 * @param value {@link #library} (A reference to a Library resource containing the formal logic used by the ResearchDefinition.) 1728 */ 1729 public ResearchDefinition addLibrary(String value) { //1 1730 CanonicalType t = new CanonicalType(); 1731 t.setValue(value); 1732 if (this.library == null) 1733 this.library = new ArrayList<CanonicalType>(); 1734 this.library.add(t); 1735 return this; 1736 } 1737 1738 /** 1739 * @param value {@link #library} (A reference to a Library resource containing the formal logic used by the ResearchDefinition.) 1740 */ 1741 public boolean hasLibrary(String value) { 1742 if (this.library == null) 1743 return false; 1744 for (CanonicalType v : this.library) 1745 if (v.getValue().equals(value)) // canonical(Library) 1746 return true; 1747 return false; 1748 } 1749 1750 /** 1751 * @return {@link #population} (A reference to a ResearchElementDefinition resource that defines the population for the research.) 1752 */ 1753 public Reference getPopulation() { 1754 if (this.population == null) 1755 if (Configuration.errorOnAutoCreate()) 1756 throw new Error("Attempt to auto-create ResearchDefinition.population"); 1757 else if (Configuration.doAutoCreate()) 1758 this.population = new Reference(); // cc 1759 return this.population; 1760 } 1761 1762 public boolean hasPopulation() { 1763 return this.population != null && !this.population.isEmpty(); 1764 } 1765 1766 /** 1767 * @param value {@link #population} (A reference to a ResearchElementDefinition resource that defines the population for the research.) 1768 */ 1769 public ResearchDefinition setPopulation(Reference value) { 1770 this.population = value; 1771 return this; 1772 } 1773 1774 /** 1775 * @return {@link #population} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (A reference to a ResearchElementDefinition resource that defines the population for the research.) 1776 */ 1777 public ResearchElementDefinition getPopulationTarget() { 1778 if (this.populationTarget == null) 1779 if (Configuration.errorOnAutoCreate()) 1780 throw new Error("Attempt to auto-create ResearchDefinition.population"); 1781 else if (Configuration.doAutoCreate()) 1782 this.populationTarget = new ResearchElementDefinition(); // aa 1783 return this.populationTarget; 1784 } 1785 1786 /** 1787 * @param value {@link #population} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (A reference to a ResearchElementDefinition resource that defines the population for the research.) 1788 */ 1789 public ResearchDefinition setPopulationTarget(ResearchElementDefinition value) { 1790 this.populationTarget = value; 1791 return this; 1792 } 1793 1794 /** 1795 * @return {@link #exposure} (A reference to a ResearchElementDefinition resource that defines the exposure for the research.) 1796 */ 1797 public Reference getExposure() { 1798 if (this.exposure == null) 1799 if (Configuration.errorOnAutoCreate()) 1800 throw new Error("Attempt to auto-create ResearchDefinition.exposure"); 1801 else if (Configuration.doAutoCreate()) 1802 this.exposure = new Reference(); // cc 1803 return this.exposure; 1804 } 1805 1806 public boolean hasExposure() { 1807 return this.exposure != null && !this.exposure.isEmpty(); 1808 } 1809 1810 /** 1811 * @param value {@link #exposure} (A reference to a ResearchElementDefinition resource that defines the exposure for the research.) 1812 */ 1813 public ResearchDefinition setExposure(Reference value) { 1814 this.exposure = value; 1815 return this; 1816 } 1817 1818 /** 1819 * @return {@link #exposure} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (A reference to a ResearchElementDefinition resource that defines the exposure for the research.) 1820 */ 1821 public ResearchElementDefinition getExposureTarget() { 1822 if (this.exposureTarget == null) 1823 if (Configuration.errorOnAutoCreate()) 1824 throw new Error("Attempt to auto-create ResearchDefinition.exposure"); 1825 else if (Configuration.doAutoCreate()) 1826 this.exposureTarget = new ResearchElementDefinition(); // aa 1827 return this.exposureTarget; 1828 } 1829 1830 /** 1831 * @param value {@link #exposure} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (A reference to a ResearchElementDefinition resource that defines the exposure for the research.) 1832 */ 1833 public ResearchDefinition setExposureTarget(ResearchElementDefinition value) { 1834 this.exposureTarget = value; 1835 return this; 1836 } 1837 1838 /** 1839 * @return {@link #exposureAlternative} (A reference to a ResearchElementDefinition resource that defines the exposureAlternative for the research.) 1840 */ 1841 public Reference getExposureAlternative() { 1842 if (this.exposureAlternative == null) 1843 if (Configuration.errorOnAutoCreate()) 1844 throw new Error("Attempt to auto-create ResearchDefinition.exposureAlternative"); 1845 else if (Configuration.doAutoCreate()) 1846 this.exposureAlternative = new Reference(); // cc 1847 return this.exposureAlternative; 1848 } 1849 1850 public boolean hasExposureAlternative() { 1851 return this.exposureAlternative != null && !this.exposureAlternative.isEmpty(); 1852 } 1853 1854 /** 1855 * @param value {@link #exposureAlternative} (A reference to a ResearchElementDefinition resource that defines the exposureAlternative for the research.) 1856 */ 1857 public ResearchDefinition setExposureAlternative(Reference value) { 1858 this.exposureAlternative = value; 1859 return this; 1860 } 1861 1862 /** 1863 * @return {@link #exposureAlternative} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (A reference to a ResearchElementDefinition resource that defines the exposureAlternative for the research.) 1864 */ 1865 public ResearchElementDefinition getExposureAlternativeTarget() { 1866 if (this.exposureAlternativeTarget == null) 1867 if (Configuration.errorOnAutoCreate()) 1868 throw new Error("Attempt to auto-create ResearchDefinition.exposureAlternative"); 1869 else if (Configuration.doAutoCreate()) 1870 this.exposureAlternativeTarget = new ResearchElementDefinition(); // aa 1871 return this.exposureAlternativeTarget; 1872 } 1873 1874 /** 1875 * @param value {@link #exposureAlternative} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (A reference to a ResearchElementDefinition resource that defines the exposureAlternative for the research.) 1876 */ 1877 public ResearchDefinition setExposureAlternativeTarget(ResearchElementDefinition value) { 1878 this.exposureAlternativeTarget = value; 1879 return this; 1880 } 1881 1882 /** 1883 * @return {@link #outcome} (A reference to a ResearchElementDefinition resomece that defines the outcome for the research.) 1884 */ 1885 public Reference getOutcome() { 1886 if (this.outcome == null) 1887 if (Configuration.errorOnAutoCreate()) 1888 throw new Error("Attempt to auto-create ResearchDefinition.outcome"); 1889 else if (Configuration.doAutoCreate()) 1890 this.outcome = new Reference(); // cc 1891 return this.outcome; 1892 } 1893 1894 public boolean hasOutcome() { 1895 return this.outcome != null && !this.outcome.isEmpty(); 1896 } 1897 1898 /** 1899 * @param value {@link #outcome} (A reference to a ResearchElementDefinition resomece that defines the outcome for the research.) 1900 */ 1901 public ResearchDefinition setOutcome(Reference value) { 1902 this.outcome = value; 1903 return this; 1904 } 1905 1906 /** 1907 * @return {@link #outcome} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (A reference to a ResearchElementDefinition resomece that defines the outcome for the research.) 1908 */ 1909 public ResearchElementDefinition getOutcomeTarget() { 1910 if (this.outcomeTarget == null) 1911 if (Configuration.errorOnAutoCreate()) 1912 throw new Error("Attempt to auto-create ResearchDefinition.outcome"); 1913 else if (Configuration.doAutoCreate()) 1914 this.outcomeTarget = new ResearchElementDefinition(); // aa 1915 return this.outcomeTarget; 1916 } 1917 1918 /** 1919 * @param value {@link #outcome} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (A reference to a ResearchElementDefinition resomece that defines the outcome for the research.) 1920 */ 1921 public ResearchDefinition setOutcomeTarget(ResearchElementDefinition value) { 1922 this.outcomeTarget = value; 1923 return this; 1924 } 1925 1926 protected void listChildren(List<Property> children) { 1927 super.listChildren(children); 1928 children.add(new Property("url", "uri", "An absolute URI that is used to identify this research 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 definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the research definition is stored on different servers.", 0, 1, url)); 1929 children.add(new Property("identifier", "Identifier", "A formal identifier that is used to identify this research 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)); 1930 children.add(new Property("version", "string", "The identifier that is used to identify this version of the research definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the research 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)); 1931 children.add(new Property("name", "string", "A natural language name identifying the research definition. This name should be usable as an identifier for the module by machine processing applications such as code generation.", 0, 1, name)); 1932 children.add(new Property("title", "string", "A short, descriptive, user-friendly title for the research definition.", 0, 1, title)); 1933 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)); 1934 children.add(new Property("subtitle", "string", "An explanatory or alternate title for the ResearchDefinition giving additional information about its content.", 0, 1, subtitle)); 1935 children.add(new Property("status", "code", "The status of this research definition. Enables tracking the life-cycle of the content.", 0, 1, status)); 1936 children.add(new Property("experimental", "boolean", "A Boolean value to indicate that this research definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.", 0, 1, experimental)); 1937 children.add(new Property("subject[x]", "CodeableConcept|Reference(Group)", "The intended subjects for the ResearchDefinition. If this element is not provided, a Patient subject is assumed, but the subject of the ResearchDefinition can be anything.", 0, 1, subject)); 1938 children.add(new Property("date", "dateTime", "The date (and optionally time) when the research 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 definition changes.", 0, 1, date)); 1939 children.add(new Property("publisher", "string", "The name of the organization or individual that published the research definition.", 0, 1, publisher)); 1940 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)); 1941 children.add(new Property("description", "markdown", "A free text natural language description of the research definition from a consumer's perspective.", 0, 1, description)); 1942 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)); 1943 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 definition instances.", 0, java.lang.Integer.MAX_VALUE, useContext)); 1944 children.add(new Property("jurisdiction", "CodeableConcept", "A legal or geographic region in which the research definition is intended to be used.", 0, java.lang.Integer.MAX_VALUE, jurisdiction)); 1945 children.add(new Property("purpose", "markdown", "Explanation of why this research definition is needed and why it has been designed as it has.", 0, 1, purpose)); 1946 children.add(new Property("usage", "string", "A detailed description, from a clinical perspective, of how the ResearchDefinition is used.", 0, 1, usage)); 1947 children.add(new Property("copyright", "markdown", "A copyright statement relating to the research definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the research definition.", 0, 1, copyright)); 1948 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)); 1949 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)); 1950 children.add(new Property("effectivePeriod", "Period", "The period during which the research definition content was or is planned to be in active use.", 0, 1, effectivePeriod)); 1951 children.add(new Property("topic", "CodeableConcept", "Descriptive topics related to the content of the ResearchDefinition. Topics provide a high-level categorization grouping types of ResearchDefinitions that can be useful for filtering and searching.", 0, java.lang.Integer.MAX_VALUE, topic)); 1952 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)); 1953 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)); 1954 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)); 1955 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)); 1956 children.add(new Property("relatedArtifact", "RelatedArtifact", "Related artifacts such as additional documentation, justification, or bibliographic references.", 0, java.lang.Integer.MAX_VALUE, relatedArtifact)); 1957 children.add(new Property("library", "canonical(Library)", "A reference to a Library resource containing the formal logic used by the ResearchDefinition.", 0, java.lang.Integer.MAX_VALUE, library)); 1958 children.add(new Property("population", "Reference(ResearchElementDefinition)", "A reference to a ResearchElementDefinition resource that defines the population for the research.", 0, 1, population)); 1959 children.add(new Property("exposure", "Reference(ResearchElementDefinition)", "A reference to a ResearchElementDefinition resource that defines the exposure for the research.", 0, 1, exposure)); 1960 children.add(new Property("exposureAlternative", "Reference(ResearchElementDefinition)", "A reference to a ResearchElementDefinition resource that defines the exposureAlternative for the research.", 0, 1, exposureAlternative)); 1961 children.add(new Property("outcome", "Reference(ResearchElementDefinition)", "A reference to a ResearchElementDefinition resomece that defines the outcome for the research.", 0, 1, outcome)); 1962 } 1963 1964 @Override 1965 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1966 switch (_hash) { 1967 case 116079: /*url*/ return new Property("url", "uri", "An absolute URI that is used to identify this research 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 definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the research definition is stored on different servers.", 0, 1, url); 1968 case -1618432855: /*identifier*/ return new Property("identifier", "Identifier", "A formal identifier that is used to identify this research 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); 1969 case 351608024: /*version*/ return new Property("version", "string", "The identifier that is used to identify this version of the research definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the research 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); 1970 case 3373707: /*name*/ return new Property("name", "string", "A natural language name identifying the research definition. This name should be usable as an identifier for the module by machine processing applications such as code generation.", 0, 1, name); 1971 case 110371416: /*title*/ return new Property("title", "string", "A short, descriptive, user-friendly title for the research definition.", 0, 1, title); 1972 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); 1973 case -2060497896: /*subtitle*/ return new Property("subtitle", "string", "An explanatory or alternate title for the ResearchDefinition giving additional information about its content.", 0, 1, subtitle); 1974 case -892481550: /*status*/ return new Property("status", "code", "The status of this research definition. Enables tracking the life-cycle of the content.", 0, 1, status); 1975 case -404562712: /*experimental*/ return new Property("experimental", "boolean", "A Boolean value to indicate that this research definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.", 0, 1, experimental); 1976 case -573640748: /*subject[x]*/ return new Property("subject[x]", "CodeableConcept|Reference(Group)", "The intended subjects for the ResearchDefinition. If this element is not provided, a Patient subject is assumed, but the subject of the ResearchDefinition can be anything.", 0, 1, subject); 1977 case -1867885268: /*subject*/ return new Property("subject[x]", "CodeableConcept|Reference(Group)", "The intended subjects for the ResearchDefinition. If this element is not provided, a Patient subject is assumed, but the subject of the ResearchDefinition can be anything.", 0, 1, subject); 1978 case -1257122603: /*subjectCodeableConcept*/ return new Property("subject[x]", "CodeableConcept|Reference(Group)", "The intended subjects for the ResearchDefinition. If this element is not provided, a Patient subject is assumed, but the subject of the ResearchDefinition can be anything.", 0, 1, subject); 1979 case 772938623: /*subjectReference*/ return new Property("subject[x]", "CodeableConcept|Reference(Group)", "The intended subjects for the ResearchDefinition. If this element is not provided, a Patient subject is assumed, but the subject of the ResearchDefinition can be anything.", 0, 1, subject); 1980 case 3076014: /*date*/ return new Property("date", "dateTime", "The date (and optionally time) when the research 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 definition changes.", 0, 1, date); 1981 case 1447404028: /*publisher*/ return new Property("publisher", "string", "The name of the organization or individual that published the research definition.", 0, 1, publisher); 1982 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); 1983 case -1724546052: /*description*/ return new Property("description", "markdown", "A free text natural language description of the research definition from a consumer's perspective.", 0, 1, description); 1984 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); 1985 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 definition instances.", 0, java.lang.Integer.MAX_VALUE, useContext); 1986 case -507075711: /*jurisdiction*/ return new Property("jurisdiction", "CodeableConcept", "A legal or geographic region in which the research definition is intended to be used.", 0, java.lang.Integer.MAX_VALUE, jurisdiction); 1987 case -220463842: /*purpose*/ return new Property("purpose", "markdown", "Explanation of why this research definition is needed and why it has been designed as it has.", 0, 1, purpose); 1988 case 111574433: /*usage*/ return new Property("usage", "string", "A detailed description, from a clinical perspective, of how the ResearchDefinition is used.", 0, 1, usage); 1989 case 1522889671: /*copyright*/ return new Property("copyright", "markdown", "A copyright statement relating to the research definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the research definition.", 0, 1, copyright); 1990 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); 1991 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); 1992 case -403934648: /*effectivePeriod*/ return new Property("effectivePeriod", "Period", "The period during which the research definition content was or is planned to be in active use.", 0, 1, effectivePeriod); 1993 case 110546223: /*topic*/ return new Property("topic", "CodeableConcept", "Descriptive topics related to the content of the ResearchDefinition. Topics provide a high-level categorization grouping types of ResearchDefinitions that can be useful for filtering and searching.", 0, java.lang.Integer.MAX_VALUE, topic); 1994 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); 1995 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); 1996 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); 1997 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); 1998 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); 1999 case 166208699: /*library*/ return new Property("library", "canonical(Library)", "A reference to a Library resource containing the formal logic used by the ResearchDefinition.", 0, java.lang.Integer.MAX_VALUE, library); 2000 case -2023558323: /*population*/ return new Property("population", "Reference(ResearchElementDefinition)", "A reference to a ResearchElementDefinition resource that defines the population for the research.", 0, 1, population); 2001 case -1926005497: /*exposure*/ return new Property("exposure", "Reference(ResearchElementDefinition)", "A reference to a ResearchElementDefinition resource that defines the exposure for the research.", 0, 1, exposure); 2002 case -1875462106: /*exposureAlternative*/ return new Property("exposureAlternative", "Reference(ResearchElementDefinition)", "A reference to a ResearchElementDefinition resource that defines the exposureAlternative for the research.", 0, 1, exposureAlternative); 2003 case -1106507950: /*outcome*/ return new Property("outcome", "Reference(ResearchElementDefinition)", "A reference to a ResearchElementDefinition resomece that defines the outcome for the research.", 0, 1, outcome); 2004 default: return super.getNamedProperty(_hash, _name, _checkValid); 2005 } 2006 2007 } 2008 2009 @Override 2010 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2011 switch (hash) { 2012 case 116079: /*url*/ return this.url == null ? new Base[0] : new Base[] {this.url}; // UriType 2013 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 2014 case 351608024: /*version*/ return this.version == null ? new Base[0] : new Base[] {this.version}; // StringType 2015 case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType 2016 case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType 2017 case 1555503932: /*shortTitle*/ return this.shortTitle == null ? new Base[0] : new Base[] {this.shortTitle}; // StringType 2018 case -2060497896: /*subtitle*/ return this.subtitle == null ? new Base[0] : new Base[] {this.subtitle}; // StringType 2019 case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<PublicationStatus> 2020 case -404562712: /*experimental*/ return this.experimental == null ? new Base[0] : new Base[] {this.experimental}; // BooleanType 2021 case -1867885268: /*subject*/ return this.subject == null ? new Base[0] : new Base[] {this.subject}; // Type 2022 case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType 2023 case 1447404028: /*publisher*/ return this.publisher == null ? new Base[0] : new Base[] {this.publisher}; // StringType 2024 case 951526432: /*contact*/ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // ContactDetail 2025 case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType 2026 case 950398559: /*comment*/ return this.comment == null ? new Base[0] : this.comment.toArray(new Base[this.comment.size()]); // StringType 2027 case -669707736: /*useContext*/ return this.useContext == null ? new Base[0] : this.useContext.toArray(new Base[this.useContext.size()]); // UsageContext 2028 case -507075711: /*jurisdiction*/ return this.jurisdiction == null ? new Base[0] : this.jurisdiction.toArray(new Base[this.jurisdiction.size()]); // CodeableConcept 2029 case -220463842: /*purpose*/ return this.purpose == null ? new Base[0] : new Base[] {this.purpose}; // MarkdownType 2030 case 111574433: /*usage*/ return this.usage == null ? new Base[0] : new Base[] {this.usage}; // StringType 2031 case 1522889671: /*copyright*/ return this.copyright == null ? new Base[0] : new Base[] {this.copyright}; // MarkdownType 2032 case 223539345: /*approvalDate*/ return this.approvalDate == null ? new Base[0] : new Base[] {this.approvalDate}; // DateType 2033 case -1687512484: /*lastReviewDate*/ return this.lastReviewDate == null ? new Base[0] : new Base[] {this.lastReviewDate}; // DateType 2034 case -403934648: /*effectivePeriod*/ return this.effectivePeriod == null ? new Base[0] : new Base[] {this.effectivePeriod}; // Period 2035 case 110546223: /*topic*/ return this.topic == null ? new Base[0] : this.topic.toArray(new Base[this.topic.size()]); // CodeableConcept 2036 case -1406328437: /*author*/ return this.author == null ? new Base[0] : this.author.toArray(new Base[this.author.size()]); // ContactDetail 2037 case -1307827859: /*editor*/ return this.editor == null ? new Base[0] : this.editor.toArray(new Base[this.editor.size()]); // ContactDetail 2038 case -261190139: /*reviewer*/ return this.reviewer == null ? new Base[0] : this.reviewer.toArray(new Base[this.reviewer.size()]); // ContactDetail 2039 case 1740277666: /*endorser*/ return this.endorser == null ? new Base[0] : this.endorser.toArray(new Base[this.endorser.size()]); // ContactDetail 2040 case 666807069: /*relatedArtifact*/ return this.relatedArtifact == null ? new Base[0] : this.relatedArtifact.toArray(new Base[this.relatedArtifact.size()]); // RelatedArtifact 2041 case 166208699: /*library*/ return this.library == null ? new Base[0] : this.library.toArray(new Base[this.library.size()]); // CanonicalType 2042 case -2023558323: /*population*/ return this.population == null ? new Base[0] : new Base[] {this.population}; // Reference 2043 case -1926005497: /*exposure*/ return this.exposure == null ? new Base[0] : new Base[] {this.exposure}; // Reference 2044 case -1875462106: /*exposureAlternative*/ return this.exposureAlternative == null ? new Base[0] : new Base[] {this.exposureAlternative}; // Reference 2045 case -1106507950: /*outcome*/ return this.outcome == null ? new Base[0] : new Base[] {this.outcome}; // Reference 2046 default: return super.getProperty(hash, name, checkValid); 2047 } 2048 2049 } 2050 2051 @Override 2052 public Base setProperty(int hash, String name, Base value) throws FHIRException { 2053 switch (hash) { 2054 case 116079: // url 2055 this.url = castToUri(value); // UriType 2056 return value; 2057 case -1618432855: // identifier 2058 this.getIdentifier().add(castToIdentifier(value)); // Identifier 2059 return value; 2060 case 351608024: // version 2061 this.version = castToString(value); // StringType 2062 return value; 2063 case 3373707: // name 2064 this.name = castToString(value); // StringType 2065 return value; 2066 case 110371416: // title 2067 this.title = castToString(value); // StringType 2068 return value; 2069 case 1555503932: // shortTitle 2070 this.shortTitle = castToString(value); // StringType 2071 return value; 2072 case -2060497896: // subtitle 2073 this.subtitle = castToString(value); // StringType 2074 return value; 2075 case -892481550: // status 2076 value = new PublicationStatusEnumFactory().fromType(castToCode(value)); 2077 this.status = (Enumeration) value; // Enumeration<PublicationStatus> 2078 return value; 2079 case -404562712: // experimental 2080 this.experimental = castToBoolean(value); // BooleanType 2081 return value; 2082 case -1867885268: // subject 2083 this.subject = castToType(value); // Type 2084 return value; 2085 case 3076014: // date 2086 this.date = castToDateTime(value); // DateTimeType 2087 return value; 2088 case 1447404028: // publisher 2089 this.publisher = castToString(value); // StringType 2090 return value; 2091 case 951526432: // contact 2092 this.getContact().add(castToContactDetail(value)); // ContactDetail 2093 return value; 2094 case -1724546052: // description 2095 this.description = castToMarkdown(value); // MarkdownType 2096 return value; 2097 case 950398559: // comment 2098 this.getComment().add(castToString(value)); // StringType 2099 return value; 2100 case -669707736: // useContext 2101 this.getUseContext().add(castToUsageContext(value)); // UsageContext 2102 return value; 2103 case -507075711: // jurisdiction 2104 this.getJurisdiction().add(castToCodeableConcept(value)); // CodeableConcept 2105 return value; 2106 case -220463842: // purpose 2107 this.purpose = castToMarkdown(value); // MarkdownType 2108 return value; 2109 case 111574433: // usage 2110 this.usage = castToString(value); // StringType 2111 return value; 2112 case 1522889671: // copyright 2113 this.copyright = castToMarkdown(value); // MarkdownType 2114 return value; 2115 case 223539345: // approvalDate 2116 this.approvalDate = castToDate(value); // DateType 2117 return value; 2118 case -1687512484: // lastReviewDate 2119 this.lastReviewDate = castToDate(value); // DateType 2120 return value; 2121 case -403934648: // effectivePeriod 2122 this.effectivePeriod = castToPeriod(value); // Period 2123 return value; 2124 case 110546223: // topic 2125 this.getTopic().add(castToCodeableConcept(value)); // CodeableConcept 2126 return value; 2127 case -1406328437: // author 2128 this.getAuthor().add(castToContactDetail(value)); // ContactDetail 2129 return value; 2130 case -1307827859: // editor 2131 this.getEditor().add(castToContactDetail(value)); // ContactDetail 2132 return value; 2133 case -261190139: // reviewer 2134 this.getReviewer().add(castToContactDetail(value)); // ContactDetail 2135 return value; 2136 case 1740277666: // endorser 2137 this.getEndorser().add(castToContactDetail(value)); // ContactDetail 2138 return value; 2139 case 666807069: // relatedArtifact 2140 this.getRelatedArtifact().add(castToRelatedArtifact(value)); // RelatedArtifact 2141 return value; 2142 case 166208699: // library 2143 this.getLibrary().add(castToCanonical(value)); // CanonicalType 2144 return value; 2145 case -2023558323: // population 2146 this.population = castToReference(value); // Reference 2147 return value; 2148 case -1926005497: // exposure 2149 this.exposure = castToReference(value); // Reference 2150 return value; 2151 case -1875462106: // exposureAlternative 2152 this.exposureAlternative = castToReference(value); // Reference 2153 return value; 2154 case -1106507950: // outcome 2155 this.outcome = castToReference(value); // Reference 2156 return value; 2157 default: return super.setProperty(hash, name, value); 2158 } 2159 2160 } 2161 2162 @Override 2163 public Base setProperty(String name, Base value) throws FHIRException { 2164 if (name.equals("url")) { 2165 this.url = castToUri(value); // UriType 2166 } else if (name.equals("identifier")) { 2167 this.getIdentifier().add(castToIdentifier(value)); 2168 } else if (name.equals("version")) { 2169 this.version = castToString(value); // StringType 2170 } else if (name.equals("name")) { 2171 this.name = castToString(value); // StringType 2172 } else if (name.equals("title")) { 2173 this.title = castToString(value); // StringType 2174 } else if (name.equals("shortTitle")) { 2175 this.shortTitle = castToString(value); // StringType 2176 } else if (name.equals("subtitle")) { 2177 this.subtitle = castToString(value); // StringType 2178 } else if (name.equals("status")) { 2179 value = new PublicationStatusEnumFactory().fromType(castToCode(value)); 2180 this.status = (Enumeration) value; // Enumeration<PublicationStatus> 2181 } else if (name.equals("experimental")) { 2182 this.experimental = castToBoolean(value); // BooleanType 2183 } else if (name.equals("subject[x]")) { 2184 this.subject = castToType(value); // Type 2185 } else if (name.equals("date")) { 2186 this.date = castToDateTime(value); // DateTimeType 2187 } else if (name.equals("publisher")) { 2188 this.publisher = castToString(value); // StringType 2189 } else if (name.equals("contact")) { 2190 this.getContact().add(castToContactDetail(value)); 2191 } else if (name.equals("description")) { 2192 this.description = castToMarkdown(value); // MarkdownType 2193 } else if (name.equals("comment")) { 2194 this.getComment().add(castToString(value)); 2195 } else if (name.equals("useContext")) { 2196 this.getUseContext().add(castToUsageContext(value)); 2197 } else if (name.equals("jurisdiction")) { 2198 this.getJurisdiction().add(castToCodeableConcept(value)); 2199 } else if (name.equals("purpose")) { 2200 this.purpose = castToMarkdown(value); // MarkdownType 2201 } else if (name.equals("usage")) { 2202 this.usage = castToString(value); // StringType 2203 } else if (name.equals("copyright")) { 2204 this.copyright = castToMarkdown(value); // MarkdownType 2205 } else if (name.equals("approvalDate")) { 2206 this.approvalDate = castToDate(value); // DateType 2207 } else if (name.equals("lastReviewDate")) { 2208 this.lastReviewDate = castToDate(value); // DateType 2209 } else if (name.equals("effectivePeriod")) { 2210 this.effectivePeriod = castToPeriod(value); // Period 2211 } else if (name.equals("topic")) { 2212 this.getTopic().add(castToCodeableConcept(value)); 2213 } else if (name.equals("author")) { 2214 this.getAuthor().add(castToContactDetail(value)); 2215 } else if (name.equals("editor")) { 2216 this.getEditor().add(castToContactDetail(value)); 2217 } else if (name.equals("reviewer")) { 2218 this.getReviewer().add(castToContactDetail(value)); 2219 } else if (name.equals("endorser")) { 2220 this.getEndorser().add(castToContactDetail(value)); 2221 } else if (name.equals("relatedArtifact")) { 2222 this.getRelatedArtifact().add(castToRelatedArtifact(value)); 2223 } else if (name.equals("library")) { 2224 this.getLibrary().add(castToCanonical(value)); 2225 } else if (name.equals("population")) { 2226 this.population = castToReference(value); // Reference 2227 } else if (name.equals("exposure")) { 2228 this.exposure = castToReference(value); // Reference 2229 } else if (name.equals("exposureAlternative")) { 2230 this.exposureAlternative = castToReference(value); // Reference 2231 } else if (name.equals("outcome")) { 2232 this.outcome = castToReference(value); // Reference 2233 } else 2234 return super.setProperty(name, value); 2235 return value; 2236 } 2237 2238 @Override 2239 public Base makeProperty(int hash, String name) throws FHIRException { 2240 switch (hash) { 2241 case 116079: return getUrlElement(); 2242 case -1618432855: return addIdentifier(); 2243 case 351608024: return getVersionElement(); 2244 case 3373707: return getNameElement(); 2245 case 110371416: return getTitleElement(); 2246 case 1555503932: return getShortTitleElement(); 2247 case -2060497896: return getSubtitleElement(); 2248 case -892481550: return getStatusElement(); 2249 case -404562712: return getExperimentalElement(); 2250 case -573640748: return getSubject(); 2251 case -1867885268: return getSubject(); 2252 case 3076014: return getDateElement(); 2253 case 1447404028: return getPublisherElement(); 2254 case 951526432: return addContact(); 2255 case -1724546052: return getDescriptionElement(); 2256 case 950398559: return addCommentElement(); 2257 case -669707736: return addUseContext(); 2258 case -507075711: return addJurisdiction(); 2259 case -220463842: return getPurposeElement(); 2260 case 111574433: return getUsageElement(); 2261 case 1522889671: return getCopyrightElement(); 2262 case 223539345: return getApprovalDateElement(); 2263 case -1687512484: return getLastReviewDateElement(); 2264 case -403934648: return getEffectivePeriod(); 2265 case 110546223: return addTopic(); 2266 case -1406328437: return addAuthor(); 2267 case -1307827859: return addEditor(); 2268 case -261190139: return addReviewer(); 2269 case 1740277666: return addEndorser(); 2270 case 666807069: return addRelatedArtifact(); 2271 case 166208699: return addLibraryElement(); 2272 case -2023558323: return getPopulation(); 2273 case -1926005497: return getExposure(); 2274 case -1875462106: return getExposureAlternative(); 2275 case -1106507950: return getOutcome(); 2276 default: return super.makeProperty(hash, name); 2277 } 2278 2279 } 2280 2281 @Override 2282 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2283 switch (hash) { 2284 case 116079: /*url*/ return new String[] {"uri"}; 2285 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 2286 case 351608024: /*version*/ return new String[] {"string"}; 2287 case 3373707: /*name*/ return new String[] {"string"}; 2288 case 110371416: /*title*/ return new String[] {"string"}; 2289 case 1555503932: /*shortTitle*/ return new String[] {"string"}; 2290 case -2060497896: /*subtitle*/ return new String[] {"string"}; 2291 case -892481550: /*status*/ return new String[] {"code"}; 2292 case -404562712: /*experimental*/ return new String[] {"boolean"}; 2293 case -1867885268: /*subject*/ return new String[] {"CodeableConcept", "Reference"}; 2294 case 3076014: /*date*/ return new String[] {"dateTime"}; 2295 case 1447404028: /*publisher*/ return new String[] {"string"}; 2296 case 951526432: /*contact*/ return new String[] {"ContactDetail"}; 2297 case -1724546052: /*description*/ return new String[] {"markdown"}; 2298 case 950398559: /*comment*/ return new String[] {"string"}; 2299 case -669707736: /*useContext*/ return new String[] {"UsageContext"}; 2300 case -507075711: /*jurisdiction*/ return new String[] {"CodeableConcept"}; 2301 case -220463842: /*purpose*/ return new String[] {"markdown"}; 2302 case 111574433: /*usage*/ return new String[] {"string"}; 2303 case 1522889671: /*copyright*/ return new String[] {"markdown"}; 2304 case 223539345: /*approvalDate*/ return new String[] {"date"}; 2305 case -1687512484: /*lastReviewDate*/ return new String[] {"date"}; 2306 case -403934648: /*effectivePeriod*/ return new String[] {"Period"}; 2307 case 110546223: /*topic*/ return new String[] {"CodeableConcept"}; 2308 case -1406328437: /*author*/ return new String[] {"ContactDetail"}; 2309 case -1307827859: /*editor*/ return new String[] {"ContactDetail"}; 2310 case -261190139: /*reviewer*/ return new String[] {"ContactDetail"}; 2311 case 1740277666: /*endorser*/ return new String[] {"ContactDetail"}; 2312 case 666807069: /*relatedArtifact*/ return new String[] {"RelatedArtifact"}; 2313 case 166208699: /*library*/ return new String[] {"canonical"}; 2314 case -2023558323: /*population*/ return new String[] {"Reference"}; 2315 case -1926005497: /*exposure*/ return new String[] {"Reference"}; 2316 case -1875462106: /*exposureAlternative*/ return new String[] {"Reference"}; 2317 case -1106507950: /*outcome*/ return new String[] {"Reference"}; 2318 default: return super.getTypesForProperty(hash, name); 2319 } 2320 2321 } 2322 2323 @Override 2324 public Base addChild(String name) throws FHIRException { 2325 if (name.equals("url")) { 2326 throw new FHIRException("Cannot call addChild on a primitive type ResearchDefinition.url"); 2327 } 2328 else if (name.equals("identifier")) { 2329 return addIdentifier(); 2330 } 2331 else if (name.equals("version")) { 2332 throw new FHIRException("Cannot call addChild on a primitive type ResearchDefinition.version"); 2333 } 2334 else if (name.equals("name")) { 2335 throw new FHIRException("Cannot call addChild on a primitive type ResearchDefinition.name"); 2336 } 2337 else if (name.equals("title")) { 2338 throw new FHIRException("Cannot call addChild on a primitive type ResearchDefinition.title"); 2339 } 2340 else if (name.equals("shortTitle")) { 2341 throw new FHIRException("Cannot call addChild on a primitive type ResearchDefinition.shortTitle"); 2342 } 2343 else if (name.equals("subtitle")) { 2344 throw new FHIRException("Cannot call addChild on a primitive type ResearchDefinition.subtitle"); 2345 } 2346 else if (name.equals("status")) { 2347 throw new FHIRException("Cannot call addChild on a primitive type ResearchDefinition.status"); 2348 } 2349 else if (name.equals("experimental")) { 2350 throw new FHIRException("Cannot call addChild on a primitive type ResearchDefinition.experimental"); 2351 } 2352 else if (name.equals("subjectCodeableConcept")) { 2353 this.subject = new CodeableConcept(); 2354 return this.subject; 2355 } 2356 else if (name.equals("subjectReference")) { 2357 this.subject = new Reference(); 2358 return this.subject; 2359 } 2360 else if (name.equals("date")) { 2361 throw new FHIRException("Cannot call addChild on a primitive type ResearchDefinition.date"); 2362 } 2363 else if (name.equals("publisher")) { 2364 throw new FHIRException("Cannot call addChild on a primitive type ResearchDefinition.publisher"); 2365 } 2366 else if (name.equals("contact")) { 2367 return addContact(); 2368 } 2369 else if (name.equals("description")) { 2370 throw new FHIRException("Cannot call addChild on a primitive type ResearchDefinition.description"); 2371 } 2372 else if (name.equals("comment")) { 2373 throw new FHIRException("Cannot call addChild on a primitive type ResearchDefinition.comment"); 2374 } 2375 else if (name.equals("useContext")) { 2376 return addUseContext(); 2377 } 2378 else if (name.equals("jurisdiction")) { 2379 return addJurisdiction(); 2380 } 2381 else if (name.equals("purpose")) { 2382 throw new FHIRException("Cannot call addChild on a primitive type ResearchDefinition.purpose"); 2383 } 2384 else if (name.equals("usage")) { 2385 throw new FHIRException("Cannot call addChild on a primitive type ResearchDefinition.usage"); 2386 } 2387 else if (name.equals("copyright")) { 2388 throw new FHIRException("Cannot call addChild on a primitive type ResearchDefinition.copyright"); 2389 } 2390 else if (name.equals("approvalDate")) { 2391 throw new FHIRException("Cannot call addChild on a primitive type ResearchDefinition.approvalDate"); 2392 } 2393 else if (name.equals("lastReviewDate")) { 2394 throw new FHIRException("Cannot call addChild on a primitive type ResearchDefinition.lastReviewDate"); 2395 } 2396 else if (name.equals("effectivePeriod")) { 2397 this.effectivePeriod = new Period(); 2398 return this.effectivePeriod; 2399 } 2400 else if (name.equals("topic")) { 2401 return addTopic(); 2402 } 2403 else if (name.equals("author")) { 2404 return addAuthor(); 2405 } 2406 else if (name.equals("editor")) { 2407 return addEditor(); 2408 } 2409 else if (name.equals("reviewer")) { 2410 return addReviewer(); 2411 } 2412 else if (name.equals("endorser")) { 2413 return addEndorser(); 2414 } 2415 else if (name.equals("relatedArtifact")) { 2416 return addRelatedArtifact(); 2417 } 2418 else if (name.equals("library")) { 2419 throw new FHIRException("Cannot call addChild on a primitive type ResearchDefinition.library"); 2420 } 2421 else if (name.equals("population")) { 2422 this.population = new Reference(); 2423 return this.population; 2424 } 2425 else if (name.equals("exposure")) { 2426 this.exposure = new Reference(); 2427 return this.exposure; 2428 } 2429 else if (name.equals("exposureAlternative")) { 2430 this.exposureAlternative = new Reference(); 2431 return this.exposureAlternative; 2432 } 2433 else if (name.equals("outcome")) { 2434 this.outcome = new Reference(); 2435 return this.outcome; 2436 } 2437 else 2438 return super.addChild(name); 2439 } 2440 2441 public String fhirType() { 2442 return "ResearchDefinition"; 2443 2444 } 2445 2446 public ResearchDefinition copy() { 2447 ResearchDefinition dst = new ResearchDefinition(); 2448 copyValues(dst); 2449 dst.url = url == null ? null : url.copy(); 2450 if (identifier != null) { 2451 dst.identifier = new ArrayList<Identifier>(); 2452 for (Identifier i : identifier) 2453 dst.identifier.add(i.copy()); 2454 }; 2455 dst.version = version == null ? null : version.copy(); 2456 dst.name = name == null ? null : name.copy(); 2457 dst.title = title == null ? null : title.copy(); 2458 dst.shortTitle = shortTitle == null ? null : shortTitle.copy(); 2459 dst.subtitle = subtitle == null ? null : subtitle.copy(); 2460 dst.status = status == null ? null : status.copy(); 2461 dst.experimental = experimental == null ? null : experimental.copy(); 2462 dst.subject = subject == null ? null : subject.copy(); 2463 dst.date = date == null ? null : date.copy(); 2464 dst.publisher = publisher == null ? null : publisher.copy(); 2465 if (contact != null) { 2466 dst.contact = new ArrayList<ContactDetail>(); 2467 for (ContactDetail i : contact) 2468 dst.contact.add(i.copy()); 2469 }; 2470 dst.description = description == null ? null : description.copy(); 2471 if (comment != null) { 2472 dst.comment = new ArrayList<StringType>(); 2473 for (StringType i : comment) 2474 dst.comment.add(i.copy()); 2475 }; 2476 if (useContext != null) { 2477 dst.useContext = new ArrayList<UsageContext>(); 2478 for (UsageContext i : useContext) 2479 dst.useContext.add(i.copy()); 2480 }; 2481 if (jurisdiction != null) { 2482 dst.jurisdiction = new ArrayList<CodeableConcept>(); 2483 for (CodeableConcept i : jurisdiction) 2484 dst.jurisdiction.add(i.copy()); 2485 }; 2486 dst.purpose = purpose == null ? null : purpose.copy(); 2487 dst.usage = usage == null ? null : usage.copy(); 2488 dst.copyright = copyright == null ? null : copyright.copy(); 2489 dst.approvalDate = approvalDate == null ? null : approvalDate.copy(); 2490 dst.lastReviewDate = lastReviewDate == null ? null : lastReviewDate.copy(); 2491 dst.effectivePeriod = effectivePeriod == null ? null : effectivePeriod.copy(); 2492 if (topic != null) { 2493 dst.topic = new ArrayList<CodeableConcept>(); 2494 for (CodeableConcept i : topic) 2495 dst.topic.add(i.copy()); 2496 }; 2497 if (author != null) { 2498 dst.author = new ArrayList<ContactDetail>(); 2499 for (ContactDetail i : author) 2500 dst.author.add(i.copy()); 2501 }; 2502 if (editor != null) { 2503 dst.editor = new ArrayList<ContactDetail>(); 2504 for (ContactDetail i : editor) 2505 dst.editor.add(i.copy()); 2506 }; 2507 if (reviewer != null) { 2508 dst.reviewer = new ArrayList<ContactDetail>(); 2509 for (ContactDetail i : reviewer) 2510 dst.reviewer.add(i.copy()); 2511 }; 2512 if (endorser != null) { 2513 dst.endorser = new ArrayList<ContactDetail>(); 2514 for (ContactDetail i : endorser) 2515 dst.endorser.add(i.copy()); 2516 }; 2517 if (relatedArtifact != null) { 2518 dst.relatedArtifact = new ArrayList<RelatedArtifact>(); 2519 for (RelatedArtifact i : relatedArtifact) 2520 dst.relatedArtifact.add(i.copy()); 2521 }; 2522 if (library != null) { 2523 dst.library = new ArrayList<CanonicalType>(); 2524 for (CanonicalType i : library) 2525 dst.library.add(i.copy()); 2526 }; 2527 dst.population = population == null ? null : population.copy(); 2528 dst.exposure = exposure == null ? null : exposure.copy(); 2529 dst.exposureAlternative = exposureAlternative == null ? null : exposureAlternative.copy(); 2530 dst.outcome = outcome == null ? null : outcome.copy(); 2531 return dst; 2532 } 2533 2534 protected ResearchDefinition typedCopy() { 2535 return copy(); 2536 } 2537 2538 @Override 2539 public boolean equalsDeep(Base other_) { 2540 if (!super.equalsDeep(other_)) 2541 return false; 2542 if (!(other_ instanceof ResearchDefinition)) 2543 return false; 2544 ResearchDefinition o = (ResearchDefinition) other_; 2545 return compareDeep(identifier, o.identifier, true) && compareDeep(shortTitle, o.shortTitle, true) 2546 && compareDeep(subtitle, o.subtitle, true) && compareDeep(subject, o.subject, true) && compareDeep(comment, o.comment, true) 2547 && compareDeep(purpose, o.purpose, true) && compareDeep(usage, o.usage, true) && compareDeep(copyright, o.copyright, true) 2548 && compareDeep(approvalDate, o.approvalDate, true) && compareDeep(lastReviewDate, o.lastReviewDate, true) 2549 && compareDeep(effectivePeriod, o.effectivePeriod, true) && compareDeep(topic, o.topic, true) && compareDeep(author, o.author, true) 2550 && compareDeep(editor, o.editor, true) && compareDeep(reviewer, o.reviewer, true) && compareDeep(endorser, o.endorser, true) 2551 && compareDeep(relatedArtifact, o.relatedArtifact, true) && compareDeep(library, o.library, true) 2552 && compareDeep(population, o.population, true) && compareDeep(exposure, o.exposure, true) && compareDeep(exposureAlternative, o.exposureAlternative, true) 2553 && compareDeep(outcome, o.outcome, true); 2554 } 2555 2556 @Override 2557 public boolean equalsShallow(Base other_) { 2558 if (!super.equalsShallow(other_)) 2559 return false; 2560 if (!(other_ instanceof ResearchDefinition)) 2561 return false; 2562 ResearchDefinition o = (ResearchDefinition) other_; 2563 return compareValues(shortTitle, o.shortTitle, true) && compareValues(subtitle, o.subtitle, true) && compareValues(comment, o.comment, true) 2564 && compareValues(purpose, o.purpose, true) && compareValues(usage, o.usage, true) && compareValues(copyright, o.copyright, true) 2565 && compareValues(approvalDate, o.approvalDate, true) && compareValues(lastReviewDate, o.lastReviewDate, true) 2566 ; 2567 } 2568 2569 public boolean isEmpty() { 2570 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, shortTitle, subtitle 2571 , subject, comment, purpose, usage, copyright, approvalDate, lastReviewDate, effectivePeriod 2572 , topic, author, editor, reviewer, endorser, relatedArtifact, library, population 2573 , exposure, exposureAlternative, outcome); 2574 } 2575 2576 @Override 2577 public ResourceType getResourceType() { 2578 return ResourceType.ResearchDefinition; 2579 } 2580 2581 /** 2582 * Search parameter: <b>date</b> 2583 * <p> 2584 * Description: <b>The research definition publication date</b><br> 2585 * Type: <b>date</b><br> 2586 * Path: <b>ResearchDefinition.date</b><br> 2587 * </p> 2588 */ 2589 @SearchParamDefinition(name="date", path="ResearchDefinition.date", description="The research definition publication date", type="date" ) 2590 public static final String SP_DATE = "date"; 2591 /** 2592 * <b>Fluent Client</b> search parameter constant for <b>date</b> 2593 * <p> 2594 * Description: <b>The research definition publication date</b><br> 2595 * Type: <b>date</b><br> 2596 * Path: <b>ResearchDefinition.date</b><br> 2597 * </p> 2598 */ 2599 public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE); 2600 2601 /** 2602 * Search parameter: <b>identifier</b> 2603 * <p> 2604 * Description: <b>External identifier for the research definition</b><br> 2605 * Type: <b>token</b><br> 2606 * Path: <b>ResearchDefinition.identifier</b><br> 2607 * </p> 2608 */ 2609 @SearchParamDefinition(name="identifier", path="ResearchDefinition.identifier", description="External identifier for the research definition", type="token" ) 2610 public static final String SP_IDENTIFIER = "identifier"; 2611 /** 2612 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 2613 * <p> 2614 * Description: <b>External identifier for the research definition</b><br> 2615 * Type: <b>token</b><br> 2616 * Path: <b>ResearchDefinition.identifier</b><br> 2617 * </p> 2618 */ 2619 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 2620 2621 /** 2622 * Search parameter: <b>successor</b> 2623 * <p> 2624 * Description: <b>What resource is being referenced</b><br> 2625 * Type: <b>reference</b><br> 2626 * Path: <b>ResearchDefinition.relatedArtifact.resource</b><br> 2627 * </p> 2628 */ 2629 @SearchParamDefinition(name="successor", path="ResearchDefinition.relatedArtifact.where(type='successor').resource", description="What resource is being referenced", type="reference" ) 2630 public static final String SP_SUCCESSOR = "successor"; 2631 /** 2632 * <b>Fluent Client</b> search parameter constant for <b>successor</b> 2633 * <p> 2634 * Description: <b>What resource is being referenced</b><br> 2635 * Type: <b>reference</b><br> 2636 * Path: <b>ResearchDefinition.relatedArtifact.resource</b><br> 2637 * </p> 2638 */ 2639 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SUCCESSOR = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SUCCESSOR); 2640 2641/** 2642 * Constant for fluent queries to be used to add include statements. Specifies 2643 * the path value of "<b>ResearchDefinition:successor</b>". 2644 */ 2645 public static final ca.uhn.fhir.model.api.Include INCLUDE_SUCCESSOR = new ca.uhn.fhir.model.api.Include("ResearchDefinition:successor").toLocked(); 2646 2647 /** 2648 * Search parameter: <b>context-type-value</b> 2649 * <p> 2650 * Description: <b>A use context type and value assigned to the research definition</b><br> 2651 * Type: <b>composite</b><br> 2652 * Path: <b></b><br> 2653 * </p> 2654 */ 2655 @SearchParamDefinition(name="context-type-value", path="ResearchDefinition.useContext", description="A use context type and value assigned to the research definition", type="composite", compositeOf={"context-type", "context"} ) 2656 public static final String SP_CONTEXT_TYPE_VALUE = "context-type-value"; 2657 /** 2658 * <b>Fluent Client</b> search parameter constant for <b>context-type-value</b> 2659 * <p> 2660 * Description: <b>A use context type and value assigned to the research definition</b><br> 2661 * Type: <b>composite</b><br> 2662 * Path: <b></b><br> 2663 * </p> 2664 */ 2665 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); 2666 2667 /** 2668 * Search parameter: <b>jurisdiction</b> 2669 * <p> 2670 * Description: <b>Intended jurisdiction for the research definition</b><br> 2671 * Type: <b>token</b><br> 2672 * Path: <b>ResearchDefinition.jurisdiction</b><br> 2673 * </p> 2674 */ 2675 @SearchParamDefinition(name="jurisdiction", path="ResearchDefinition.jurisdiction", description="Intended jurisdiction for the research definition", type="token" ) 2676 public static final String SP_JURISDICTION = "jurisdiction"; 2677 /** 2678 * <b>Fluent Client</b> search parameter constant for <b>jurisdiction</b> 2679 * <p> 2680 * Description: <b>Intended jurisdiction for the research definition</b><br> 2681 * Type: <b>token</b><br> 2682 * Path: <b>ResearchDefinition.jurisdiction</b><br> 2683 * </p> 2684 */ 2685 public static final ca.uhn.fhir.rest.gclient.TokenClientParam JURISDICTION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_JURISDICTION); 2686 2687 /** 2688 * Search parameter: <b>description</b> 2689 * <p> 2690 * Description: <b>The description of the research definition</b><br> 2691 * Type: <b>string</b><br> 2692 * Path: <b>ResearchDefinition.description</b><br> 2693 * </p> 2694 */ 2695 @SearchParamDefinition(name="description", path="ResearchDefinition.description", description="The description of the research definition", type="string" ) 2696 public static final String SP_DESCRIPTION = "description"; 2697 /** 2698 * <b>Fluent Client</b> search parameter constant for <b>description</b> 2699 * <p> 2700 * Description: <b>The description of the research definition</b><br> 2701 * Type: <b>string</b><br> 2702 * Path: <b>ResearchDefinition.description</b><br> 2703 * </p> 2704 */ 2705 public static final ca.uhn.fhir.rest.gclient.StringClientParam DESCRIPTION = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_DESCRIPTION); 2706 2707 /** 2708 * Search parameter: <b>derived-from</b> 2709 * <p> 2710 * Description: <b>What resource is being referenced</b><br> 2711 * Type: <b>reference</b><br> 2712 * Path: <b>ResearchDefinition.relatedArtifact.resource</b><br> 2713 * </p> 2714 */ 2715 @SearchParamDefinition(name="derived-from", path="ResearchDefinition.relatedArtifact.where(type='derived-from').resource", description="What resource is being referenced", type="reference" ) 2716 public static final String SP_DERIVED_FROM = "derived-from"; 2717 /** 2718 * <b>Fluent Client</b> search parameter constant for <b>derived-from</b> 2719 * <p> 2720 * Description: <b>What resource is being referenced</b><br> 2721 * Type: <b>reference</b><br> 2722 * Path: <b>ResearchDefinition.relatedArtifact.resource</b><br> 2723 * </p> 2724 */ 2725 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam DERIVED_FROM = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_DERIVED_FROM); 2726 2727/** 2728 * Constant for fluent queries to be used to add include statements. Specifies 2729 * the path value of "<b>ResearchDefinition:derived-from</b>". 2730 */ 2731 public static final ca.uhn.fhir.model.api.Include INCLUDE_DERIVED_FROM = new ca.uhn.fhir.model.api.Include("ResearchDefinition:derived-from").toLocked(); 2732 2733 /** 2734 * Search parameter: <b>context-type</b> 2735 * <p> 2736 * Description: <b>A type of use context assigned to the research definition</b><br> 2737 * Type: <b>token</b><br> 2738 * Path: <b>ResearchDefinition.useContext.code</b><br> 2739 * </p> 2740 */ 2741 @SearchParamDefinition(name="context-type", path="ResearchDefinition.useContext.code", description="A type of use context assigned to the research definition", type="token" ) 2742 public static final String SP_CONTEXT_TYPE = "context-type"; 2743 /** 2744 * <b>Fluent Client</b> search parameter constant for <b>context-type</b> 2745 * <p> 2746 * Description: <b>A type of use context assigned to the research definition</b><br> 2747 * Type: <b>token</b><br> 2748 * Path: <b>ResearchDefinition.useContext.code</b><br> 2749 * </p> 2750 */ 2751 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT_TYPE); 2752 2753 /** 2754 * Search parameter: <b>predecessor</b> 2755 * <p> 2756 * Description: <b>What resource is being referenced</b><br> 2757 * Type: <b>reference</b><br> 2758 * Path: <b>ResearchDefinition.relatedArtifact.resource</b><br> 2759 * </p> 2760 */ 2761 @SearchParamDefinition(name="predecessor", path="ResearchDefinition.relatedArtifact.where(type='predecessor').resource", description="What resource is being referenced", type="reference" ) 2762 public static final String SP_PREDECESSOR = "predecessor"; 2763 /** 2764 * <b>Fluent Client</b> search parameter constant for <b>predecessor</b> 2765 * <p> 2766 * Description: <b>What resource is being referenced</b><br> 2767 * Type: <b>reference</b><br> 2768 * Path: <b>ResearchDefinition.relatedArtifact.resource</b><br> 2769 * </p> 2770 */ 2771 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PREDECESSOR = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PREDECESSOR); 2772 2773/** 2774 * Constant for fluent queries to be used to add include statements. Specifies 2775 * the path value of "<b>ResearchDefinition:predecessor</b>". 2776 */ 2777 public static final ca.uhn.fhir.model.api.Include INCLUDE_PREDECESSOR = new ca.uhn.fhir.model.api.Include("ResearchDefinition:predecessor").toLocked(); 2778 2779 /** 2780 * Search parameter: <b>title</b> 2781 * <p> 2782 * Description: <b>The human-friendly name of the research definition</b><br> 2783 * Type: <b>string</b><br> 2784 * Path: <b>ResearchDefinition.title</b><br> 2785 * </p> 2786 */ 2787 @SearchParamDefinition(name="title", path="ResearchDefinition.title", description="The human-friendly name of the research definition", type="string" ) 2788 public static final String SP_TITLE = "title"; 2789 /** 2790 * <b>Fluent Client</b> search parameter constant for <b>title</b> 2791 * <p> 2792 * Description: <b>The human-friendly name of the research definition</b><br> 2793 * Type: <b>string</b><br> 2794 * Path: <b>ResearchDefinition.title</b><br> 2795 * </p> 2796 */ 2797 public static final ca.uhn.fhir.rest.gclient.StringClientParam TITLE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_TITLE); 2798 2799 /** 2800 * Search parameter: <b>composed-of</b> 2801 * <p> 2802 * Description: <b>What resource is being referenced</b><br> 2803 * Type: <b>reference</b><br> 2804 * Path: <b>ResearchDefinition.relatedArtifact.resource</b><br> 2805 * </p> 2806 */ 2807 @SearchParamDefinition(name="composed-of", path="ResearchDefinition.relatedArtifact.where(type='composed-of').resource", description="What resource is being referenced", type="reference" ) 2808 public static final String SP_COMPOSED_OF = "composed-of"; 2809 /** 2810 * <b>Fluent Client</b> search parameter constant for <b>composed-of</b> 2811 * <p> 2812 * Description: <b>What resource is being referenced</b><br> 2813 * Type: <b>reference</b><br> 2814 * Path: <b>ResearchDefinition.relatedArtifact.resource</b><br> 2815 * </p> 2816 */ 2817 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam COMPOSED_OF = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_COMPOSED_OF); 2818 2819/** 2820 * Constant for fluent queries to be used to add include statements. Specifies 2821 * the path value of "<b>ResearchDefinition:composed-of</b>". 2822 */ 2823 public static final ca.uhn.fhir.model.api.Include INCLUDE_COMPOSED_OF = new ca.uhn.fhir.model.api.Include("ResearchDefinition:composed-of").toLocked(); 2824 2825 /** 2826 * Search parameter: <b>version</b> 2827 * <p> 2828 * Description: <b>The business version of the research definition</b><br> 2829 * Type: <b>token</b><br> 2830 * Path: <b>ResearchDefinition.version</b><br> 2831 * </p> 2832 */ 2833 @SearchParamDefinition(name="version", path="ResearchDefinition.version", description="The business version of the research definition", type="token" ) 2834 public static final String SP_VERSION = "version"; 2835 /** 2836 * <b>Fluent Client</b> search parameter constant for <b>version</b> 2837 * <p> 2838 * Description: <b>The business version of the research definition</b><br> 2839 * Type: <b>token</b><br> 2840 * Path: <b>ResearchDefinition.version</b><br> 2841 * </p> 2842 */ 2843 public static final ca.uhn.fhir.rest.gclient.TokenClientParam VERSION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_VERSION); 2844 2845 /** 2846 * Search parameter: <b>url</b> 2847 * <p> 2848 * Description: <b>The uri that identifies the research definition</b><br> 2849 * Type: <b>uri</b><br> 2850 * Path: <b>ResearchDefinition.url</b><br> 2851 * </p> 2852 */ 2853 @SearchParamDefinition(name="url", path="ResearchDefinition.url", description="The uri that identifies the research definition", type="uri" ) 2854 public static final String SP_URL = "url"; 2855 /** 2856 * <b>Fluent Client</b> search parameter constant for <b>url</b> 2857 * <p> 2858 * Description: <b>The uri that identifies the research definition</b><br> 2859 * Type: <b>uri</b><br> 2860 * Path: <b>ResearchDefinition.url</b><br> 2861 * </p> 2862 */ 2863 public static final ca.uhn.fhir.rest.gclient.UriClientParam URL = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_URL); 2864 2865 /** 2866 * Search parameter: <b>context-quantity</b> 2867 * <p> 2868 * Description: <b>A quantity- or range-valued use context assigned to the research definition</b><br> 2869 * Type: <b>quantity</b><br> 2870 * Path: <b>ResearchDefinition.useContext.valueQuantity, ResearchDefinition.useContext.valueRange</b><br> 2871 * </p> 2872 */ 2873 @SearchParamDefinition(name="context-quantity", path="(ResearchDefinition.useContext.value as Quantity) | (ResearchDefinition.useContext.value as Range)", description="A quantity- or range-valued use context assigned to the research definition", type="quantity" ) 2874 public static final String SP_CONTEXT_QUANTITY = "context-quantity"; 2875 /** 2876 * <b>Fluent Client</b> search parameter constant for <b>context-quantity</b> 2877 * <p> 2878 * Description: <b>A quantity- or range-valued use context assigned to the research definition</b><br> 2879 * Type: <b>quantity</b><br> 2880 * Path: <b>ResearchDefinition.useContext.valueQuantity, ResearchDefinition.useContext.valueRange</b><br> 2881 * </p> 2882 */ 2883 public static final ca.uhn.fhir.rest.gclient.QuantityClientParam CONTEXT_QUANTITY = new ca.uhn.fhir.rest.gclient.QuantityClientParam(SP_CONTEXT_QUANTITY); 2884 2885 /** 2886 * Search parameter: <b>effective</b> 2887 * <p> 2888 * Description: <b>The time during which the research definition is intended to be in use</b><br> 2889 * Type: <b>date</b><br> 2890 * Path: <b>ResearchDefinition.effectivePeriod</b><br> 2891 * </p> 2892 */ 2893 @SearchParamDefinition(name="effective", path="ResearchDefinition.effectivePeriod", description="The time during which the research definition is intended to be in use", type="date" ) 2894 public static final String SP_EFFECTIVE = "effective"; 2895 /** 2896 * <b>Fluent Client</b> search parameter constant for <b>effective</b> 2897 * <p> 2898 * Description: <b>The time during which the research definition is intended to be in use</b><br> 2899 * Type: <b>date</b><br> 2900 * Path: <b>ResearchDefinition.effectivePeriod</b><br> 2901 * </p> 2902 */ 2903 public static final ca.uhn.fhir.rest.gclient.DateClientParam EFFECTIVE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_EFFECTIVE); 2904 2905 /** 2906 * Search parameter: <b>depends-on</b> 2907 * <p> 2908 * Description: <b>What resource is being referenced</b><br> 2909 * Type: <b>reference</b><br> 2910 * Path: <b>ResearchDefinition.relatedArtifact.resource, ResearchDefinition.library</b><br> 2911 * </p> 2912 */ 2913 @SearchParamDefinition(name="depends-on", path="ResearchDefinition.relatedArtifact.where(type='depends-on').resource | ResearchDefinition.library", description="What resource is being referenced", type="reference" ) 2914 public static final String SP_DEPENDS_ON = "depends-on"; 2915 /** 2916 * <b>Fluent Client</b> search parameter constant for <b>depends-on</b> 2917 * <p> 2918 * Description: <b>What resource is being referenced</b><br> 2919 * Type: <b>reference</b><br> 2920 * Path: <b>ResearchDefinition.relatedArtifact.resource, ResearchDefinition.library</b><br> 2921 * </p> 2922 */ 2923 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam DEPENDS_ON = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_DEPENDS_ON); 2924 2925/** 2926 * Constant for fluent queries to be used to add include statements. Specifies 2927 * the path value of "<b>ResearchDefinition:depends-on</b>". 2928 */ 2929 public static final ca.uhn.fhir.model.api.Include INCLUDE_DEPENDS_ON = new ca.uhn.fhir.model.api.Include("ResearchDefinition:depends-on").toLocked(); 2930 2931 /** 2932 * Search parameter: <b>name</b> 2933 * <p> 2934 * Description: <b>Computationally friendly name of the research definition</b><br> 2935 * Type: <b>string</b><br> 2936 * Path: <b>ResearchDefinition.name</b><br> 2937 * </p> 2938 */ 2939 @SearchParamDefinition(name="name", path="ResearchDefinition.name", description="Computationally friendly name of the research definition", type="string" ) 2940 public static final String SP_NAME = "name"; 2941 /** 2942 * <b>Fluent Client</b> search parameter constant for <b>name</b> 2943 * <p> 2944 * Description: <b>Computationally friendly name of the research definition</b><br> 2945 * Type: <b>string</b><br> 2946 * Path: <b>ResearchDefinition.name</b><br> 2947 * </p> 2948 */ 2949 public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_NAME); 2950 2951 /** 2952 * Search parameter: <b>context</b> 2953 * <p> 2954 * Description: <b>A use context assigned to the research definition</b><br> 2955 * Type: <b>token</b><br> 2956 * Path: <b>ResearchDefinition.useContext.valueCodeableConcept</b><br> 2957 * </p> 2958 */ 2959 @SearchParamDefinition(name="context", path="(ResearchDefinition.useContext.value as CodeableConcept)", description="A use context assigned to the research definition", type="token" ) 2960 public static final String SP_CONTEXT = "context"; 2961 /** 2962 * <b>Fluent Client</b> search parameter constant for <b>context</b> 2963 * <p> 2964 * Description: <b>A use context assigned to the research definition</b><br> 2965 * Type: <b>token</b><br> 2966 * Path: <b>ResearchDefinition.useContext.valueCodeableConcept</b><br> 2967 * </p> 2968 */ 2969 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT); 2970 2971 /** 2972 * Search parameter: <b>publisher</b> 2973 * <p> 2974 * Description: <b>Name of the publisher of the research definition</b><br> 2975 * Type: <b>string</b><br> 2976 * Path: <b>ResearchDefinition.publisher</b><br> 2977 * </p> 2978 */ 2979 @SearchParamDefinition(name="publisher", path="ResearchDefinition.publisher", description="Name of the publisher of the research definition", type="string" ) 2980 public static final String SP_PUBLISHER = "publisher"; 2981 /** 2982 * <b>Fluent Client</b> search parameter constant for <b>publisher</b> 2983 * <p> 2984 * Description: <b>Name of the publisher of the research definition</b><br> 2985 * Type: <b>string</b><br> 2986 * Path: <b>ResearchDefinition.publisher</b><br> 2987 * </p> 2988 */ 2989 public static final ca.uhn.fhir.rest.gclient.StringClientParam PUBLISHER = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_PUBLISHER); 2990 2991 /** 2992 * Search parameter: <b>topic</b> 2993 * <p> 2994 * Description: <b>Topics associated with the ResearchDefinition</b><br> 2995 * Type: <b>token</b><br> 2996 * Path: <b>ResearchDefinition.topic</b><br> 2997 * </p> 2998 */ 2999 @SearchParamDefinition(name="topic", path="ResearchDefinition.topic", description="Topics associated with the ResearchDefinition", type="token" ) 3000 public static final String SP_TOPIC = "topic"; 3001 /** 3002 * <b>Fluent Client</b> search parameter constant for <b>topic</b> 3003 * <p> 3004 * Description: <b>Topics associated with the ResearchDefinition</b><br> 3005 * Type: <b>token</b><br> 3006 * Path: <b>ResearchDefinition.topic</b><br> 3007 * </p> 3008 */ 3009 public static final ca.uhn.fhir.rest.gclient.TokenClientParam TOPIC = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TOPIC); 3010 3011 /** 3012 * Search parameter: <b>context-type-quantity</b> 3013 * <p> 3014 * Description: <b>A use context type and quantity- or range-based value assigned to the research definition</b><br> 3015 * Type: <b>composite</b><br> 3016 * Path: <b></b><br> 3017 * </p> 3018 */ 3019 @SearchParamDefinition(name="context-type-quantity", path="ResearchDefinition.useContext", description="A use context type and quantity- or range-based value assigned to the research definition", type="composite", compositeOf={"context-type", "context-quantity"} ) 3020 public static final String SP_CONTEXT_TYPE_QUANTITY = "context-type-quantity"; 3021 /** 3022 * <b>Fluent Client</b> search parameter constant for <b>context-type-quantity</b> 3023 * <p> 3024 * Description: <b>A use context type and quantity- or range-based value assigned to the research definition</b><br> 3025 * Type: <b>composite</b><br> 3026 * Path: <b></b><br> 3027 * </p> 3028 */ 3029 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); 3030 3031 /** 3032 * Search parameter: <b>status</b> 3033 * <p> 3034 * Description: <b>The current status of the research definition</b><br> 3035 * Type: <b>token</b><br> 3036 * Path: <b>ResearchDefinition.status</b><br> 3037 * </p> 3038 */ 3039 @SearchParamDefinition(name="status", path="ResearchDefinition.status", description="The current status of the research definition", type="token" ) 3040 public static final String SP_STATUS = "status"; 3041 /** 3042 * <b>Fluent Client</b> search parameter constant for <b>status</b> 3043 * <p> 3044 * Description: <b>The current status of the research definition</b><br> 3045 * Type: <b>token</b><br> 3046 * Path: <b>ResearchDefinition.status</b><br> 3047 * </p> 3048 */ 3049 public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS); 3050 3051 3052} 3053