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