001package org.hl7.fhir.dstu3.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 Mon, Apr 17, 2017 17:38-0400 for FHIR v3.0.1 033 034import java.util.*; 035 036import org.hl7.fhir.utilities.Utilities; 037import org.hl7.fhir.dstu3.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 * A process where a researcher or organization plans and then executes a series of steps intended to increase the field of healthcare-related knowledge. This includes studies of safety, efficacy, comparative effectiveness and other information about medications, devices, therapies and other interventional and investigative techniques. A ResearchStudy involves the gathering of information about human or animal subjects. 048 */ 049@ResourceDef(name="ResearchStudy", profile="http://hl7.org/fhir/Profile/ResearchStudy") 050public class ResearchStudy extends DomainResource { 051 052 public enum ResearchStudyStatus { 053 /** 054 * The study is undergoing design but the process of selecting study subjects and capturing data has not yet begun. 055 */ 056 DRAFT, 057 /** 058 * The study is currently being executed 059 */ 060 INPROGRESS, 061 /** 062 * Execution of the study has been temporarily paused 063 */ 064 SUSPENDED, 065 /** 066 * The study was terminated prior to the final determination of results 067 */ 068 STOPPED, 069 /** 070 * The information sought by the study has been gathered and compiled and no further work is being performed 071 */ 072 COMPLETED, 073 /** 074 * This study never actually existed. The record is retained for tracking purposes in the event decisions may have been made based on this erroneous information. 075 */ 076 ENTEREDINERROR, 077 /** 078 * added to help the parsers with the generic types 079 */ 080 NULL; 081 public static ResearchStudyStatus fromCode(String codeString) throws FHIRException { 082 if (codeString == null || "".equals(codeString)) 083 return null; 084 if ("draft".equals(codeString)) 085 return DRAFT; 086 if ("in-progress".equals(codeString)) 087 return INPROGRESS; 088 if ("suspended".equals(codeString)) 089 return SUSPENDED; 090 if ("stopped".equals(codeString)) 091 return STOPPED; 092 if ("completed".equals(codeString)) 093 return COMPLETED; 094 if ("entered-in-error".equals(codeString)) 095 return ENTEREDINERROR; 096 if (Configuration.isAcceptInvalidEnums()) 097 return null; 098 else 099 throw new FHIRException("Unknown ResearchStudyStatus code '"+codeString+"'"); 100 } 101 public String toCode() { 102 switch (this) { 103 case DRAFT: return "draft"; 104 case INPROGRESS: return "in-progress"; 105 case SUSPENDED: return "suspended"; 106 case STOPPED: return "stopped"; 107 case COMPLETED: return "completed"; 108 case ENTEREDINERROR: return "entered-in-error"; 109 default: return "?"; 110 } 111 } 112 public String getSystem() { 113 switch (this) { 114 case DRAFT: return "http://hl7.org/fhir/research-study-status"; 115 case INPROGRESS: return "http://hl7.org/fhir/research-study-status"; 116 case SUSPENDED: return "http://hl7.org/fhir/research-study-status"; 117 case STOPPED: return "http://hl7.org/fhir/research-study-status"; 118 case COMPLETED: return "http://hl7.org/fhir/research-study-status"; 119 case ENTEREDINERROR: return "http://hl7.org/fhir/research-study-status"; 120 default: return "?"; 121 } 122 } 123 public String getDefinition() { 124 switch (this) { 125 case DRAFT: return "The study is undergoing design but the process of selecting study subjects and capturing data has not yet begun."; 126 case INPROGRESS: return "The study is currently being executed"; 127 case SUSPENDED: return "Execution of the study has been temporarily paused"; 128 case STOPPED: return "The study was terminated prior to the final determination of results"; 129 case COMPLETED: return "The information sought by the study has been gathered and compiled and no further work is being performed"; 130 case ENTEREDINERROR: return "This study never actually existed. The record is retained for tracking purposes in the event decisions may have been made based on this erroneous information."; 131 default: return "?"; 132 } 133 } 134 public String getDisplay() { 135 switch (this) { 136 case DRAFT: return "Draft"; 137 case INPROGRESS: return "In-progress"; 138 case SUSPENDED: return "Suspended"; 139 case STOPPED: return "Stopped"; 140 case COMPLETED: return "Completed"; 141 case ENTEREDINERROR: return "Entered in error"; 142 default: return "?"; 143 } 144 } 145 } 146 147 public static class ResearchStudyStatusEnumFactory implements EnumFactory<ResearchStudyStatus> { 148 public ResearchStudyStatus fromCode(String codeString) throws IllegalArgumentException { 149 if (codeString == null || "".equals(codeString)) 150 if (codeString == null || "".equals(codeString)) 151 return null; 152 if ("draft".equals(codeString)) 153 return ResearchStudyStatus.DRAFT; 154 if ("in-progress".equals(codeString)) 155 return ResearchStudyStatus.INPROGRESS; 156 if ("suspended".equals(codeString)) 157 return ResearchStudyStatus.SUSPENDED; 158 if ("stopped".equals(codeString)) 159 return ResearchStudyStatus.STOPPED; 160 if ("completed".equals(codeString)) 161 return ResearchStudyStatus.COMPLETED; 162 if ("entered-in-error".equals(codeString)) 163 return ResearchStudyStatus.ENTEREDINERROR; 164 throw new IllegalArgumentException("Unknown ResearchStudyStatus code '"+codeString+"'"); 165 } 166 public Enumeration<ResearchStudyStatus> fromType(Base code) throws FHIRException { 167 if (code == null) 168 return null; 169 if (code.isEmpty()) 170 return new Enumeration<ResearchStudyStatus>(this); 171 String codeString = ((PrimitiveType) code).asStringValue(); 172 if (codeString == null || "".equals(codeString)) 173 return null; 174 if ("draft".equals(codeString)) 175 return new Enumeration<ResearchStudyStatus>(this, ResearchStudyStatus.DRAFT); 176 if ("in-progress".equals(codeString)) 177 return new Enumeration<ResearchStudyStatus>(this, ResearchStudyStatus.INPROGRESS); 178 if ("suspended".equals(codeString)) 179 return new Enumeration<ResearchStudyStatus>(this, ResearchStudyStatus.SUSPENDED); 180 if ("stopped".equals(codeString)) 181 return new Enumeration<ResearchStudyStatus>(this, ResearchStudyStatus.STOPPED); 182 if ("completed".equals(codeString)) 183 return new Enumeration<ResearchStudyStatus>(this, ResearchStudyStatus.COMPLETED); 184 if ("entered-in-error".equals(codeString)) 185 return new Enumeration<ResearchStudyStatus>(this, ResearchStudyStatus.ENTEREDINERROR); 186 throw new FHIRException("Unknown ResearchStudyStatus code '"+codeString+"'"); 187 } 188 public String toCode(ResearchStudyStatus code) { 189 if (code == ResearchStudyStatus.DRAFT) 190 return "draft"; 191 if (code == ResearchStudyStatus.INPROGRESS) 192 return "in-progress"; 193 if (code == ResearchStudyStatus.SUSPENDED) 194 return "suspended"; 195 if (code == ResearchStudyStatus.STOPPED) 196 return "stopped"; 197 if (code == ResearchStudyStatus.COMPLETED) 198 return "completed"; 199 if (code == ResearchStudyStatus.ENTEREDINERROR) 200 return "entered-in-error"; 201 return "?"; 202 } 203 public String toSystem(ResearchStudyStatus code) { 204 return code.getSystem(); 205 } 206 } 207 208 @Block() 209 public static class ResearchStudyArmComponent extends BackboneElement implements IBaseBackboneElement { 210 /** 211 * Unique, human-readable label for this arm of the study. 212 */ 213 @Child(name = "name", type = {StringType.class}, order=1, min=1, max=1, modifier=false, summary=false) 214 @Description(shortDefinition="Label for study arm", formalDefinition="Unique, human-readable label for this arm of the study." ) 215 protected StringType name; 216 217 /** 218 * Categorization of study arm, e.g. experimental, active comparator, placebo comparater. 219 */ 220 @Child(name = "code", type = {CodeableConcept.class}, order=2, min=0, max=1, modifier=false, summary=false) 221 @Description(shortDefinition="Categorization of study arm", formalDefinition="Categorization of study arm, e.g. experimental, active comparator, placebo comparater." ) 222 protected CodeableConcept code; 223 224 /** 225 * A succinct description of the path through the study that would be followed by a subject adhering to this arm. 226 */ 227 @Child(name = "description", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=false) 228 @Description(shortDefinition="Short explanation of study path", formalDefinition="A succinct description of the path through the study that would be followed by a subject adhering to this arm." ) 229 protected StringType description; 230 231 private static final long serialVersionUID = 1433183343L; 232 233 /** 234 * Constructor 235 */ 236 public ResearchStudyArmComponent() { 237 super(); 238 } 239 240 /** 241 * Constructor 242 */ 243 public ResearchStudyArmComponent(StringType name) { 244 super(); 245 this.name = name; 246 } 247 248 /** 249 * @return {@link #name} (Unique, human-readable label for this arm of the study.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value 250 */ 251 public StringType getNameElement() { 252 if (this.name == null) 253 if (Configuration.errorOnAutoCreate()) 254 throw new Error("Attempt to auto-create ResearchStudyArmComponent.name"); 255 else if (Configuration.doAutoCreate()) 256 this.name = new StringType(); // bb 257 return this.name; 258 } 259 260 public boolean hasNameElement() { 261 return this.name != null && !this.name.isEmpty(); 262 } 263 264 public boolean hasName() { 265 return this.name != null && !this.name.isEmpty(); 266 } 267 268 /** 269 * @param value {@link #name} (Unique, human-readable label for this arm of the study.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value 270 */ 271 public ResearchStudyArmComponent setNameElement(StringType value) { 272 this.name = value; 273 return this; 274 } 275 276 /** 277 * @return Unique, human-readable label for this arm of the study. 278 */ 279 public String getName() { 280 return this.name == null ? null : this.name.getValue(); 281 } 282 283 /** 284 * @param value Unique, human-readable label for this arm of the study. 285 */ 286 public ResearchStudyArmComponent setName(String value) { 287 if (this.name == null) 288 this.name = new StringType(); 289 this.name.setValue(value); 290 return this; 291 } 292 293 /** 294 * @return {@link #code} (Categorization of study arm, e.g. experimental, active comparator, placebo comparater.) 295 */ 296 public CodeableConcept getCode() { 297 if (this.code == null) 298 if (Configuration.errorOnAutoCreate()) 299 throw new Error("Attempt to auto-create ResearchStudyArmComponent.code"); 300 else if (Configuration.doAutoCreate()) 301 this.code = new CodeableConcept(); // cc 302 return this.code; 303 } 304 305 public boolean hasCode() { 306 return this.code != null && !this.code.isEmpty(); 307 } 308 309 /** 310 * @param value {@link #code} (Categorization of study arm, e.g. experimental, active comparator, placebo comparater.) 311 */ 312 public ResearchStudyArmComponent setCode(CodeableConcept value) { 313 this.code = value; 314 return this; 315 } 316 317 /** 318 * @return {@link #description} (A succinct description of the path through the study that would be followed by a subject adhering to this arm.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 319 */ 320 public StringType getDescriptionElement() { 321 if (this.description == null) 322 if (Configuration.errorOnAutoCreate()) 323 throw new Error("Attempt to auto-create ResearchStudyArmComponent.description"); 324 else if (Configuration.doAutoCreate()) 325 this.description = new StringType(); // bb 326 return this.description; 327 } 328 329 public boolean hasDescriptionElement() { 330 return this.description != null && !this.description.isEmpty(); 331 } 332 333 public boolean hasDescription() { 334 return this.description != null && !this.description.isEmpty(); 335 } 336 337 /** 338 * @param value {@link #description} (A succinct description of the path through the study that would be followed by a subject adhering to this arm.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 339 */ 340 public ResearchStudyArmComponent setDescriptionElement(StringType value) { 341 this.description = value; 342 return this; 343 } 344 345 /** 346 * @return A succinct description of the path through the study that would be followed by a subject adhering to this arm. 347 */ 348 public String getDescription() { 349 return this.description == null ? null : this.description.getValue(); 350 } 351 352 /** 353 * @param value A succinct description of the path through the study that would be followed by a subject adhering to this arm. 354 */ 355 public ResearchStudyArmComponent setDescription(String value) { 356 if (Utilities.noString(value)) 357 this.description = null; 358 else { 359 if (this.description == null) 360 this.description = new StringType(); 361 this.description.setValue(value); 362 } 363 return this; 364 } 365 366 protected void listChildren(List<Property> childrenList) { 367 super.listChildren(childrenList); 368 childrenList.add(new Property("name", "string", "Unique, human-readable label for this arm of the study.", 0, java.lang.Integer.MAX_VALUE, name)); 369 childrenList.add(new Property("code", "CodeableConcept", "Categorization of study arm, e.g. experimental, active comparator, placebo comparater.", 0, java.lang.Integer.MAX_VALUE, code)); 370 childrenList.add(new Property("description", "string", "A succinct description of the path through the study that would be followed by a subject adhering to this arm.", 0, java.lang.Integer.MAX_VALUE, description)); 371 } 372 373 @Override 374 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 375 switch (hash) { 376 case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType 377 case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept 378 case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // StringType 379 default: return super.getProperty(hash, name, checkValid); 380 } 381 382 } 383 384 @Override 385 public Base setProperty(int hash, String name, Base value) throws FHIRException { 386 switch (hash) { 387 case 3373707: // name 388 this.name = castToString(value); // StringType 389 return value; 390 case 3059181: // code 391 this.code = castToCodeableConcept(value); // CodeableConcept 392 return value; 393 case -1724546052: // description 394 this.description = castToString(value); // StringType 395 return value; 396 default: return super.setProperty(hash, name, value); 397 } 398 399 } 400 401 @Override 402 public Base setProperty(String name, Base value) throws FHIRException { 403 if (name.equals("name")) { 404 this.name = castToString(value); // StringType 405 } else if (name.equals("code")) { 406 this.code = castToCodeableConcept(value); // CodeableConcept 407 } else if (name.equals("description")) { 408 this.description = castToString(value); // StringType 409 } else 410 return super.setProperty(name, value); 411 return value; 412 } 413 414 @Override 415 public Base makeProperty(int hash, String name) throws FHIRException { 416 switch (hash) { 417 case 3373707: return getNameElement(); 418 case 3059181: return getCode(); 419 case -1724546052: return getDescriptionElement(); 420 default: return super.makeProperty(hash, name); 421 } 422 423 } 424 425 @Override 426 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 427 switch (hash) { 428 case 3373707: /*name*/ return new String[] {"string"}; 429 case 3059181: /*code*/ return new String[] {"CodeableConcept"}; 430 case -1724546052: /*description*/ return new String[] {"string"}; 431 default: return super.getTypesForProperty(hash, name); 432 } 433 434 } 435 436 @Override 437 public Base addChild(String name) throws FHIRException { 438 if (name.equals("name")) { 439 throw new FHIRException("Cannot call addChild on a primitive type ResearchStudy.name"); 440 } 441 else if (name.equals("code")) { 442 this.code = new CodeableConcept(); 443 return this.code; 444 } 445 else if (name.equals("description")) { 446 throw new FHIRException("Cannot call addChild on a primitive type ResearchStudy.description"); 447 } 448 else 449 return super.addChild(name); 450 } 451 452 public ResearchStudyArmComponent copy() { 453 ResearchStudyArmComponent dst = new ResearchStudyArmComponent(); 454 copyValues(dst); 455 dst.name = name == null ? null : name.copy(); 456 dst.code = code == null ? null : code.copy(); 457 dst.description = description == null ? null : description.copy(); 458 return dst; 459 } 460 461 @Override 462 public boolean equalsDeep(Base other) { 463 if (!super.equalsDeep(other)) 464 return false; 465 if (!(other instanceof ResearchStudyArmComponent)) 466 return false; 467 ResearchStudyArmComponent o = (ResearchStudyArmComponent) other; 468 return compareDeep(name, o.name, true) && compareDeep(code, o.code, true) && compareDeep(description, o.description, true) 469 ; 470 } 471 472 @Override 473 public boolean equalsShallow(Base other) { 474 if (!super.equalsShallow(other)) 475 return false; 476 if (!(other instanceof ResearchStudyArmComponent)) 477 return false; 478 ResearchStudyArmComponent o = (ResearchStudyArmComponent) other; 479 return compareValues(name, o.name, true) && compareValues(description, o.description, true); 480 } 481 482 public boolean isEmpty() { 483 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(name, code, description 484 ); 485 } 486 487 public String fhirType() { 488 return "ResearchStudy.arm"; 489 490 } 491 492 } 493 494 /** 495 * Identifiers assigned to this research study by the sponsor or other systems. 496 */ 497 @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 498 @Description(shortDefinition="Business Identifier for study", formalDefinition="Identifiers assigned to this research study by the sponsor or other systems." ) 499 protected List<Identifier> identifier; 500 501 /** 502 * A short, descriptive user-friendly label for the study. 503 */ 504 @Child(name = "title", type = {StringType.class}, order=1, min=0, max=1, modifier=false, summary=true) 505 @Description(shortDefinition="Name for this study", formalDefinition="A short, descriptive user-friendly label for the study." ) 506 protected StringType title; 507 508 /** 509 * The set of steps expected to be performed as part of the execution of the study. 510 */ 511 @Child(name = "protocol", type = {PlanDefinition.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 512 @Description(shortDefinition="Steps followed in executing study", formalDefinition="The set of steps expected to be performed as part of the execution of the study." ) 513 protected List<Reference> protocol; 514 /** 515 * The actual objects that are the target of the reference (The set of steps expected to be performed as part of the execution of the study.) 516 */ 517 protected List<PlanDefinition> protocolTarget; 518 519 520 /** 521 * A larger research study of which this particular study is a component or step. 522 */ 523 @Child(name = "partOf", type = {ResearchStudy.class}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 524 @Description(shortDefinition="Part of larger study", formalDefinition="A larger research study of which this particular study is a component or step." ) 525 protected List<Reference> partOf; 526 /** 527 * The actual objects that are the target of the reference (A larger research study of which this particular study is a component or step.) 528 */ 529 protected List<ResearchStudy> partOfTarget; 530 531 532 /** 533 * The current state of the study. 534 */ 535 @Child(name = "status", type = {CodeType.class}, order=4, min=1, max=1, modifier=true, summary=true) 536 @Description(shortDefinition="draft | in-progress | suspended | stopped | completed | entered-in-error", formalDefinition="The current state of the study." ) 537 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/research-study-status") 538 protected Enumeration<ResearchStudyStatus> status; 539 540 /** 541 * Codes categorizing the type of study such as investigational vs. observational, type of blinding, type of randomization, safety vs. efficacy, etc. 542 */ 543 @Child(name = "category", type = {CodeableConcept.class}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 544 @Description(shortDefinition="Classifications for the study", formalDefinition="Codes categorizing the type of study such as investigational vs. observational, type of blinding, type of randomization, safety vs. efficacy, etc." ) 545 protected List<CodeableConcept> category; 546 547 /** 548 * The condition(s), medication(s), food(s), therapy(ies), device(s) or other concerns or interventions that the study is seeking to gain more information about. 549 */ 550 @Child(name = "focus", type = {CodeableConcept.class}, order=6, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 551 @Description(shortDefinition="Drugs, devices, conditions, etc. under study", formalDefinition="The condition(s), medication(s), food(s), therapy(ies), device(s) or other concerns or interventions that the study is seeking to gain more information about." ) 552 protected List<CodeableConcept> focus; 553 554 /** 555 * Contact details to assist a user in learning more about or engaging with the study. 556 */ 557 @Child(name = "contact", type = {ContactDetail.class}, order=7, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 558 @Description(shortDefinition="Contact details for the study", formalDefinition="Contact details to assist a user in learning more about or engaging with the study." ) 559 protected List<ContactDetail> contact; 560 561 /** 562 * Citations, references and other related documents. 563 */ 564 @Child(name = "relatedArtifact", type = {RelatedArtifact.class}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 565 @Description(shortDefinition="References and dependencies", formalDefinition="Citations, references and other related documents." ) 566 protected List<RelatedArtifact> relatedArtifact; 567 568 /** 569 * Key terms to aid in searching for or filtering the study. 570 */ 571 @Child(name = "keyword", type = {CodeableConcept.class}, order=9, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 572 @Description(shortDefinition="Used to search for the study", formalDefinition="Key terms to aid in searching for or filtering the study." ) 573 protected List<CodeableConcept> keyword; 574 575 /** 576 * Indicates a country, state or other region where the study is taking place. 577 */ 578 @Child(name = "jurisdiction", type = {CodeableConcept.class}, order=10, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 579 @Description(shortDefinition="Geographic region(s) for study", formalDefinition="Indicates a country, state or other region where the study is taking place." ) 580 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/jurisdiction") 581 protected List<CodeableConcept> jurisdiction; 582 583 /** 584 * A full description of how the study is being conducted. 585 */ 586 @Child(name = "description", type = {MarkdownType.class}, order=11, min=0, max=1, modifier=false, summary=false) 587 @Description(shortDefinition="What this is study doing", formalDefinition="A full description of how the study is being conducted." ) 588 protected MarkdownType description; 589 590 /** 591 * Reference to a Group that defines the criteria for and quantity of subjects participating in the study. E.g. " 200 female Europeans between the ages of 20 and 45 with early onset diabetes". 592 */ 593 @Child(name = "enrollment", type = {Group.class}, order=12, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 594 @Description(shortDefinition="Inclusion & exclusion criteria", formalDefinition="Reference to a Group that defines the criteria for and quantity of subjects participating in the study. E.g. \" 200 female Europeans between the ages of 20 and 45 with early onset diabetes\"." ) 595 protected List<Reference> enrollment; 596 /** 597 * The actual objects that are the target of the reference (Reference to a Group that defines the criteria for and quantity of subjects participating in the study. E.g. " 200 female Europeans between the ages of 20 and 45 with early onset diabetes".) 598 */ 599 protected List<Group> enrollmentTarget; 600 601 602 /** 603 * Identifies the start date and the expected (or actual, depending on status) end date for the study. 604 */ 605 @Child(name = "period", type = {Period.class}, order=13, min=0, max=1, modifier=false, summary=true) 606 @Description(shortDefinition="When the study began and ended", formalDefinition="Identifies the start date and the expected (or actual, depending on status) end date for the study." ) 607 protected Period period; 608 609 /** 610 * The organization responsible for the execution of the study. 611 */ 612 @Child(name = "sponsor", type = {Organization.class}, order=14, min=0, max=1, modifier=false, summary=true) 613 @Description(shortDefinition="Organization responsible for the study", formalDefinition="The organization responsible for the execution of the study." ) 614 protected Reference sponsor; 615 616 /** 617 * The actual object that is the target of the reference (The organization responsible for the execution of the study.) 618 */ 619 protected Organization sponsorTarget; 620 621 /** 622 * Indicates the individual who has primary oversite of the execution of the study. 623 */ 624 @Child(name = "principalInvestigator", type = {Practitioner.class}, order=15, min=0, max=1, modifier=false, summary=true) 625 @Description(shortDefinition="The individual responsible for the study", formalDefinition="Indicates the individual who has primary oversite of the execution of the study." ) 626 protected Reference principalInvestigator; 627 628 /** 629 * The actual object that is the target of the reference (Indicates the individual who has primary oversite of the execution of the study.) 630 */ 631 protected Practitioner principalInvestigatorTarget; 632 633 /** 634 * Clinic, hospital or other healthcare location that is participating in the study. 635 */ 636 @Child(name = "site", type = {Location.class}, order=16, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 637 @Description(shortDefinition="Location involved in study execution", formalDefinition="Clinic, hospital or other healthcare location that is participating in the study." ) 638 protected List<Reference> site; 639 /** 640 * The actual objects that are the target of the reference (Clinic, hospital or other healthcare location that is participating in the study.) 641 */ 642 protected List<Location> siteTarget; 643 644 645 /** 646 * A description and/or code explaining the premature termination of the study. 647 */ 648 @Child(name = "reasonStopped", type = {CodeableConcept.class}, order=17, min=0, max=1, modifier=false, summary=true) 649 @Description(shortDefinition="Reason for terminating study early", formalDefinition="A description and/or code explaining the premature termination of the study." ) 650 protected CodeableConcept reasonStopped; 651 652 /** 653 * Comments made about the event by the performer, subject or other participants. 654 */ 655 @Child(name = "note", type = {Annotation.class}, order=18, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 656 @Description(shortDefinition="Comments made about the event", formalDefinition="Comments made about the event by the performer, subject or other participants." ) 657 protected List<Annotation> note; 658 659 /** 660 * Describes an expected sequence of events for one of the participants of a study. E.g. Exposure to drug A, wash-out, exposure to drug B, wash-out, follow-up. 661 */ 662 @Child(name = "arm", type = {}, order=19, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 663 @Description(shortDefinition="Defined path through the study for a subject", formalDefinition="Describes an expected sequence of events for one of the participants of a study. E.g. Exposure to drug A, wash-out, exposure to drug B, wash-out, follow-up." ) 664 protected List<ResearchStudyArmComponent> arm; 665 666 private static final long serialVersionUID = -1804662501L; 667 668 /** 669 * Constructor 670 */ 671 public ResearchStudy() { 672 super(); 673 } 674 675 /** 676 * Constructor 677 */ 678 public ResearchStudy(Enumeration<ResearchStudyStatus> status) { 679 super(); 680 this.status = status; 681 } 682 683 /** 684 * @return {@link #identifier} (Identifiers assigned to this research study by the sponsor or other systems.) 685 */ 686 public List<Identifier> getIdentifier() { 687 if (this.identifier == null) 688 this.identifier = new ArrayList<Identifier>(); 689 return this.identifier; 690 } 691 692 /** 693 * @return Returns a reference to <code>this</code> for easy method chaining 694 */ 695 public ResearchStudy setIdentifier(List<Identifier> theIdentifier) { 696 this.identifier = theIdentifier; 697 return this; 698 } 699 700 public boolean hasIdentifier() { 701 if (this.identifier == null) 702 return false; 703 for (Identifier item : this.identifier) 704 if (!item.isEmpty()) 705 return true; 706 return false; 707 } 708 709 public Identifier addIdentifier() { //3 710 Identifier t = new Identifier(); 711 if (this.identifier == null) 712 this.identifier = new ArrayList<Identifier>(); 713 this.identifier.add(t); 714 return t; 715 } 716 717 public ResearchStudy addIdentifier(Identifier t) { //3 718 if (t == null) 719 return this; 720 if (this.identifier == null) 721 this.identifier = new ArrayList<Identifier>(); 722 this.identifier.add(t); 723 return this; 724 } 725 726 /** 727 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist 728 */ 729 public Identifier getIdentifierFirstRep() { 730 if (getIdentifier().isEmpty()) { 731 addIdentifier(); 732 } 733 return getIdentifier().get(0); 734 } 735 736 /** 737 * @return {@link #title} (A short, descriptive user-friendly label for the study.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value 738 */ 739 public StringType getTitleElement() { 740 if (this.title == null) 741 if (Configuration.errorOnAutoCreate()) 742 throw new Error("Attempt to auto-create ResearchStudy.title"); 743 else if (Configuration.doAutoCreate()) 744 this.title = new StringType(); // bb 745 return this.title; 746 } 747 748 public boolean hasTitleElement() { 749 return this.title != null && !this.title.isEmpty(); 750 } 751 752 public boolean hasTitle() { 753 return this.title != null && !this.title.isEmpty(); 754 } 755 756 /** 757 * @param value {@link #title} (A short, descriptive user-friendly label for the study.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value 758 */ 759 public ResearchStudy setTitleElement(StringType value) { 760 this.title = value; 761 return this; 762 } 763 764 /** 765 * @return A short, descriptive user-friendly label for the study. 766 */ 767 public String getTitle() { 768 return this.title == null ? null : this.title.getValue(); 769 } 770 771 /** 772 * @param value A short, descriptive user-friendly label for the study. 773 */ 774 public ResearchStudy setTitle(String value) { 775 if (Utilities.noString(value)) 776 this.title = null; 777 else { 778 if (this.title == null) 779 this.title = new StringType(); 780 this.title.setValue(value); 781 } 782 return this; 783 } 784 785 /** 786 * @return {@link #protocol} (The set of steps expected to be performed as part of the execution of the study.) 787 */ 788 public List<Reference> getProtocol() { 789 if (this.protocol == null) 790 this.protocol = new ArrayList<Reference>(); 791 return this.protocol; 792 } 793 794 /** 795 * @return Returns a reference to <code>this</code> for easy method chaining 796 */ 797 public ResearchStudy setProtocol(List<Reference> theProtocol) { 798 this.protocol = theProtocol; 799 return this; 800 } 801 802 public boolean hasProtocol() { 803 if (this.protocol == null) 804 return false; 805 for (Reference item : this.protocol) 806 if (!item.isEmpty()) 807 return true; 808 return false; 809 } 810 811 public Reference addProtocol() { //3 812 Reference t = new Reference(); 813 if (this.protocol == null) 814 this.protocol = new ArrayList<Reference>(); 815 this.protocol.add(t); 816 return t; 817 } 818 819 public ResearchStudy addProtocol(Reference t) { //3 820 if (t == null) 821 return this; 822 if (this.protocol == null) 823 this.protocol = new ArrayList<Reference>(); 824 this.protocol.add(t); 825 return this; 826 } 827 828 /** 829 * @return The first repetition of repeating field {@link #protocol}, creating it if it does not already exist 830 */ 831 public Reference getProtocolFirstRep() { 832 if (getProtocol().isEmpty()) { 833 addProtocol(); 834 } 835 return getProtocol().get(0); 836 } 837 838 /** 839 * @deprecated Use Reference#setResource(IBaseResource) instead 840 */ 841 @Deprecated 842 public List<PlanDefinition> getProtocolTarget() { 843 if (this.protocolTarget == null) 844 this.protocolTarget = new ArrayList<PlanDefinition>(); 845 return this.protocolTarget; 846 } 847 848 /** 849 * @deprecated Use Reference#setResource(IBaseResource) instead 850 */ 851 @Deprecated 852 public PlanDefinition addProtocolTarget() { 853 PlanDefinition r = new PlanDefinition(); 854 if (this.protocolTarget == null) 855 this.protocolTarget = new ArrayList<PlanDefinition>(); 856 this.protocolTarget.add(r); 857 return r; 858 } 859 860 /** 861 * @return {@link #partOf} (A larger research study of which this particular study is a component or step.) 862 */ 863 public List<Reference> getPartOf() { 864 if (this.partOf == null) 865 this.partOf = new ArrayList<Reference>(); 866 return this.partOf; 867 } 868 869 /** 870 * @return Returns a reference to <code>this</code> for easy method chaining 871 */ 872 public ResearchStudy setPartOf(List<Reference> thePartOf) { 873 this.partOf = thePartOf; 874 return this; 875 } 876 877 public boolean hasPartOf() { 878 if (this.partOf == null) 879 return false; 880 for (Reference item : this.partOf) 881 if (!item.isEmpty()) 882 return true; 883 return false; 884 } 885 886 public Reference addPartOf() { //3 887 Reference t = new Reference(); 888 if (this.partOf == null) 889 this.partOf = new ArrayList<Reference>(); 890 this.partOf.add(t); 891 return t; 892 } 893 894 public ResearchStudy addPartOf(Reference t) { //3 895 if (t == null) 896 return this; 897 if (this.partOf == null) 898 this.partOf = new ArrayList<Reference>(); 899 this.partOf.add(t); 900 return this; 901 } 902 903 /** 904 * @return The first repetition of repeating field {@link #partOf}, creating it if it does not already exist 905 */ 906 public Reference getPartOfFirstRep() { 907 if (getPartOf().isEmpty()) { 908 addPartOf(); 909 } 910 return getPartOf().get(0); 911 } 912 913 /** 914 * @deprecated Use Reference#setResource(IBaseResource) instead 915 */ 916 @Deprecated 917 public List<ResearchStudy> getPartOfTarget() { 918 if (this.partOfTarget == null) 919 this.partOfTarget = new ArrayList<ResearchStudy>(); 920 return this.partOfTarget; 921 } 922 923 /** 924 * @deprecated Use Reference#setResource(IBaseResource) instead 925 */ 926 @Deprecated 927 public ResearchStudy addPartOfTarget() { 928 ResearchStudy r = new ResearchStudy(); 929 if (this.partOfTarget == null) 930 this.partOfTarget = new ArrayList<ResearchStudy>(); 931 this.partOfTarget.add(r); 932 return r; 933 } 934 935 /** 936 * @return {@link #status} (The current state of the study.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 937 */ 938 public Enumeration<ResearchStudyStatus> getStatusElement() { 939 if (this.status == null) 940 if (Configuration.errorOnAutoCreate()) 941 throw new Error("Attempt to auto-create ResearchStudy.status"); 942 else if (Configuration.doAutoCreate()) 943 this.status = new Enumeration<ResearchStudyStatus>(new ResearchStudyStatusEnumFactory()); // bb 944 return this.status; 945 } 946 947 public boolean hasStatusElement() { 948 return this.status != null && !this.status.isEmpty(); 949 } 950 951 public boolean hasStatus() { 952 return this.status != null && !this.status.isEmpty(); 953 } 954 955 /** 956 * @param value {@link #status} (The current state of the study.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 957 */ 958 public ResearchStudy setStatusElement(Enumeration<ResearchStudyStatus> value) { 959 this.status = value; 960 return this; 961 } 962 963 /** 964 * @return The current state of the study. 965 */ 966 public ResearchStudyStatus getStatus() { 967 return this.status == null ? null : this.status.getValue(); 968 } 969 970 /** 971 * @param value The current state of the study. 972 */ 973 public ResearchStudy setStatus(ResearchStudyStatus value) { 974 if (this.status == null) 975 this.status = new Enumeration<ResearchStudyStatus>(new ResearchStudyStatusEnumFactory()); 976 this.status.setValue(value); 977 return this; 978 } 979 980 /** 981 * @return {@link #category} (Codes categorizing the type of study such as investigational vs. observational, type of blinding, type of randomization, safety vs. efficacy, etc.) 982 */ 983 public List<CodeableConcept> getCategory() { 984 if (this.category == null) 985 this.category = new ArrayList<CodeableConcept>(); 986 return this.category; 987 } 988 989 /** 990 * @return Returns a reference to <code>this</code> for easy method chaining 991 */ 992 public ResearchStudy setCategory(List<CodeableConcept> theCategory) { 993 this.category = theCategory; 994 return this; 995 } 996 997 public boolean hasCategory() { 998 if (this.category == null) 999 return false; 1000 for (CodeableConcept item : this.category) 1001 if (!item.isEmpty()) 1002 return true; 1003 return false; 1004 } 1005 1006 public CodeableConcept addCategory() { //3 1007 CodeableConcept t = new CodeableConcept(); 1008 if (this.category == null) 1009 this.category = new ArrayList<CodeableConcept>(); 1010 this.category.add(t); 1011 return t; 1012 } 1013 1014 public ResearchStudy addCategory(CodeableConcept t) { //3 1015 if (t == null) 1016 return this; 1017 if (this.category == null) 1018 this.category = new ArrayList<CodeableConcept>(); 1019 this.category.add(t); 1020 return this; 1021 } 1022 1023 /** 1024 * @return The first repetition of repeating field {@link #category}, creating it if it does not already exist 1025 */ 1026 public CodeableConcept getCategoryFirstRep() { 1027 if (getCategory().isEmpty()) { 1028 addCategory(); 1029 } 1030 return getCategory().get(0); 1031 } 1032 1033 /** 1034 * @return {@link #focus} (The condition(s), medication(s), food(s), therapy(ies), device(s) or other concerns or interventions that the study is seeking to gain more information about.) 1035 */ 1036 public List<CodeableConcept> getFocus() { 1037 if (this.focus == null) 1038 this.focus = new ArrayList<CodeableConcept>(); 1039 return this.focus; 1040 } 1041 1042 /** 1043 * @return Returns a reference to <code>this</code> for easy method chaining 1044 */ 1045 public ResearchStudy setFocus(List<CodeableConcept> theFocus) { 1046 this.focus = theFocus; 1047 return this; 1048 } 1049 1050 public boolean hasFocus() { 1051 if (this.focus == null) 1052 return false; 1053 for (CodeableConcept item : this.focus) 1054 if (!item.isEmpty()) 1055 return true; 1056 return false; 1057 } 1058 1059 public CodeableConcept addFocus() { //3 1060 CodeableConcept t = new CodeableConcept(); 1061 if (this.focus == null) 1062 this.focus = new ArrayList<CodeableConcept>(); 1063 this.focus.add(t); 1064 return t; 1065 } 1066 1067 public ResearchStudy addFocus(CodeableConcept t) { //3 1068 if (t == null) 1069 return this; 1070 if (this.focus == null) 1071 this.focus = new ArrayList<CodeableConcept>(); 1072 this.focus.add(t); 1073 return this; 1074 } 1075 1076 /** 1077 * @return The first repetition of repeating field {@link #focus}, creating it if it does not already exist 1078 */ 1079 public CodeableConcept getFocusFirstRep() { 1080 if (getFocus().isEmpty()) { 1081 addFocus(); 1082 } 1083 return getFocus().get(0); 1084 } 1085 1086 /** 1087 * @return {@link #contact} (Contact details to assist a user in learning more about or engaging with the study.) 1088 */ 1089 public List<ContactDetail> getContact() { 1090 if (this.contact == null) 1091 this.contact = new ArrayList<ContactDetail>(); 1092 return this.contact; 1093 } 1094 1095 /** 1096 * @return Returns a reference to <code>this</code> for easy method chaining 1097 */ 1098 public ResearchStudy setContact(List<ContactDetail> theContact) { 1099 this.contact = theContact; 1100 return this; 1101 } 1102 1103 public boolean hasContact() { 1104 if (this.contact == null) 1105 return false; 1106 for (ContactDetail item : this.contact) 1107 if (!item.isEmpty()) 1108 return true; 1109 return false; 1110 } 1111 1112 public ContactDetail addContact() { //3 1113 ContactDetail t = new ContactDetail(); 1114 if (this.contact == null) 1115 this.contact = new ArrayList<ContactDetail>(); 1116 this.contact.add(t); 1117 return t; 1118 } 1119 1120 public ResearchStudy addContact(ContactDetail t) { //3 1121 if (t == null) 1122 return this; 1123 if (this.contact == null) 1124 this.contact = new ArrayList<ContactDetail>(); 1125 this.contact.add(t); 1126 return this; 1127 } 1128 1129 /** 1130 * @return The first repetition of repeating field {@link #contact}, creating it if it does not already exist 1131 */ 1132 public ContactDetail getContactFirstRep() { 1133 if (getContact().isEmpty()) { 1134 addContact(); 1135 } 1136 return getContact().get(0); 1137 } 1138 1139 /** 1140 * @return {@link #relatedArtifact} (Citations, references and other related documents.) 1141 */ 1142 public List<RelatedArtifact> getRelatedArtifact() { 1143 if (this.relatedArtifact == null) 1144 this.relatedArtifact = new ArrayList<RelatedArtifact>(); 1145 return this.relatedArtifact; 1146 } 1147 1148 /** 1149 * @return Returns a reference to <code>this</code> for easy method chaining 1150 */ 1151 public ResearchStudy setRelatedArtifact(List<RelatedArtifact> theRelatedArtifact) { 1152 this.relatedArtifact = theRelatedArtifact; 1153 return this; 1154 } 1155 1156 public boolean hasRelatedArtifact() { 1157 if (this.relatedArtifact == null) 1158 return false; 1159 for (RelatedArtifact item : this.relatedArtifact) 1160 if (!item.isEmpty()) 1161 return true; 1162 return false; 1163 } 1164 1165 public RelatedArtifact addRelatedArtifact() { //3 1166 RelatedArtifact t = new RelatedArtifact(); 1167 if (this.relatedArtifact == null) 1168 this.relatedArtifact = new ArrayList<RelatedArtifact>(); 1169 this.relatedArtifact.add(t); 1170 return t; 1171 } 1172 1173 public ResearchStudy addRelatedArtifact(RelatedArtifact t) { //3 1174 if (t == null) 1175 return this; 1176 if (this.relatedArtifact == null) 1177 this.relatedArtifact = new ArrayList<RelatedArtifact>(); 1178 this.relatedArtifact.add(t); 1179 return this; 1180 } 1181 1182 /** 1183 * @return The first repetition of repeating field {@link #relatedArtifact}, creating it if it does not already exist 1184 */ 1185 public RelatedArtifact getRelatedArtifactFirstRep() { 1186 if (getRelatedArtifact().isEmpty()) { 1187 addRelatedArtifact(); 1188 } 1189 return getRelatedArtifact().get(0); 1190 } 1191 1192 /** 1193 * @return {@link #keyword} (Key terms to aid in searching for or filtering the study.) 1194 */ 1195 public List<CodeableConcept> getKeyword() { 1196 if (this.keyword == null) 1197 this.keyword = new ArrayList<CodeableConcept>(); 1198 return this.keyword; 1199 } 1200 1201 /** 1202 * @return Returns a reference to <code>this</code> for easy method chaining 1203 */ 1204 public ResearchStudy setKeyword(List<CodeableConcept> theKeyword) { 1205 this.keyword = theKeyword; 1206 return this; 1207 } 1208 1209 public boolean hasKeyword() { 1210 if (this.keyword == null) 1211 return false; 1212 for (CodeableConcept item : this.keyword) 1213 if (!item.isEmpty()) 1214 return true; 1215 return false; 1216 } 1217 1218 public CodeableConcept addKeyword() { //3 1219 CodeableConcept t = new CodeableConcept(); 1220 if (this.keyword == null) 1221 this.keyword = new ArrayList<CodeableConcept>(); 1222 this.keyword.add(t); 1223 return t; 1224 } 1225 1226 public ResearchStudy addKeyword(CodeableConcept t) { //3 1227 if (t == null) 1228 return this; 1229 if (this.keyword == null) 1230 this.keyword = new ArrayList<CodeableConcept>(); 1231 this.keyword.add(t); 1232 return this; 1233 } 1234 1235 /** 1236 * @return The first repetition of repeating field {@link #keyword}, creating it if it does not already exist 1237 */ 1238 public CodeableConcept getKeywordFirstRep() { 1239 if (getKeyword().isEmpty()) { 1240 addKeyword(); 1241 } 1242 return getKeyword().get(0); 1243 } 1244 1245 /** 1246 * @return {@link #jurisdiction} (Indicates a country, state or other region where the study is taking place.) 1247 */ 1248 public List<CodeableConcept> getJurisdiction() { 1249 if (this.jurisdiction == null) 1250 this.jurisdiction = new ArrayList<CodeableConcept>(); 1251 return this.jurisdiction; 1252 } 1253 1254 /** 1255 * @return Returns a reference to <code>this</code> for easy method chaining 1256 */ 1257 public ResearchStudy setJurisdiction(List<CodeableConcept> theJurisdiction) { 1258 this.jurisdiction = theJurisdiction; 1259 return this; 1260 } 1261 1262 public boolean hasJurisdiction() { 1263 if (this.jurisdiction == null) 1264 return false; 1265 for (CodeableConcept item : this.jurisdiction) 1266 if (!item.isEmpty()) 1267 return true; 1268 return false; 1269 } 1270 1271 public CodeableConcept addJurisdiction() { //3 1272 CodeableConcept t = new CodeableConcept(); 1273 if (this.jurisdiction == null) 1274 this.jurisdiction = new ArrayList<CodeableConcept>(); 1275 this.jurisdiction.add(t); 1276 return t; 1277 } 1278 1279 public ResearchStudy addJurisdiction(CodeableConcept t) { //3 1280 if (t == null) 1281 return this; 1282 if (this.jurisdiction == null) 1283 this.jurisdiction = new ArrayList<CodeableConcept>(); 1284 this.jurisdiction.add(t); 1285 return this; 1286 } 1287 1288 /** 1289 * @return The first repetition of repeating field {@link #jurisdiction}, creating it if it does not already exist 1290 */ 1291 public CodeableConcept getJurisdictionFirstRep() { 1292 if (getJurisdiction().isEmpty()) { 1293 addJurisdiction(); 1294 } 1295 return getJurisdiction().get(0); 1296 } 1297 1298 /** 1299 * @return {@link #description} (A full description of how the study is being conducted.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 1300 */ 1301 public MarkdownType getDescriptionElement() { 1302 if (this.description == null) 1303 if (Configuration.errorOnAutoCreate()) 1304 throw new Error("Attempt to auto-create ResearchStudy.description"); 1305 else if (Configuration.doAutoCreate()) 1306 this.description = new MarkdownType(); // bb 1307 return this.description; 1308 } 1309 1310 public boolean hasDescriptionElement() { 1311 return this.description != null && !this.description.isEmpty(); 1312 } 1313 1314 public boolean hasDescription() { 1315 return this.description != null && !this.description.isEmpty(); 1316 } 1317 1318 /** 1319 * @param value {@link #description} (A full description of how the study is being conducted.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 1320 */ 1321 public ResearchStudy setDescriptionElement(MarkdownType value) { 1322 this.description = value; 1323 return this; 1324 } 1325 1326 /** 1327 * @return A full description of how the study is being conducted. 1328 */ 1329 public String getDescription() { 1330 return this.description == null ? null : this.description.getValue(); 1331 } 1332 1333 /** 1334 * @param value A full description of how the study is being conducted. 1335 */ 1336 public ResearchStudy setDescription(String value) { 1337 if (value == null) 1338 this.description = null; 1339 else { 1340 if (this.description == null) 1341 this.description = new MarkdownType(); 1342 this.description.setValue(value); 1343 } 1344 return this; 1345 } 1346 1347 /** 1348 * @return {@link #enrollment} (Reference to a Group that defines the criteria for and quantity of subjects participating in the study. E.g. " 200 female Europeans between the ages of 20 and 45 with early onset diabetes".) 1349 */ 1350 public List<Reference> getEnrollment() { 1351 if (this.enrollment == null) 1352 this.enrollment = new ArrayList<Reference>(); 1353 return this.enrollment; 1354 } 1355 1356 /** 1357 * @return Returns a reference to <code>this</code> for easy method chaining 1358 */ 1359 public ResearchStudy setEnrollment(List<Reference> theEnrollment) { 1360 this.enrollment = theEnrollment; 1361 return this; 1362 } 1363 1364 public boolean hasEnrollment() { 1365 if (this.enrollment == null) 1366 return false; 1367 for (Reference item : this.enrollment) 1368 if (!item.isEmpty()) 1369 return true; 1370 return false; 1371 } 1372 1373 public Reference addEnrollment() { //3 1374 Reference t = new Reference(); 1375 if (this.enrollment == null) 1376 this.enrollment = new ArrayList<Reference>(); 1377 this.enrollment.add(t); 1378 return t; 1379 } 1380 1381 public ResearchStudy addEnrollment(Reference t) { //3 1382 if (t == null) 1383 return this; 1384 if (this.enrollment == null) 1385 this.enrollment = new ArrayList<Reference>(); 1386 this.enrollment.add(t); 1387 return this; 1388 } 1389 1390 /** 1391 * @return The first repetition of repeating field {@link #enrollment}, creating it if it does not already exist 1392 */ 1393 public Reference getEnrollmentFirstRep() { 1394 if (getEnrollment().isEmpty()) { 1395 addEnrollment(); 1396 } 1397 return getEnrollment().get(0); 1398 } 1399 1400 /** 1401 * @deprecated Use Reference#setResource(IBaseResource) instead 1402 */ 1403 @Deprecated 1404 public List<Group> getEnrollmentTarget() { 1405 if (this.enrollmentTarget == null) 1406 this.enrollmentTarget = new ArrayList<Group>(); 1407 return this.enrollmentTarget; 1408 } 1409 1410 /** 1411 * @deprecated Use Reference#setResource(IBaseResource) instead 1412 */ 1413 @Deprecated 1414 public Group addEnrollmentTarget() { 1415 Group r = new Group(); 1416 if (this.enrollmentTarget == null) 1417 this.enrollmentTarget = new ArrayList<Group>(); 1418 this.enrollmentTarget.add(r); 1419 return r; 1420 } 1421 1422 /** 1423 * @return {@link #period} (Identifies the start date and the expected (or actual, depending on status) end date for the study.) 1424 */ 1425 public Period getPeriod() { 1426 if (this.period == null) 1427 if (Configuration.errorOnAutoCreate()) 1428 throw new Error("Attempt to auto-create ResearchStudy.period"); 1429 else if (Configuration.doAutoCreate()) 1430 this.period = new Period(); // cc 1431 return this.period; 1432 } 1433 1434 public boolean hasPeriod() { 1435 return this.period != null && !this.period.isEmpty(); 1436 } 1437 1438 /** 1439 * @param value {@link #period} (Identifies the start date and the expected (or actual, depending on status) end date for the study.) 1440 */ 1441 public ResearchStudy setPeriod(Period value) { 1442 this.period = value; 1443 return this; 1444 } 1445 1446 /** 1447 * @return {@link #sponsor} (The organization responsible for the execution of the study.) 1448 */ 1449 public Reference getSponsor() { 1450 if (this.sponsor == null) 1451 if (Configuration.errorOnAutoCreate()) 1452 throw new Error("Attempt to auto-create ResearchStudy.sponsor"); 1453 else if (Configuration.doAutoCreate()) 1454 this.sponsor = new Reference(); // cc 1455 return this.sponsor; 1456 } 1457 1458 public boolean hasSponsor() { 1459 return this.sponsor != null && !this.sponsor.isEmpty(); 1460 } 1461 1462 /** 1463 * @param value {@link #sponsor} (The organization responsible for the execution of the study.) 1464 */ 1465 public ResearchStudy setSponsor(Reference value) { 1466 this.sponsor = value; 1467 return this; 1468 } 1469 1470 /** 1471 * @return {@link #sponsor} 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. (The organization responsible for the execution of the study.) 1472 */ 1473 public Organization getSponsorTarget() { 1474 if (this.sponsorTarget == null) 1475 if (Configuration.errorOnAutoCreate()) 1476 throw new Error("Attempt to auto-create ResearchStudy.sponsor"); 1477 else if (Configuration.doAutoCreate()) 1478 this.sponsorTarget = new Organization(); // aa 1479 return this.sponsorTarget; 1480 } 1481 1482 /** 1483 * @param value {@link #sponsor} 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. (The organization responsible for the execution of the study.) 1484 */ 1485 public ResearchStudy setSponsorTarget(Organization value) { 1486 this.sponsorTarget = value; 1487 return this; 1488 } 1489 1490 /** 1491 * @return {@link #principalInvestigator} (Indicates the individual who has primary oversite of the execution of the study.) 1492 */ 1493 public Reference getPrincipalInvestigator() { 1494 if (this.principalInvestigator == null) 1495 if (Configuration.errorOnAutoCreate()) 1496 throw new Error("Attempt to auto-create ResearchStudy.principalInvestigator"); 1497 else if (Configuration.doAutoCreate()) 1498 this.principalInvestigator = new Reference(); // cc 1499 return this.principalInvestigator; 1500 } 1501 1502 public boolean hasPrincipalInvestigator() { 1503 return this.principalInvestigator != null && !this.principalInvestigator.isEmpty(); 1504 } 1505 1506 /** 1507 * @param value {@link #principalInvestigator} (Indicates the individual who has primary oversite of the execution of the study.) 1508 */ 1509 public ResearchStudy setPrincipalInvestigator(Reference value) { 1510 this.principalInvestigator = value; 1511 return this; 1512 } 1513 1514 /** 1515 * @return {@link #principalInvestigator} 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. (Indicates the individual who has primary oversite of the execution of the study.) 1516 */ 1517 public Practitioner getPrincipalInvestigatorTarget() { 1518 if (this.principalInvestigatorTarget == null) 1519 if (Configuration.errorOnAutoCreate()) 1520 throw new Error("Attempt to auto-create ResearchStudy.principalInvestigator"); 1521 else if (Configuration.doAutoCreate()) 1522 this.principalInvestigatorTarget = new Practitioner(); // aa 1523 return this.principalInvestigatorTarget; 1524 } 1525 1526 /** 1527 * @param value {@link #principalInvestigator} 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. (Indicates the individual who has primary oversite of the execution of the study.) 1528 */ 1529 public ResearchStudy setPrincipalInvestigatorTarget(Practitioner value) { 1530 this.principalInvestigatorTarget = value; 1531 return this; 1532 } 1533 1534 /** 1535 * @return {@link #site} (Clinic, hospital or other healthcare location that is participating in the study.) 1536 */ 1537 public List<Reference> getSite() { 1538 if (this.site == null) 1539 this.site = new ArrayList<Reference>(); 1540 return this.site; 1541 } 1542 1543 /** 1544 * @return Returns a reference to <code>this</code> for easy method chaining 1545 */ 1546 public ResearchStudy setSite(List<Reference> theSite) { 1547 this.site = theSite; 1548 return this; 1549 } 1550 1551 public boolean hasSite() { 1552 if (this.site == null) 1553 return false; 1554 for (Reference item : this.site) 1555 if (!item.isEmpty()) 1556 return true; 1557 return false; 1558 } 1559 1560 public Reference addSite() { //3 1561 Reference t = new Reference(); 1562 if (this.site == null) 1563 this.site = new ArrayList<Reference>(); 1564 this.site.add(t); 1565 return t; 1566 } 1567 1568 public ResearchStudy addSite(Reference t) { //3 1569 if (t == null) 1570 return this; 1571 if (this.site == null) 1572 this.site = new ArrayList<Reference>(); 1573 this.site.add(t); 1574 return this; 1575 } 1576 1577 /** 1578 * @return The first repetition of repeating field {@link #site}, creating it if it does not already exist 1579 */ 1580 public Reference getSiteFirstRep() { 1581 if (getSite().isEmpty()) { 1582 addSite(); 1583 } 1584 return getSite().get(0); 1585 } 1586 1587 /** 1588 * @deprecated Use Reference#setResource(IBaseResource) instead 1589 */ 1590 @Deprecated 1591 public List<Location> getSiteTarget() { 1592 if (this.siteTarget == null) 1593 this.siteTarget = new ArrayList<Location>(); 1594 return this.siteTarget; 1595 } 1596 1597 /** 1598 * @deprecated Use Reference#setResource(IBaseResource) instead 1599 */ 1600 @Deprecated 1601 public Location addSiteTarget() { 1602 Location r = new Location(); 1603 if (this.siteTarget == null) 1604 this.siteTarget = new ArrayList<Location>(); 1605 this.siteTarget.add(r); 1606 return r; 1607 } 1608 1609 /** 1610 * @return {@link #reasonStopped} (A description and/or code explaining the premature termination of the study.) 1611 */ 1612 public CodeableConcept getReasonStopped() { 1613 if (this.reasonStopped == null) 1614 if (Configuration.errorOnAutoCreate()) 1615 throw new Error("Attempt to auto-create ResearchStudy.reasonStopped"); 1616 else if (Configuration.doAutoCreate()) 1617 this.reasonStopped = new CodeableConcept(); // cc 1618 return this.reasonStopped; 1619 } 1620 1621 public boolean hasReasonStopped() { 1622 return this.reasonStopped != null && !this.reasonStopped.isEmpty(); 1623 } 1624 1625 /** 1626 * @param value {@link #reasonStopped} (A description and/or code explaining the premature termination of the study.) 1627 */ 1628 public ResearchStudy setReasonStopped(CodeableConcept value) { 1629 this.reasonStopped = value; 1630 return this; 1631 } 1632 1633 /** 1634 * @return {@link #note} (Comments made about the event by the performer, subject or other participants.) 1635 */ 1636 public List<Annotation> getNote() { 1637 if (this.note == null) 1638 this.note = new ArrayList<Annotation>(); 1639 return this.note; 1640 } 1641 1642 /** 1643 * @return Returns a reference to <code>this</code> for easy method chaining 1644 */ 1645 public ResearchStudy setNote(List<Annotation> theNote) { 1646 this.note = theNote; 1647 return this; 1648 } 1649 1650 public boolean hasNote() { 1651 if (this.note == null) 1652 return false; 1653 for (Annotation item : this.note) 1654 if (!item.isEmpty()) 1655 return true; 1656 return false; 1657 } 1658 1659 public Annotation addNote() { //3 1660 Annotation t = new Annotation(); 1661 if (this.note == null) 1662 this.note = new ArrayList<Annotation>(); 1663 this.note.add(t); 1664 return t; 1665 } 1666 1667 public ResearchStudy addNote(Annotation t) { //3 1668 if (t == null) 1669 return this; 1670 if (this.note == null) 1671 this.note = new ArrayList<Annotation>(); 1672 this.note.add(t); 1673 return this; 1674 } 1675 1676 /** 1677 * @return The first repetition of repeating field {@link #note}, creating it if it does not already exist 1678 */ 1679 public Annotation getNoteFirstRep() { 1680 if (getNote().isEmpty()) { 1681 addNote(); 1682 } 1683 return getNote().get(0); 1684 } 1685 1686 /** 1687 * @return {@link #arm} (Describes an expected sequence of events for one of the participants of a study. E.g. Exposure to drug A, wash-out, exposure to drug B, wash-out, follow-up.) 1688 */ 1689 public List<ResearchStudyArmComponent> getArm() { 1690 if (this.arm == null) 1691 this.arm = new ArrayList<ResearchStudyArmComponent>(); 1692 return this.arm; 1693 } 1694 1695 /** 1696 * @return Returns a reference to <code>this</code> for easy method chaining 1697 */ 1698 public ResearchStudy setArm(List<ResearchStudyArmComponent> theArm) { 1699 this.arm = theArm; 1700 return this; 1701 } 1702 1703 public boolean hasArm() { 1704 if (this.arm == null) 1705 return false; 1706 for (ResearchStudyArmComponent item : this.arm) 1707 if (!item.isEmpty()) 1708 return true; 1709 return false; 1710 } 1711 1712 public ResearchStudyArmComponent addArm() { //3 1713 ResearchStudyArmComponent t = new ResearchStudyArmComponent(); 1714 if (this.arm == null) 1715 this.arm = new ArrayList<ResearchStudyArmComponent>(); 1716 this.arm.add(t); 1717 return t; 1718 } 1719 1720 public ResearchStudy addArm(ResearchStudyArmComponent t) { //3 1721 if (t == null) 1722 return this; 1723 if (this.arm == null) 1724 this.arm = new ArrayList<ResearchStudyArmComponent>(); 1725 this.arm.add(t); 1726 return this; 1727 } 1728 1729 /** 1730 * @return The first repetition of repeating field {@link #arm}, creating it if it does not already exist 1731 */ 1732 public ResearchStudyArmComponent getArmFirstRep() { 1733 if (getArm().isEmpty()) { 1734 addArm(); 1735 } 1736 return getArm().get(0); 1737 } 1738 1739 protected void listChildren(List<Property> childrenList) { 1740 super.listChildren(childrenList); 1741 childrenList.add(new Property("identifier", "Identifier", "Identifiers assigned to this research study by the sponsor or other systems.", 0, java.lang.Integer.MAX_VALUE, identifier)); 1742 childrenList.add(new Property("title", "string", "A short, descriptive user-friendly label for the study.", 0, java.lang.Integer.MAX_VALUE, title)); 1743 childrenList.add(new Property("protocol", "Reference(PlanDefinition)", "The set of steps expected to be performed as part of the execution of the study.", 0, java.lang.Integer.MAX_VALUE, protocol)); 1744 childrenList.add(new Property("partOf", "Reference(ResearchStudy)", "A larger research study of which this particular study is a component or step.", 0, java.lang.Integer.MAX_VALUE, partOf)); 1745 childrenList.add(new Property("status", "code", "The current state of the study.", 0, java.lang.Integer.MAX_VALUE, status)); 1746 childrenList.add(new Property("category", "CodeableConcept", "Codes categorizing the type of study such as investigational vs. observational, type of blinding, type of randomization, safety vs. efficacy, etc.", 0, java.lang.Integer.MAX_VALUE, category)); 1747 childrenList.add(new Property("focus", "CodeableConcept", "The condition(s), medication(s), food(s), therapy(ies), device(s) or other concerns or interventions that the study is seeking to gain more information about.", 0, java.lang.Integer.MAX_VALUE, focus)); 1748 childrenList.add(new Property("contact", "ContactDetail", "Contact details to assist a user in learning more about or engaging with the study.", 0, java.lang.Integer.MAX_VALUE, contact)); 1749 childrenList.add(new Property("relatedArtifact", "RelatedArtifact", "Citations, references and other related documents.", 0, java.lang.Integer.MAX_VALUE, relatedArtifact)); 1750 childrenList.add(new Property("keyword", "CodeableConcept", "Key terms to aid in searching for or filtering the study.", 0, java.lang.Integer.MAX_VALUE, keyword)); 1751 childrenList.add(new Property("jurisdiction", "CodeableConcept", "Indicates a country, state or other region where the study is taking place.", 0, java.lang.Integer.MAX_VALUE, jurisdiction)); 1752 childrenList.add(new Property("description", "markdown", "A full description of how the study is being conducted.", 0, java.lang.Integer.MAX_VALUE, description)); 1753 childrenList.add(new Property("enrollment", "Reference(Group)", "Reference to a Group that defines the criteria for and quantity of subjects participating in the study. E.g. \" 200 female Europeans between the ages of 20 and 45 with early onset diabetes\".", 0, java.lang.Integer.MAX_VALUE, enrollment)); 1754 childrenList.add(new Property("period", "Period", "Identifies the start date and the expected (or actual, depending on status) end date for the study.", 0, java.lang.Integer.MAX_VALUE, period)); 1755 childrenList.add(new Property("sponsor", "Reference(Organization)", "The organization responsible for the execution of the study.", 0, java.lang.Integer.MAX_VALUE, sponsor)); 1756 childrenList.add(new Property("principalInvestigator", "Reference(Practitioner)", "Indicates the individual who has primary oversite of the execution of the study.", 0, java.lang.Integer.MAX_VALUE, principalInvestigator)); 1757 childrenList.add(new Property("site", "Reference(Location)", "Clinic, hospital or other healthcare location that is participating in the study.", 0, java.lang.Integer.MAX_VALUE, site)); 1758 childrenList.add(new Property("reasonStopped", "CodeableConcept", "A description and/or code explaining the premature termination of the study.", 0, java.lang.Integer.MAX_VALUE, reasonStopped)); 1759 childrenList.add(new Property("note", "Annotation", "Comments made about the event by the performer, subject or other participants.", 0, java.lang.Integer.MAX_VALUE, note)); 1760 childrenList.add(new Property("arm", "", "Describes an expected sequence of events for one of the participants of a study. E.g. Exposure to drug A, wash-out, exposure to drug B, wash-out, follow-up.", 0, java.lang.Integer.MAX_VALUE, arm)); 1761 } 1762 1763 @Override 1764 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1765 switch (hash) { 1766 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 1767 case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType 1768 case -989163880: /*protocol*/ return this.protocol == null ? new Base[0] : this.protocol.toArray(new Base[this.protocol.size()]); // Reference 1769 case -995410646: /*partOf*/ return this.partOf == null ? new Base[0] : this.partOf.toArray(new Base[this.partOf.size()]); // Reference 1770 case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<ResearchStudyStatus> 1771 case 50511102: /*category*/ return this.category == null ? new Base[0] : this.category.toArray(new Base[this.category.size()]); // CodeableConcept 1772 case 97604824: /*focus*/ return this.focus == null ? new Base[0] : this.focus.toArray(new Base[this.focus.size()]); // CodeableConcept 1773 case 951526432: /*contact*/ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // ContactDetail 1774 case 666807069: /*relatedArtifact*/ return this.relatedArtifact == null ? new Base[0] : this.relatedArtifact.toArray(new Base[this.relatedArtifact.size()]); // RelatedArtifact 1775 case -814408215: /*keyword*/ return this.keyword == null ? new Base[0] : this.keyword.toArray(new Base[this.keyword.size()]); // CodeableConcept 1776 case -507075711: /*jurisdiction*/ return this.jurisdiction == null ? new Base[0] : this.jurisdiction.toArray(new Base[this.jurisdiction.size()]); // CodeableConcept 1777 case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType 1778 case 116089604: /*enrollment*/ return this.enrollment == null ? new Base[0] : this.enrollment.toArray(new Base[this.enrollment.size()]); // Reference 1779 case -991726143: /*period*/ return this.period == null ? new Base[0] : new Base[] {this.period}; // Period 1780 case -1998892262: /*sponsor*/ return this.sponsor == null ? new Base[0] : new Base[] {this.sponsor}; // Reference 1781 case 1437117175: /*principalInvestigator*/ return this.principalInvestigator == null ? new Base[0] : new Base[] {this.principalInvestigator}; // Reference 1782 case 3530567: /*site*/ return this.site == null ? new Base[0] : this.site.toArray(new Base[this.site.size()]); // Reference 1783 case 1181369065: /*reasonStopped*/ return this.reasonStopped == null ? new Base[0] : new Base[] {this.reasonStopped}; // CodeableConcept 1784 case 3387378: /*note*/ return this.note == null ? new Base[0] : this.note.toArray(new Base[this.note.size()]); // Annotation 1785 case 96860: /*arm*/ return this.arm == null ? new Base[0] : this.arm.toArray(new Base[this.arm.size()]); // ResearchStudyArmComponent 1786 default: return super.getProperty(hash, name, checkValid); 1787 } 1788 1789 } 1790 1791 @Override 1792 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1793 switch (hash) { 1794 case -1618432855: // identifier 1795 this.getIdentifier().add(castToIdentifier(value)); // Identifier 1796 return value; 1797 case 110371416: // title 1798 this.title = castToString(value); // StringType 1799 return value; 1800 case -989163880: // protocol 1801 this.getProtocol().add(castToReference(value)); // Reference 1802 return value; 1803 case -995410646: // partOf 1804 this.getPartOf().add(castToReference(value)); // Reference 1805 return value; 1806 case -892481550: // status 1807 value = new ResearchStudyStatusEnumFactory().fromType(castToCode(value)); 1808 this.status = (Enumeration) value; // Enumeration<ResearchStudyStatus> 1809 return value; 1810 case 50511102: // category 1811 this.getCategory().add(castToCodeableConcept(value)); // CodeableConcept 1812 return value; 1813 case 97604824: // focus 1814 this.getFocus().add(castToCodeableConcept(value)); // CodeableConcept 1815 return value; 1816 case 951526432: // contact 1817 this.getContact().add(castToContactDetail(value)); // ContactDetail 1818 return value; 1819 case 666807069: // relatedArtifact 1820 this.getRelatedArtifact().add(castToRelatedArtifact(value)); // RelatedArtifact 1821 return value; 1822 case -814408215: // keyword 1823 this.getKeyword().add(castToCodeableConcept(value)); // CodeableConcept 1824 return value; 1825 case -507075711: // jurisdiction 1826 this.getJurisdiction().add(castToCodeableConcept(value)); // CodeableConcept 1827 return value; 1828 case -1724546052: // description 1829 this.description = castToMarkdown(value); // MarkdownType 1830 return value; 1831 case 116089604: // enrollment 1832 this.getEnrollment().add(castToReference(value)); // Reference 1833 return value; 1834 case -991726143: // period 1835 this.period = castToPeriod(value); // Period 1836 return value; 1837 case -1998892262: // sponsor 1838 this.sponsor = castToReference(value); // Reference 1839 return value; 1840 case 1437117175: // principalInvestigator 1841 this.principalInvestigator = castToReference(value); // Reference 1842 return value; 1843 case 3530567: // site 1844 this.getSite().add(castToReference(value)); // Reference 1845 return value; 1846 case 1181369065: // reasonStopped 1847 this.reasonStopped = castToCodeableConcept(value); // CodeableConcept 1848 return value; 1849 case 3387378: // note 1850 this.getNote().add(castToAnnotation(value)); // Annotation 1851 return value; 1852 case 96860: // arm 1853 this.getArm().add((ResearchStudyArmComponent) value); // ResearchStudyArmComponent 1854 return value; 1855 default: return super.setProperty(hash, name, value); 1856 } 1857 1858 } 1859 1860 @Override 1861 public Base setProperty(String name, Base value) throws FHIRException { 1862 if (name.equals("identifier")) { 1863 this.getIdentifier().add(castToIdentifier(value)); 1864 } else if (name.equals("title")) { 1865 this.title = castToString(value); // StringType 1866 } else if (name.equals("protocol")) { 1867 this.getProtocol().add(castToReference(value)); 1868 } else if (name.equals("partOf")) { 1869 this.getPartOf().add(castToReference(value)); 1870 } else if (name.equals("status")) { 1871 value = new ResearchStudyStatusEnumFactory().fromType(castToCode(value)); 1872 this.status = (Enumeration) value; // Enumeration<ResearchStudyStatus> 1873 } else if (name.equals("category")) { 1874 this.getCategory().add(castToCodeableConcept(value)); 1875 } else if (name.equals("focus")) { 1876 this.getFocus().add(castToCodeableConcept(value)); 1877 } else if (name.equals("contact")) { 1878 this.getContact().add(castToContactDetail(value)); 1879 } else if (name.equals("relatedArtifact")) { 1880 this.getRelatedArtifact().add(castToRelatedArtifact(value)); 1881 } else if (name.equals("keyword")) { 1882 this.getKeyword().add(castToCodeableConcept(value)); 1883 } else if (name.equals("jurisdiction")) { 1884 this.getJurisdiction().add(castToCodeableConcept(value)); 1885 } else if (name.equals("description")) { 1886 this.description = castToMarkdown(value); // MarkdownType 1887 } else if (name.equals("enrollment")) { 1888 this.getEnrollment().add(castToReference(value)); 1889 } else if (name.equals("period")) { 1890 this.period = castToPeriod(value); // Period 1891 } else if (name.equals("sponsor")) { 1892 this.sponsor = castToReference(value); // Reference 1893 } else if (name.equals("principalInvestigator")) { 1894 this.principalInvestigator = castToReference(value); // Reference 1895 } else if (name.equals("site")) { 1896 this.getSite().add(castToReference(value)); 1897 } else if (name.equals("reasonStopped")) { 1898 this.reasonStopped = castToCodeableConcept(value); // CodeableConcept 1899 } else if (name.equals("note")) { 1900 this.getNote().add(castToAnnotation(value)); 1901 } else if (name.equals("arm")) { 1902 this.getArm().add((ResearchStudyArmComponent) value); 1903 } else 1904 return super.setProperty(name, value); 1905 return value; 1906 } 1907 1908 @Override 1909 public Base makeProperty(int hash, String name) throws FHIRException { 1910 switch (hash) { 1911 case -1618432855: return addIdentifier(); 1912 case 110371416: return getTitleElement(); 1913 case -989163880: return addProtocol(); 1914 case -995410646: return addPartOf(); 1915 case -892481550: return getStatusElement(); 1916 case 50511102: return addCategory(); 1917 case 97604824: return addFocus(); 1918 case 951526432: return addContact(); 1919 case 666807069: return addRelatedArtifact(); 1920 case -814408215: return addKeyword(); 1921 case -507075711: return addJurisdiction(); 1922 case -1724546052: return getDescriptionElement(); 1923 case 116089604: return addEnrollment(); 1924 case -991726143: return getPeriod(); 1925 case -1998892262: return getSponsor(); 1926 case 1437117175: return getPrincipalInvestigator(); 1927 case 3530567: return addSite(); 1928 case 1181369065: return getReasonStopped(); 1929 case 3387378: return addNote(); 1930 case 96860: return addArm(); 1931 default: return super.makeProperty(hash, name); 1932 } 1933 1934 } 1935 1936 @Override 1937 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1938 switch (hash) { 1939 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 1940 case 110371416: /*title*/ return new String[] {"string"}; 1941 case -989163880: /*protocol*/ return new String[] {"Reference"}; 1942 case -995410646: /*partOf*/ return new String[] {"Reference"}; 1943 case -892481550: /*status*/ return new String[] {"code"}; 1944 case 50511102: /*category*/ return new String[] {"CodeableConcept"}; 1945 case 97604824: /*focus*/ return new String[] {"CodeableConcept"}; 1946 case 951526432: /*contact*/ return new String[] {"ContactDetail"}; 1947 case 666807069: /*relatedArtifact*/ return new String[] {"RelatedArtifact"}; 1948 case -814408215: /*keyword*/ return new String[] {"CodeableConcept"}; 1949 case -507075711: /*jurisdiction*/ return new String[] {"CodeableConcept"}; 1950 case -1724546052: /*description*/ return new String[] {"markdown"}; 1951 case 116089604: /*enrollment*/ return new String[] {"Reference"}; 1952 case -991726143: /*period*/ return new String[] {"Period"}; 1953 case -1998892262: /*sponsor*/ return new String[] {"Reference"}; 1954 case 1437117175: /*principalInvestigator*/ return new String[] {"Reference"}; 1955 case 3530567: /*site*/ return new String[] {"Reference"}; 1956 case 1181369065: /*reasonStopped*/ return new String[] {"CodeableConcept"}; 1957 case 3387378: /*note*/ return new String[] {"Annotation"}; 1958 case 96860: /*arm*/ return new String[] {}; 1959 default: return super.getTypesForProperty(hash, name); 1960 } 1961 1962 } 1963 1964 @Override 1965 public Base addChild(String name) throws FHIRException { 1966 if (name.equals("identifier")) { 1967 return addIdentifier(); 1968 } 1969 else if (name.equals("title")) { 1970 throw new FHIRException("Cannot call addChild on a primitive type ResearchStudy.title"); 1971 } 1972 else if (name.equals("protocol")) { 1973 return addProtocol(); 1974 } 1975 else if (name.equals("partOf")) { 1976 return addPartOf(); 1977 } 1978 else if (name.equals("status")) { 1979 throw new FHIRException("Cannot call addChild on a primitive type ResearchStudy.status"); 1980 } 1981 else if (name.equals("category")) { 1982 return addCategory(); 1983 } 1984 else if (name.equals("focus")) { 1985 return addFocus(); 1986 } 1987 else if (name.equals("contact")) { 1988 return addContact(); 1989 } 1990 else if (name.equals("relatedArtifact")) { 1991 return addRelatedArtifact(); 1992 } 1993 else if (name.equals("keyword")) { 1994 return addKeyword(); 1995 } 1996 else if (name.equals("jurisdiction")) { 1997 return addJurisdiction(); 1998 } 1999 else if (name.equals("description")) { 2000 throw new FHIRException("Cannot call addChild on a primitive type ResearchStudy.description"); 2001 } 2002 else if (name.equals("enrollment")) { 2003 return addEnrollment(); 2004 } 2005 else if (name.equals("period")) { 2006 this.period = new Period(); 2007 return this.period; 2008 } 2009 else if (name.equals("sponsor")) { 2010 this.sponsor = new Reference(); 2011 return this.sponsor; 2012 } 2013 else if (name.equals("principalInvestigator")) { 2014 this.principalInvestigator = new Reference(); 2015 return this.principalInvestigator; 2016 } 2017 else if (name.equals("site")) { 2018 return addSite(); 2019 } 2020 else if (name.equals("reasonStopped")) { 2021 this.reasonStopped = new CodeableConcept(); 2022 return this.reasonStopped; 2023 } 2024 else if (name.equals("note")) { 2025 return addNote(); 2026 } 2027 else if (name.equals("arm")) { 2028 return addArm(); 2029 } 2030 else 2031 return super.addChild(name); 2032 } 2033 2034 public String fhirType() { 2035 return "ResearchStudy"; 2036 2037 } 2038 2039 public ResearchStudy copy() { 2040 ResearchStudy dst = new ResearchStudy(); 2041 copyValues(dst); 2042 if (identifier != null) { 2043 dst.identifier = new ArrayList<Identifier>(); 2044 for (Identifier i : identifier) 2045 dst.identifier.add(i.copy()); 2046 }; 2047 dst.title = title == null ? null : title.copy(); 2048 if (protocol != null) { 2049 dst.protocol = new ArrayList<Reference>(); 2050 for (Reference i : protocol) 2051 dst.protocol.add(i.copy()); 2052 }; 2053 if (partOf != null) { 2054 dst.partOf = new ArrayList<Reference>(); 2055 for (Reference i : partOf) 2056 dst.partOf.add(i.copy()); 2057 }; 2058 dst.status = status == null ? null : status.copy(); 2059 if (category != null) { 2060 dst.category = new ArrayList<CodeableConcept>(); 2061 for (CodeableConcept i : category) 2062 dst.category.add(i.copy()); 2063 }; 2064 if (focus != null) { 2065 dst.focus = new ArrayList<CodeableConcept>(); 2066 for (CodeableConcept i : focus) 2067 dst.focus.add(i.copy()); 2068 }; 2069 if (contact != null) { 2070 dst.contact = new ArrayList<ContactDetail>(); 2071 for (ContactDetail i : contact) 2072 dst.contact.add(i.copy()); 2073 }; 2074 if (relatedArtifact != null) { 2075 dst.relatedArtifact = new ArrayList<RelatedArtifact>(); 2076 for (RelatedArtifact i : relatedArtifact) 2077 dst.relatedArtifact.add(i.copy()); 2078 }; 2079 if (keyword != null) { 2080 dst.keyword = new ArrayList<CodeableConcept>(); 2081 for (CodeableConcept i : keyword) 2082 dst.keyword.add(i.copy()); 2083 }; 2084 if (jurisdiction != null) { 2085 dst.jurisdiction = new ArrayList<CodeableConcept>(); 2086 for (CodeableConcept i : jurisdiction) 2087 dst.jurisdiction.add(i.copy()); 2088 }; 2089 dst.description = description == null ? null : description.copy(); 2090 if (enrollment != null) { 2091 dst.enrollment = new ArrayList<Reference>(); 2092 for (Reference i : enrollment) 2093 dst.enrollment.add(i.copy()); 2094 }; 2095 dst.period = period == null ? null : period.copy(); 2096 dst.sponsor = sponsor == null ? null : sponsor.copy(); 2097 dst.principalInvestigator = principalInvestigator == null ? null : principalInvestigator.copy(); 2098 if (site != null) { 2099 dst.site = new ArrayList<Reference>(); 2100 for (Reference i : site) 2101 dst.site.add(i.copy()); 2102 }; 2103 dst.reasonStopped = reasonStopped == null ? null : reasonStopped.copy(); 2104 if (note != null) { 2105 dst.note = new ArrayList<Annotation>(); 2106 for (Annotation i : note) 2107 dst.note.add(i.copy()); 2108 }; 2109 if (arm != null) { 2110 dst.arm = new ArrayList<ResearchStudyArmComponent>(); 2111 for (ResearchStudyArmComponent i : arm) 2112 dst.arm.add(i.copy()); 2113 }; 2114 return dst; 2115 } 2116 2117 protected ResearchStudy typedCopy() { 2118 return copy(); 2119 } 2120 2121 @Override 2122 public boolean equalsDeep(Base other) { 2123 if (!super.equalsDeep(other)) 2124 return false; 2125 if (!(other instanceof ResearchStudy)) 2126 return false; 2127 ResearchStudy o = (ResearchStudy) other; 2128 return compareDeep(identifier, o.identifier, true) && compareDeep(title, o.title, true) && compareDeep(protocol, o.protocol, true) 2129 && compareDeep(partOf, o.partOf, true) && compareDeep(status, o.status, true) && compareDeep(category, o.category, true) 2130 && compareDeep(focus, o.focus, true) && compareDeep(contact, o.contact, true) && compareDeep(relatedArtifact, o.relatedArtifact, true) 2131 && compareDeep(keyword, o.keyword, true) && compareDeep(jurisdiction, o.jurisdiction, true) && compareDeep(description, o.description, true) 2132 && compareDeep(enrollment, o.enrollment, true) && compareDeep(period, o.period, true) && compareDeep(sponsor, o.sponsor, true) 2133 && compareDeep(principalInvestigator, o.principalInvestigator, true) && compareDeep(site, o.site, true) 2134 && compareDeep(reasonStopped, o.reasonStopped, true) && compareDeep(note, o.note, true) && compareDeep(arm, o.arm, true) 2135 ; 2136 } 2137 2138 @Override 2139 public boolean equalsShallow(Base other) { 2140 if (!super.equalsShallow(other)) 2141 return false; 2142 if (!(other instanceof ResearchStudy)) 2143 return false; 2144 ResearchStudy o = (ResearchStudy) other; 2145 return compareValues(title, o.title, true) && compareValues(status, o.status, true) && compareValues(description, o.description, true) 2146 ; 2147 } 2148 2149 public boolean isEmpty() { 2150 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, title, protocol 2151 , partOf, status, category, focus, contact, relatedArtifact, keyword, jurisdiction 2152 , description, enrollment, period, sponsor, principalInvestigator, site, reasonStopped 2153 , note, arm); 2154 } 2155 2156 @Override 2157 public ResourceType getResourceType() { 2158 return ResourceType.ResearchStudy; 2159 } 2160 2161 /** 2162 * Search parameter: <b>date</b> 2163 * <p> 2164 * Description: <b>When the study began and ended</b><br> 2165 * Type: <b>date</b><br> 2166 * Path: <b>ResearchStudy.period</b><br> 2167 * </p> 2168 */ 2169 @SearchParamDefinition(name="date", path="ResearchStudy.period", description="When the study began and ended", type="date" ) 2170 public static final String SP_DATE = "date"; 2171 /** 2172 * <b>Fluent Client</b> search parameter constant for <b>date</b> 2173 * <p> 2174 * Description: <b>When the study began and ended</b><br> 2175 * Type: <b>date</b><br> 2176 * Path: <b>ResearchStudy.period</b><br> 2177 * </p> 2178 */ 2179 public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE); 2180 2181 /** 2182 * Search parameter: <b>identifier</b> 2183 * <p> 2184 * Description: <b>Business Identifier for study</b><br> 2185 * Type: <b>token</b><br> 2186 * Path: <b>ResearchStudy.identifier</b><br> 2187 * </p> 2188 */ 2189 @SearchParamDefinition(name="identifier", path="ResearchStudy.identifier", description="Business Identifier for study", type="token" ) 2190 public static final String SP_IDENTIFIER = "identifier"; 2191 /** 2192 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 2193 * <p> 2194 * Description: <b>Business Identifier for study</b><br> 2195 * Type: <b>token</b><br> 2196 * Path: <b>ResearchStudy.identifier</b><br> 2197 * </p> 2198 */ 2199 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 2200 2201 /** 2202 * Search parameter: <b>partof</b> 2203 * <p> 2204 * Description: <b>Part of larger study</b><br> 2205 * Type: <b>reference</b><br> 2206 * Path: <b>ResearchStudy.partOf</b><br> 2207 * </p> 2208 */ 2209 @SearchParamDefinition(name="partof", path="ResearchStudy.partOf", description="Part of larger study", type="reference", target={ResearchStudy.class } ) 2210 public static final String SP_PARTOF = "partof"; 2211 /** 2212 * <b>Fluent Client</b> search parameter constant for <b>partof</b> 2213 * <p> 2214 * Description: <b>Part of larger study</b><br> 2215 * Type: <b>reference</b><br> 2216 * Path: <b>ResearchStudy.partOf</b><br> 2217 * </p> 2218 */ 2219 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PARTOF = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PARTOF); 2220 2221/** 2222 * Constant for fluent queries to be used to add include statements. Specifies 2223 * the path value of "<b>ResearchStudy:partof</b>". 2224 */ 2225 public static final ca.uhn.fhir.model.api.Include INCLUDE_PARTOF = new ca.uhn.fhir.model.api.Include("ResearchStudy:partof").toLocked(); 2226 2227 /** 2228 * Search parameter: <b>sponsor</b> 2229 * <p> 2230 * Description: <b>Organization responsible for the study</b><br> 2231 * Type: <b>reference</b><br> 2232 * Path: <b>ResearchStudy.sponsor</b><br> 2233 * </p> 2234 */ 2235 @SearchParamDefinition(name="sponsor", path="ResearchStudy.sponsor", description="Organization responsible for the study", type="reference", target={Organization.class } ) 2236 public static final String SP_SPONSOR = "sponsor"; 2237 /** 2238 * <b>Fluent Client</b> search parameter constant for <b>sponsor</b> 2239 * <p> 2240 * Description: <b>Organization responsible for the study</b><br> 2241 * Type: <b>reference</b><br> 2242 * Path: <b>ResearchStudy.sponsor</b><br> 2243 * </p> 2244 */ 2245 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SPONSOR = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SPONSOR); 2246 2247/** 2248 * Constant for fluent queries to be used to add include statements. Specifies 2249 * the path value of "<b>ResearchStudy:sponsor</b>". 2250 */ 2251 public static final ca.uhn.fhir.model.api.Include INCLUDE_SPONSOR = new ca.uhn.fhir.model.api.Include("ResearchStudy:sponsor").toLocked(); 2252 2253 /** 2254 * Search parameter: <b>jurisdiction</b> 2255 * <p> 2256 * Description: <b>Geographic region(s) for study</b><br> 2257 * Type: <b>token</b><br> 2258 * Path: <b>ResearchStudy.jurisdiction</b><br> 2259 * </p> 2260 */ 2261 @SearchParamDefinition(name="jurisdiction", path="ResearchStudy.jurisdiction", description="Geographic region(s) for study", type="token" ) 2262 public static final String SP_JURISDICTION = "jurisdiction"; 2263 /** 2264 * <b>Fluent Client</b> search parameter constant for <b>jurisdiction</b> 2265 * <p> 2266 * Description: <b>Geographic region(s) for study</b><br> 2267 * Type: <b>token</b><br> 2268 * Path: <b>ResearchStudy.jurisdiction</b><br> 2269 * </p> 2270 */ 2271 public static final ca.uhn.fhir.rest.gclient.TokenClientParam JURISDICTION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_JURISDICTION); 2272 2273 /** 2274 * Search parameter: <b>focus</b> 2275 * <p> 2276 * Description: <b>Drugs, devices, conditions, etc. under study</b><br> 2277 * Type: <b>token</b><br> 2278 * Path: <b>ResearchStudy.focus</b><br> 2279 * </p> 2280 */ 2281 @SearchParamDefinition(name="focus", path="ResearchStudy.focus", description="Drugs, devices, conditions, etc. under study", type="token" ) 2282 public static final String SP_FOCUS = "focus"; 2283 /** 2284 * <b>Fluent Client</b> search parameter constant for <b>focus</b> 2285 * <p> 2286 * Description: <b>Drugs, devices, conditions, etc. under study</b><br> 2287 * Type: <b>token</b><br> 2288 * Path: <b>ResearchStudy.focus</b><br> 2289 * </p> 2290 */ 2291 public static final ca.uhn.fhir.rest.gclient.TokenClientParam FOCUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_FOCUS); 2292 2293 /** 2294 * Search parameter: <b>principalinvestigator</b> 2295 * <p> 2296 * Description: <b>The individual responsible for the study</b><br> 2297 * Type: <b>reference</b><br> 2298 * Path: <b>ResearchStudy.principalInvestigator</b><br> 2299 * </p> 2300 */ 2301 @SearchParamDefinition(name="principalinvestigator", path="ResearchStudy.principalInvestigator", description="The individual responsible for the study", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Practitioner") }, target={Practitioner.class } ) 2302 public static final String SP_PRINCIPALINVESTIGATOR = "principalinvestigator"; 2303 /** 2304 * <b>Fluent Client</b> search parameter constant for <b>principalinvestigator</b> 2305 * <p> 2306 * Description: <b>The individual responsible for the study</b><br> 2307 * Type: <b>reference</b><br> 2308 * Path: <b>ResearchStudy.principalInvestigator</b><br> 2309 * </p> 2310 */ 2311 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PRINCIPALINVESTIGATOR = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PRINCIPALINVESTIGATOR); 2312 2313/** 2314 * Constant for fluent queries to be used to add include statements. Specifies 2315 * the path value of "<b>ResearchStudy:principalinvestigator</b>". 2316 */ 2317 public static final ca.uhn.fhir.model.api.Include INCLUDE_PRINCIPALINVESTIGATOR = new ca.uhn.fhir.model.api.Include("ResearchStudy:principalinvestigator").toLocked(); 2318 2319 /** 2320 * Search parameter: <b>title</b> 2321 * <p> 2322 * Description: <b>Name for this study</b><br> 2323 * Type: <b>string</b><br> 2324 * Path: <b>ResearchStudy.title</b><br> 2325 * </p> 2326 */ 2327 @SearchParamDefinition(name="title", path="ResearchStudy.title", description="Name for this study", type="string" ) 2328 public static final String SP_TITLE = "title"; 2329 /** 2330 * <b>Fluent Client</b> search parameter constant for <b>title</b> 2331 * <p> 2332 * Description: <b>Name for this study</b><br> 2333 * Type: <b>string</b><br> 2334 * Path: <b>ResearchStudy.title</b><br> 2335 * </p> 2336 */ 2337 public static final ca.uhn.fhir.rest.gclient.StringClientParam TITLE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_TITLE); 2338 2339 /** 2340 * Search parameter: <b>protocol</b> 2341 * <p> 2342 * Description: <b>Steps followed in executing study</b><br> 2343 * Type: <b>reference</b><br> 2344 * Path: <b>ResearchStudy.protocol</b><br> 2345 * </p> 2346 */ 2347 @SearchParamDefinition(name="protocol", path="ResearchStudy.protocol", description="Steps followed in executing study", type="reference", target={PlanDefinition.class } ) 2348 public static final String SP_PROTOCOL = "protocol"; 2349 /** 2350 * <b>Fluent Client</b> search parameter constant for <b>protocol</b> 2351 * <p> 2352 * Description: <b>Steps followed in executing study</b><br> 2353 * Type: <b>reference</b><br> 2354 * Path: <b>ResearchStudy.protocol</b><br> 2355 * </p> 2356 */ 2357 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PROTOCOL = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PROTOCOL); 2358 2359/** 2360 * Constant for fluent queries to be used to add include statements. Specifies 2361 * the path value of "<b>ResearchStudy:protocol</b>". 2362 */ 2363 public static final ca.uhn.fhir.model.api.Include INCLUDE_PROTOCOL = new ca.uhn.fhir.model.api.Include("ResearchStudy:protocol").toLocked(); 2364 2365 /** 2366 * Search parameter: <b>site</b> 2367 * <p> 2368 * Description: <b>Location involved in study execution</b><br> 2369 * Type: <b>reference</b><br> 2370 * Path: <b>ResearchStudy.site</b><br> 2371 * </p> 2372 */ 2373 @SearchParamDefinition(name="site", path="ResearchStudy.site", description="Location involved in study execution", type="reference", target={Location.class } ) 2374 public static final String SP_SITE = "site"; 2375 /** 2376 * <b>Fluent Client</b> search parameter constant for <b>site</b> 2377 * <p> 2378 * Description: <b>Location involved in study execution</b><br> 2379 * Type: <b>reference</b><br> 2380 * Path: <b>ResearchStudy.site</b><br> 2381 * </p> 2382 */ 2383 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SITE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SITE); 2384 2385/** 2386 * Constant for fluent queries to be used to add include statements. Specifies 2387 * the path value of "<b>ResearchStudy:site</b>". 2388 */ 2389 public static final ca.uhn.fhir.model.api.Include INCLUDE_SITE = new ca.uhn.fhir.model.api.Include("ResearchStudy:site").toLocked(); 2390 2391 /** 2392 * Search parameter: <b>category</b> 2393 * <p> 2394 * Description: <b>Classifications for the study</b><br> 2395 * Type: <b>token</b><br> 2396 * Path: <b>ResearchStudy.category</b><br> 2397 * </p> 2398 */ 2399 @SearchParamDefinition(name="category", path="ResearchStudy.category", description="Classifications for the study", type="token" ) 2400 public static final String SP_CATEGORY = "category"; 2401 /** 2402 * <b>Fluent Client</b> search parameter constant for <b>category</b> 2403 * <p> 2404 * Description: <b>Classifications for the study</b><br> 2405 * Type: <b>token</b><br> 2406 * Path: <b>ResearchStudy.category</b><br> 2407 * </p> 2408 */ 2409 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CATEGORY = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CATEGORY); 2410 2411 /** 2412 * Search parameter: <b>keyword</b> 2413 * <p> 2414 * Description: <b>Used to search for the study</b><br> 2415 * Type: <b>token</b><br> 2416 * Path: <b>ResearchStudy.keyword</b><br> 2417 * </p> 2418 */ 2419 @SearchParamDefinition(name="keyword", path="ResearchStudy.keyword", description="Used to search for the study", type="token" ) 2420 public static final String SP_KEYWORD = "keyword"; 2421 /** 2422 * <b>Fluent Client</b> search parameter constant for <b>keyword</b> 2423 * <p> 2424 * Description: <b>Used to search for the study</b><br> 2425 * Type: <b>token</b><br> 2426 * Path: <b>ResearchStudy.keyword</b><br> 2427 * </p> 2428 */ 2429 public static final ca.uhn.fhir.rest.gclient.TokenClientParam KEYWORD = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_KEYWORD); 2430 2431 /** 2432 * Search parameter: <b>status</b> 2433 * <p> 2434 * Description: <b>draft | in-progress | suspended | stopped | completed | entered-in-error</b><br> 2435 * Type: <b>token</b><br> 2436 * Path: <b>ResearchStudy.status</b><br> 2437 * </p> 2438 */ 2439 @SearchParamDefinition(name="status", path="ResearchStudy.status", description="draft | in-progress | suspended | stopped | completed | entered-in-error", type="token" ) 2440 public static final String SP_STATUS = "status"; 2441 /** 2442 * <b>Fluent Client</b> search parameter constant for <b>status</b> 2443 * <p> 2444 * Description: <b>draft | in-progress | suspended | stopped | completed | entered-in-error</b><br> 2445 * Type: <b>token</b><br> 2446 * Path: <b>ResearchStudy.status</b><br> 2447 * </p> 2448 */ 2449 public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS); 2450 2451 2452} 2453