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