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