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