001package org.hl7.fhir.r4.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 035// Generated on Tue, May 12, 2020 07:26+1000 for FHIR v4.0.1 036 037import java.util.*; 038 039import org.hl7.fhir.utilities.Utilities; 040import org.hl7.fhir.r4.model.Enumerations.*; 041import ca.uhn.fhir.model.api.annotation.ResourceDef; 042import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 043import ca.uhn.fhir.model.api.annotation.Child; 044import ca.uhn.fhir.model.api.annotation.ChildOrder; 045import ca.uhn.fhir.model.api.annotation.Description; 046import ca.uhn.fhir.model.api.annotation.Block; 047import org.hl7.fhir.instance.model.api.*; 048import org.hl7.fhir.exceptions.FHIRException; 049/** 050 * 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. 051 */ 052@ResourceDef(name="ResearchStudy", profile="http://hl7.org/fhir/StructureDefinition/ResearchStudy") 053public class ResearchStudy extends DomainResource { 054 055 public enum ResearchStudyStatus { 056 /** 057 * Study is opened for accrual. 058 */ 059 ACTIVE, 060 /** 061 * Study is completed prematurely and will not resume; patients are no longer examined nor treated. 062 */ 063 ADMINISTRATIVELYCOMPLETED, 064 /** 065 * Protocol is approved by the review board. 066 */ 067 APPROVED, 068 /** 069 * Study is closed for accrual; patients can be examined and treated. 070 */ 071 CLOSEDTOACCRUAL, 072 /** 073 * Study is closed to accrual and intervention, i.e. the study is closed to enrollment, all study subjects have completed treatment or intervention but are still being followed according to the primary objective of the study. 074 */ 075 CLOSEDTOACCRUALANDINTERVENTION, 076 /** 077 * Study is closed to accrual and intervention, i.e. the study is closed to enrollment, all study subjects have completed treatment 078or intervention but are still being followed according to the primary objective of the study. 079 */ 080 COMPLETED, 081 /** 082 * Protocol was disapproved by the review board. 083 */ 084 DISAPPROVED, 085 /** 086 * Protocol is submitted to the review board for approval. 087 */ 088 INREVIEW, 089 /** 090 * Study is temporarily closed for accrual; can be potentially resumed in the future; patients can be examined and treated. 091 */ 092 TEMPORARILYCLOSEDTOACCRUAL, 093 /** 094 * Study is temporarily closed for accrual and intervention and potentially can be resumed in the future. 095 */ 096 TEMPORARILYCLOSEDTOACCRUALANDINTERVENTION, 097 /** 098 * Protocol was withdrawn by the lead organization. 099 */ 100 WITHDRAWN, 101 /** 102 * added to help the parsers with the generic types 103 */ 104 NULL; 105 public static ResearchStudyStatus fromCode(String codeString) throws FHIRException { 106 if (codeString == null || "".equals(codeString)) 107 return null; 108 if ("active".equals(codeString)) 109 return ACTIVE; 110 if ("administratively-completed".equals(codeString)) 111 return ADMINISTRATIVELYCOMPLETED; 112 if ("approved".equals(codeString)) 113 return APPROVED; 114 if ("closed-to-accrual".equals(codeString)) 115 return CLOSEDTOACCRUAL; 116 if ("closed-to-accrual-and-intervention".equals(codeString)) 117 return CLOSEDTOACCRUALANDINTERVENTION; 118 if ("completed".equals(codeString)) 119 return COMPLETED; 120 if ("disapproved".equals(codeString)) 121 return DISAPPROVED; 122 if ("in-review".equals(codeString)) 123 return INREVIEW; 124 if ("temporarily-closed-to-accrual".equals(codeString)) 125 return TEMPORARILYCLOSEDTOACCRUAL; 126 if ("temporarily-closed-to-accrual-and-intervention".equals(codeString)) 127 return TEMPORARILYCLOSEDTOACCRUALANDINTERVENTION; 128 if ("withdrawn".equals(codeString)) 129 return WITHDRAWN; 130 if (Configuration.isAcceptInvalidEnums()) 131 return null; 132 else 133 throw new FHIRException("Unknown ResearchStudyStatus code '"+codeString+"'"); 134 } 135 public String toCode() { 136 switch (this) { 137 case ACTIVE: return "active"; 138 case ADMINISTRATIVELYCOMPLETED: return "administratively-completed"; 139 case APPROVED: return "approved"; 140 case CLOSEDTOACCRUAL: return "closed-to-accrual"; 141 case CLOSEDTOACCRUALANDINTERVENTION: return "closed-to-accrual-and-intervention"; 142 case COMPLETED: return "completed"; 143 case DISAPPROVED: return "disapproved"; 144 case INREVIEW: return "in-review"; 145 case TEMPORARILYCLOSEDTOACCRUAL: return "temporarily-closed-to-accrual"; 146 case TEMPORARILYCLOSEDTOACCRUALANDINTERVENTION: return "temporarily-closed-to-accrual-and-intervention"; 147 case WITHDRAWN: return "withdrawn"; 148 default: return "?"; 149 } 150 } 151 public String getSystem() { 152 switch (this) { 153 case ACTIVE: return "http://hl7.org/fhir/research-study-status"; 154 case ADMINISTRATIVELYCOMPLETED: return "http://hl7.org/fhir/research-study-status"; 155 case APPROVED: return "http://hl7.org/fhir/research-study-status"; 156 case CLOSEDTOACCRUAL: return "http://hl7.org/fhir/research-study-status"; 157 case CLOSEDTOACCRUALANDINTERVENTION: return "http://hl7.org/fhir/research-study-status"; 158 case COMPLETED: return "http://hl7.org/fhir/research-study-status"; 159 case DISAPPROVED: return "http://hl7.org/fhir/research-study-status"; 160 case INREVIEW: return "http://hl7.org/fhir/research-study-status"; 161 case TEMPORARILYCLOSEDTOACCRUAL: return "http://hl7.org/fhir/research-study-status"; 162 case TEMPORARILYCLOSEDTOACCRUALANDINTERVENTION: return "http://hl7.org/fhir/research-study-status"; 163 case WITHDRAWN: return "http://hl7.org/fhir/research-study-status"; 164 default: return "?"; 165 } 166 } 167 public String getDefinition() { 168 switch (this) { 169 case ACTIVE: return "Study is opened for accrual."; 170 case ADMINISTRATIVELYCOMPLETED: return "Study is completed prematurely and will not resume; patients are no longer examined nor treated."; 171 case APPROVED: return "Protocol is approved by the review board."; 172 case CLOSEDTOACCRUAL: return "Study is closed for accrual; patients can be examined and treated."; 173 case CLOSEDTOACCRUALANDINTERVENTION: return "Study is closed to accrual and intervention, i.e. the study is closed to enrollment, all study subjects have completed treatment or intervention but are still being followed according to the primary objective of the study."; 174 case COMPLETED: return "Study is closed to accrual and intervention, i.e. the study is closed to enrollment, all study subjects have completed treatment\nor intervention but are still being followed according to the primary objective of the study."; 175 case DISAPPROVED: return "Protocol was disapproved by the review board."; 176 case INREVIEW: return "Protocol is submitted to the review board for approval."; 177 case TEMPORARILYCLOSEDTOACCRUAL: return "Study is temporarily closed for accrual; can be potentially resumed in the future; patients can be examined and treated."; 178 case TEMPORARILYCLOSEDTOACCRUALANDINTERVENTION: return "Study is temporarily closed for accrual and intervention and potentially can be resumed in the future."; 179 case WITHDRAWN: return "Protocol was withdrawn by the lead organization."; 180 default: return "?"; 181 } 182 } 183 public String getDisplay() { 184 switch (this) { 185 case ACTIVE: return "Active"; 186 case ADMINISTRATIVELYCOMPLETED: return "Administratively Completed"; 187 case APPROVED: return "Approved"; 188 case CLOSEDTOACCRUAL: return "Closed to Accrual"; 189 case CLOSEDTOACCRUALANDINTERVENTION: return "Closed to Accrual and Intervention"; 190 case COMPLETED: return "Completed"; 191 case DISAPPROVED: return "Disapproved"; 192 case INREVIEW: return "In Review"; 193 case TEMPORARILYCLOSEDTOACCRUAL: return "Temporarily Closed to Accrual"; 194 case TEMPORARILYCLOSEDTOACCRUALANDINTERVENTION: return "Temporarily Closed to Accrual and Intervention"; 195 case WITHDRAWN: return "Withdrawn"; 196 default: return "?"; 197 } 198 } 199 } 200 201 public static class ResearchStudyStatusEnumFactory implements EnumFactory<ResearchStudyStatus> { 202 public ResearchStudyStatus fromCode(String codeString) throws IllegalArgumentException { 203 if (codeString == null || "".equals(codeString)) 204 if (codeString == null || "".equals(codeString)) 205 return null; 206 if ("active".equals(codeString)) 207 return ResearchStudyStatus.ACTIVE; 208 if ("administratively-completed".equals(codeString)) 209 return ResearchStudyStatus.ADMINISTRATIVELYCOMPLETED; 210 if ("approved".equals(codeString)) 211 return ResearchStudyStatus.APPROVED; 212 if ("closed-to-accrual".equals(codeString)) 213 return ResearchStudyStatus.CLOSEDTOACCRUAL; 214 if ("closed-to-accrual-and-intervention".equals(codeString)) 215 return ResearchStudyStatus.CLOSEDTOACCRUALANDINTERVENTION; 216 if ("completed".equals(codeString)) 217 return ResearchStudyStatus.COMPLETED; 218 if ("disapproved".equals(codeString)) 219 return ResearchStudyStatus.DISAPPROVED; 220 if ("in-review".equals(codeString)) 221 return ResearchStudyStatus.INREVIEW; 222 if ("temporarily-closed-to-accrual".equals(codeString)) 223 return ResearchStudyStatus.TEMPORARILYCLOSEDTOACCRUAL; 224 if ("temporarily-closed-to-accrual-and-intervention".equals(codeString)) 225 return ResearchStudyStatus.TEMPORARILYCLOSEDTOACCRUALANDINTERVENTION; 226 if ("withdrawn".equals(codeString)) 227 return ResearchStudyStatus.WITHDRAWN; 228 throw new IllegalArgumentException("Unknown ResearchStudyStatus code '"+codeString+"'"); 229 } 230 public Enumeration<ResearchStudyStatus> fromType(Base code) throws FHIRException { 231 if (code == null) 232 return null; 233 if (code.isEmpty()) 234 return new Enumeration<ResearchStudyStatus>(this); 235 String codeString = ((PrimitiveType) code).asStringValue(); 236 if (codeString == null || "".equals(codeString)) 237 return null; 238 if ("active".equals(codeString)) 239 return new Enumeration<ResearchStudyStatus>(this, ResearchStudyStatus.ACTIVE); 240 if ("administratively-completed".equals(codeString)) 241 return new Enumeration<ResearchStudyStatus>(this, ResearchStudyStatus.ADMINISTRATIVELYCOMPLETED); 242 if ("approved".equals(codeString)) 243 return new Enumeration<ResearchStudyStatus>(this, ResearchStudyStatus.APPROVED); 244 if ("closed-to-accrual".equals(codeString)) 245 return new Enumeration<ResearchStudyStatus>(this, ResearchStudyStatus.CLOSEDTOACCRUAL); 246 if ("closed-to-accrual-and-intervention".equals(codeString)) 247 return new Enumeration<ResearchStudyStatus>(this, ResearchStudyStatus.CLOSEDTOACCRUALANDINTERVENTION); 248 if ("completed".equals(codeString)) 249 return new Enumeration<ResearchStudyStatus>(this, ResearchStudyStatus.COMPLETED); 250 if ("disapproved".equals(codeString)) 251 return new Enumeration<ResearchStudyStatus>(this, ResearchStudyStatus.DISAPPROVED); 252 if ("in-review".equals(codeString)) 253 return new Enumeration<ResearchStudyStatus>(this, ResearchStudyStatus.INREVIEW); 254 if ("temporarily-closed-to-accrual".equals(codeString)) 255 return new Enumeration<ResearchStudyStatus>(this, ResearchStudyStatus.TEMPORARILYCLOSEDTOACCRUAL); 256 if ("temporarily-closed-to-accrual-and-intervention".equals(codeString)) 257 return new Enumeration<ResearchStudyStatus>(this, ResearchStudyStatus.TEMPORARILYCLOSEDTOACCRUALANDINTERVENTION); 258 if ("withdrawn".equals(codeString)) 259 return new Enumeration<ResearchStudyStatus>(this, ResearchStudyStatus.WITHDRAWN); 260 throw new FHIRException("Unknown ResearchStudyStatus code '"+codeString+"'"); 261 } 262 public String toCode(ResearchStudyStatus code) { 263 if (code == ResearchStudyStatus.ACTIVE) 264 return "active"; 265 if (code == ResearchStudyStatus.ADMINISTRATIVELYCOMPLETED) 266 return "administratively-completed"; 267 if (code == ResearchStudyStatus.APPROVED) 268 return "approved"; 269 if (code == ResearchStudyStatus.CLOSEDTOACCRUAL) 270 return "closed-to-accrual"; 271 if (code == ResearchStudyStatus.CLOSEDTOACCRUALANDINTERVENTION) 272 return "closed-to-accrual-and-intervention"; 273 if (code == ResearchStudyStatus.COMPLETED) 274 return "completed"; 275 if (code == ResearchStudyStatus.DISAPPROVED) 276 return "disapproved"; 277 if (code == ResearchStudyStatus.INREVIEW) 278 return "in-review"; 279 if (code == ResearchStudyStatus.TEMPORARILYCLOSEDTOACCRUAL) 280 return "temporarily-closed-to-accrual"; 281 if (code == ResearchStudyStatus.TEMPORARILYCLOSEDTOACCRUALANDINTERVENTION) 282 return "temporarily-closed-to-accrual-and-intervention"; 283 if (code == ResearchStudyStatus.WITHDRAWN) 284 return "withdrawn"; 285 return "?"; 286 } 287 public String toSystem(ResearchStudyStatus code) { 288 return code.getSystem(); 289 } 290 } 291 292 @Block() 293 public static class ResearchStudyArmComponent extends BackboneElement implements IBaseBackboneElement { 294 /** 295 * Unique, human-readable label for this arm of the study. 296 */ 297 @Child(name = "name", type = {StringType.class}, order=1, min=1, max=1, modifier=false, summary=false) 298 @Description(shortDefinition="Label for study arm", formalDefinition="Unique, human-readable label for this arm of the study." ) 299 protected StringType name; 300 301 /** 302 * Categorization of study arm, e.g. experimental, active comparator, placebo comparater. 303 */ 304 @Child(name = "type", type = {CodeableConcept.class}, order=2, min=0, max=1, modifier=false, summary=false) 305 @Description(shortDefinition="Categorization of study arm", formalDefinition="Categorization of study arm, e.g. experimental, active comparator, placebo comparater." ) 306 protected CodeableConcept type; 307 308 /** 309 * A succinct description of the path through the study that would be followed by a subject adhering to this arm. 310 */ 311 @Child(name = "description", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=false) 312 @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." ) 313 protected StringType description; 314 315 private static final long serialVersionUID = 311445244L; 316 317 /** 318 * Constructor 319 */ 320 public ResearchStudyArmComponent() { 321 super(); 322 } 323 324 /** 325 * Constructor 326 */ 327 public ResearchStudyArmComponent(StringType name) { 328 super(); 329 this.name = name; 330 } 331 332 /** 333 * @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 334 */ 335 public StringType getNameElement() { 336 if (this.name == null) 337 if (Configuration.errorOnAutoCreate()) 338 throw new Error("Attempt to auto-create ResearchStudyArmComponent.name"); 339 else if (Configuration.doAutoCreate()) 340 this.name = new StringType(); // bb 341 return this.name; 342 } 343 344 public boolean hasNameElement() { 345 return this.name != null && !this.name.isEmpty(); 346 } 347 348 public boolean hasName() { 349 return this.name != null && !this.name.isEmpty(); 350 } 351 352 /** 353 * @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 354 */ 355 public ResearchStudyArmComponent setNameElement(StringType value) { 356 this.name = value; 357 return this; 358 } 359 360 /** 361 * @return Unique, human-readable label for this arm of the study. 362 */ 363 public String getName() { 364 return this.name == null ? null : this.name.getValue(); 365 } 366 367 /** 368 * @param value Unique, human-readable label for this arm of the study. 369 */ 370 public ResearchStudyArmComponent setName(String value) { 371 if (this.name == null) 372 this.name = new StringType(); 373 this.name.setValue(value); 374 return this; 375 } 376 377 /** 378 * @return {@link #type} (Categorization of study arm, e.g. experimental, active comparator, placebo comparater.) 379 */ 380 public CodeableConcept getType() { 381 if (this.type == null) 382 if (Configuration.errorOnAutoCreate()) 383 throw new Error("Attempt to auto-create ResearchStudyArmComponent.type"); 384 else if (Configuration.doAutoCreate()) 385 this.type = new CodeableConcept(); // cc 386 return this.type; 387 } 388 389 public boolean hasType() { 390 return this.type != null && !this.type.isEmpty(); 391 } 392 393 /** 394 * @param value {@link #type} (Categorization of study arm, e.g. experimental, active comparator, placebo comparater.) 395 */ 396 public ResearchStudyArmComponent setType(CodeableConcept value) { 397 this.type = value; 398 return this; 399 } 400 401 /** 402 * @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 403 */ 404 public StringType getDescriptionElement() { 405 if (this.description == null) 406 if (Configuration.errorOnAutoCreate()) 407 throw new Error("Attempt to auto-create ResearchStudyArmComponent.description"); 408 else if (Configuration.doAutoCreate()) 409 this.description = new StringType(); // bb 410 return this.description; 411 } 412 413 public boolean hasDescriptionElement() { 414 return this.description != null && !this.description.isEmpty(); 415 } 416 417 public boolean hasDescription() { 418 return this.description != null && !this.description.isEmpty(); 419 } 420 421 /** 422 * @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 423 */ 424 public ResearchStudyArmComponent setDescriptionElement(StringType value) { 425 this.description = value; 426 return this; 427 } 428 429 /** 430 * @return A succinct description of the path through the study that would be followed by a subject adhering to this arm. 431 */ 432 public String getDescription() { 433 return this.description == null ? null : this.description.getValue(); 434 } 435 436 /** 437 * @param value A succinct description of the path through the study that would be followed by a subject adhering to this arm. 438 */ 439 public ResearchStudyArmComponent setDescription(String value) { 440 if (Utilities.noString(value)) 441 this.description = null; 442 else { 443 if (this.description == null) 444 this.description = new StringType(); 445 this.description.setValue(value); 446 } 447 return this; 448 } 449 450 protected void listChildren(List<Property> children) { 451 super.listChildren(children); 452 children.add(new Property("name", "string", "Unique, human-readable label for this arm of the study.", 0, 1, name)); 453 children.add(new Property("type", "CodeableConcept", "Categorization of study arm, e.g. experimental, active comparator, placebo comparater.", 0, 1, type)); 454 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)); 455 } 456 457 @Override 458 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 459 switch (_hash) { 460 case 3373707: /*name*/ return new Property("name", "string", "Unique, human-readable label for this arm of the study.", 0, 1, name); 461 case 3575610: /*type*/ return new Property("type", "CodeableConcept", "Categorization of study arm, e.g. experimental, active comparator, placebo comparater.", 0, 1, type); 462 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); 463 default: return super.getNamedProperty(_hash, _name, _checkValid); 464 } 465 466 } 467 468 @Override 469 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 470 switch (hash) { 471 case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType 472 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // CodeableConcept 473 case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // StringType 474 default: return super.getProperty(hash, name, checkValid); 475 } 476 477 } 478 479 @Override 480 public Base setProperty(int hash, String name, Base value) throws FHIRException { 481 switch (hash) { 482 case 3373707: // name 483 this.name = castToString(value); // StringType 484 return value; 485 case 3575610: // type 486 this.type = castToCodeableConcept(value); // CodeableConcept 487 return value; 488 case -1724546052: // description 489 this.description = castToString(value); // StringType 490 return value; 491 default: return super.setProperty(hash, name, value); 492 } 493 494 } 495 496 @Override 497 public Base setProperty(String name, Base value) throws FHIRException { 498 if (name.equals("name")) { 499 this.name = castToString(value); // StringType 500 } else if (name.equals("type")) { 501 this.type = castToCodeableConcept(value); // CodeableConcept 502 } else if (name.equals("description")) { 503 this.description = castToString(value); // StringType 504 } else 505 return super.setProperty(name, value); 506 return value; 507 } 508 509 @Override 510 public Base makeProperty(int hash, String name) throws FHIRException { 511 switch (hash) { 512 case 3373707: return getNameElement(); 513 case 3575610: return getType(); 514 case -1724546052: return getDescriptionElement(); 515 default: return super.makeProperty(hash, name); 516 } 517 518 } 519 520 @Override 521 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 522 switch (hash) { 523 case 3373707: /*name*/ return new String[] {"string"}; 524 case 3575610: /*type*/ return new String[] {"CodeableConcept"}; 525 case -1724546052: /*description*/ return new String[] {"string"}; 526 default: return super.getTypesForProperty(hash, name); 527 } 528 529 } 530 531 @Override 532 public Base addChild(String name) throws FHIRException { 533 if (name.equals("name")) { 534 throw new FHIRException("Cannot call addChild on a primitive type ResearchStudy.name"); 535 } 536 else if (name.equals("type")) { 537 this.type = new CodeableConcept(); 538 return this.type; 539 } 540 else if (name.equals("description")) { 541 throw new FHIRException("Cannot call addChild on a primitive type ResearchStudy.description"); 542 } 543 else 544 return super.addChild(name); 545 } 546 547 public ResearchStudyArmComponent copy() { 548 ResearchStudyArmComponent dst = new ResearchStudyArmComponent(); 549 copyValues(dst); 550 return dst; 551 } 552 553 public void copyValues(ResearchStudyArmComponent dst) { 554 super.copyValues(dst); 555 dst.name = name == null ? null : name.copy(); 556 dst.type = type == null ? null : type.copy(); 557 dst.description = description == null ? null : description.copy(); 558 } 559 560 @Override 561 public boolean equalsDeep(Base other_) { 562 if (!super.equalsDeep(other_)) 563 return false; 564 if (!(other_ instanceof ResearchStudyArmComponent)) 565 return false; 566 ResearchStudyArmComponent o = (ResearchStudyArmComponent) other_; 567 return compareDeep(name, o.name, true) && compareDeep(type, o.type, true) && compareDeep(description, o.description, true) 568 ; 569 } 570 571 @Override 572 public boolean equalsShallow(Base other_) { 573 if (!super.equalsShallow(other_)) 574 return false; 575 if (!(other_ instanceof ResearchStudyArmComponent)) 576 return false; 577 ResearchStudyArmComponent o = (ResearchStudyArmComponent) other_; 578 return compareValues(name, o.name, true) && compareValues(description, o.description, true); 579 } 580 581 public boolean isEmpty() { 582 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(name, type, description 583 ); 584 } 585 586 public String fhirType() { 587 return "ResearchStudy.arm"; 588 589 } 590 591 } 592 593 @Block() 594 public static class ResearchStudyObjectiveComponent extends BackboneElement implements IBaseBackboneElement { 595 /** 596 * Unique, human-readable label for this objective of the study. 597 */ 598 @Child(name = "name", type = {StringType.class}, order=1, min=0, max=1, modifier=false, summary=false) 599 @Description(shortDefinition="Label for the objective", formalDefinition="Unique, human-readable label for this objective of the study." ) 600 protected StringType name; 601 602 /** 603 * The kind of study objective. 604 */ 605 @Child(name = "type", type = {CodeableConcept.class}, order=2, min=0, max=1, modifier=false, summary=false) 606 @Description(shortDefinition="primary | secondary | exploratory", formalDefinition="The kind of study objective." ) 607 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/research-study-objective-type") 608 protected CodeableConcept type; 609 610 private static final long serialVersionUID = -1935215997L; 611 612 /** 613 * Constructor 614 */ 615 public ResearchStudyObjectiveComponent() { 616 super(); 617 } 618 619 /** 620 * @return {@link #name} (Unique, human-readable label for this objective of the study.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value 621 */ 622 public StringType getNameElement() { 623 if (this.name == null) 624 if (Configuration.errorOnAutoCreate()) 625 throw new Error("Attempt to auto-create ResearchStudyObjectiveComponent.name"); 626 else if (Configuration.doAutoCreate()) 627 this.name = new StringType(); // bb 628 return this.name; 629 } 630 631 public boolean hasNameElement() { 632 return this.name != null && !this.name.isEmpty(); 633 } 634 635 public boolean hasName() { 636 return this.name != null && !this.name.isEmpty(); 637 } 638 639 /** 640 * @param value {@link #name} (Unique, human-readable label for this objective of the study.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value 641 */ 642 public ResearchStudyObjectiveComponent setNameElement(StringType value) { 643 this.name = value; 644 return this; 645 } 646 647 /** 648 * @return Unique, human-readable label for this objective of the study. 649 */ 650 public String getName() { 651 return this.name == null ? null : this.name.getValue(); 652 } 653 654 /** 655 * @param value Unique, human-readable label for this objective of the study. 656 */ 657 public ResearchStudyObjectiveComponent setName(String value) { 658 if (Utilities.noString(value)) 659 this.name = null; 660 else { 661 if (this.name == null) 662 this.name = new StringType(); 663 this.name.setValue(value); 664 } 665 return this; 666 } 667 668 /** 669 * @return {@link #type} (The kind of study objective.) 670 */ 671 public CodeableConcept getType() { 672 if (this.type == null) 673 if (Configuration.errorOnAutoCreate()) 674 throw new Error("Attempt to auto-create ResearchStudyObjectiveComponent.type"); 675 else if (Configuration.doAutoCreate()) 676 this.type = new CodeableConcept(); // cc 677 return this.type; 678 } 679 680 public boolean hasType() { 681 return this.type != null && !this.type.isEmpty(); 682 } 683 684 /** 685 * @param value {@link #type} (The kind of study objective.) 686 */ 687 public ResearchStudyObjectiveComponent setType(CodeableConcept value) { 688 this.type = value; 689 return this; 690 } 691 692 protected void listChildren(List<Property> children) { 693 super.listChildren(children); 694 children.add(new Property("name", "string", "Unique, human-readable label for this objective of the study.", 0, 1, name)); 695 children.add(new Property("type", "CodeableConcept", "The kind of study objective.", 0, 1, type)); 696 } 697 698 @Override 699 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 700 switch (_hash) { 701 case 3373707: /*name*/ return new Property("name", "string", "Unique, human-readable label for this objective of the study.", 0, 1, name); 702 case 3575610: /*type*/ return new Property("type", "CodeableConcept", "The kind of study objective.", 0, 1, type); 703 default: return super.getNamedProperty(_hash, _name, _checkValid); 704 } 705 706 } 707 708 @Override 709 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 710 switch (hash) { 711 case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType 712 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // CodeableConcept 713 default: return super.getProperty(hash, name, checkValid); 714 } 715 716 } 717 718 @Override 719 public Base setProperty(int hash, String name, Base value) throws FHIRException { 720 switch (hash) { 721 case 3373707: // name 722 this.name = castToString(value); // StringType 723 return value; 724 case 3575610: // type 725 this.type = castToCodeableConcept(value); // CodeableConcept 726 return value; 727 default: return super.setProperty(hash, name, value); 728 } 729 730 } 731 732 @Override 733 public Base setProperty(String name, Base value) throws FHIRException { 734 if (name.equals("name")) { 735 this.name = castToString(value); // StringType 736 } else if (name.equals("type")) { 737 this.type = castToCodeableConcept(value); // CodeableConcept 738 } else 739 return super.setProperty(name, value); 740 return value; 741 } 742 743 @Override 744 public Base makeProperty(int hash, String name) throws FHIRException { 745 switch (hash) { 746 case 3373707: return getNameElement(); 747 case 3575610: return getType(); 748 default: return super.makeProperty(hash, name); 749 } 750 751 } 752 753 @Override 754 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 755 switch (hash) { 756 case 3373707: /*name*/ return new String[] {"string"}; 757 case 3575610: /*type*/ return new String[] {"CodeableConcept"}; 758 default: return super.getTypesForProperty(hash, name); 759 } 760 761 } 762 763 @Override 764 public Base addChild(String name) throws FHIRException { 765 if (name.equals("name")) { 766 throw new FHIRException("Cannot call addChild on a primitive type ResearchStudy.name"); 767 } 768 else if (name.equals("type")) { 769 this.type = new CodeableConcept(); 770 return this.type; 771 } 772 else 773 return super.addChild(name); 774 } 775 776 public ResearchStudyObjectiveComponent copy() { 777 ResearchStudyObjectiveComponent dst = new ResearchStudyObjectiveComponent(); 778 copyValues(dst); 779 return dst; 780 } 781 782 public void copyValues(ResearchStudyObjectiveComponent dst) { 783 super.copyValues(dst); 784 dst.name = name == null ? null : name.copy(); 785 dst.type = type == null ? null : type.copy(); 786 } 787 788 @Override 789 public boolean equalsDeep(Base other_) { 790 if (!super.equalsDeep(other_)) 791 return false; 792 if (!(other_ instanceof ResearchStudyObjectiveComponent)) 793 return false; 794 ResearchStudyObjectiveComponent o = (ResearchStudyObjectiveComponent) other_; 795 return compareDeep(name, o.name, true) && compareDeep(type, o.type, true); 796 } 797 798 @Override 799 public boolean equalsShallow(Base other_) { 800 if (!super.equalsShallow(other_)) 801 return false; 802 if (!(other_ instanceof ResearchStudyObjectiveComponent)) 803 return false; 804 ResearchStudyObjectiveComponent o = (ResearchStudyObjectiveComponent) other_; 805 return compareValues(name, o.name, true); 806 } 807 808 public boolean isEmpty() { 809 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(name, type); 810 } 811 812 public String fhirType() { 813 return "ResearchStudy.objective"; 814 815 } 816 817 } 818 819 /** 820 * Identifiers assigned to this research study by the sponsor or other systems. 821 */ 822 @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 823 @Description(shortDefinition="Business Identifier for study", formalDefinition="Identifiers assigned to this research study by the sponsor or other systems." ) 824 protected List<Identifier> identifier; 825 826 /** 827 * A short, descriptive user-friendly label for the study. 828 */ 829 @Child(name = "title", type = {StringType.class}, order=1, min=0, max=1, modifier=false, summary=true) 830 @Description(shortDefinition="Name for this study", formalDefinition="A short, descriptive user-friendly label for the study." ) 831 protected StringType title; 832 833 /** 834 * The set of steps expected to be performed as part of the execution of the study. 835 */ 836 @Child(name = "protocol", type = {PlanDefinition.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 837 @Description(shortDefinition="Steps followed in executing study", formalDefinition="The set of steps expected to be performed as part of the execution of the study." ) 838 protected List<Reference> protocol; 839 /** 840 * 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.) 841 */ 842 protected List<PlanDefinition> protocolTarget; 843 844 845 /** 846 * A larger research study of which this particular study is a component or step. 847 */ 848 @Child(name = "partOf", type = {ResearchStudy.class}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 849 @Description(shortDefinition="Part of larger study", formalDefinition="A larger research study of which this particular study is a component or step." ) 850 protected List<Reference> partOf; 851 /** 852 * The actual objects that are the target of the reference (A larger research study of which this particular study is a component or step.) 853 */ 854 protected List<ResearchStudy> partOfTarget; 855 856 857 /** 858 * The current state of the study. 859 */ 860 @Child(name = "status", type = {CodeType.class}, order=4, min=1, max=1, modifier=true, summary=true) 861 @Description(shortDefinition="active | administratively-completed | approved | closed-to-accrual | closed-to-accrual-and-intervention | completed | disapproved | in-review | temporarily-closed-to-accrual | temporarily-closed-to-accrual-and-intervention | withdrawn", formalDefinition="The current state of the study." ) 862 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/research-study-status") 863 protected Enumeration<ResearchStudyStatus> status; 864 865 /** 866 * The type of study based upon the intent of the study's activities. A classification of the intent of the study. 867 */ 868 @Child(name = "primaryPurposeType", type = {CodeableConcept.class}, order=5, min=0, max=1, modifier=false, summary=true) 869 @Description(shortDefinition="treatment | prevention | diagnostic | supportive-care | screening | health-services-research | basic-science | device-feasibility", formalDefinition="The type of study based upon the intent of the study's activities. A classification of the intent of the study." ) 870 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/research-study-prim-purp-type") 871 protected CodeableConcept primaryPurposeType; 872 873 /** 874 * The stage in the progression of a therapy from initial experimental use in humans in clinical trials to post-market evaluation. 875 */ 876 @Child(name = "phase", type = {CodeableConcept.class}, order=6, min=0, max=1, modifier=false, summary=true) 877 @Description(shortDefinition="n-a | early-phase-1 | phase-1 | phase-1-phase-2 | phase-2 | phase-2-phase-3 | phase-3 | phase-4", formalDefinition="The stage in the progression of a therapy from initial experimental use in humans in clinical trials to post-market evaluation." ) 878 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/research-study-phase") 879 protected CodeableConcept phase; 880 881 /** 882 * Codes categorizing the type of study such as investigational vs. observational, type of blinding, type of randomization, safety vs. efficacy, etc. 883 */ 884 @Child(name = "category", type = {CodeableConcept.class}, order=7, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 885 @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." ) 886 protected List<CodeableConcept> category; 887 888 /** 889 * The medication(s), food(s), therapy(ies), device(s) or other concerns or interventions that the study is seeking to gain more information about. 890 */ 891 @Child(name = "focus", type = {CodeableConcept.class}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 892 @Description(shortDefinition="Drugs, devices, etc. under study", formalDefinition="The medication(s), food(s), therapy(ies), device(s) or other concerns or interventions that the study is seeking to gain more information about." ) 893 protected List<CodeableConcept> focus; 894 895 /** 896 * The condition that is the focus of the study. For example, In a study to examine risk factors for Lupus, might have as an inclusion criterion "healthy volunteer", but the target condition code would be a Lupus SNOMED code. 897 */ 898 @Child(name = "condition", type = {CodeableConcept.class}, order=9, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 899 @Description(shortDefinition="Condition being studied", formalDefinition="The condition that is the focus of the study. For example, In a study to examine risk factors for Lupus, might have as an inclusion criterion \"healthy volunteer\", but the target condition code would be a Lupus SNOMED code." ) 900 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/condition-code") 901 protected List<CodeableConcept> condition; 902 903 /** 904 * Contact details to assist a user in learning more about or engaging with the study. 905 */ 906 @Child(name = "contact", type = {ContactDetail.class}, order=10, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 907 @Description(shortDefinition="Contact details for the study", formalDefinition="Contact details to assist a user in learning more about or engaging with the study." ) 908 protected List<ContactDetail> contact; 909 910 /** 911 * Citations, references and other related documents. 912 */ 913 @Child(name = "relatedArtifact", type = {RelatedArtifact.class}, order=11, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 914 @Description(shortDefinition="References and dependencies", formalDefinition="Citations, references and other related documents." ) 915 protected List<RelatedArtifact> relatedArtifact; 916 917 /** 918 * Key terms to aid in searching for or filtering the study. 919 */ 920 @Child(name = "keyword", type = {CodeableConcept.class}, order=12, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 921 @Description(shortDefinition="Used to search for the study", formalDefinition="Key terms to aid in searching for or filtering the study." ) 922 protected List<CodeableConcept> keyword; 923 924 /** 925 * Indicates a country, state or other region where the study is taking place. 926 */ 927 @Child(name = "location", type = {CodeableConcept.class}, order=13, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 928 @Description(shortDefinition="Geographic region(s) for study", formalDefinition="Indicates a country, state or other region where the study is taking place." ) 929 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/jurisdiction") 930 protected List<CodeableConcept> location; 931 932 /** 933 * A full description of how the study is being conducted. 934 */ 935 @Child(name = "description", type = {MarkdownType.class}, order=14, min=0, max=1, modifier=false, summary=false) 936 @Description(shortDefinition="What this is study doing", formalDefinition="A full description of how the study is being conducted." ) 937 protected MarkdownType description; 938 939 /** 940 * 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". 941 */ 942 @Child(name = "enrollment", type = {Group.class}, order=15, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 943 @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\"." ) 944 protected List<Reference> enrollment; 945 /** 946 * 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".) 947 */ 948 protected List<Group> enrollmentTarget; 949 950 951 /** 952 * Identifies the start date and the expected (or actual, depending on status) end date for the study. 953 */ 954 @Child(name = "period", type = {Period.class}, order=16, min=0, max=1, modifier=false, summary=true) 955 @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." ) 956 protected Period period; 957 958 /** 959 * An organization that initiates the investigation and is legally responsible for the study. 960 */ 961 @Child(name = "sponsor", type = {Organization.class}, order=17, min=0, max=1, modifier=false, summary=true) 962 @Description(shortDefinition="Organization that initiates and is legally responsible for the study", formalDefinition="An organization that initiates the investigation and is legally responsible for the study." ) 963 protected Reference sponsor; 964 965 /** 966 * The actual object that is the target of the reference (An organization that initiates the investigation and is legally responsible for the study.) 967 */ 968 protected Organization sponsorTarget; 969 970 /** 971 * A researcher in a study who oversees multiple aspects of the study, such as concept development, protocol writing, protocol submission for IRB approval, participant recruitment, informed consent, data collection, analysis, interpretation and presentation. 972 */ 973 @Child(name = "principalInvestigator", type = {Practitioner.class, PractitionerRole.class}, order=18, min=0, max=1, modifier=false, summary=true) 974 @Description(shortDefinition="Researcher who oversees multiple aspects of the study", formalDefinition="A researcher in a study who oversees multiple aspects of the study, such as concept development, protocol writing, protocol submission for IRB approval, participant recruitment, informed consent, data collection, analysis, interpretation and presentation." ) 975 protected Reference principalInvestigator; 976 977 /** 978 * The actual object that is the target of the reference (A researcher in a study who oversees multiple aspects of the study, such as concept development, protocol writing, protocol submission for IRB approval, participant recruitment, informed consent, data collection, analysis, interpretation and presentation.) 979 */ 980 protected Resource principalInvestigatorTarget; 981 982 /** 983 * A facility in which study activities are conducted. 984 */ 985 @Child(name = "site", type = {Location.class}, order=19, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 986 @Description(shortDefinition="Facility where study activities are conducted", formalDefinition="A facility in which study activities are conducted." ) 987 protected List<Reference> site; 988 /** 989 * The actual objects that are the target of the reference (A facility in which study activities are conducted.) 990 */ 991 protected List<Location> siteTarget; 992 993 994 /** 995 * A description and/or code explaining the premature termination of the study. 996 */ 997 @Child(name = "reasonStopped", type = {CodeableConcept.class}, order=20, min=0, max=1, modifier=false, summary=true) 998 @Description(shortDefinition="accrual-goal-met | closed-due-to-toxicity | closed-due-to-lack-of-study-progress | temporarily-closed-per-study-design", formalDefinition="A description and/or code explaining the premature termination of the study." ) 999 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/research-study-reason-stopped") 1000 protected CodeableConcept reasonStopped; 1001 1002 /** 1003 * Comments made about the study by the performer, subject or other participants. 1004 */ 1005 @Child(name = "note", type = {Annotation.class}, order=21, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1006 @Description(shortDefinition="Comments made about the study", formalDefinition="Comments made about the study by the performer, subject or other participants." ) 1007 protected List<Annotation> note; 1008 1009 /** 1010 * 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. 1011 */ 1012 @Child(name = "arm", type = {}, order=22, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1013 @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." ) 1014 protected List<ResearchStudyArmComponent> arm; 1015 1016 /** 1017 * A goal that the study is aiming to achieve in terms of a scientific question to be answered by the analysis of data collected during the study. 1018 */ 1019 @Child(name = "objective", type = {}, order=23, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1020 @Description(shortDefinition="A goal for the study", formalDefinition="A goal that the study is aiming to achieve in terms of a scientific question to be answered by the analysis of data collected during the study." ) 1021 protected List<ResearchStudyObjectiveComponent> objective; 1022 1023 private static final long serialVersionUID = -911538323L; 1024 1025 /** 1026 * Constructor 1027 */ 1028 public ResearchStudy() { 1029 super(); 1030 } 1031 1032 /** 1033 * Constructor 1034 */ 1035 public ResearchStudy(Enumeration<ResearchStudyStatus> status) { 1036 super(); 1037 this.status = status; 1038 } 1039 1040 /** 1041 * @return {@link #identifier} (Identifiers assigned to this research study by the sponsor or other systems.) 1042 */ 1043 public List<Identifier> getIdentifier() { 1044 if (this.identifier == null) 1045 this.identifier = new ArrayList<Identifier>(); 1046 return this.identifier; 1047 } 1048 1049 /** 1050 * @return Returns a reference to <code>this</code> for easy method chaining 1051 */ 1052 public ResearchStudy setIdentifier(List<Identifier> theIdentifier) { 1053 this.identifier = theIdentifier; 1054 return this; 1055 } 1056 1057 public boolean hasIdentifier() { 1058 if (this.identifier == null) 1059 return false; 1060 for (Identifier item : this.identifier) 1061 if (!item.isEmpty()) 1062 return true; 1063 return false; 1064 } 1065 1066 public Identifier addIdentifier() { //3 1067 Identifier t = new Identifier(); 1068 if (this.identifier == null) 1069 this.identifier = new ArrayList<Identifier>(); 1070 this.identifier.add(t); 1071 return t; 1072 } 1073 1074 public ResearchStudy addIdentifier(Identifier t) { //3 1075 if (t == null) 1076 return this; 1077 if (this.identifier == null) 1078 this.identifier = new ArrayList<Identifier>(); 1079 this.identifier.add(t); 1080 return this; 1081 } 1082 1083 /** 1084 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist 1085 */ 1086 public Identifier getIdentifierFirstRep() { 1087 if (getIdentifier().isEmpty()) { 1088 addIdentifier(); 1089 } 1090 return getIdentifier().get(0); 1091 } 1092 1093 /** 1094 * @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 1095 */ 1096 public StringType getTitleElement() { 1097 if (this.title == null) 1098 if (Configuration.errorOnAutoCreate()) 1099 throw new Error("Attempt to auto-create ResearchStudy.title"); 1100 else if (Configuration.doAutoCreate()) 1101 this.title = new StringType(); // bb 1102 return this.title; 1103 } 1104 1105 public boolean hasTitleElement() { 1106 return this.title != null && !this.title.isEmpty(); 1107 } 1108 1109 public boolean hasTitle() { 1110 return this.title != null && !this.title.isEmpty(); 1111 } 1112 1113 /** 1114 * @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 1115 */ 1116 public ResearchStudy setTitleElement(StringType value) { 1117 this.title = value; 1118 return this; 1119 } 1120 1121 /** 1122 * @return A short, descriptive user-friendly label for the study. 1123 */ 1124 public String getTitle() { 1125 return this.title == null ? null : this.title.getValue(); 1126 } 1127 1128 /** 1129 * @param value A short, descriptive user-friendly label for the study. 1130 */ 1131 public ResearchStudy setTitle(String value) { 1132 if (Utilities.noString(value)) 1133 this.title = null; 1134 else { 1135 if (this.title == null) 1136 this.title = new StringType(); 1137 this.title.setValue(value); 1138 } 1139 return this; 1140 } 1141 1142 /** 1143 * @return {@link #protocol} (The set of steps expected to be performed as part of the execution of the study.) 1144 */ 1145 public List<Reference> getProtocol() { 1146 if (this.protocol == null) 1147 this.protocol = new ArrayList<Reference>(); 1148 return this.protocol; 1149 } 1150 1151 /** 1152 * @return Returns a reference to <code>this</code> for easy method chaining 1153 */ 1154 public ResearchStudy setProtocol(List<Reference> theProtocol) { 1155 this.protocol = theProtocol; 1156 return this; 1157 } 1158 1159 public boolean hasProtocol() { 1160 if (this.protocol == null) 1161 return false; 1162 for (Reference item : this.protocol) 1163 if (!item.isEmpty()) 1164 return true; 1165 return false; 1166 } 1167 1168 public Reference addProtocol() { //3 1169 Reference t = new Reference(); 1170 if (this.protocol == null) 1171 this.protocol = new ArrayList<Reference>(); 1172 this.protocol.add(t); 1173 return t; 1174 } 1175 1176 public ResearchStudy addProtocol(Reference t) { //3 1177 if (t == null) 1178 return this; 1179 if (this.protocol == null) 1180 this.protocol = new ArrayList<Reference>(); 1181 this.protocol.add(t); 1182 return this; 1183 } 1184 1185 /** 1186 * @return The first repetition of repeating field {@link #protocol}, creating it if it does not already exist 1187 */ 1188 public Reference getProtocolFirstRep() { 1189 if (getProtocol().isEmpty()) { 1190 addProtocol(); 1191 } 1192 return getProtocol().get(0); 1193 } 1194 1195 /** 1196 * @deprecated Use Reference#setResource(IBaseResource) instead 1197 */ 1198 @Deprecated 1199 public List<PlanDefinition> getProtocolTarget() { 1200 if (this.protocolTarget == null) 1201 this.protocolTarget = new ArrayList<PlanDefinition>(); 1202 return this.protocolTarget; 1203 } 1204 1205 /** 1206 * @deprecated Use Reference#setResource(IBaseResource) instead 1207 */ 1208 @Deprecated 1209 public PlanDefinition addProtocolTarget() { 1210 PlanDefinition r = new PlanDefinition(); 1211 if (this.protocolTarget == null) 1212 this.protocolTarget = new ArrayList<PlanDefinition>(); 1213 this.protocolTarget.add(r); 1214 return r; 1215 } 1216 1217 /** 1218 * @return {@link #partOf} (A larger research study of which this particular study is a component or step.) 1219 */ 1220 public List<Reference> getPartOf() { 1221 if (this.partOf == null) 1222 this.partOf = new ArrayList<Reference>(); 1223 return this.partOf; 1224 } 1225 1226 /** 1227 * @return Returns a reference to <code>this</code> for easy method chaining 1228 */ 1229 public ResearchStudy setPartOf(List<Reference> thePartOf) { 1230 this.partOf = thePartOf; 1231 return this; 1232 } 1233 1234 public boolean hasPartOf() { 1235 if (this.partOf == null) 1236 return false; 1237 for (Reference item : this.partOf) 1238 if (!item.isEmpty()) 1239 return true; 1240 return false; 1241 } 1242 1243 public Reference addPartOf() { //3 1244 Reference t = new Reference(); 1245 if (this.partOf == null) 1246 this.partOf = new ArrayList<Reference>(); 1247 this.partOf.add(t); 1248 return t; 1249 } 1250 1251 public ResearchStudy addPartOf(Reference t) { //3 1252 if (t == null) 1253 return this; 1254 if (this.partOf == null) 1255 this.partOf = new ArrayList<Reference>(); 1256 this.partOf.add(t); 1257 return this; 1258 } 1259 1260 /** 1261 * @return The first repetition of repeating field {@link #partOf}, creating it if it does not already exist 1262 */ 1263 public Reference getPartOfFirstRep() { 1264 if (getPartOf().isEmpty()) { 1265 addPartOf(); 1266 } 1267 return getPartOf().get(0); 1268 } 1269 1270 /** 1271 * @deprecated Use Reference#setResource(IBaseResource) instead 1272 */ 1273 @Deprecated 1274 public List<ResearchStudy> getPartOfTarget() { 1275 if (this.partOfTarget == null) 1276 this.partOfTarget = new ArrayList<ResearchStudy>(); 1277 return this.partOfTarget; 1278 } 1279 1280 /** 1281 * @deprecated Use Reference#setResource(IBaseResource) instead 1282 */ 1283 @Deprecated 1284 public ResearchStudy addPartOfTarget() { 1285 ResearchStudy r = new ResearchStudy(); 1286 if (this.partOfTarget == null) 1287 this.partOfTarget = new ArrayList<ResearchStudy>(); 1288 this.partOfTarget.add(r); 1289 return r; 1290 } 1291 1292 /** 1293 * @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 1294 */ 1295 public Enumeration<ResearchStudyStatus> getStatusElement() { 1296 if (this.status == null) 1297 if (Configuration.errorOnAutoCreate()) 1298 throw new Error("Attempt to auto-create ResearchStudy.status"); 1299 else if (Configuration.doAutoCreate()) 1300 this.status = new Enumeration<ResearchStudyStatus>(new ResearchStudyStatusEnumFactory()); // bb 1301 return this.status; 1302 } 1303 1304 public boolean hasStatusElement() { 1305 return this.status != null && !this.status.isEmpty(); 1306 } 1307 1308 public boolean hasStatus() { 1309 return this.status != null && !this.status.isEmpty(); 1310 } 1311 1312 /** 1313 * @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 1314 */ 1315 public ResearchStudy setStatusElement(Enumeration<ResearchStudyStatus> value) { 1316 this.status = value; 1317 return this; 1318 } 1319 1320 /** 1321 * @return The current state of the study. 1322 */ 1323 public ResearchStudyStatus getStatus() { 1324 return this.status == null ? null : this.status.getValue(); 1325 } 1326 1327 /** 1328 * @param value The current state of the study. 1329 */ 1330 public ResearchStudy setStatus(ResearchStudyStatus value) { 1331 if (this.status == null) 1332 this.status = new Enumeration<ResearchStudyStatus>(new ResearchStudyStatusEnumFactory()); 1333 this.status.setValue(value); 1334 return this; 1335 } 1336 1337 /** 1338 * @return {@link #primaryPurposeType} (The type of study based upon the intent of the study's activities. A classification of the intent of the study.) 1339 */ 1340 public CodeableConcept getPrimaryPurposeType() { 1341 if (this.primaryPurposeType == null) 1342 if (Configuration.errorOnAutoCreate()) 1343 throw new Error("Attempt to auto-create ResearchStudy.primaryPurposeType"); 1344 else if (Configuration.doAutoCreate()) 1345 this.primaryPurposeType = new CodeableConcept(); // cc 1346 return this.primaryPurposeType; 1347 } 1348 1349 public boolean hasPrimaryPurposeType() { 1350 return this.primaryPurposeType != null && !this.primaryPurposeType.isEmpty(); 1351 } 1352 1353 /** 1354 * @param value {@link #primaryPurposeType} (The type of study based upon the intent of the study's activities. A classification of the intent of the study.) 1355 */ 1356 public ResearchStudy setPrimaryPurposeType(CodeableConcept value) { 1357 this.primaryPurposeType = value; 1358 return this; 1359 } 1360 1361 /** 1362 * @return {@link #phase} (The stage in the progression of a therapy from initial experimental use in humans in clinical trials to post-market evaluation.) 1363 */ 1364 public CodeableConcept getPhase() { 1365 if (this.phase == null) 1366 if (Configuration.errorOnAutoCreate()) 1367 throw new Error("Attempt to auto-create ResearchStudy.phase"); 1368 else if (Configuration.doAutoCreate()) 1369 this.phase = new CodeableConcept(); // cc 1370 return this.phase; 1371 } 1372 1373 public boolean hasPhase() { 1374 return this.phase != null && !this.phase.isEmpty(); 1375 } 1376 1377 /** 1378 * @param value {@link #phase} (The stage in the progression of a therapy from initial experimental use in humans in clinical trials to post-market evaluation.) 1379 */ 1380 public ResearchStudy setPhase(CodeableConcept value) { 1381 this.phase = value; 1382 return this; 1383 } 1384 1385 /** 1386 * @return {@link #category} (Codes categorizing the type of study such as investigational vs. observational, type of blinding, type of randomization, safety vs. efficacy, etc.) 1387 */ 1388 public List<CodeableConcept> getCategory() { 1389 if (this.category == null) 1390 this.category = new ArrayList<CodeableConcept>(); 1391 return this.category; 1392 } 1393 1394 /** 1395 * @return Returns a reference to <code>this</code> for easy method chaining 1396 */ 1397 public ResearchStudy setCategory(List<CodeableConcept> theCategory) { 1398 this.category = theCategory; 1399 return this; 1400 } 1401 1402 public boolean hasCategory() { 1403 if (this.category == null) 1404 return false; 1405 for (CodeableConcept item : this.category) 1406 if (!item.isEmpty()) 1407 return true; 1408 return false; 1409 } 1410 1411 public CodeableConcept addCategory() { //3 1412 CodeableConcept t = new CodeableConcept(); 1413 if (this.category == null) 1414 this.category = new ArrayList<CodeableConcept>(); 1415 this.category.add(t); 1416 return t; 1417 } 1418 1419 public ResearchStudy addCategory(CodeableConcept t) { //3 1420 if (t == null) 1421 return this; 1422 if (this.category == null) 1423 this.category = new ArrayList<CodeableConcept>(); 1424 this.category.add(t); 1425 return this; 1426 } 1427 1428 /** 1429 * @return The first repetition of repeating field {@link #category}, creating it if it does not already exist 1430 */ 1431 public CodeableConcept getCategoryFirstRep() { 1432 if (getCategory().isEmpty()) { 1433 addCategory(); 1434 } 1435 return getCategory().get(0); 1436 } 1437 1438 /** 1439 * @return {@link #focus} (The medication(s), food(s), therapy(ies), device(s) or other concerns or interventions that the study is seeking to gain more information about.) 1440 */ 1441 public List<CodeableConcept> getFocus() { 1442 if (this.focus == null) 1443 this.focus = new ArrayList<CodeableConcept>(); 1444 return this.focus; 1445 } 1446 1447 /** 1448 * @return Returns a reference to <code>this</code> for easy method chaining 1449 */ 1450 public ResearchStudy setFocus(List<CodeableConcept> theFocus) { 1451 this.focus = theFocus; 1452 return this; 1453 } 1454 1455 public boolean hasFocus() { 1456 if (this.focus == null) 1457 return false; 1458 for (CodeableConcept item : this.focus) 1459 if (!item.isEmpty()) 1460 return true; 1461 return false; 1462 } 1463 1464 public CodeableConcept addFocus() { //3 1465 CodeableConcept t = new CodeableConcept(); 1466 if (this.focus == null) 1467 this.focus = new ArrayList<CodeableConcept>(); 1468 this.focus.add(t); 1469 return t; 1470 } 1471 1472 public ResearchStudy addFocus(CodeableConcept t) { //3 1473 if (t == null) 1474 return this; 1475 if (this.focus == null) 1476 this.focus = new ArrayList<CodeableConcept>(); 1477 this.focus.add(t); 1478 return this; 1479 } 1480 1481 /** 1482 * @return The first repetition of repeating field {@link #focus}, creating it if it does not already exist 1483 */ 1484 public CodeableConcept getFocusFirstRep() { 1485 if (getFocus().isEmpty()) { 1486 addFocus(); 1487 } 1488 return getFocus().get(0); 1489 } 1490 1491 /** 1492 * @return {@link #condition} (The condition that is the focus of the study. For example, In a study to examine risk factors for Lupus, might have as an inclusion criterion "healthy volunteer", but the target condition code would be a Lupus SNOMED code.) 1493 */ 1494 public List<CodeableConcept> getCondition() { 1495 if (this.condition == null) 1496 this.condition = new ArrayList<CodeableConcept>(); 1497 return this.condition; 1498 } 1499 1500 /** 1501 * @return Returns a reference to <code>this</code> for easy method chaining 1502 */ 1503 public ResearchStudy setCondition(List<CodeableConcept> theCondition) { 1504 this.condition = theCondition; 1505 return this; 1506 } 1507 1508 public boolean hasCondition() { 1509 if (this.condition == null) 1510 return false; 1511 for (CodeableConcept item : this.condition) 1512 if (!item.isEmpty()) 1513 return true; 1514 return false; 1515 } 1516 1517 public CodeableConcept addCondition() { //3 1518 CodeableConcept t = new CodeableConcept(); 1519 if (this.condition == null) 1520 this.condition = new ArrayList<CodeableConcept>(); 1521 this.condition.add(t); 1522 return t; 1523 } 1524 1525 public ResearchStudy addCondition(CodeableConcept t) { //3 1526 if (t == null) 1527 return this; 1528 if (this.condition == null) 1529 this.condition = new ArrayList<CodeableConcept>(); 1530 this.condition.add(t); 1531 return this; 1532 } 1533 1534 /** 1535 * @return The first repetition of repeating field {@link #condition}, creating it if it does not already exist 1536 */ 1537 public CodeableConcept getConditionFirstRep() { 1538 if (getCondition().isEmpty()) { 1539 addCondition(); 1540 } 1541 return getCondition().get(0); 1542 } 1543 1544 /** 1545 * @return {@link #contact} (Contact details to assist a user in learning more about or engaging with the study.) 1546 */ 1547 public List<ContactDetail> getContact() { 1548 if (this.contact == null) 1549 this.contact = new ArrayList<ContactDetail>(); 1550 return this.contact; 1551 } 1552 1553 /** 1554 * @return Returns a reference to <code>this</code> for easy method chaining 1555 */ 1556 public ResearchStudy setContact(List<ContactDetail> theContact) { 1557 this.contact = theContact; 1558 return this; 1559 } 1560 1561 public boolean hasContact() { 1562 if (this.contact == null) 1563 return false; 1564 for (ContactDetail item : this.contact) 1565 if (!item.isEmpty()) 1566 return true; 1567 return false; 1568 } 1569 1570 public ContactDetail addContact() { //3 1571 ContactDetail t = new ContactDetail(); 1572 if (this.contact == null) 1573 this.contact = new ArrayList<ContactDetail>(); 1574 this.contact.add(t); 1575 return t; 1576 } 1577 1578 public ResearchStudy addContact(ContactDetail t) { //3 1579 if (t == null) 1580 return this; 1581 if (this.contact == null) 1582 this.contact = new ArrayList<ContactDetail>(); 1583 this.contact.add(t); 1584 return this; 1585 } 1586 1587 /** 1588 * @return The first repetition of repeating field {@link #contact}, creating it if it does not already exist 1589 */ 1590 public ContactDetail getContactFirstRep() { 1591 if (getContact().isEmpty()) { 1592 addContact(); 1593 } 1594 return getContact().get(0); 1595 } 1596 1597 /** 1598 * @return {@link #relatedArtifact} (Citations, references and other related documents.) 1599 */ 1600 public List<RelatedArtifact> getRelatedArtifact() { 1601 if (this.relatedArtifact == null) 1602 this.relatedArtifact = new ArrayList<RelatedArtifact>(); 1603 return this.relatedArtifact; 1604 } 1605 1606 /** 1607 * @return Returns a reference to <code>this</code> for easy method chaining 1608 */ 1609 public ResearchStudy setRelatedArtifact(List<RelatedArtifact> theRelatedArtifact) { 1610 this.relatedArtifact = theRelatedArtifact; 1611 return this; 1612 } 1613 1614 public boolean hasRelatedArtifact() { 1615 if (this.relatedArtifact == null) 1616 return false; 1617 for (RelatedArtifact item : this.relatedArtifact) 1618 if (!item.isEmpty()) 1619 return true; 1620 return false; 1621 } 1622 1623 public RelatedArtifact addRelatedArtifact() { //3 1624 RelatedArtifact t = new RelatedArtifact(); 1625 if (this.relatedArtifact == null) 1626 this.relatedArtifact = new ArrayList<RelatedArtifact>(); 1627 this.relatedArtifact.add(t); 1628 return t; 1629 } 1630 1631 public ResearchStudy addRelatedArtifact(RelatedArtifact t) { //3 1632 if (t == null) 1633 return this; 1634 if (this.relatedArtifact == null) 1635 this.relatedArtifact = new ArrayList<RelatedArtifact>(); 1636 this.relatedArtifact.add(t); 1637 return this; 1638 } 1639 1640 /** 1641 * @return The first repetition of repeating field {@link #relatedArtifact}, creating it if it does not already exist 1642 */ 1643 public RelatedArtifact getRelatedArtifactFirstRep() { 1644 if (getRelatedArtifact().isEmpty()) { 1645 addRelatedArtifact(); 1646 } 1647 return getRelatedArtifact().get(0); 1648 } 1649 1650 /** 1651 * @return {@link #keyword} (Key terms to aid in searching for or filtering the study.) 1652 */ 1653 public List<CodeableConcept> getKeyword() { 1654 if (this.keyword == null) 1655 this.keyword = new ArrayList<CodeableConcept>(); 1656 return this.keyword; 1657 } 1658 1659 /** 1660 * @return Returns a reference to <code>this</code> for easy method chaining 1661 */ 1662 public ResearchStudy setKeyword(List<CodeableConcept> theKeyword) { 1663 this.keyword = theKeyword; 1664 return this; 1665 } 1666 1667 public boolean hasKeyword() { 1668 if (this.keyword == null) 1669 return false; 1670 for (CodeableConcept item : this.keyword) 1671 if (!item.isEmpty()) 1672 return true; 1673 return false; 1674 } 1675 1676 public CodeableConcept addKeyword() { //3 1677 CodeableConcept t = new CodeableConcept(); 1678 if (this.keyword == null) 1679 this.keyword = new ArrayList<CodeableConcept>(); 1680 this.keyword.add(t); 1681 return t; 1682 } 1683 1684 public ResearchStudy addKeyword(CodeableConcept t) { //3 1685 if (t == null) 1686 return this; 1687 if (this.keyword == null) 1688 this.keyword = new ArrayList<CodeableConcept>(); 1689 this.keyword.add(t); 1690 return this; 1691 } 1692 1693 /** 1694 * @return The first repetition of repeating field {@link #keyword}, creating it if it does not already exist 1695 */ 1696 public CodeableConcept getKeywordFirstRep() { 1697 if (getKeyword().isEmpty()) { 1698 addKeyword(); 1699 } 1700 return getKeyword().get(0); 1701 } 1702 1703 /** 1704 * @return {@link #location} (Indicates a country, state or other region where the study is taking place.) 1705 */ 1706 public List<CodeableConcept> getLocation() { 1707 if (this.location == null) 1708 this.location = new ArrayList<CodeableConcept>(); 1709 return this.location; 1710 } 1711 1712 /** 1713 * @return Returns a reference to <code>this</code> for easy method chaining 1714 */ 1715 public ResearchStudy setLocation(List<CodeableConcept> theLocation) { 1716 this.location = theLocation; 1717 return this; 1718 } 1719 1720 public boolean hasLocation() { 1721 if (this.location == null) 1722 return false; 1723 for (CodeableConcept item : this.location) 1724 if (!item.isEmpty()) 1725 return true; 1726 return false; 1727 } 1728 1729 public CodeableConcept addLocation() { //3 1730 CodeableConcept t = new CodeableConcept(); 1731 if (this.location == null) 1732 this.location = new ArrayList<CodeableConcept>(); 1733 this.location.add(t); 1734 return t; 1735 } 1736 1737 public ResearchStudy addLocation(CodeableConcept t) { //3 1738 if (t == null) 1739 return this; 1740 if (this.location == null) 1741 this.location = new ArrayList<CodeableConcept>(); 1742 this.location.add(t); 1743 return this; 1744 } 1745 1746 /** 1747 * @return The first repetition of repeating field {@link #location}, creating it if it does not already exist 1748 */ 1749 public CodeableConcept getLocationFirstRep() { 1750 if (getLocation().isEmpty()) { 1751 addLocation(); 1752 } 1753 return getLocation().get(0); 1754 } 1755 1756 /** 1757 * @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 1758 */ 1759 public MarkdownType getDescriptionElement() { 1760 if (this.description == null) 1761 if (Configuration.errorOnAutoCreate()) 1762 throw new Error("Attempt to auto-create ResearchStudy.description"); 1763 else if (Configuration.doAutoCreate()) 1764 this.description = new MarkdownType(); // bb 1765 return this.description; 1766 } 1767 1768 public boolean hasDescriptionElement() { 1769 return this.description != null && !this.description.isEmpty(); 1770 } 1771 1772 public boolean hasDescription() { 1773 return this.description != null && !this.description.isEmpty(); 1774 } 1775 1776 /** 1777 * @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 1778 */ 1779 public ResearchStudy setDescriptionElement(MarkdownType value) { 1780 this.description = value; 1781 return this; 1782 } 1783 1784 /** 1785 * @return A full description of how the study is being conducted. 1786 */ 1787 public String getDescription() { 1788 return this.description == null ? null : this.description.getValue(); 1789 } 1790 1791 /** 1792 * @param value A full description of how the study is being conducted. 1793 */ 1794 public ResearchStudy setDescription(String value) { 1795 if (value == null) 1796 this.description = null; 1797 else { 1798 if (this.description == null) 1799 this.description = new MarkdownType(); 1800 this.description.setValue(value); 1801 } 1802 return this; 1803 } 1804 1805 /** 1806 * @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".) 1807 */ 1808 public List<Reference> getEnrollment() { 1809 if (this.enrollment == null) 1810 this.enrollment = new ArrayList<Reference>(); 1811 return this.enrollment; 1812 } 1813 1814 /** 1815 * @return Returns a reference to <code>this</code> for easy method chaining 1816 */ 1817 public ResearchStudy setEnrollment(List<Reference> theEnrollment) { 1818 this.enrollment = theEnrollment; 1819 return this; 1820 } 1821 1822 public boolean hasEnrollment() { 1823 if (this.enrollment == null) 1824 return false; 1825 for (Reference item : this.enrollment) 1826 if (!item.isEmpty()) 1827 return true; 1828 return false; 1829 } 1830 1831 public Reference addEnrollment() { //3 1832 Reference t = new Reference(); 1833 if (this.enrollment == null) 1834 this.enrollment = new ArrayList<Reference>(); 1835 this.enrollment.add(t); 1836 return t; 1837 } 1838 1839 public ResearchStudy addEnrollment(Reference t) { //3 1840 if (t == null) 1841 return this; 1842 if (this.enrollment == null) 1843 this.enrollment = new ArrayList<Reference>(); 1844 this.enrollment.add(t); 1845 return this; 1846 } 1847 1848 /** 1849 * @return The first repetition of repeating field {@link #enrollment}, creating it if it does not already exist 1850 */ 1851 public Reference getEnrollmentFirstRep() { 1852 if (getEnrollment().isEmpty()) { 1853 addEnrollment(); 1854 } 1855 return getEnrollment().get(0); 1856 } 1857 1858 /** 1859 * @deprecated Use Reference#setResource(IBaseResource) instead 1860 */ 1861 @Deprecated 1862 public List<Group> getEnrollmentTarget() { 1863 if (this.enrollmentTarget == null) 1864 this.enrollmentTarget = new ArrayList<Group>(); 1865 return this.enrollmentTarget; 1866 } 1867 1868 /** 1869 * @deprecated Use Reference#setResource(IBaseResource) instead 1870 */ 1871 @Deprecated 1872 public Group addEnrollmentTarget() { 1873 Group r = new Group(); 1874 if (this.enrollmentTarget == null) 1875 this.enrollmentTarget = new ArrayList<Group>(); 1876 this.enrollmentTarget.add(r); 1877 return r; 1878 } 1879 1880 /** 1881 * @return {@link #period} (Identifies the start date and the expected (or actual, depending on status) end date for the study.) 1882 */ 1883 public Period getPeriod() { 1884 if (this.period == null) 1885 if (Configuration.errorOnAutoCreate()) 1886 throw new Error("Attempt to auto-create ResearchStudy.period"); 1887 else if (Configuration.doAutoCreate()) 1888 this.period = new Period(); // cc 1889 return this.period; 1890 } 1891 1892 public boolean hasPeriod() { 1893 return this.period != null && !this.period.isEmpty(); 1894 } 1895 1896 /** 1897 * @param value {@link #period} (Identifies the start date and the expected (or actual, depending on status) end date for the study.) 1898 */ 1899 public ResearchStudy setPeriod(Period value) { 1900 this.period = value; 1901 return this; 1902 } 1903 1904 /** 1905 * @return {@link #sponsor} (An organization that initiates the investigation and is legally responsible for the study.) 1906 */ 1907 public Reference getSponsor() { 1908 if (this.sponsor == null) 1909 if (Configuration.errorOnAutoCreate()) 1910 throw new Error("Attempt to auto-create ResearchStudy.sponsor"); 1911 else if (Configuration.doAutoCreate()) 1912 this.sponsor = new Reference(); // cc 1913 return this.sponsor; 1914 } 1915 1916 public boolean hasSponsor() { 1917 return this.sponsor != null && !this.sponsor.isEmpty(); 1918 } 1919 1920 /** 1921 * @param value {@link #sponsor} (An organization that initiates the investigation and is legally responsible for the study.) 1922 */ 1923 public ResearchStudy setSponsor(Reference value) { 1924 this.sponsor = value; 1925 return this; 1926 } 1927 1928 /** 1929 * @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. (An organization that initiates the investigation and is legally responsible for the study.) 1930 */ 1931 public Organization getSponsorTarget() { 1932 if (this.sponsorTarget == null) 1933 if (Configuration.errorOnAutoCreate()) 1934 throw new Error("Attempt to auto-create ResearchStudy.sponsor"); 1935 else if (Configuration.doAutoCreate()) 1936 this.sponsorTarget = new Organization(); // aa 1937 return this.sponsorTarget; 1938 } 1939 1940 /** 1941 * @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. (An organization that initiates the investigation and is legally responsible for the study.) 1942 */ 1943 public ResearchStudy setSponsorTarget(Organization value) { 1944 this.sponsorTarget = value; 1945 return this; 1946 } 1947 1948 /** 1949 * @return {@link #principalInvestigator} (A researcher in a study who oversees multiple aspects of the study, such as concept development, protocol writing, protocol submission for IRB approval, participant recruitment, informed consent, data collection, analysis, interpretation and presentation.) 1950 */ 1951 public Reference getPrincipalInvestigator() { 1952 if (this.principalInvestigator == null) 1953 if (Configuration.errorOnAutoCreate()) 1954 throw new Error("Attempt to auto-create ResearchStudy.principalInvestigator"); 1955 else if (Configuration.doAutoCreate()) 1956 this.principalInvestigator = new Reference(); // cc 1957 return this.principalInvestigator; 1958 } 1959 1960 public boolean hasPrincipalInvestigator() { 1961 return this.principalInvestigator != null && !this.principalInvestigator.isEmpty(); 1962 } 1963 1964 /** 1965 * @param value {@link #principalInvestigator} (A researcher in a study who oversees multiple aspects of the study, such as concept development, protocol writing, protocol submission for IRB approval, participant recruitment, informed consent, data collection, analysis, interpretation and presentation.) 1966 */ 1967 public ResearchStudy setPrincipalInvestigator(Reference value) { 1968 this.principalInvestigator = value; 1969 return this; 1970 } 1971 1972 /** 1973 * @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. (A researcher in a study who oversees multiple aspects of the study, such as concept development, protocol writing, protocol submission for IRB approval, participant recruitment, informed consent, data collection, analysis, interpretation and presentation.) 1974 */ 1975 public Resource getPrincipalInvestigatorTarget() { 1976 return this.principalInvestigatorTarget; 1977 } 1978 1979 /** 1980 * @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. (A researcher in a study who oversees multiple aspects of the study, such as concept development, protocol writing, protocol submission for IRB approval, participant recruitment, informed consent, data collection, analysis, interpretation and presentation.) 1981 */ 1982 public ResearchStudy setPrincipalInvestigatorTarget(Resource value) { 1983 this.principalInvestigatorTarget = value; 1984 return this; 1985 } 1986 1987 /** 1988 * @return {@link #site} (A facility in which study activities are conducted.) 1989 */ 1990 public List<Reference> getSite() { 1991 if (this.site == null) 1992 this.site = new ArrayList<Reference>(); 1993 return this.site; 1994 } 1995 1996 /** 1997 * @return Returns a reference to <code>this</code> for easy method chaining 1998 */ 1999 public ResearchStudy setSite(List<Reference> theSite) { 2000 this.site = theSite; 2001 return this; 2002 } 2003 2004 public boolean hasSite() { 2005 if (this.site == null) 2006 return false; 2007 for (Reference item : this.site) 2008 if (!item.isEmpty()) 2009 return true; 2010 return false; 2011 } 2012 2013 public Reference addSite() { //3 2014 Reference t = new Reference(); 2015 if (this.site == null) 2016 this.site = new ArrayList<Reference>(); 2017 this.site.add(t); 2018 return t; 2019 } 2020 2021 public ResearchStudy addSite(Reference t) { //3 2022 if (t == null) 2023 return this; 2024 if (this.site == null) 2025 this.site = new ArrayList<Reference>(); 2026 this.site.add(t); 2027 return this; 2028 } 2029 2030 /** 2031 * @return The first repetition of repeating field {@link #site}, creating it if it does not already exist 2032 */ 2033 public Reference getSiteFirstRep() { 2034 if (getSite().isEmpty()) { 2035 addSite(); 2036 } 2037 return getSite().get(0); 2038 } 2039 2040 /** 2041 * @deprecated Use Reference#setResource(IBaseResource) instead 2042 */ 2043 @Deprecated 2044 public List<Location> getSiteTarget() { 2045 if (this.siteTarget == null) 2046 this.siteTarget = new ArrayList<Location>(); 2047 return this.siteTarget; 2048 } 2049 2050 /** 2051 * @deprecated Use Reference#setResource(IBaseResource) instead 2052 */ 2053 @Deprecated 2054 public Location addSiteTarget() { 2055 Location r = new Location(); 2056 if (this.siteTarget == null) 2057 this.siteTarget = new ArrayList<Location>(); 2058 this.siteTarget.add(r); 2059 return r; 2060 } 2061 2062 /** 2063 * @return {@link #reasonStopped} (A description and/or code explaining the premature termination of the study.) 2064 */ 2065 public CodeableConcept getReasonStopped() { 2066 if (this.reasonStopped == null) 2067 if (Configuration.errorOnAutoCreate()) 2068 throw new Error("Attempt to auto-create ResearchStudy.reasonStopped"); 2069 else if (Configuration.doAutoCreate()) 2070 this.reasonStopped = new CodeableConcept(); // cc 2071 return this.reasonStopped; 2072 } 2073 2074 public boolean hasReasonStopped() { 2075 return this.reasonStopped != null && !this.reasonStopped.isEmpty(); 2076 } 2077 2078 /** 2079 * @param value {@link #reasonStopped} (A description and/or code explaining the premature termination of the study.) 2080 */ 2081 public ResearchStudy setReasonStopped(CodeableConcept value) { 2082 this.reasonStopped = value; 2083 return this; 2084 } 2085 2086 /** 2087 * @return {@link #note} (Comments made about the study by the performer, subject or other participants.) 2088 */ 2089 public List<Annotation> getNote() { 2090 if (this.note == null) 2091 this.note = new ArrayList<Annotation>(); 2092 return this.note; 2093 } 2094 2095 /** 2096 * @return Returns a reference to <code>this</code> for easy method chaining 2097 */ 2098 public ResearchStudy setNote(List<Annotation> theNote) { 2099 this.note = theNote; 2100 return this; 2101 } 2102 2103 public boolean hasNote() { 2104 if (this.note == null) 2105 return false; 2106 for (Annotation item : this.note) 2107 if (!item.isEmpty()) 2108 return true; 2109 return false; 2110 } 2111 2112 public Annotation addNote() { //3 2113 Annotation t = new Annotation(); 2114 if (this.note == null) 2115 this.note = new ArrayList<Annotation>(); 2116 this.note.add(t); 2117 return t; 2118 } 2119 2120 public ResearchStudy addNote(Annotation t) { //3 2121 if (t == null) 2122 return this; 2123 if (this.note == null) 2124 this.note = new ArrayList<Annotation>(); 2125 this.note.add(t); 2126 return this; 2127 } 2128 2129 /** 2130 * @return The first repetition of repeating field {@link #note}, creating it if it does not already exist 2131 */ 2132 public Annotation getNoteFirstRep() { 2133 if (getNote().isEmpty()) { 2134 addNote(); 2135 } 2136 return getNote().get(0); 2137 } 2138 2139 /** 2140 * @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.) 2141 */ 2142 public List<ResearchStudyArmComponent> getArm() { 2143 if (this.arm == null) 2144 this.arm = new ArrayList<ResearchStudyArmComponent>(); 2145 return this.arm; 2146 } 2147 2148 /** 2149 * @return Returns a reference to <code>this</code> for easy method chaining 2150 */ 2151 public ResearchStudy setArm(List<ResearchStudyArmComponent> theArm) { 2152 this.arm = theArm; 2153 return this; 2154 } 2155 2156 public boolean hasArm() { 2157 if (this.arm == null) 2158 return false; 2159 for (ResearchStudyArmComponent item : this.arm) 2160 if (!item.isEmpty()) 2161 return true; 2162 return false; 2163 } 2164 2165 public ResearchStudyArmComponent addArm() { //3 2166 ResearchStudyArmComponent t = new ResearchStudyArmComponent(); 2167 if (this.arm == null) 2168 this.arm = new ArrayList<ResearchStudyArmComponent>(); 2169 this.arm.add(t); 2170 return t; 2171 } 2172 2173 public ResearchStudy addArm(ResearchStudyArmComponent t) { //3 2174 if (t == null) 2175 return this; 2176 if (this.arm == null) 2177 this.arm = new ArrayList<ResearchStudyArmComponent>(); 2178 this.arm.add(t); 2179 return this; 2180 } 2181 2182 /** 2183 * @return The first repetition of repeating field {@link #arm}, creating it if it does not already exist 2184 */ 2185 public ResearchStudyArmComponent getArmFirstRep() { 2186 if (getArm().isEmpty()) { 2187 addArm(); 2188 } 2189 return getArm().get(0); 2190 } 2191 2192 /** 2193 * @return {@link #objective} (A goal that the study is aiming to achieve in terms of a scientific question to be answered by the analysis of data collected during the study.) 2194 */ 2195 public List<ResearchStudyObjectiveComponent> getObjective() { 2196 if (this.objective == null) 2197 this.objective = new ArrayList<ResearchStudyObjectiveComponent>(); 2198 return this.objective; 2199 } 2200 2201 /** 2202 * @return Returns a reference to <code>this</code> for easy method chaining 2203 */ 2204 public ResearchStudy setObjective(List<ResearchStudyObjectiveComponent> theObjective) { 2205 this.objective = theObjective; 2206 return this; 2207 } 2208 2209 public boolean hasObjective() { 2210 if (this.objective == null) 2211 return false; 2212 for (ResearchStudyObjectiveComponent item : this.objective) 2213 if (!item.isEmpty()) 2214 return true; 2215 return false; 2216 } 2217 2218 public ResearchStudyObjectiveComponent addObjective() { //3 2219 ResearchStudyObjectiveComponent t = new ResearchStudyObjectiveComponent(); 2220 if (this.objective == null) 2221 this.objective = new ArrayList<ResearchStudyObjectiveComponent>(); 2222 this.objective.add(t); 2223 return t; 2224 } 2225 2226 public ResearchStudy addObjective(ResearchStudyObjectiveComponent t) { //3 2227 if (t == null) 2228 return this; 2229 if (this.objective == null) 2230 this.objective = new ArrayList<ResearchStudyObjectiveComponent>(); 2231 this.objective.add(t); 2232 return this; 2233 } 2234 2235 /** 2236 * @return The first repetition of repeating field {@link #objective}, creating it if it does not already exist 2237 */ 2238 public ResearchStudyObjectiveComponent getObjectiveFirstRep() { 2239 if (getObjective().isEmpty()) { 2240 addObjective(); 2241 } 2242 return getObjective().get(0); 2243 } 2244 2245 protected void listChildren(List<Property> children) { 2246 super.listChildren(children); 2247 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)); 2248 children.add(new Property("title", "string", "A short, descriptive user-friendly label for the study.", 0, 1, title)); 2249 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)); 2250 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)); 2251 children.add(new Property("status", "code", "The current state of the study.", 0, 1, status)); 2252 children.add(new Property("primaryPurposeType", "CodeableConcept", "The type of study based upon the intent of the study's activities. A classification of the intent of the study.", 0, 1, primaryPurposeType)); 2253 children.add(new Property("phase", "CodeableConcept", "The stage in the progression of a therapy from initial experimental use in humans in clinical trials to post-market evaluation.", 0, 1, phase)); 2254 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)); 2255 children.add(new Property("focus", "CodeableConcept", "The 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)); 2256 children.add(new Property("condition", "CodeableConcept", "The condition that is the focus of the study. For example, In a study to examine risk factors for Lupus, might have as an inclusion criterion \"healthy volunteer\", but the target condition code would be a Lupus SNOMED code.", 0, java.lang.Integer.MAX_VALUE, condition)); 2257 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)); 2258 children.add(new Property("relatedArtifact", "RelatedArtifact", "Citations, references and other related documents.", 0, java.lang.Integer.MAX_VALUE, relatedArtifact)); 2259 children.add(new Property("keyword", "CodeableConcept", "Key terms to aid in searching for or filtering the study.", 0, java.lang.Integer.MAX_VALUE, keyword)); 2260 children.add(new Property("location", "CodeableConcept", "Indicates a country, state or other region where the study is taking place.", 0, java.lang.Integer.MAX_VALUE, location)); 2261 children.add(new Property("description", "markdown", "A full description of how the study is being conducted.", 0, 1, description)); 2262 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)); 2263 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)); 2264 children.add(new Property("sponsor", "Reference(Organization)", "An organization that initiates the investigation and is legally responsible for the study.", 0, 1, sponsor)); 2265 children.add(new Property("principalInvestigator", "Reference(Practitioner|PractitionerRole)", "A researcher in a study who oversees multiple aspects of the study, such as concept development, protocol writing, protocol submission for IRB approval, participant recruitment, informed consent, data collection, analysis, interpretation and presentation.", 0, 1, principalInvestigator)); 2266 children.add(new Property("site", "Reference(Location)", "A facility in which study activities are conducted.", 0, java.lang.Integer.MAX_VALUE, site)); 2267 children.add(new Property("reasonStopped", "CodeableConcept", "A description and/or code explaining the premature termination of the study.", 0, 1, reasonStopped)); 2268 children.add(new Property("note", "Annotation", "Comments made about the study by the performer, subject or other participants.", 0, java.lang.Integer.MAX_VALUE, note)); 2269 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)); 2270 children.add(new Property("objective", "", "A goal that the study is aiming to achieve in terms of a scientific question to be answered by the analysis of data collected during the study.", 0, java.lang.Integer.MAX_VALUE, objective)); 2271 } 2272 2273 @Override 2274 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 2275 switch (_hash) { 2276 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); 2277 case 110371416: /*title*/ return new Property("title", "string", "A short, descriptive user-friendly label for the study.", 0, 1, title); 2278 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); 2279 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); 2280 case -892481550: /*status*/ return new Property("status", "code", "The current state of the study.", 0, 1, status); 2281 case -2132842986: /*primaryPurposeType*/ return new Property("primaryPurposeType", "CodeableConcept", "The type of study based upon the intent of the study's activities. A classification of the intent of the study.", 0, 1, primaryPurposeType); 2282 case 106629499: /*phase*/ return new Property("phase", "CodeableConcept", "The stage in the progression of a therapy from initial experimental use in humans in clinical trials to post-market evaluation.", 0, 1, phase); 2283 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); 2284 case 97604824: /*focus*/ return new Property("focus", "CodeableConcept", "The 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); 2285 case -861311717: /*condition*/ return new Property("condition", "CodeableConcept", "The condition that is the focus of the study. For example, In a study to examine risk factors for Lupus, might have as an inclusion criterion \"healthy volunteer\", but the target condition code would be a Lupus SNOMED code.", 0, java.lang.Integer.MAX_VALUE, condition); 2286 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); 2287 case 666807069: /*relatedArtifact*/ return new Property("relatedArtifact", "RelatedArtifact", "Citations, references and other related documents.", 0, java.lang.Integer.MAX_VALUE, relatedArtifact); 2288 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); 2289 case 1901043637: /*location*/ return new Property("location", "CodeableConcept", "Indicates a country, state or other region where the study is taking place.", 0, java.lang.Integer.MAX_VALUE, location); 2290 case -1724546052: /*description*/ return new Property("description", "markdown", "A full description of how the study is being conducted.", 0, 1, description); 2291 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); 2292 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); 2293 case -1998892262: /*sponsor*/ return new Property("sponsor", "Reference(Organization)", "An organization that initiates the investigation and is legally responsible for the study.", 0, 1, sponsor); 2294 case 1437117175: /*principalInvestigator*/ return new Property("principalInvestigator", "Reference(Practitioner|PractitionerRole)", "A researcher in a study who oversees multiple aspects of the study, such as concept development, protocol writing, protocol submission for IRB approval, participant recruitment, informed consent, data collection, analysis, interpretation and presentation.", 0, 1, principalInvestigator); 2295 case 3530567: /*site*/ return new Property("site", "Reference(Location)", "A facility in which study activities are conducted.", 0, java.lang.Integer.MAX_VALUE, site); 2296 case 1181369065: /*reasonStopped*/ return new Property("reasonStopped", "CodeableConcept", "A description and/or code explaining the premature termination of the study.", 0, 1, reasonStopped); 2297 case 3387378: /*note*/ return new Property("note", "Annotation", "Comments made about the study by the performer, subject or other participants.", 0, java.lang.Integer.MAX_VALUE, note); 2298 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); 2299 case -1489585863: /*objective*/ return new Property("objective", "", "A goal that the study is aiming to achieve in terms of a scientific question to be answered by the analysis of data collected during the study.", 0, java.lang.Integer.MAX_VALUE, objective); 2300 default: return super.getNamedProperty(_hash, _name, _checkValid); 2301 } 2302 2303 } 2304 2305 @Override 2306 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2307 switch (hash) { 2308 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 2309 case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType 2310 case -989163880: /*protocol*/ return this.protocol == null ? new Base[0] : this.protocol.toArray(new Base[this.protocol.size()]); // Reference 2311 case -995410646: /*partOf*/ return this.partOf == null ? new Base[0] : this.partOf.toArray(new Base[this.partOf.size()]); // Reference 2312 case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<ResearchStudyStatus> 2313 case -2132842986: /*primaryPurposeType*/ return this.primaryPurposeType == null ? new Base[0] : new Base[] {this.primaryPurposeType}; // CodeableConcept 2314 case 106629499: /*phase*/ return this.phase == null ? new Base[0] : new Base[] {this.phase}; // CodeableConcept 2315 case 50511102: /*category*/ return this.category == null ? new Base[0] : this.category.toArray(new Base[this.category.size()]); // CodeableConcept 2316 case 97604824: /*focus*/ return this.focus == null ? new Base[0] : this.focus.toArray(new Base[this.focus.size()]); // CodeableConcept 2317 case -861311717: /*condition*/ return this.condition == null ? new Base[0] : this.condition.toArray(new Base[this.condition.size()]); // CodeableConcept 2318 case 951526432: /*contact*/ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // ContactDetail 2319 case 666807069: /*relatedArtifact*/ return this.relatedArtifact == null ? new Base[0] : this.relatedArtifact.toArray(new Base[this.relatedArtifact.size()]); // RelatedArtifact 2320 case -814408215: /*keyword*/ return this.keyword == null ? new Base[0] : this.keyword.toArray(new Base[this.keyword.size()]); // CodeableConcept 2321 case 1901043637: /*location*/ return this.location == null ? new Base[0] : this.location.toArray(new Base[this.location.size()]); // CodeableConcept 2322 case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType 2323 case 116089604: /*enrollment*/ return this.enrollment == null ? new Base[0] : this.enrollment.toArray(new Base[this.enrollment.size()]); // Reference 2324 case -991726143: /*period*/ return this.period == null ? new Base[0] : new Base[] {this.period}; // Period 2325 case -1998892262: /*sponsor*/ return this.sponsor == null ? new Base[0] : new Base[] {this.sponsor}; // Reference 2326 case 1437117175: /*principalInvestigator*/ return this.principalInvestigator == null ? new Base[0] : new Base[] {this.principalInvestigator}; // Reference 2327 case 3530567: /*site*/ return this.site == null ? new Base[0] : this.site.toArray(new Base[this.site.size()]); // Reference 2328 case 1181369065: /*reasonStopped*/ return this.reasonStopped == null ? new Base[0] : new Base[] {this.reasonStopped}; // CodeableConcept 2329 case 3387378: /*note*/ return this.note == null ? new Base[0] : this.note.toArray(new Base[this.note.size()]); // Annotation 2330 case 96860: /*arm*/ return this.arm == null ? new Base[0] : this.arm.toArray(new Base[this.arm.size()]); // ResearchStudyArmComponent 2331 case -1489585863: /*objective*/ return this.objective == null ? new Base[0] : this.objective.toArray(new Base[this.objective.size()]); // ResearchStudyObjectiveComponent 2332 default: return super.getProperty(hash, name, checkValid); 2333 } 2334 2335 } 2336 2337 @Override 2338 public Base setProperty(int hash, String name, Base value) throws FHIRException { 2339 switch (hash) { 2340 case -1618432855: // identifier 2341 this.getIdentifier().add(castToIdentifier(value)); // Identifier 2342 return value; 2343 case 110371416: // title 2344 this.title = castToString(value); // StringType 2345 return value; 2346 case -989163880: // protocol 2347 this.getProtocol().add(castToReference(value)); // Reference 2348 return value; 2349 case -995410646: // partOf 2350 this.getPartOf().add(castToReference(value)); // Reference 2351 return value; 2352 case -892481550: // status 2353 value = new ResearchStudyStatusEnumFactory().fromType(castToCode(value)); 2354 this.status = (Enumeration) value; // Enumeration<ResearchStudyStatus> 2355 return value; 2356 case -2132842986: // primaryPurposeType 2357 this.primaryPurposeType = castToCodeableConcept(value); // CodeableConcept 2358 return value; 2359 case 106629499: // phase 2360 this.phase = castToCodeableConcept(value); // CodeableConcept 2361 return value; 2362 case 50511102: // category 2363 this.getCategory().add(castToCodeableConcept(value)); // CodeableConcept 2364 return value; 2365 case 97604824: // focus 2366 this.getFocus().add(castToCodeableConcept(value)); // CodeableConcept 2367 return value; 2368 case -861311717: // condition 2369 this.getCondition().add(castToCodeableConcept(value)); // CodeableConcept 2370 return value; 2371 case 951526432: // contact 2372 this.getContact().add(castToContactDetail(value)); // ContactDetail 2373 return value; 2374 case 666807069: // relatedArtifact 2375 this.getRelatedArtifact().add(castToRelatedArtifact(value)); // RelatedArtifact 2376 return value; 2377 case -814408215: // keyword 2378 this.getKeyword().add(castToCodeableConcept(value)); // CodeableConcept 2379 return value; 2380 case 1901043637: // location 2381 this.getLocation().add(castToCodeableConcept(value)); // CodeableConcept 2382 return value; 2383 case -1724546052: // description 2384 this.description = castToMarkdown(value); // MarkdownType 2385 return value; 2386 case 116089604: // enrollment 2387 this.getEnrollment().add(castToReference(value)); // Reference 2388 return value; 2389 case -991726143: // period 2390 this.period = castToPeriod(value); // Period 2391 return value; 2392 case -1998892262: // sponsor 2393 this.sponsor = castToReference(value); // Reference 2394 return value; 2395 case 1437117175: // principalInvestigator 2396 this.principalInvestigator = castToReference(value); // Reference 2397 return value; 2398 case 3530567: // site 2399 this.getSite().add(castToReference(value)); // Reference 2400 return value; 2401 case 1181369065: // reasonStopped 2402 this.reasonStopped = castToCodeableConcept(value); // CodeableConcept 2403 return value; 2404 case 3387378: // note 2405 this.getNote().add(castToAnnotation(value)); // Annotation 2406 return value; 2407 case 96860: // arm 2408 this.getArm().add((ResearchStudyArmComponent) value); // ResearchStudyArmComponent 2409 return value; 2410 case -1489585863: // objective 2411 this.getObjective().add((ResearchStudyObjectiveComponent) value); // ResearchStudyObjectiveComponent 2412 return value; 2413 default: return super.setProperty(hash, name, value); 2414 } 2415 2416 } 2417 2418 @Override 2419 public Base setProperty(String name, Base value) throws FHIRException { 2420 if (name.equals("identifier")) { 2421 this.getIdentifier().add(castToIdentifier(value)); 2422 } else if (name.equals("title")) { 2423 this.title = castToString(value); // StringType 2424 } else if (name.equals("protocol")) { 2425 this.getProtocol().add(castToReference(value)); 2426 } else if (name.equals("partOf")) { 2427 this.getPartOf().add(castToReference(value)); 2428 } else if (name.equals("status")) { 2429 value = new ResearchStudyStatusEnumFactory().fromType(castToCode(value)); 2430 this.status = (Enumeration) value; // Enumeration<ResearchStudyStatus> 2431 } else if (name.equals("primaryPurposeType")) { 2432 this.primaryPurposeType = castToCodeableConcept(value); // CodeableConcept 2433 } else if (name.equals("phase")) { 2434 this.phase = castToCodeableConcept(value); // CodeableConcept 2435 } else if (name.equals("category")) { 2436 this.getCategory().add(castToCodeableConcept(value)); 2437 } else if (name.equals("focus")) { 2438 this.getFocus().add(castToCodeableConcept(value)); 2439 } else if (name.equals("condition")) { 2440 this.getCondition().add(castToCodeableConcept(value)); 2441 } else if (name.equals("contact")) { 2442 this.getContact().add(castToContactDetail(value)); 2443 } else if (name.equals("relatedArtifact")) { 2444 this.getRelatedArtifact().add(castToRelatedArtifact(value)); 2445 } else if (name.equals("keyword")) { 2446 this.getKeyword().add(castToCodeableConcept(value)); 2447 } else if (name.equals("location")) { 2448 this.getLocation().add(castToCodeableConcept(value)); 2449 } else if (name.equals("description")) { 2450 this.description = castToMarkdown(value); // MarkdownType 2451 } else if (name.equals("enrollment")) { 2452 this.getEnrollment().add(castToReference(value)); 2453 } else if (name.equals("period")) { 2454 this.period = castToPeriod(value); // Period 2455 } else if (name.equals("sponsor")) { 2456 this.sponsor = castToReference(value); // Reference 2457 } else if (name.equals("principalInvestigator")) { 2458 this.principalInvestigator = castToReference(value); // Reference 2459 } else if (name.equals("site")) { 2460 this.getSite().add(castToReference(value)); 2461 } else if (name.equals("reasonStopped")) { 2462 this.reasonStopped = castToCodeableConcept(value); // CodeableConcept 2463 } else if (name.equals("note")) { 2464 this.getNote().add(castToAnnotation(value)); 2465 } else if (name.equals("arm")) { 2466 this.getArm().add((ResearchStudyArmComponent) value); 2467 } else if (name.equals("objective")) { 2468 this.getObjective().add((ResearchStudyObjectiveComponent) value); 2469 } else 2470 return super.setProperty(name, value); 2471 return value; 2472 } 2473 2474 @Override 2475 public Base makeProperty(int hash, String name) throws FHIRException { 2476 switch (hash) { 2477 case -1618432855: return addIdentifier(); 2478 case 110371416: return getTitleElement(); 2479 case -989163880: return addProtocol(); 2480 case -995410646: return addPartOf(); 2481 case -892481550: return getStatusElement(); 2482 case -2132842986: return getPrimaryPurposeType(); 2483 case 106629499: return getPhase(); 2484 case 50511102: return addCategory(); 2485 case 97604824: return addFocus(); 2486 case -861311717: return addCondition(); 2487 case 951526432: return addContact(); 2488 case 666807069: return addRelatedArtifact(); 2489 case -814408215: return addKeyword(); 2490 case 1901043637: return addLocation(); 2491 case -1724546052: return getDescriptionElement(); 2492 case 116089604: return addEnrollment(); 2493 case -991726143: return getPeriod(); 2494 case -1998892262: return getSponsor(); 2495 case 1437117175: return getPrincipalInvestigator(); 2496 case 3530567: return addSite(); 2497 case 1181369065: return getReasonStopped(); 2498 case 3387378: return addNote(); 2499 case 96860: return addArm(); 2500 case -1489585863: return addObjective(); 2501 default: return super.makeProperty(hash, name); 2502 } 2503 2504 } 2505 2506 @Override 2507 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2508 switch (hash) { 2509 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 2510 case 110371416: /*title*/ return new String[] {"string"}; 2511 case -989163880: /*protocol*/ return new String[] {"Reference"}; 2512 case -995410646: /*partOf*/ return new String[] {"Reference"}; 2513 case -892481550: /*status*/ return new String[] {"code"}; 2514 case -2132842986: /*primaryPurposeType*/ return new String[] {"CodeableConcept"}; 2515 case 106629499: /*phase*/ return new String[] {"CodeableConcept"}; 2516 case 50511102: /*category*/ return new String[] {"CodeableConcept"}; 2517 case 97604824: /*focus*/ return new String[] {"CodeableConcept"}; 2518 case -861311717: /*condition*/ return new String[] {"CodeableConcept"}; 2519 case 951526432: /*contact*/ return new String[] {"ContactDetail"}; 2520 case 666807069: /*relatedArtifact*/ return new String[] {"RelatedArtifact"}; 2521 case -814408215: /*keyword*/ return new String[] {"CodeableConcept"}; 2522 case 1901043637: /*location*/ return new String[] {"CodeableConcept"}; 2523 case -1724546052: /*description*/ return new String[] {"markdown"}; 2524 case 116089604: /*enrollment*/ return new String[] {"Reference"}; 2525 case -991726143: /*period*/ return new String[] {"Period"}; 2526 case -1998892262: /*sponsor*/ return new String[] {"Reference"}; 2527 case 1437117175: /*principalInvestigator*/ return new String[] {"Reference"}; 2528 case 3530567: /*site*/ return new String[] {"Reference"}; 2529 case 1181369065: /*reasonStopped*/ return new String[] {"CodeableConcept"}; 2530 case 3387378: /*note*/ return new String[] {"Annotation"}; 2531 case 96860: /*arm*/ return new String[] {}; 2532 case -1489585863: /*objective*/ return new String[] {}; 2533 default: return super.getTypesForProperty(hash, name); 2534 } 2535 2536 } 2537 2538 @Override 2539 public Base addChild(String name) throws FHIRException { 2540 if (name.equals("identifier")) { 2541 return addIdentifier(); 2542 } 2543 else if (name.equals("title")) { 2544 throw new FHIRException("Cannot call addChild on a primitive type ResearchStudy.title"); 2545 } 2546 else if (name.equals("protocol")) { 2547 return addProtocol(); 2548 } 2549 else if (name.equals("partOf")) { 2550 return addPartOf(); 2551 } 2552 else if (name.equals("status")) { 2553 throw new FHIRException("Cannot call addChild on a primitive type ResearchStudy.status"); 2554 } 2555 else if (name.equals("primaryPurposeType")) { 2556 this.primaryPurposeType = new CodeableConcept(); 2557 return this.primaryPurposeType; 2558 } 2559 else if (name.equals("phase")) { 2560 this.phase = new CodeableConcept(); 2561 return this.phase; 2562 } 2563 else if (name.equals("category")) { 2564 return addCategory(); 2565 } 2566 else if (name.equals("focus")) { 2567 return addFocus(); 2568 } 2569 else if (name.equals("condition")) { 2570 return addCondition(); 2571 } 2572 else if (name.equals("contact")) { 2573 return addContact(); 2574 } 2575 else if (name.equals("relatedArtifact")) { 2576 return addRelatedArtifact(); 2577 } 2578 else if (name.equals("keyword")) { 2579 return addKeyword(); 2580 } 2581 else if (name.equals("location")) { 2582 return addLocation(); 2583 } 2584 else if (name.equals("description")) { 2585 throw new FHIRException("Cannot call addChild on a primitive type ResearchStudy.description"); 2586 } 2587 else if (name.equals("enrollment")) { 2588 return addEnrollment(); 2589 } 2590 else if (name.equals("period")) { 2591 this.period = new Period(); 2592 return this.period; 2593 } 2594 else if (name.equals("sponsor")) { 2595 this.sponsor = new Reference(); 2596 return this.sponsor; 2597 } 2598 else if (name.equals("principalInvestigator")) { 2599 this.principalInvestigator = new Reference(); 2600 return this.principalInvestigator; 2601 } 2602 else if (name.equals("site")) { 2603 return addSite(); 2604 } 2605 else if (name.equals("reasonStopped")) { 2606 this.reasonStopped = new CodeableConcept(); 2607 return this.reasonStopped; 2608 } 2609 else if (name.equals("note")) { 2610 return addNote(); 2611 } 2612 else if (name.equals("arm")) { 2613 return addArm(); 2614 } 2615 else if (name.equals("objective")) { 2616 return addObjective(); 2617 } 2618 else 2619 return super.addChild(name); 2620 } 2621 2622 public String fhirType() { 2623 return "ResearchStudy"; 2624 2625 } 2626 2627 public ResearchStudy copy() { 2628 ResearchStudy dst = new ResearchStudy(); 2629 copyValues(dst); 2630 return dst; 2631 } 2632 2633 public void copyValues(ResearchStudy dst) { 2634 super.copyValues(dst); 2635 if (identifier != null) { 2636 dst.identifier = new ArrayList<Identifier>(); 2637 for (Identifier i : identifier) 2638 dst.identifier.add(i.copy()); 2639 }; 2640 dst.title = title == null ? null : title.copy(); 2641 if (protocol != null) { 2642 dst.protocol = new ArrayList<Reference>(); 2643 for (Reference i : protocol) 2644 dst.protocol.add(i.copy()); 2645 }; 2646 if (partOf != null) { 2647 dst.partOf = new ArrayList<Reference>(); 2648 for (Reference i : partOf) 2649 dst.partOf.add(i.copy()); 2650 }; 2651 dst.status = status == null ? null : status.copy(); 2652 dst.primaryPurposeType = primaryPurposeType == null ? null : primaryPurposeType.copy(); 2653 dst.phase = phase == null ? null : phase.copy(); 2654 if (category != null) { 2655 dst.category = new ArrayList<CodeableConcept>(); 2656 for (CodeableConcept i : category) 2657 dst.category.add(i.copy()); 2658 }; 2659 if (focus != null) { 2660 dst.focus = new ArrayList<CodeableConcept>(); 2661 for (CodeableConcept i : focus) 2662 dst.focus.add(i.copy()); 2663 }; 2664 if (condition != null) { 2665 dst.condition = new ArrayList<CodeableConcept>(); 2666 for (CodeableConcept i : condition) 2667 dst.condition.add(i.copy()); 2668 }; 2669 if (contact != null) { 2670 dst.contact = new ArrayList<ContactDetail>(); 2671 for (ContactDetail i : contact) 2672 dst.contact.add(i.copy()); 2673 }; 2674 if (relatedArtifact != null) { 2675 dst.relatedArtifact = new ArrayList<RelatedArtifact>(); 2676 for (RelatedArtifact i : relatedArtifact) 2677 dst.relatedArtifact.add(i.copy()); 2678 }; 2679 if (keyword != null) { 2680 dst.keyword = new ArrayList<CodeableConcept>(); 2681 for (CodeableConcept i : keyword) 2682 dst.keyword.add(i.copy()); 2683 }; 2684 if (location != null) { 2685 dst.location = new ArrayList<CodeableConcept>(); 2686 for (CodeableConcept i : location) 2687 dst.location.add(i.copy()); 2688 }; 2689 dst.description = description == null ? null : description.copy(); 2690 if (enrollment != null) { 2691 dst.enrollment = new ArrayList<Reference>(); 2692 for (Reference i : enrollment) 2693 dst.enrollment.add(i.copy()); 2694 }; 2695 dst.period = period == null ? null : period.copy(); 2696 dst.sponsor = sponsor == null ? null : sponsor.copy(); 2697 dst.principalInvestigator = principalInvestigator == null ? null : principalInvestigator.copy(); 2698 if (site != null) { 2699 dst.site = new ArrayList<Reference>(); 2700 for (Reference i : site) 2701 dst.site.add(i.copy()); 2702 }; 2703 dst.reasonStopped = reasonStopped == null ? null : reasonStopped.copy(); 2704 if (note != null) { 2705 dst.note = new ArrayList<Annotation>(); 2706 for (Annotation i : note) 2707 dst.note.add(i.copy()); 2708 }; 2709 if (arm != null) { 2710 dst.arm = new ArrayList<ResearchStudyArmComponent>(); 2711 for (ResearchStudyArmComponent i : arm) 2712 dst.arm.add(i.copy()); 2713 }; 2714 if (objective != null) { 2715 dst.objective = new ArrayList<ResearchStudyObjectiveComponent>(); 2716 for (ResearchStudyObjectiveComponent i : objective) 2717 dst.objective.add(i.copy()); 2718 }; 2719 } 2720 2721 protected ResearchStudy typedCopy() { 2722 return copy(); 2723 } 2724 2725 @Override 2726 public boolean equalsDeep(Base other_) { 2727 if (!super.equalsDeep(other_)) 2728 return false; 2729 if (!(other_ instanceof ResearchStudy)) 2730 return false; 2731 ResearchStudy o = (ResearchStudy) other_; 2732 return compareDeep(identifier, o.identifier, true) && compareDeep(title, o.title, true) && compareDeep(protocol, o.protocol, true) 2733 && compareDeep(partOf, o.partOf, true) && compareDeep(status, o.status, true) && compareDeep(primaryPurposeType, o.primaryPurposeType, true) 2734 && compareDeep(phase, o.phase, true) && compareDeep(category, o.category, true) && compareDeep(focus, o.focus, true) 2735 && compareDeep(condition, o.condition, true) && compareDeep(contact, o.contact, true) && compareDeep(relatedArtifact, o.relatedArtifact, true) 2736 && compareDeep(keyword, o.keyword, true) && compareDeep(location, o.location, true) && compareDeep(description, o.description, true) 2737 && compareDeep(enrollment, o.enrollment, true) && compareDeep(period, o.period, true) && compareDeep(sponsor, o.sponsor, true) 2738 && compareDeep(principalInvestigator, o.principalInvestigator, true) && compareDeep(site, o.site, true) 2739 && compareDeep(reasonStopped, o.reasonStopped, true) && compareDeep(note, o.note, true) && compareDeep(arm, o.arm, true) 2740 && compareDeep(objective, o.objective, true); 2741 } 2742 2743 @Override 2744 public boolean equalsShallow(Base other_) { 2745 if (!super.equalsShallow(other_)) 2746 return false; 2747 if (!(other_ instanceof ResearchStudy)) 2748 return false; 2749 ResearchStudy o = (ResearchStudy) other_; 2750 return compareValues(title, o.title, true) && compareValues(status, o.status, true) && compareValues(description, o.description, true) 2751 ; 2752 } 2753 2754 public boolean isEmpty() { 2755 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, title, protocol 2756 , partOf, status, primaryPurposeType, phase, category, focus, condition, contact 2757 , relatedArtifact, keyword, location, description, enrollment, period, sponsor 2758 , principalInvestigator, site, reasonStopped, note, arm, objective); 2759 } 2760 2761 @Override 2762 public ResourceType getResourceType() { 2763 return ResourceType.ResearchStudy; 2764 } 2765 2766 /** 2767 * Search parameter: <b>date</b> 2768 * <p> 2769 * Description: <b>When the study began and ended</b><br> 2770 * Type: <b>date</b><br> 2771 * Path: <b>ResearchStudy.period</b><br> 2772 * </p> 2773 */ 2774 @SearchParamDefinition(name="date", path="ResearchStudy.period", description="When the study began and ended", type="date" ) 2775 public static final String SP_DATE = "date"; 2776 /** 2777 * <b>Fluent Client</b> search parameter constant for <b>date</b> 2778 * <p> 2779 * Description: <b>When the study began and ended</b><br> 2780 * Type: <b>date</b><br> 2781 * Path: <b>ResearchStudy.period</b><br> 2782 * </p> 2783 */ 2784 public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE); 2785 2786 /** 2787 * Search parameter: <b>identifier</b> 2788 * <p> 2789 * Description: <b>Business Identifier for study</b><br> 2790 * Type: <b>token</b><br> 2791 * Path: <b>ResearchStudy.identifier</b><br> 2792 * </p> 2793 */ 2794 @SearchParamDefinition(name="identifier", path="ResearchStudy.identifier", description="Business Identifier for study", type="token" ) 2795 public static final String SP_IDENTIFIER = "identifier"; 2796 /** 2797 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 2798 * <p> 2799 * Description: <b>Business Identifier for study</b><br> 2800 * Type: <b>token</b><br> 2801 * Path: <b>ResearchStudy.identifier</b><br> 2802 * </p> 2803 */ 2804 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 2805 2806 /** 2807 * Search parameter: <b>partof</b> 2808 * <p> 2809 * Description: <b>Part of larger study</b><br> 2810 * Type: <b>reference</b><br> 2811 * Path: <b>ResearchStudy.partOf</b><br> 2812 * </p> 2813 */ 2814 @SearchParamDefinition(name="partof", path="ResearchStudy.partOf", description="Part of larger study", type="reference", target={ResearchStudy.class } ) 2815 public static final String SP_PARTOF = "partof"; 2816 /** 2817 * <b>Fluent Client</b> search parameter constant for <b>partof</b> 2818 * <p> 2819 * Description: <b>Part of larger study</b><br> 2820 * Type: <b>reference</b><br> 2821 * Path: <b>ResearchStudy.partOf</b><br> 2822 * </p> 2823 */ 2824 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PARTOF = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PARTOF); 2825 2826/** 2827 * Constant for fluent queries to be used to add include statements. Specifies 2828 * the path value of "<b>ResearchStudy:partof</b>". 2829 */ 2830 public static final ca.uhn.fhir.model.api.Include INCLUDE_PARTOF = new ca.uhn.fhir.model.api.Include("ResearchStudy:partof").toLocked(); 2831 2832 /** 2833 * Search parameter: <b>sponsor</b> 2834 * <p> 2835 * Description: <b>Organization that initiates and is legally responsible for the study</b><br> 2836 * Type: <b>reference</b><br> 2837 * Path: <b>ResearchStudy.sponsor</b><br> 2838 * </p> 2839 */ 2840 @SearchParamDefinition(name="sponsor", path="ResearchStudy.sponsor", description="Organization that initiates and is legally responsible for the study", type="reference", target={Organization.class } ) 2841 public static final String SP_SPONSOR = "sponsor"; 2842 /** 2843 * <b>Fluent Client</b> search parameter constant for <b>sponsor</b> 2844 * <p> 2845 * Description: <b>Organization that initiates and is legally responsible for the study</b><br> 2846 * Type: <b>reference</b><br> 2847 * Path: <b>ResearchStudy.sponsor</b><br> 2848 * </p> 2849 */ 2850 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SPONSOR = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SPONSOR); 2851 2852/** 2853 * Constant for fluent queries to be used to add include statements. Specifies 2854 * the path value of "<b>ResearchStudy:sponsor</b>". 2855 */ 2856 public static final ca.uhn.fhir.model.api.Include INCLUDE_SPONSOR = new ca.uhn.fhir.model.api.Include("ResearchStudy:sponsor").toLocked(); 2857 2858 /** 2859 * Search parameter: <b>focus</b> 2860 * <p> 2861 * Description: <b>Drugs, devices, etc. under study</b><br> 2862 * Type: <b>token</b><br> 2863 * Path: <b>ResearchStudy.focus</b><br> 2864 * </p> 2865 */ 2866 @SearchParamDefinition(name="focus", path="ResearchStudy.focus", description="Drugs, devices, etc. under study", type="token" ) 2867 public static final String SP_FOCUS = "focus"; 2868 /** 2869 * <b>Fluent Client</b> search parameter constant for <b>focus</b> 2870 * <p> 2871 * Description: <b>Drugs, devices, etc. under study</b><br> 2872 * Type: <b>token</b><br> 2873 * Path: <b>ResearchStudy.focus</b><br> 2874 * </p> 2875 */ 2876 public static final ca.uhn.fhir.rest.gclient.TokenClientParam FOCUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_FOCUS); 2877 2878 /** 2879 * Search parameter: <b>principalinvestigator</b> 2880 * <p> 2881 * Description: <b>Researcher who oversees multiple aspects of the study</b><br> 2882 * Type: <b>reference</b><br> 2883 * Path: <b>ResearchStudy.principalInvestigator</b><br> 2884 * </p> 2885 */ 2886 @SearchParamDefinition(name="principalinvestigator", path="ResearchStudy.principalInvestigator", description="Researcher who oversees multiple aspects of the study", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Practitioner") }, target={Practitioner.class, PractitionerRole.class } ) 2887 public static final String SP_PRINCIPALINVESTIGATOR = "principalinvestigator"; 2888 /** 2889 * <b>Fluent Client</b> search parameter constant for <b>principalinvestigator</b> 2890 * <p> 2891 * Description: <b>Researcher who oversees multiple aspects of the study</b><br> 2892 * Type: <b>reference</b><br> 2893 * Path: <b>ResearchStudy.principalInvestigator</b><br> 2894 * </p> 2895 */ 2896 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PRINCIPALINVESTIGATOR = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PRINCIPALINVESTIGATOR); 2897 2898/** 2899 * Constant for fluent queries to be used to add include statements. Specifies 2900 * the path value of "<b>ResearchStudy:principalinvestigator</b>". 2901 */ 2902 public static final ca.uhn.fhir.model.api.Include INCLUDE_PRINCIPALINVESTIGATOR = new ca.uhn.fhir.model.api.Include("ResearchStudy:principalinvestigator").toLocked(); 2903 2904 /** 2905 * Search parameter: <b>title</b> 2906 * <p> 2907 * Description: <b>Name for this study</b><br> 2908 * Type: <b>string</b><br> 2909 * Path: <b>ResearchStudy.title</b><br> 2910 * </p> 2911 */ 2912 @SearchParamDefinition(name="title", path="ResearchStudy.title", description="Name for this study", type="string" ) 2913 public static final String SP_TITLE = "title"; 2914 /** 2915 * <b>Fluent Client</b> search parameter constant for <b>title</b> 2916 * <p> 2917 * Description: <b>Name for this study</b><br> 2918 * Type: <b>string</b><br> 2919 * Path: <b>ResearchStudy.title</b><br> 2920 * </p> 2921 */ 2922 public static final ca.uhn.fhir.rest.gclient.StringClientParam TITLE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_TITLE); 2923 2924 /** 2925 * Search parameter: <b>protocol</b> 2926 * <p> 2927 * Description: <b>Steps followed in executing study</b><br> 2928 * Type: <b>reference</b><br> 2929 * Path: <b>ResearchStudy.protocol</b><br> 2930 * </p> 2931 */ 2932 @SearchParamDefinition(name="protocol", path="ResearchStudy.protocol", description="Steps followed in executing study", type="reference", target={PlanDefinition.class } ) 2933 public static final String SP_PROTOCOL = "protocol"; 2934 /** 2935 * <b>Fluent Client</b> search parameter constant for <b>protocol</b> 2936 * <p> 2937 * Description: <b>Steps followed in executing study</b><br> 2938 * Type: <b>reference</b><br> 2939 * Path: <b>ResearchStudy.protocol</b><br> 2940 * </p> 2941 */ 2942 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PROTOCOL = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PROTOCOL); 2943 2944/** 2945 * Constant for fluent queries to be used to add include statements. Specifies 2946 * the path value of "<b>ResearchStudy:protocol</b>". 2947 */ 2948 public static final ca.uhn.fhir.model.api.Include INCLUDE_PROTOCOL = new ca.uhn.fhir.model.api.Include("ResearchStudy:protocol").toLocked(); 2949 2950 /** 2951 * Search parameter: <b>site</b> 2952 * <p> 2953 * Description: <b>Facility where study activities are conducted</b><br> 2954 * Type: <b>reference</b><br> 2955 * Path: <b>ResearchStudy.site</b><br> 2956 * </p> 2957 */ 2958 @SearchParamDefinition(name="site", path="ResearchStudy.site", description="Facility where study activities are conducted", type="reference", target={Location.class } ) 2959 public static final String SP_SITE = "site"; 2960 /** 2961 * <b>Fluent Client</b> search parameter constant for <b>site</b> 2962 * <p> 2963 * Description: <b>Facility where study activities are conducted</b><br> 2964 * Type: <b>reference</b><br> 2965 * Path: <b>ResearchStudy.site</b><br> 2966 * </p> 2967 */ 2968 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SITE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SITE); 2969 2970/** 2971 * Constant for fluent queries to be used to add include statements. Specifies 2972 * the path value of "<b>ResearchStudy:site</b>". 2973 */ 2974 public static final ca.uhn.fhir.model.api.Include INCLUDE_SITE = new ca.uhn.fhir.model.api.Include("ResearchStudy:site").toLocked(); 2975 2976 /** 2977 * Search parameter: <b>location</b> 2978 * <p> 2979 * Description: <b>Geographic region(s) for study</b><br> 2980 * Type: <b>token</b><br> 2981 * Path: <b>ResearchStudy.location</b><br> 2982 * </p> 2983 */ 2984 @SearchParamDefinition(name="location", path="ResearchStudy.location", description="Geographic region(s) for study", type="token" ) 2985 public static final String SP_LOCATION = "location"; 2986 /** 2987 * <b>Fluent Client</b> search parameter constant for <b>location</b> 2988 * <p> 2989 * Description: <b>Geographic region(s) for study</b><br> 2990 * Type: <b>token</b><br> 2991 * Path: <b>ResearchStudy.location</b><br> 2992 * </p> 2993 */ 2994 public static final ca.uhn.fhir.rest.gclient.TokenClientParam LOCATION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_LOCATION); 2995 2996 /** 2997 * Search parameter: <b>category</b> 2998 * <p> 2999 * Description: <b>Classifications for the study</b><br> 3000 * Type: <b>token</b><br> 3001 * Path: <b>ResearchStudy.category</b><br> 3002 * </p> 3003 */ 3004 @SearchParamDefinition(name="category", path="ResearchStudy.category", description="Classifications for the study", type="token" ) 3005 public static final String SP_CATEGORY = "category"; 3006 /** 3007 * <b>Fluent Client</b> search parameter constant for <b>category</b> 3008 * <p> 3009 * Description: <b>Classifications for the study</b><br> 3010 * Type: <b>token</b><br> 3011 * Path: <b>ResearchStudy.category</b><br> 3012 * </p> 3013 */ 3014 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CATEGORY = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CATEGORY); 3015 3016 /** 3017 * Search parameter: <b>keyword</b> 3018 * <p> 3019 * Description: <b>Used to search for the study</b><br> 3020 * Type: <b>token</b><br> 3021 * Path: <b>ResearchStudy.keyword</b><br> 3022 * </p> 3023 */ 3024 @SearchParamDefinition(name="keyword", path="ResearchStudy.keyword", description="Used to search for the study", type="token" ) 3025 public static final String SP_KEYWORD = "keyword"; 3026 /** 3027 * <b>Fluent Client</b> search parameter constant for <b>keyword</b> 3028 * <p> 3029 * Description: <b>Used to search for the study</b><br> 3030 * Type: <b>token</b><br> 3031 * Path: <b>ResearchStudy.keyword</b><br> 3032 * </p> 3033 */ 3034 public static final ca.uhn.fhir.rest.gclient.TokenClientParam KEYWORD = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_KEYWORD); 3035 3036 /** 3037 * Search parameter: <b>status</b> 3038 * <p> 3039 * Description: <b>active | administratively-completed | approved | closed-to-accrual | closed-to-accrual-and-intervention | completed | disapproved | in-review | temporarily-closed-to-accrual | temporarily-closed-to-accrual-and-intervention | withdrawn</b><br> 3040 * Type: <b>token</b><br> 3041 * Path: <b>ResearchStudy.status</b><br> 3042 * </p> 3043 */ 3044 @SearchParamDefinition(name="status", path="ResearchStudy.status", description="active | administratively-completed | approved | closed-to-accrual | closed-to-accrual-and-intervention | completed | disapproved | in-review | temporarily-closed-to-accrual | temporarily-closed-to-accrual-and-intervention | withdrawn", type="token" ) 3045 public static final String SP_STATUS = "status"; 3046 /** 3047 * <b>Fluent Client</b> search parameter constant for <b>status</b> 3048 * <p> 3049 * Description: <b>active | administratively-completed | approved | closed-to-accrual | closed-to-accrual-and-intervention | completed | disapproved | in-review | temporarily-closed-to-accrual | temporarily-closed-to-accrual-and-intervention | withdrawn</b><br> 3050 * Type: <b>token</b><br> 3051 * Path: <b>ResearchStudy.status</b><br> 3052 * </p> 3053 */ 3054 public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS); 3055 3056 3057}