
001package org.hl7.fhir.r5.model; 002 003 004/* 005 Copyright (c) 2011+, HL7, Inc. 006 All rights reserved. 007 008 Redistribution and use in source and binary forms, with or without modification, \ 009 are permitted provided that the following conditions are met: 010 011 * Redistributions of source code must retain the above copyright notice, this \ 012 list of conditions and the following disclaimer. 013 * Redistributions in binary form must reproduce the above copyright notice, \ 014 this list of conditions and the following disclaimer in the documentation \ 015 and/or other materials provided with the distribution. 016 * Neither the name of HL7 nor the names of its contributors may be used to 017 endorse or promote products derived from this software without specific 018 prior written permission. 019 020 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \ 021 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \ 022 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \ 023 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \ 024 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT \ 025 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR \ 026 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, \ 027 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) \ 028 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE \ 029 POSSIBILITY OF SUCH DAMAGE. 030 */ 031 032// Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot 033 034import java.util.ArrayList; 035import java.util.Date; 036import java.util.List; 037import org.hl7.fhir.utilities.Utilities; 038import org.hl7.fhir.r5.model.Enumerations.*; 039import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 040import org.hl7.fhir.exceptions.FHIRException; 041import org.hl7.fhir.instance.model.api.ICompositeType; 042import ca.uhn.fhir.model.api.annotation.ResourceDef; 043import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 044import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 045import ca.uhn.fhir.model.api.annotation.Child; 046import ca.uhn.fhir.model.api.annotation.ChildOrder; 047import ca.uhn.fhir.model.api.annotation.Description; 048import ca.uhn.fhir.model.api.annotation.Block; 049 050/** 051 * A scientific study of nature that sometimes includes processes involved in health and disease. For example, clinical trials are research studies that involve people. These studies may be related to new ways to screen, prevent, diagnose, and treat disease. They may also study certain outcomes and certain groups of people by looking at data collected in the past or future. 052 */ 053@ResourceDef(name="ResearchStudy", profile="http://hl7.org/fhir/StructureDefinition/ResearchStudy") 054public class ResearchStudy extends DomainResource { 055 056 @Block() 057 public static class ResearchStudyLabelComponent extends BackboneElement implements IBaseBackboneElement { 058 /** 059 * Kind of name. 060 */ 061 @Child(name = "type", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=false, summary=false) 062 @Description(shortDefinition="primary | official | scientific | plain-language | subtitle | short-title | acronym | earlier-title | language | auto-translated | human-use | machine-use | duplicate-uid", formalDefinition="Kind of name." ) 063 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/title-type") 064 protected CodeableConcept type; 065 066 /** 067 * The name. 068 */ 069 @Child(name = "value", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=false) 070 @Description(shortDefinition="The name", formalDefinition="The name." ) 071 protected StringType value; 072 073 private static final long serialVersionUID = 944223389L; 074 075 /** 076 * Constructor 077 */ 078 public ResearchStudyLabelComponent() { 079 super(); 080 } 081 082 /** 083 * @return {@link #type} (Kind of name.) 084 */ 085 public CodeableConcept getType() { 086 if (this.type == null) 087 if (Configuration.errorOnAutoCreate()) 088 throw new Error("Attempt to auto-create ResearchStudyLabelComponent.type"); 089 else if (Configuration.doAutoCreate()) 090 this.type = new CodeableConcept(); // cc 091 return this.type; 092 } 093 094 public boolean hasType() { 095 return this.type != null && !this.type.isEmpty(); 096 } 097 098 /** 099 * @param value {@link #type} (Kind of name.) 100 */ 101 public ResearchStudyLabelComponent setType(CodeableConcept value) { 102 this.type = value; 103 return this; 104 } 105 106 /** 107 * @return {@link #value} (The name.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value 108 */ 109 public StringType getValueElement() { 110 if (this.value == null) 111 if (Configuration.errorOnAutoCreate()) 112 throw new Error("Attempt to auto-create ResearchStudyLabelComponent.value"); 113 else if (Configuration.doAutoCreate()) 114 this.value = new StringType(); // bb 115 return this.value; 116 } 117 118 public boolean hasValueElement() { 119 return this.value != null && !this.value.isEmpty(); 120 } 121 122 public boolean hasValue() { 123 return this.value != null && !this.value.isEmpty(); 124 } 125 126 /** 127 * @param value {@link #value} (The name.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value 128 */ 129 public ResearchStudyLabelComponent setValueElement(StringType value) { 130 this.value = value; 131 return this; 132 } 133 134 /** 135 * @return The name. 136 */ 137 public String getValue() { 138 return this.value == null ? null : this.value.getValue(); 139 } 140 141 /** 142 * @param value The name. 143 */ 144 public ResearchStudyLabelComponent setValue(String value) { 145 if (Utilities.noString(value)) 146 this.value = null; 147 else { 148 if (this.value == null) 149 this.value = new StringType(); 150 this.value.setValue(value); 151 } 152 return this; 153 } 154 155 protected void listChildren(List<Property> children) { 156 super.listChildren(children); 157 children.add(new Property("type", "CodeableConcept", "Kind of name.", 0, 1, type)); 158 children.add(new Property("value", "string", "The name.", 0, 1, value)); 159 } 160 161 @Override 162 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 163 switch (_hash) { 164 case 3575610: /*type*/ return new Property("type", "CodeableConcept", "Kind of name.", 0, 1, type); 165 case 111972721: /*value*/ return new Property("value", "string", "The name.", 0, 1, value); 166 default: return super.getNamedProperty(_hash, _name, _checkValid); 167 } 168 169 } 170 171 @Override 172 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 173 switch (hash) { 174 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // CodeableConcept 175 case 111972721: /*value*/ return this.value == null ? new Base[0] : new Base[] {this.value}; // StringType 176 default: return super.getProperty(hash, name, checkValid); 177 } 178 179 } 180 181 @Override 182 public Base setProperty(int hash, String name, Base value) throws FHIRException { 183 switch (hash) { 184 case 3575610: // type 185 this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 186 return value; 187 case 111972721: // value 188 this.value = TypeConvertor.castToString(value); // StringType 189 return value; 190 default: return super.setProperty(hash, name, value); 191 } 192 193 } 194 195 @Override 196 public Base setProperty(String name, Base value) throws FHIRException { 197 if (name.equals("type")) { 198 this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 199 } else if (name.equals("value")) { 200 this.value = TypeConvertor.castToString(value); // StringType 201 } else 202 return super.setProperty(name, value); 203 return value; 204 } 205 206 @Override 207 public Base makeProperty(int hash, String name) throws FHIRException { 208 switch (hash) { 209 case 3575610: return getType(); 210 case 111972721: return getValueElement(); 211 default: return super.makeProperty(hash, name); 212 } 213 214 } 215 216 @Override 217 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 218 switch (hash) { 219 case 3575610: /*type*/ return new String[] {"CodeableConcept"}; 220 case 111972721: /*value*/ return new String[] {"string"}; 221 default: return super.getTypesForProperty(hash, name); 222 } 223 224 } 225 226 @Override 227 public Base addChild(String name) throws FHIRException { 228 if (name.equals("type")) { 229 this.type = new CodeableConcept(); 230 return this.type; 231 } 232 else if (name.equals("value")) { 233 throw new FHIRException("Cannot call addChild on a primitive type ResearchStudy.label.value"); 234 } 235 else 236 return super.addChild(name); 237 } 238 239 public ResearchStudyLabelComponent copy() { 240 ResearchStudyLabelComponent dst = new ResearchStudyLabelComponent(); 241 copyValues(dst); 242 return dst; 243 } 244 245 public void copyValues(ResearchStudyLabelComponent dst) { 246 super.copyValues(dst); 247 dst.type = type == null ? null : type.copy(); 248 dst.value = value == null ? null : value.copy(); 249 } 250 251 @Override 252 public boolean equalsDeep(Base other_) { 253 if (!super.equalsDeep(other_)) 254 return false; 255 if (!(other_ instanceof ResearchStudyLabelComponent)) 256 return false; 257 ResearchStudyLabelComponent o = (ResearchStudyLabelComponent) other_; 258 return compareDeep(type, o.type, true) && compareDeep(value, o.value, true); 259 } 260 261 @Override 262 public boolean equalsShallow(Base other_) { 263 if (!super.equalsShallow(other_)) 264 return false; 265 if (!(other_ instanceof ResearchStudyLabelComponent)) 266 return false; 267 ResearchStudyLabelComponent o = (ResearchStudyLabelComponent) other_; 268 return compareValues(value, o.value, true); 269 } 270 271 public boolean isEmpty() { 272 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(type, value); 273 } 274 275 public String fhirType() { 276 return "ResearchStudy.label"; 277 278 } 279 280 } 281 282 @Block() 283 public static class ResearchStudyFocusComponent extends BackboneElement implements IBaseBackboneElement { 284 /** 285 * Identification of product under study. This may be any combination of code and/or name. 286 */ 287 @Child(name = "productCode", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=false, summary=true) 288 @Description(shortDefinition="Identification of product under study", formalDefinition="Identification of product under study. This may be any combination of code and/or name." ) 289 protected CodeableConcept productCode; 290 291 /** 292 * Indicates whether the focus is a medication, a device, a procedure, a specific factor or some other intervention or characteristic. 293 */ 294 @Child(name = "focusType", type = {CodeableConcept.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 295 @Description(shortDefinition="medication | device | intervention | factor", formalDefinition="Indicates whether the focus is a medication, a device, a procedure, a specific factor or some other intervention or characteristic." ) 296 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/research-study-focus-type") 297 protected List<CodeableConcept> focusType; 298 299 /** 300 * A factor corresponds to an independent variable manipulated by the experimentalist with the intention to affect biological systems in a way that can be measured by an assay. 301 */ 302 @Child(name = "factor", type = {MarkdownType.class}, order=3, min=0, max=1, modifier=false, summary=false) 303 @Description(shortDefinition="An independent variable manipulated by the experimentalist", formalDefinition="A factor corresponds to an independent variable manipulated by the experimentalist with the intention to affect biological systems in a way that can be measured by an assay." ) 304 protected MarkdownType factor; 305 306 private static final long serialVersionUID = 1526347182L; 307 308 /** 309 * Constructor 310 */ 311 public ResearchStudyFocusComponent() { 312 super(); 313 } 314 315 /** 316 * @return {@link #productCode} (Identification of product under study. This may be any combination of code and/or name.) 317 */ 318 public CodeableConcept getProductCode() { 319 if (this.productCode == null) 320 if (Configuration.errorOnAutoCreate()) 321 throw new Error("Attempt to auto-create ResearchStudyFocusComponent.productCode"); 322 else if (Configuration.doAutoCreate()) 323 this.productCode = new CodeableConcept(); // cc 324 return this.productCode; 325 } 326 327 public boolean hasProductCode() { 328 return this.productCode != null && !this.productCode.isEmpty(); 329 } 330 331 /** 332 * @param value {@link #productCode} (Identification of product under study. This may be any combination of code and/or name.) 333 */ 334 public ResearchStudyFocusComponent setProductCode(CodeableConcept value) { 335 this.productCode = value; 336 return this; 337 } 338 339 /** 340 * @return {@link #focusType} (Indicates whether the focus is a medication, a device, a procedure, a specific factor or some other intervention or characteristic.) 341 */ 342 public List<CodeableConcept> getFocusType() { 343 if (this.focusType == null) 344 this.focusType = new ArrayList<CodeableConcept>(); 345 return this.focusType; 346 } 347 348 /** 349 * @return Returns a reference to <code>this</code> for easy method chaining 350 */ 351 public ResearchStudyFocusComponent setFocusType(List<CodeableConcept> theFocusType) { 352 this.focusType = theFocusType; 353 return this; 354 } 355 356 public boolean hasFocusType() { 357 if (this.focusType == null) 358 return false; 359 for (CodeableConcept item : this.focusType) 360 if (!item.isEmpty()) 361 return true; 362 return false; 363 } 364 365 public CodeableConcept addFocusType() { //3 366 CodeableConcept t = new CodeableConcept(); 367 if (this.focusType == null) 368 this.focusType = new ArrayList<CodeableConcept>(); 369 this.focusType.add(t); 370 return t; 371 } 372 373 public ResearchStudyFocusComponent addFocusType(CodeableConcept t) { //3 374 if (t == null) 375 return this; 376 if (this.focusType == null) 377 this.focusType = new ArrayList<CodeableConcept>(); 378 this.focusType.add(t); 379 return this; 380 } 381 382 /** 383 * @return The first repetition of repeating field {@link #focusType}, creating it if it does not already exist {3} 384 */ 385 public CodeableConcept getFocusTypeFirstRep() { 386 if (getFocusType().isEmpty()) { 387 addFocusType(); 388 } 389 return getFocusType().get(0); 390 } 391 392 /** 393 * @return {@link #factor} (A factor corresponds to an independent variable manipulated by the experimentalist with the intention to affect biological systems in a way that can be measured by an assay.). This is the underlying object with id, value and extensions. The accessor "getFactor" gives direct access to the value 394 */ 395 public MarkdownType getFactorElement() { 396 if (this.factor == null) 397 if (Configuration.errorOnAutoCreate()) 398 throw new Error("Attempt to auto-create ResearchStudyFocusComponent.factor"); 399 else if (Configuration.doAutoCreate()) 400 this.factor = new MarkdownType(); // bb 401 return this.factor; 402 } 403 404 public boolean hasFactorElement() { 405 return this.factor != null && !this.factor.isEmpty(); 406 } 407 408 public boolean hasFactor() { 409 return this.factor != null && !this.factor.isEmpty(); 410 } 411 412 /** 413 * @param value {@link #factor} (A factor corresponds to an independent variable manipulated by the experimentalist with the intention to affect biological systems in a way that can be measured by an assay.). This is the underlying object with id, value and extensions. The accessor "getFactor" gives direct access to the value 414 */ 415 public ResearchStudyFocusComponent setFactorElement(MarkdownType value) { 416 this.factor = value; 417 return this; 418 } 419 420 /** 421 * @return A factor corresponds to an independent variable manipulated by the experimentalist with the intention to affect biological systems in a way that can be measured by an assay. 422 */ 423 public String getFactor() { 424 return this.factor == null ? null : this.factor.getValue(); 425 } 426 427 /** 428 * @param value A factor corresponds to an independent variable manipulated by the experimentalist with the intention to affect biological systems in a way that can be measured by an assay. 429 */ 430 public ResearchStudyFocusComponent setFactor(String value) { 431 if (value == null) 432 this.factor = null; 433 else { 434 if (this.factor == null) 435 this.factor = new MarkdownType(); 436 this.factor.setValue(value); 437 } 438 return this; 439 } 440 441 protected void listChildren(List<Property> children) { 442 super.listChildren(children); 443 children.add(new Property("productCode", "CodeableConcept", "Identification of product under study. This may be any combination of code and/or name.", 0, 1, productCode)); 444 children.add(new Property("focusType", "CodeableConcept", "Indicates whether the focus is a medication, a device, a procedure, a specific factor or some other intervention or characteristic.", 0, java.lang.Integer.MAX_VALUE, focusType)); 445 children.add(new Property("factor", "markdown", "A factor corresponds to an independent variable manipulated by the experimentalist with the intention to affect biological systems in a way that can be measured by an assay.", 0, 1, factor)); 446 } 447 448 @Override 449 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 450 switch (_hash) { 451 case -1492131972: /*productCode*/ return new Property("productCode", "CodeableConcept", "Identification of product under study. This may be any combination of code and/or name.", 0, 1, productCode); 452 case 1628646450: /*focusType*/ return new Property("focusType", "CodeableConcept", "Indicates whether the focus is a medication, a device, a procedure, a specific factor or some other intervention or characteristic.", 0, java.lang.Integer.MAX_VALUE, focusType); 453 case -1282148017: /*factor*/ return new Property("factor", "markdown", "A factor corresponds to an independent variable manipulated by the experimentalist with the intention to affect biological systems in a way that can be measured by an assay.", 0, 1, factor); 454 default: return super.getNamedProperty(_hash, _name, _checkValid); 455 } 456 457 } 458 459 @Override 460 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 461 switch (hash) { 462 case -1492131972: /*productCode*/ return this.productCode == null ? new Base[0] : new Base[] {this.productCode}; // CodeableConcept 463 case 1628646450: /*focusType*/ return this.focusType == null ? new Base[0] : this.focusType.toArray(new Base[this.focusType.size()]); // CodeableConcept 464 case -1282148017: /*factor*/ return this.factor == null ? new Base[0] : new Base[] {this.factor}; // MarkdownType 465 default: return super.getProperty(hash, name, checkValid); 466 } 467 468 } 469 470 @Override 471 public Base setProperty(int hash, String name, Base value) throws FHIRException { 472 switch (hash) { 473 case -1492131972: // productCode 474 this.productCode = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 475 return value; 476 case 1628646450: // focusType 477 this.getFocusType().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 478 return value; 479 case -1282148017: // factor 480 this.factor = TypeConvertor.castToMarkdown(value); // MarkdownType 481 return value; 482 default: return super.setProperty(hash, name, value); 483 } 484 485 } 486 487 @Override 488 public Base setProperty(String name, Base value) throws FHIRException { 489 if (name.equals("productCode")) { 490 this.productCode = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 491 } else if (name.equals("focusType")) { 492 this.getFocusType().add(TypeConvertor.castToCodeableConcept(value)); 493 } else if (name.equals("factor")) { 494 this.factor = TypeConvertor.castToMarkdown(value); // MarkdownType 495 } else 496 return super.setProperty(name, value); 497 return value; 498 } 499 500 @Override 501 public Base makeProperty(int hash, String name) throws FHIRException { 502 switch (hash) { 503 case -1492131972: return getProductCode(); 504 case 1628646450: return addFocusType(); 505 case -1282148017: return getFactorElement(); 506 default: return super.makeProperty(hash, name); 507 } 508 509 } 510 511 @Override 512 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 513 switch (hash) { 514 case -1492131972: /*productCode*/ return new String[] {"CodeableConcept"}; 515 case 1628646450: /*focusType*/ return new String[] {"CodeableConcept"}; 516 case -1282148017: /*factor*/ return new String[] {"markdown"}; 517 default: return super.getTypesForProperty(hash, name); 518 } 519 520 } 521 522 @Override 523 public Base addChild(String name) throws FHIRException { 524 if (name.equals("productCode")) { 525 this.productCode = new CodeableConcept(); 526 return this.productCode; 527 } 528 else if (name.equals("focusType")) { 529 return addFocusType(); 530 } 531 else if (name.equals("factor")) { 532 throw new FHIRException("Cannot call addChild on a primitive type ResearchStudy.focus.factor"); 533 } 534 else 535 return super.addChild(name); 536 } 537 538 public ResearchStudyFocusComponent copy() { 539 ResearchStudyFocusComponent dst = new ResearchStudyFocusComponent(); 540 copyValues(dst); 541 return dst; 542 } 543 544 public void copyValues(ResearchStudyFocusComponent dst) { 545 super.copyValues(dst); 546 dst.productCode = productCode == null ? null : productCode.copy(); 547 if (focusType != null) { 548 dst.focusType = new ArrayList<CodeableConcept>(); 549 for (CodeableConcept i : focusType) 550 dst.focusType.add(i.copy()); 551 }; 552 dst.factor = factor == null ? null : factor.copy(); 553 } 554 555 @Override 556 public boolean equalsDeep(Base other_) { 557 if (!super.equalsDeep(other_)) 558 return false; 559 if (!(other_ instanceof ResearchStudyFocusComponent)) 560 return false; 561 ResearchStudyFocusComponent o = (ResearchStudyFocusComponent) other_; 562 return compareDeep(productCode, o.productCode, true) && compareDeep(focusType, o.focusType, true) 563 && compareDeep(factor, o.factor, true); 564 } 565 566 @Override 567 public boolean equalsShallow(Base other_) { 568 if (!super.equalsShallow(other_)) 569 return false; 570 if (!(other_ instanceof ResearchStudyFocusComponent)) 571 return false; 572 ResearchStudyFocusComponent o = (ResearchStudyFocusComponent) other_; 573 return compareValues(factor, o.factor, true); 574 } 575 576 public boolean isEmpty() { 577 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(productCode, focusType, factor 578 ); 579 } 580 581 public String fhirType() { 582 return "ResearchStudy.focus"; 583 584 } 585 586 } 587 588 @Block() 589 public static class ResearchStudyAssociatedPartyComponent extends BackboneElement implements IBaseBackboneElement { 590 /** 591 * Name of associated party. 592 */ 593 @Child(name = "name", type = {StringType.class}, order=1, min=0, max=1, modifier=false, summary=false) 594 @Description(shortDefinition="Name of associated party", formalDefinition="Name of associated party." ) 595 protected StringType name; 596 597 /** 598 * Type of association. 599 */ 600 @Child(name = "role", type = {CodeableConcept.class}, order=2, min=1, max=1, modifier=false, summary=false) 601 @Description(shortDefinition="sponsor | lead-sponsor | sponsor-investigator | primary-investigator | collaborator | funding-source | general-contact | recruitment-contact | sub-investigator | study-director | study-chair", formalDefinition="Type of association." ) 602 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/research-study-party-role") 603 protected CodeableConcept role; 604 605 /** 606 * Identifies the start date and the end date of the associated party in the role. 607 */ 608 @Child(name = "period", type = {Period.class}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 609 @Description(shortDefinition="When active in the role", formalDefinition="Identifies the start date and the end date of the associated party in the role." ) 610 protected List<Period> period; 611 612 /** 613 * A categorization other than role for the associated party. 614 */ 615 @Child(name = "classifier", type = {CodeableConcept.class}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 616 @Description(shortDefinition="nih | fda | government | nonprofit | academic | industry", formalDefinition="A categorization other than role for the associated party." ) 617 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/research-study-party-org-type") 618 protected List<CodeableConcept> classifier; 619 620 /** 621 * Individual or organization associated with study (use practitionerRole to specify their organisation). 622 */ 623 @Child(name = "party", type = {Practitioner.class, PractitionerRole.class, Organization.class}, order=5, min=0, max=1, modifier=false, summary=false) 624 @Description(shortDefinition="Individual or organization associated with study (use practitionerRole to specify their organisation)", formalDefinition="Individual or organization associated with study (use practitionerRole to specify their organisation)." ) 625 protected Reference party; 626 627 private static final long serialVersionUID = -1418550998L; 628 629 /** 630 * Constructor 631 */ 632 public ResearchStudyAssociatedPartyComponent() { 633 super(); 634 } 635 636 /** 637 * Constructor 638 */ 639 public ResearchStudyAssociatedPartyComponent(CodeableConcept role) { 640 super(); 641 this.setRole(role); 642 } 643 644 /** 645 * @return {@link #name} (Name of associated party.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value 646 */ 647 public StringType getNameElement() { 648 if (this.name == null) 649 if (Configuration.errorOnAutoCreate()) 650 throw new Error("Attempt to auto-create ResearchStudyAssociatedPartyComponent.name"); 651 else if (Configuration.doAutoCreate()) 652 this.name = new StringType(); // bb 653 return this.name; 654 } 655 656 public boolean hasNameElement() { 657 return this.name != null && !this.name.isEmpty(); 658 } 659 660 public boolean hasName() { 661 return this.name != null && !this.name.isEmpty(); 662 } 663 664 /** 665 * @param value {@link #name} (Name of associated party.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value 666 */ 667 public ResearchStudyAssociatedPartyComponent setNameElement(StringType value) { 668 this.name = value; 669 return this; 670 } 671 672 /** 673 * @return Name of associated party. 674 */ 675 public String getName() { 676 return this.name == null ? null : this.name.getValue(); 677 } 678 679 /** 680 * @param value Name of associated party. 681 */ 682 public ResearchStudyAssociatedPartyComponent setName(String value) { 683 if (Utilities.noString(value)) 684 this.name = null; 685 else { 686 if (this.name == null) 687 this.name = new StringType(); 688 this.name.setValue(value); 689 } 690 return this; 691 } 692 693 /** 694 * @return {@link #role} (Type of association.) 695 */ 696 public CodeableConcept getRole() { 697 if (this.role == null) 698 if (Configuration.errorOnAutoCreate()) 699 throw new Error("Attempt to auto-create ResearchStudyAssociatedPartyComponent.role"); 700 else if (Configuration.doAutoCreate()) 701 this.role = new CodeableConcept(); // cc 702 return this.role; 703 } 704 705 public boolean hasRole() { 706 return this.role != null && !this.role.isEmpty(); 707 } 708 709 /** 710 * @param value {@link #role} (Type of association.) 711 */ 712 public ResearchStudyAssociatedPartyComponent setRole(CodeableConcept value) { 713 this.role = value; 714 return this; 715 } 716 717 /** 718 * @return {@link #period} (Identifies the start date and the end date of the associated party in the role.) 719 */ 720 public List<Period> getPeriod() { 721 if (this.period == null) 722 this.period = new ArrayList<Period>(); 723 return this.period; 724 } 725 726 /** 727 * @return Returns a reference to <code>this</code> for easy method chaining 728 */ 729 public ResearchStudyAssociatedPartyComponent setPeriod(List<Period> thePeriod) { 730 this.period = thePeriod; 731 return this; 732 } 733 734 public boolean hasPeriod() { 735 if (this.period == null) 736 return false; 737 for (Period item : this.period) 738 if (!item.isEmpty()) 739 return true; 740 return false; 741 } 742 743 public Period addPeriod() { //3 744 Period t = new Period(); 745 if (this.period == null) 746 this.period = new ArrayList<Period>(); 747 this.period.add(t); 748 return t; 749 } 750 751 public ResearchStudyAssociatedPartyComponent addPeriod(Period t) { //3 752 if (t == null) 753 return this; 754 if (this.period == null) 755 this.period = new ArrayList<Period>(); 756 this.period.add(t); 757 return this; 758 } 759 760 /** 761 * @return The first repetition of repeating field {@link #period}, creating it if it does not already exist {3} 762 */ 763 public Period getPeriodFirstRep() { 764 if (getPeriod().isEmpty()) { 765 addPeriod(); 766 } 767 return getPeriod().get(0); 768 } 769 770 /** 771 * @return {@link #classifier} (A categorization other than role for the associated party.) 772 */ 773 public List<CodeableConcept> getClassifier() { 774 if (this.classifier == null) 775 this.classifier = new ArrayList<CodeableConcept>(); 776 return this.classifier; 777 } 778 779 /** 780 * @return Returns a reference to <code>this</code> for easy method chaining 781 */ 782 public ResearchStudyAssociatedPartyComponent setClassifier(List<CodeableConcept> theClassifier) { 783 this.classifier = theClassifier; 784 return this; 785 } 786 787 public boolean hasClassifier() { 788 if (this.classifier == null) 789 return false; 790 for (CodeableConcept item : this.classifier) 791 if (!item.isEmpty()) 792 return true; 793 return false; 794 } 795 796 public CodeableConcept addClassifier() { //3 797 CodeableConcept t = new CodeableConcept(); 798 if (this.classifier == null) 799 this.classifier = new ArrayList<CodeableConcept>(); 800 this.classifier.add(t); 801 return t; 802 } 803 804 public ResearchStudyAssociatedPartyComponent addClassifier(CodeableConcept t) { //3 805 if (t == null) 806 return this; 807 if (this.classifier == null) 808 this.classifier = new ArrayList<CodeableConcept>(); 809 this.classifier.add(t); 810 return this; 811 } 812 813 /** 814 * @return The first repetition of repeating field {@link #classifier}, creating it if it does not already exist {3} 815 */ 816 public CodeableConcept getClassifierFirstRep() { 817 if (getClassifier().isEmpty()) { 818 addClassifier(); 819 } 820 return getClassifier().get(0); 821 } 822 823 /** 824 * @return {@link #party} (Individual or organization associated with study (use practitionerRole to specify their organisation).) 825 */ 826 public Reference getParty() { 827 if (this.party == null) 828 if (Configuration.errorOnAutoCreate()) 829 throw new Error("Attempt to auto-create ResearchStudyAssociatedPartyComponent.party"); 830 else if (Configuration.doAutoCreate()) 831 this.party = new Reference(); // cc 832 return this.party; 833 } 834 835 public boolean hasParty() { 836 return this.party != null && !this.party.isEmpty(); 837 } 838 839 /** 840 * @param value {@link #party} (Individual or organization associated with study (use practitionerRole to specify their organisation).) 841 */ 842 public ResearchStudyAssociatedPartyComponent setParty(Reference value) { 843 this.party = value; 844 return this; 845 } 846 847 protected void listChildren(List<Property> children) { 848 super.listChildren(children); 849 children.add(new Property("name", "string", "Name of associated party.", 0, 1, name)); 850 children.add(new Property("role", "CodeableConcept", "Type of association.", 0, 1, role)); 851 children.add(new Property("period", "Period", "Identifies the start date and the end date of the associated party in the role.", 0, java.lang.Integer.MAX_VALUE, period)); 852 children.add(new Property("classifier", "CodeableConcept", "A categorization other than role for the associated party.", 0, java.lang.Integer.MAX_VALUE, classifier)); 853 children.add(new Property("party", "Reference(Practitioner|PractitionerRole|Organization)", "Individual or organization associated with study (use practitionerRole to specify their organisation).", 0, 1, party)); 854 } 855 856 @Override 857 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 858 switch (_hash) { 859 case 3373707: /*name*/ return new Property("name", "string", "Name of associated party.", 0, 1, name); 860 case 3506294: /*role*/ return new Property("role", "CodeableConcept", "Type of association.", 0, 1, role); 861 case -991726143: /*period*/ return new Property("period", "Period", "Identifies the start date and the end date of the associated party in the role.", 0, java.lang.Integer.MAX_VALUE, period); 862 case -281470431: /*classifier*/ return new Property("classifier", "CodeableConcept", "A categorization other than role for the associated party.", 0, java.lang.Integer.MAX_VALUE, classifier); 863 case 106437350: /*party*/ return new Property("party", "Reference(Practitioner|PractitionerRole|Organization)", "Individual or organization associated with study (use practitionerRole to specify their organisation).", 0, 1, party); 864 default: return super.getNamedProperty(_hash, _name, _checkValid); 865 } 866 867 } 868 869 @Override 870 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 871 switch (hash) { 872 case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType 873 case 3506294: /*role*/ return this.role == null ? new Base[0] : new Base[] {this.role}; // CodeableConcept 874 case -991726143: /*period*/ return this.period == null ? new Base[0] : this.period.toArray(new Base[this.period.size()]); // Period 875 case -281470431: /*classifier*/ return this.classifier == null ? new Base[0] : this.classifier.toArray(new Base[this.classifier.size()]); // CodeableConcept 876 case 106437350: /*party*/ return this.party == null ? new Base[0] : new Base[] {this.party}; // Reference 877 default: return super.getProperty(hash, name, checkValid); 878 } 879 880 } 881 882 @Override 883 public Base setProperty(int hash, String name, Base value) throws FHIRException { 884 switch (hash) { 885 case 3373707: // name 886 this.name = TypeConvertor.castToString(value); // StringType 887 return value; 888 case 3506294: // role 889 this.role = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 890 return value; 891 case -991726143: // period 892 this.getPeriod().add(TypeConvertor.castToPeriod(value)); // Period 893 return value; 894 case -281470431: // classifier 895 this.getClassifier().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 896 return value; 897 case 106437350: // party 898 this.party = TypeConvertor.castToReference(value); // Reference 899 return value; 900 default: return super.setProperty(hash, name, value); 901 } 902 903 } 904 905 @Override 906 public Base setProperty(String name, Base value) throws FHIRException { 907 if (name.equals("name")) { 908 this.name = TypeConvertor.castToString(value); // StringType 909 } else if (name.equals("role")) { 910 this.role = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 911 } else if (name.equals("period")) { 912 this.getPeriod().add(TypeConvertor.castToPeriod(value)); 913 } else if (name.equals("classifier")) { 914 this.getClassifier().add(TypeConvertor.castToCodeableConcept(value)); 915 } else if (name.equals("party")) { 916 this.party = TypeConvertor.castToReference(value); // Reference 917 } else 918 return super.setProperty(name, value); 919 return value; 920 } 921 922 @Override 923 public Base makeProperty(int hash, String name) throws FHIRException { 924 switch (hash) { 925 case 3373707: return getNameElement(); 926 case 3506294: return getRole(); 927 case -991726143: return addPeriod(); 928 case -281470431: return addClassifier(); 929 case 106437350: return getParty(); 930 default: return super.makeProperty(hash, name); 931 } 932 933 } 934 935 @Override 936 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 937 switch (hash) { 938 case 3373707: /*name*/ return new String[] {"string"}; 939 case 3506294: /*role*/ return new String[] {"CodeableConcept"}; 940 case -991726143: /*period*/ return new String[] {"Period"}; 941 case -281470431: /*classifier*/ return new String[] {"CodeableConcept"}; 942 case 106437350: /*party*/ return new String[] {"Reference"}; 943 default: return super.getTypesForProperty(hash, name); 944 } 945 946 } 947 948 @Override 949 public Base addChild(String name) throws FHIRException { 950 if (name.equals("name")) { 951 throw new FHIRException("Cannot call addChild on a primitive type ResearchStudy.associatedParty.name"); 952 } 953 else if (name.equals("role")) { 954 this.role = new CodeableConcept(); 955 return this.role; 956 } 957 else if (name.equals("period")) { 958 return addPeriod(); 959 } 960 else if (name.equals("classifier")) { 961 return addClassifier(); 962 } 963 else if (name.equals("party")) { 964 this.party = new Reference(); 965 return this.party; 966 } 967 else 968 return super.addChild(name); 969 } 970 971 public ResearchStudyAssociatedPartyComponent copy() { 972 ResearchStudyAssociatedPartyComponent dst = new ResearchStudyAssociatedPartyComponent(); 973 copyValues(dst); 974 return dst; 975 } 976 977 public void copyValues(ResearchStudyAssociatedPartyComponent dst) { 978 super.copyValues(dst); 979 dst.name = name == null ? null : name.copy(); 980 dst.role = role == null ? null : role.copy(); 981 if (period != null) { 982 dst.period = new ArrayList<Period>(); 983 for (Period i : period) 984 dst.period.add(i.copy()); 985 }; 986 if (classifier != null) { 987 dst.classifier = new ArrayList<CodeableConcept>(); 988 for (CodeableConcept i : classifier) 989 dst.classifier.add(i.copy()); 990 }; 991 dst.party = party == null ? null : party.copy(); 992 } 993 994 @Override 995 public boolean equalsDeep(Base other_) { 996 if (!super.equalsDeep(other_)) 997 return false; 998 if (!(other_ instanceof ResearchStudyAssociatedPartyComponent)) 999 return false; 1000 ResearchStudyAssociatedPartyComponent o = (ResearchStudyAssociatedPartyComponent) other_; 1001 return compareDeep(name, o.name, true) && compareDeep(role, o.role, true) && compareDeep(period, o.period, true) 1002 && compareDeep(classifier, o.classifier, true) && compareDeep(party, o.party, true); 1003 } 1004 1005 @Override 1006 public boolean equalsShallow(Base other_) { 1007 if (!super.equalsShallow(other_)) 1008 return false; 1009 if (!(other_ instanceof ResearchStudyAssociatedPartyComponent)) 1010 return false; 1011 ResearchStudyAssociatedPartyComponent o = (ResearchStudyAssociatedPartyComponent) other_; 1012 return compareValues(name, o.name, true); 1013 } 1014 1015 public boolean isEmpty() { 1016 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(name, role, period, classifier 1017 , party); 1018 } 1019 1020 public String fhirType() { 1021 return "ResearchStudy.associatedParty"; 1022 1023 } 1024 1025 } 1026 1027 @Block() 1028 public static class ResearchStudyProgressStatusComponent extends BackboneElement implements IBaseBackboneElement { 1029 /** 1030 * Label for status or state (e.g. recruitment status). 1031 */ 1032 @Child(name = "state", type = {CodeableConcept.class}, order=1, min=1, max=1, modifier=false, summary=false) 1033 @Description(shortDefinition="Label for status or state (e.g. recruitment status)", formalDefinition="Label for status or state (e.g. recruitment status)." ) 1034 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/research-study-status") 1035 protected CodeableConcept state; 1036 1037 /** 1038 * An indication of whether or not the date is a known date when the state changed or will change. A value of true indicates a known date. A value of false indicates an estimated date. 1039 */ 1040 @Child(name = "actual", type = {BooleanType.class}, order=2, min=0, max=1, modifier=false, summary=false) 1041 @Description(shortDefinition="Actual if true else anticipated", formalDefinition="An indication of whether or not the date is a known date when the state changed or will change. A value of true indicates a known date. A value of false indicates an estimated date." ) 1042 protected BooleanType actual; 1043 1044 /** 1045 * Date range. 1046 */ 1047 @Child(name = "period", type = {Period.class}, order=3, min=0, max=1, modifier=false, summary=false) 1048 @Description(shortDefinition="Date range", formalDefinition="Date range." ) 1049 protected Period period; 1050 1051 private static final long serialVersionUID = 1232680620L; 1052 1053 /** 1054 * Constructor 1055 */ 1056 public ResearchStudyProgressStatusComponent() { 1057 super(); 1058 } 1059 1060 /** 1061 * Constructor 1062 */ 1063 public ResearchStudyProgressStatusComponent(CodeableConcept state) { 1064 super(); 1065 this.setState(state); 1066 } 1067 1068 /** 1069 * @return {@link #state} (Label for status or state (e.g. recruitment status).) 1070 */ 1071 public CodeableConcept getState() { 1072 if (this.state == null) 1073 if (Configuration.errorOnAutoCreate()) 1074 throw new Error("Attempt to auto-create ResearchStudyProgressStatusComponent.state"); 1075 else if (Configuration.doAutoCreate()) 1076 this.state = new CodeableConcept(); // cc 1077 return this.state; 1078 } 1079 1080 public boolean hasState() { 1081 return this.state != null && !this.state.isEmpty(); 1082 } 1083 1084 /** 1085 * @param value {@link #state} (Label for status or state (e.g. recruitment status).) 1086 */ 1087 public ResearchStudyProgressStatusComponent setState(CodeableConcept value) { 1088 this.state = value; 1089 return this; 1090 } 1091 1092 /** 1093 * @return {@link #actual} (An indication of whether or not the date is a known date when the state changed or will change. A value of true indicates a known date. A value of false indicates an estimated date.). This is the underlying object with id, value and extensions. The accessor "getActual" gives direct access to the value 1094 */ 1095 public BooleanType getActualElement() { 1096 if (this.actual == null) 1097 if (Configuration.errorOnAutoCreate()) 1098 throw new Error("Attempt to auto-create ResearchStudyProgressStatusComponent.actual"); 1099 else if (Configuration.doAutoCreate()) 1100 this.actual = new BooleanType(); // bb 1101 return this.actual; 1102 } 1103 1104 public boolean hasActualElement() { 1105 return this.actual != null && !this.actual.isEmpty(); 1106 } 1107 1108 public boolean hasActual() { 1109 return this.actual != null && !this.actual.isEmpty(); 1110 } 1111 1112 /** 1113 * @param value {@link #actual} (An indication of whether or not the date is a known date when the state changed or will change. A value of true indicates a known date. A value of false indicates an estimated date.). This is the underlying object with id, value and extensions. The accessor "getActual" gives direct access to the value 1114 */ 1115 public ResearchStudyProgressStatusComponent setActualElement(BooleanType value) { 1116 this.actual = value; 1117 return this; 1118 } 1119 1120 /** 1121 * @return An indication of whether or not the date is a known date when the state changed or will change. A value of true indicates a known date. A value of false indicates an estimated date. 1122 */ 1123 public boolean getActual() { 1124 return this.actual == null || this.actual.isEmpty() ? false : this.actual.getValue(); 1125 } 1126 1127 /** 1128 * @param value An indication of whether or not the date is a known date when the state changed or will change. A value of true indicates a known date. A value of false indicates an estimated date. 1129 */ 1130 public ResearchStudyProgressStatusComponent setActual(boolean value) { 1131 if (this.actual == null) 1132 this.actual = new BooleanType(); 1133 this.actual.setValue(value); 1134 return this; 1135 } 1136 1137 /** 1138 * @return {@link #period} (Date range.) 1139 */ 1140 public Period getPeriod() { 1141 if (this.period == null) 1142 if (Configuration.errorOnAutoCreate()) 1143 throw new Error("Attempt to auto-create ResearchStudyProgressStatusComponent.period"); 1144 else if (Configuration.doAutoCreate()) 1145 this.period = new Period(); // cc 1146 return this.period; 1147 } 1148 1149 public boolean hasPeriod() { 1150 return this.period != null && !this.period.isEmpty(); 1151 } 1152 1153 /** 1154 * @param value {@link #period} (Date range.) 1155 */ 1156 public ResearchStudyProgressStatusComponent setPeriod(Period value) { 1157 this.period = value; 1158 return this; 1159 } 1160 1161 protected void listChildren(List<Property> children) { 1162 super.listChildren(children); 1163 children.add(new Property("state", "CodeableConcept", "Label for status or state (e.g. recruitment status).", 0, 1, state)); 1164 children.add(new Property("actual", "boolean", "An indication of whether or not the date is a known date when the state changed or will change. A value of true indicates a known date. A value of false indicates an estimated date.", 0, 1, actual)); 1165 children.add(new Property("period", "Period", "Date range.", 0, 1, period)); 1166 } 1167 1168 @Override 1169 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1170 switch (_hash) { 1171 case 109757585: /*state*/ return new Property("state", "CodeableConcept", "Label for status or state (e.g. recruitment status).", 0, 1, state); 1172 case -1422939762: /*actual*/ return new Property("actual", "boolean", "An indication of whether or not the date is a known date when the state changed or will change. A value of true indicates a known date. A value of false indicates an estimated date.", 0, 1, actual); 1173 case -991726143: /*period*/ return new Property("period", "Period", "Date range.", 0, 1, period); 1174 default: return super.getNamedProperty(_hash, _name, _checkValid); 1175 } 1176 1177 } 1178 1179 @Override 1180 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1181 switch (hash) { 1182 case 109757585: /*state*/ return this.state == null ? new Base[0] : new Base[] {this.state}; // CodeableConcept 1183 case -1422939762: /*actual*/ return this.actual == null ? new Base[0] : new Base[] {this.actual}; // BooleanType 1184 case -991726143: /*period*/ return this.period == null ? new Base[0] : new Base[] {this.period}; // Period 1185 default: return super.getProperty(hash, name, checkValid); 1186 } 1187 1188 } 1189 1190 @Override 1191 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1192 switch (hash) { 1193 case 109757585: // state 1194 this.state = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1195 return value; 1196 case -1422939762: // actual 1197 this.actual = TypeConvertor.castToBoolean(value); // BooleanType 1198 return value; 1199 case -991726143: // period 1200 this.period = TypeConvertor.castToPeriod(value); // Period 1201 return value; 1202 default: return super.setProperty(hash, name, value); 1203 } 1204 1205 } 1206 1207 @Override 1208 public Base setProperty(String name, Base value) throws FHIRException { 1209 if (name.equals("state")) { 1210 this.state = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1211 } else if (name.equals("actual")) { 1212 this.actual = TypeConvertor.castToBoolean(value); // BooleanType 1213 } else if (name.equals("period")) { 1214 this.period = TypeConvertor.castToPeriod(value); // Period 1215 } else 1216 return super.setProperty(name, value); 1217 return value; 1218 } 1219 1220 @Override 1221 public Base makeProperty(int hash, String name) throws FHIRException { 1222 switch (hash) { 1223 case 109757585: return getState(); 1224 case -1422939762: return getActualElement(); 1225 case -991726143: return getPeriod(); 1226 default: return super.makeProperty(hash, name); 1227 } 1228 1229 } 1230 1231 @Override 1232 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1233 switch (hash) { 1234 case 109757585: /*state*/ return new String[] {"CodeableConcept"}; 1235 case -1422939762: /*actual*/ return new String[] {"boolean"}; 1236 case -991726143: /*period*/ return new String[] {"Period"}; 1237 default: return super.getTypesForProperty(hash, name); 1238 } 1239 1240 } 1241 1242 @Override 1243 public Base addChild(String name) throws FHIRException { 1244 if (name.equals("state")) { 1245 this.state = new CodeableConcept(); 1246 return this.state; 1247 } 1248 else if (name.equals("actual")) { 1249 throw new FHIRException("Cannot call addChild on a primitive type ResearchStudy.progressStatus.actual"); 1250 } 1251 else if (name.equals("period")) { 1252 this.period = new Period(); 1253 return this.period; 1254 } 1255 else 1256 return super.addChild(name); 1257 } 1258 1259 public ResearchStudyProgressStatusComponent copy() { 1260 ResearchStudyProgressStatusComponent dst = new ResearchStudyProgressStatusComponent(); 1261 copyValues(dst); 1262 return dst; 1263 } 1264 1265 public void copyValues(ResearchStudyProgressStatusComponent dst) { 1266 super.copyValues(dst); 1267 dst.state = state == null ? null : state.copy(); 1268 dst.actual = actual == null ? null : actual.copy(); 1269 dst.period = period == null ? null : period.copy(); 1270 } 1271 1272 @Override 1273 public boolean equalsDeep(Base other_) { 1274 if (!super.equalsDeep(other_)) 1275 return false; 1276 if (!(other_ instanceof ResearchStudyProgressStatusComponent)) 1277 return false; 1278 ResearchStudyProgressStatusComponent o = (ResearchStudyProgressStatusComponent) other_; 1279 return compareDeep(state, o.state, true) && compareDeep(actual, o.actual, true) && compareDeep(period, o.period, true) 1280 ; 1281 } 1282 1283 @Override 1284 public boolean equalsShallow(Base other_) { 1285 if (!super.equalsShallow(other_)) 1286 return false; 1287 if (!(other_ instanceof ResearchStudyProgressStatusComponent)) 1288 return false; 1289 ResearchStudyProgressStatusComponent o = (ResearchStudyProgressStatusComponent) other_; 1290 return compareValues(actual, o.actual, true); 1291 } 1292 1293 public boolean isEmpty() { 1294 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(state, actual, period); 1295 } 1296 1297 public String fhirType() { 1298 return "ResearchStudy.progressStatus"; 1299 1300 } 1301 1302 } 1303 1304 @Block() 1305 public static class ResearchStudyRecruitmentComponent extends BackboneElement implements IBaseBackboneElement { 1306 /** 1307 * Estimated total number of participants to be enrolled. 1308 */ 1309 @Child(name = "targetNumber", type = {UnsignedIntType.class}, order=1, min=0, max=1, modifier=false, summary=false) 1310 @Description(shortDefinition="Estimated total number of participants to be enrolled", formalDefinition="Estimated total number of participants to be enrolled." ) 1311 protected UnsignedIntType targetNumber; 1312 1313 /** 1314 * Actual total number of participants enrolled in study. 1315 */ 1316 @Child(name = "actualNumber", type = {UnsignedIntType.class}, order=2, min=0, max=1, modifier=false, summary=false) 1317 @Description(shortDefinition="Actual total number of participants enrolled in study", formalDefinition="Actual total number of participants enrolled in study." ) 1318 protected UnsignedIntType actualNumber; 1319 1320 /** 1321 * Inclusion and exclusion criteria. 1322 */ 1323 @Child(name = "eligibility", type = {Group.class, EvidenceVariable.class}, order=3, min=0, max=1, modifier=false, summary=false) 1324 @Description(shortDefinition="Inclusion and exclusion criteria", formalDefinition="Inclusion and exclusion criteria." ) 1325 protected Reference eligibility; 1326 1327 /** 1328 * Group of participants who were enrolled in study. 1329 */ 1330 @Child(name = "actualGroup", type = {Group.class}, order=4, min=0, max=1, modifier=false, summary=true) 1331 @Description(shortDefinition="Group of participants who were enrolled in study", formalDefinition="Group of participants who were enrolled in study." ) 1332 protected Reference actualGroup; 1333 1334 private static final long serialVersionUID = 1483229827L; 1335 1336 /** 1337 * Constructor 1338 */ 1339 public ResearchStudyRecruitmentComponent() { 1340 super(); 1341 } 1342 1343 /** 1344 * @return {@link #targetNumber} (Estimated total number of participants to be enrolled.). This is the underlying object with id, value and extensions. The accessor "getTargetNumber" gives direct access to the value 1345 */ 1346 public UnsignedIntType getTargetNumberElement() { 1347 if (this.targetNumber == null) 1348 if (Configuration.errorOnAutoCreate()) 1349 throw new Error("Attempt to auto-create ResearchStudyRecruitmentComponent.targetNumber"); 1350 else if (Configuration.doAutoCreate()) 1351 this.targetNumber = new UnsignedIntType(); // bb 1352 return this.targetNumber; 1353 } 1354 1355 public boolean hasTargetNumberElement() { 1356 return this.targetNumber != null && !this.targetNumber.isEmpty(); 1357 } 1358 1359 public boolean hasTargetNumber() { 1360 return this.targetNumber != null && !this.targetNumber.isEmpty(); 1361 } 1362 1363 /** 1364 * @param value {@link #targetNumber} (Estimated total number of participants to be enrolled.). This is the underlying object with id, value and extensions. The accessor "getTargetNumber" gives direct access to the value 1365 */ 1366 public ResearchStudyRecruitmentComponent setTargetNumberElement(UnsignedIntType value) { 1367 this.targetNumber = value; 1368 return this; 1369 } 1370 1371 /** 1372 * @return Estimated total number of participants to be enrolled. 1373 */ 1374 public int getTargetNumber() { 1375 return this.targetNumber == null || this.targetNumber.isEmpty() ? 0 : this.targetNumber.getValue(); 1376 } 1377 1378 /** 1379 * @param value Estimated total number of participants to be enrolled. 1380 */ 1381 public ResearchStudyRecruitmentComponent setTargetNumber(int value) { 1382 if (this.targetNumber == null) 1383 this.targetNumber = new UnsignedIntType(); 1384 this.targetNumber.setValue(value); 1385 return this; 1386 } 1387 1388 /** 1389 * @return {@link #actualNumber} (Actual total number of participants enrolled in study.). This is the underlying object with id, value and extensions. The accessor "getActualNumber" gives direct access to the value 1390 */ 1391 public UnsignedIntType getActualNumberElement() { 1392 if (this.actualNumber == null) 1393 if (Configuration.errorOnAutoCreate()) 1394 throw new Error("Attempt to auto-create ResearchStudyRecruitmentComponent.actualNumber"); 1395 else if (Configuration.doAutoCreate()) 1396 this.actualNumber = new UnsignedIntType(); // bb 1397 return this.actualNumber; 1398 } 1399 1400 public boolean hasActualNumberElement() { 1401 return this.actualNumber != null && !this.actualNumber.isEmpty(); 1402 } 1403 1404 public boolean hasActualNumber() { 1405 return this.actualNumber != null && !this.actualNumber.isEmpty(); 1406 } 1407 1408 /** 1409 * @param value {@link #actualNumber} (Actual total number of participants enrolled in study.). This is the underlying object with id, value and extensions. The accessor "getActualNumber" gives direct access to the value 1410 */ 1411 public ResearchStudyRecruitmentComponent setActualNumberElement(UnsignedIntType value) { 1412 this.actualNumber = value; 1413 return this; 1414 } 1415 1416 /** 1417 * @return Actual total number of participants enrolled in study. 1418 */ 1419 public int getActualNumber() { 1420 return this.actualNumber == null || this.actualNumber.isEmpty() ? 0 : this.actualNumber.getValue(); 1421 } 1422 1423 /** 1424 * @param value Actual total number of participants enrolled in study. 1425 */ 1426 public ResearchStudyRecruitmentComponent setActualNumber(int value) { 1427 if (this.actualNumber == null) 1428 this.actualNumber = new UnsignedIntType(); 1429 this.actualNumber.setValue(value); 1430 return this; 1431 } 1432 1433 /** 1434 * @return {@link #eligibility} (Inclusion and exclusion criteria.) 1435 */ 1436 public Reference getEligibility() { 1437 if (this.eligibility == null) 1438 if (Configuration.errorOnAutoCreate()) 1439 throw new Error("Attempt to auto-create ResearchStudyRecruitmentComponent.eligibility"); 1440 else if (Configuration.doAutoCreate()) 1441 this.eligibility = new Reference(); // cc 1442 return this.eligibility; 1443 } 1444 1445 public boolean hasEligibility() { 1446 return this.eligibility != null && !this.eligibility.isEmpty(); 1447 } 1448 1449 /** 1450 * @param value {@link #eligibility} (Inclusion and exclusion criteria.) 1451 */ 1452 public ResearchStudyRecruitmentComponent setEligibility(Reference value) { 1453 this.eligibility = value; 1454 return this; 1455 } 1456 1457 /** 1458 * @return {@link #actualGroup} (Group of participants who were enrolled in study.) 1459 */ 1460 public Reference getActualGroup() { 1461 if (this.actualGroup == null) 1462 if (Configuration.errorOnAutoCreate()) 1463 throw new Error("Attempt to auto-create ResearchStudyRecruitmentComponent.actualGroup"); 1464 else if (Configuration.doAutoCreate()) 1465 this.actualGroup = new Reference(); // cc 1466 return this.actualGroup; 1467 } 1468 1469 public boolean hasActualGroup() { 1470 return this.actualGroup != null && !this.actualGroup.isEmpty(); 1471 } 1472 1473 /** 1474 * @param value {@link #actualGroup} (Group of participants who were enrolled in study.) 1475 */ 1476 public ResearchStudyRecruitmentComponent setActualGroup(Reference value) { 1477 this.actualGroup = value; 1478 return this; 1479 } 1480 1481 protected void listChildren(List<Property> children) { 1482 super.listChildren(children); 1483 children.add(new Property("targetNumber", "unsignedInt", "Estimated total number of participants to be enrolled.", 0, 1, targetNumber)); 1484 children.add(new Property("actualNumber", "unsignedInt", "Actual total number of participants enrolled in study.", 0, 1, actualNumber)); 1485 children.add(new Property("eligibility", "Reference(Group|EvidenceVariable)", "Inclusion and exclusion criteria.", 0, 1, eligibility)); 1486 children.add(new Property("actualGroup", "Reference(Group)", "Group of participants who were enrolled in study.", 0, 1, actualGroup)); 1487 } 1488 1489 @Override 1490 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1491 switch (_hash) { 1492 case -682948550: /*targetNumber*/ return new Property("targetNumber", "unsignedInt", "Estimated total number of participants to be enrolled.", 0, 1, targetNumber); 1493 case 746557047: /*actualNumber*/ return new Property("actualNumber", "unsignedInt", "Actual total number of participants enrolled in study.", 0, 1, actualNumber); 1494 case -930847859: /*eligibility*/ return new Property("eligibility", "Reference(Group|EvidenceVariable)", "Inclusion and exclusion criteria.", 0, 1, eligibility); 1495 case 1403004305: /*actualGroup*/ return new Property("actualGroup", "Reference(Group)", "Group of participants who were enrolled in study.", 0, 1, actualGroup); 1496 default: return super.getNamedProperty(_hash, _name, _checkValid); 1497 } 1498 1499 } 1500 1501 @Override 1502 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1503 switch (hash) { 1504 case -682948550: /*targetNumber*/ return this.targetNumber == null ? new Base[0] : new Base[] {this.targetNumber}; // UnsignedIntType 1505 case 746557047: /*actualNumber*/ return this.actualNumber == null ? new Base[0] : new Base[] {this.actualNumber}; // UnsignedIntType 1506 case -930847859: /*eligibility*/ return this.eligibility == null ? new Base[0] : new Base[] {this.eligibility}; // Reference 1507 case 1403004305: /*actualGroup*/ return this.actualGroup == null ? new Base[0] : new Base[] {this.actualGroup}; // Reference 1508 default: return super.getProperty(hash, name, checkValid); 1509 } 1510 1511 } 1512 1513 @Override 1514 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1515 switch (hash) { 1516 case -682948550: // targetNumber 1517 this.targetNumber = TypeConvertor.castToUnsignedInt(value); // UnsignedIntType 1518 return value; 1519 case 746557047: // actualNumber 1520 this.actualNumber = TypeConvertor.castToUnsignedInt(value); // UnsignedIntType 1521 return value; 1522 case -930847859: // eligibility 1523 this.eligibility = TypeConvertor.castToReference(value); // Reference 1524 return value; 1525 case 1403004305: // actualGroup 1526 this.actualGroup = TypeConvertor.castToReference(value); // Reference 1527 return value; 1528 default: return super.setProperty(hash, name, value); 1529 } 1530 1531 } 1532 1533 @Override 1534 public Base setProperty(String name, Base value) throws FHIRException { 1535 if (name.equals("targetNumber")) { 1536 this.targetNumber = TypeConvertor.castToUnsignedInt(value); // UnsignedIntType 1537 } else if (name.equals("actualNumber")) { 1538 this.actualNumber = TypeConvertor.castToUnsignedInt(value); // UnsignedIntType 1539 } else if (name.equals("eligibility")) { 1540 this.eligibility = TypeConvertor.castToReference(value); // Reference 1541 } else if (name.equals("actualGroup")) { 1542 this.actualGroup = TypeConvertor.castToReference(value); // Reference 1543 } else 1544 return super.setProperty(name, value); 1545 return value; 1546 } 1547 1548 @Override 1549 public Base makeProperty(int hash, String name) throws FHIRException { 1550 switch (hash) { 1551 case -682948550: return getTargetNumberElement(); 1552 case 746557047: return getActualNumberElement(); 1553 case -930847859: return getEligibility(); 1554 case 1403004305: return getActualGroup(); 1555 default: return super.makeProperty(hash, name); 1556 } 1557 1558 } 1559 1560 @Override 1561 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1562 switch (hash) { 1563 case -682948550: /*targetNumber*/ return new String[] {"unsignedInt"}; 1564 case 746557047: /*actualNumber*/ return new String[] {"unsignedInt"}; 1565 case -930847859: /*eligibility*/ return new String[] {"Reference"}; 1566 case 1403004305: /*actualGroup*/ return new String[] {"Reference"}; 1567 default: return super.getTypesForProperty(hash, name); 1568 } 1569 1570 } 1571 1572 @Override 1573 public Base addChild(String name) throws FHIRException { 1574 if (name.equals("targetNumber")) { 1575 throw new FHIRException("Cannot call addChild on a primitive type ResearchStudy.recruitment.targetNumber"); 1576 } 1577 else if (name.equals("actualNumber")) { 1578 throw new FHIRException("Cannot call addChild on a primitive type ResearchStudy.recruitment.actualNumber"); 1579 } 1580 else if (name.equals("eligibility")) { 1581 this.eligibility = new Reference(); 1582 return this.eligibility; 1583 } 1584 else if (name.equals("actualGroup")) { 1585 this.actualGroup = new Reference(); 1586 return this.actualGroup; 1587 } 1588 else 1589 return super.addChild(name); 1590 } 1591 1592 public ResearchStudyRecruitmentComponent copy() { 1593 ResearchStudyRecruitmentComponent dst = new ResearchStudyRecruitmentComponent(); 1594 copyValues(dst); 1595 return dst; 1596 } 1597 1598 public void copyValues(ResearchStudyRecruitmentComponent dst) { 1599 super.copyValues(dst); 1600 dst.targetNumber = targetNumber == null ? null : targetNumber.copy(); 1601 dst.actualNumber = actualNumber == null ? null : actualNumber.copy(); 1602 dst.eligibility = eligibility == null ? null : eligibility.copy(); 1603 dst.actualGroup = actualGroup == null ? null : actualGroup.copy(); 1604 } 1605 1606 @Override 1607 public boolean equalsDeep(Base other_) { 1608 if (!super.equalsDeep(other_)) 1609 return false; 1610 if (!(other_ instanceof ResearchStudyRecruitmentComponent)) 1611 return false; 1612 ResearchStudyRecruitmentComponent o = (ResearchStudyRecruitmentComponent) other_; 1613 return compareDeep(targetNumber, o.targetNumber, true) && compareDeep(actualNumber, o.actualNumber, true) 1614 && compareDeep(eligibility, o.eligibility, true) && compareDeep(actualGroup, o.actualGroup, true) 1615 ; 1616 } 1617 1618 @Override 1619 public boolean equalsShallow(Base other_) { 1620 if (!super.equalsShallow(other_)) 1621 return false; 1622 if (!(other_ instanceof ResearchStudyRecruitmentComponent)) 1623 return false; 1624 ResearchStudyRecruitmentComponent o = (ResearchStudyRecruitmentComponent) other_; 1625 return compareValues(targetNumber, o.targetNumber, true) && compareValues(actualNumber, o.actualNumber, true) 1626 ; 1627 } 1628 1629 public boolean isEmpty() { 1630 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(targetNumber, actualNumber 1631 , eligibility, actualGroup); 1632 } 1633 1634 public String fhirType() { 1635 return "ResearchStudy.recruitment"; 1636 1637 } 1638 1639 } 1640 1641 @Block() 1642 public static class ResearchStudyComparisonGroupComponent extends BackboneElement implements IBaseBackboneElement { 1643 /** 1644 * Allows the comparisonGroup for the study and the comparisonGroup for the subject to be linked easily. 1645 */ 1646 @Child(name = "identifier", type = {UriType.class, Identifier.class}, order=1, min=0, max=1, modifier=false, summary=false) 1647 @Description(shortDefinition="Allows the comparisonGroup for the study and the comparisonGroup for the subject to be linked easily", formalDefinition="Allows the comparisonGroup for the study and the comparisonGroup for the subject to be linked easily." ) 1648 protected DataType identifier; 1649 1650 /** 1651 * Unique, human-readable label for this comparisonGroup of the study. 1652 */ 1653 @Child(name = "name", type = {StringType.class}, order=2, min=1, max=1, modifier=false, summary=false) 1654 @Description(shortDefinition="Label for study comparisonGroup", formalDefinition="Unique, human-readable label for this comparisonGroup of the study." ) 1655 protected StringType name; 1656 1657 /** 1658 * Categorization of study comparisonGroup, e.g. experimental, active comparator, placebo comparater. 1659 */ 1660 @Child(name = "type", type = {CodeableConcept.class}, order=3, min=0, max=1, modifier=false, summary=false) 1661 @Description(shortDefinition="Categorization of study comparisonGroup", formalDefinition="Categorization of study comparisonGroup, e.g. experimental, active comparator, placebo comparater." ) 1662 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/research-study-arm-type") 1663 protected CodeableConcept type; 1664 1665 /** 1666 * A succinct description of the path through the study that would be followed by a subject adhering to this comparisonGroup. 1667 */ 1668 @Child(name = "description", type = {MarkdownType.class}, order=4, min=0, max=1, modifier=false, summary=false) 1669 @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 comparisonGroup." ) 1670 protected MarkdownType description; 1671 1672 /** 1673 * Interventions or exposures in this comparisonGroup or cohort. 1674 */ 1675 @Child(name = "intendedExposure", type = {EvidenceVariable.class}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1676 @Description(shortDefinition="Interventions or exposures in this comparisonGroup or cohort", formalDefinition="Interventions or exposures in this comparisonGroup or cohort." ) 1677 protected List<Reference> intendedExposure; 1678 1679 /** 1680 * Group of participants who were enrolled in study comparisonGroup. 1681 */ 1682 @Child(name = "observedGroup", type = {Group.class}, order=6, min=0, max=1, modifier=false, summary=false) 1683 @Description(shortDefinition="Group of participants who were enrolled in study comparisonGroup", formalDefinition="Group of participants who were enrolled in study comparisonGroup." ) 1684 protected Reference observedGroup; 1685 1686 private static final long serialVersionUID = -600196662L; 1687 1688 /** 1689 * Constructor 1690 */ 1691 public ResearchStudyComparisonGroupComponent() { 1692 super(); 1693 } 1694 1695 /** 1696 * Constructor 1697 */ 1698 public ResearchStudyComparisonGroupComponent(String name) { 1699 super(); 1700 this.setName(name); 1701 } 1702 1703 /** 1704 * @return {@link #identifier} (Allows the comparisonGroup for the study and the comparisonGroup for the subject to be linked easily.) 1705 */ 1706 public DataType getIdentifier() { 1707 return this.identifier; 1708 } 1709 1710 /** 1711 * @return {@link #identifier} (Allows the comparisonGroup for the study and the comparisonGroup for the subject to be linked easily.) 1712 */ 1713 public UriType getIdentifierUriType() throws FHIRException { 1714 if (this.identifier == null) 1715 this.identifier = new UriType(); 1716 if (!(this.identifier instanceof UriType)) 1717 throw new FHIRException("Type mismatch: the type UriType was expected, but "+this.identifier.getClass().getName()+" was encountered"); 1718 return (UriType) this.identifier; 1719 } 1720 1721 public boolean hasIdentifierUriType() { 1722 return this != null && this.identifier instanceof UriType; 1723 } 1724 1725 /** 1726 * @return {@link #identifier} (Allows the comparisonGroup for the study and the comparisonGroup for the subject to be linked easily.) 1727 */ 1728 public Identifier getIdentifierIdentifier() throws FHIRException { 1729 if (this.identifier == null) 1730 this.identifier = new Identifier(); 1731 if (!(this.identifier instanceof Identifier)) 1732 throw new FHIRException("Type mismatch: the type Identifier was expected, but "+this.identifier.getClass().getName()+" was encountered"); 1733 return (Identifier) this.identifier; 1734 } 1735 1736 public boolean hasIdentifierIdentifier() { 1737 return this != null && this.identifier instanceof Identifier; 1738 } 1739 1740 public boolean hasIdentifier() { 1741 return this.identifier != null && !this.identifier.isEmpty(); 1742 } 1743 1744 /** 1745 * @param value {@link #identifier} (Allows the comparisonGroup for the study and the comparisonGroup for the subject to be linked easily.) 1746 */ 1747 public ResearchStudyComparisonGroupComponent setIdentifier(DataType value) { 1748 if (value != null && !(value instanceof UriType || value instanceof Identifier)) 1749 throw new Error("Not the right type for ResearchStudy.comparisonGroup.identifier[x]: "+value.fhirType()); 1750 this.identifier = value; 1751 return this; 1752 } 1753 1754 /** 1755 * @return {@link #name} (Unique, human-readable label for this comparisonGroup of the study.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value 1756 */ 1757 public StringType getNameElement() { 1758 if (this.name == null) 1759 if (Configuration.errorOnAutoCreate()) 1760 throw new Error("Attempt to auto-create ResearchStudyComparisonGroupComponent.name"); 1761 else if (Configuration.doAutoCreate()) 1762 this.name = new StringType(); // bb 1763 return this.name; 1764 } 1765 1766 public boolean hasNameElement() { 1767 return this.name != null && !this.name.isEmpty(); 1768 } 1769 1770 public boolean hasName() { 1771 return this.name != null && !this.name.isEmpty(); 1772 } 1773 1774 /** 1775 * @param value {@link #name} (Unique, human-readable label for this comparisonGroup of the study.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value 1776 */ 1777 public ResearchStudyComparisonGroupComponent setNameElement(StringType value) { 1778 this.name = value; 1779 return this; 1780 } 1781 1782 /** 1783 * @return Unique, human-readable label for this comparisonGroup of the study. 1784 */ 1785 public String getName() { 1786 return this.name == null ? null : this.name.getValue(); 1787 } 1788 1789 /** 1790 * @param value Unique, human-readable label for this comparisonGroup of the study. 1791 */ 1792 public ResearchStudyComparisonGroupComponent setName(String value) { 1793 if (this.name == null) 1794 this.name = new StringType(); 1795 this.name.setValue(value); 1796 return this; 1797 } 1798 1799 /** 1800 * @return {@link #type} (Categorization of study comparisonGroup, e.g. experimental, active comparator, placebo comparater.) 1801 */ 1802 public CodeableConcept getType() { 1803 if (this.type == null) 1804 if (Configuration.errorOnAutoCreate()) 1805 throw new Error("Attempt to auto-create ResearchStudyComparisonGroupComponent.type"); 1806 else if (Configuration.doAutoCreate()) 1807 this.type = new CodeableConcept(); // cc 1808 return this.type; 1809 } 1810 1811 public boolean hasType() { 1812 return this.type != null && !this.type.isEmpty(); 1813 } 1814 1815 /** 1816 * @param value {@link #type} (Categorization of study comparisonGroup, e.g. experimental, active comparator, placebo comparater.) 1817 */ 1818 public ResearchStudyComparisonGroupComponent setType(CodeableConcept value) { 1819 this.type = value; 1820 return this; 1821 } 1822 1823 /** 1824 * @return {@link #description} (A succinct description of the path through the study that would be followed by a subject adhering to this comparisonGroup.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 1825 */ 1826 public MarkdownType getDescriptionElement() { 1827 if (this.description == null) 1828 if (Configuration.errorOnAutoCreate()) 1829 throw new Error("Attempt to auto-create ResearchStudyComparisonGroupComponent.description"); 1830 else if (Configuration.doAutoCreate()) 1831 this.description = new MarkdownType(); // bb 1832 return this.description; 1833 } 1834 1835 public boolean hasDescriptionElement() { 1836 return this.description != null && !this.description.isEmpty(); 1837 } 1838 1839 public boolean hasDescription() { 1840 return this.description != null && !this.description.isEmpty(); 1841 } 1842 1843 /** 1844 * @param value {@link #description} (A succinct description of the path through the study that would be followed by a subject adhering to this comparisonGroup.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 1845 */ 1846 public ResearchStudyComparisonGroupComponent setDescriptionElement(MarkdownType value) { 1847 this.description = value; 1848 return this; 1849 } 1850 1851 /** 1852 * @return A succinct description of the path through the study that would be followed by a subject adhering to this comparisonGroup. 1853 */ 1854 public String getDescription() { 1855 return this.description == null ? null : this.description.getValue(); 1856 } 1857 1858 /** 1859 * @param value A succinct description of the path through the study that would be followed by a subject adhering to this comparisonGroup. 1860 */ 1861 public ResearchStudyComparisonGroupComponent setDescription(String value) { 1862 if (value == null) 1863 this.description = null; 1864 else { 1865 if (this.description == null) 1866 this.description = new MarkdownType(); 1867 this.description.setValue(value); 1868 } 1869 return this; 1870 } 1871 1872 /** 1873 * @return {@link #intendedExposure} (Interventions or exposures in this comparisonGroup or cohort.) 1874 */ 1875 public List<Reference> getIntendedExposure() { 1876 if (this.intendedExposure == null) 1877 this.intendedExposure = new ArrayList<Reference>(); 1878 return this.intendedExposure; 1879 } 1880 1881 /** 1882 * @return Returns a reference to <code>this</code> for easy method chaining 1883 */ 1884 public ResearchStudyComparisonGroupComponent setIntendedExposure(List<Reference> theIntendedExposure) { 1885 this.intendedExposure = theIntendedExposure; 1886 return this; 1887 } 1888 1889 public boolean hasIntendedExposure() { 1890 if (this.intendedExposure == null) 1891 return false; 1892 for (Reference item : this.intendedExposure) 1893 if (!item.isEmpty()) 1894 return true; 1895 return false; 1896 } 1897 1898 public Reference addIntendedExposure() { //3 1899 Reference t = new Reference(); 1900 if (this.intendedExposure == null) 1901 this.intendedExposure = new ArrayList<Reference>(); 1902 this.intendedExposure.add(t); 1903 return t; 1904 } 1905 1906 public ResearchStudyComparisonGroupComponent addIntendedExposure(Reference t) { //3 1907 if (t == null) 1908 return this; 1909 if (this.intendedExposure == null) 1910 this.intendedExposure = new ArrayList<Reference>(); 1911 this.intendedExposure.add(t); 1912 return this; 1913 } 1914 1915 /** 1916 * @return The first repetition of repeating field {@link #intendedExposure}, creating it if it does not already exist {3} 1917 */ 1918 public Reference getIntendedExposureFirstRep() { 1919 if (getIntendedExposure().isEmpty()) { 1920 addIntendedExposure(); 1921 } 1922 return getIntendedExposure().get(0); 1923 } 1924 1925 /** 1926 * @return {@link #observedGroup} (Group of participants who were enrolled in study comparisonGroup.) 1927 */ 1928 public Reference getObservedGroup() { 1929 if (this.observedGroup == null) 1930 if (Configuration.errorOnAutoCreate()) 1931 throw new Error("Attempt to auto-create ResearchStudyComparisonGroupComponent.observedGroup"); 1932 else if (Configuration.doAutoCreate()) 1933 this.observedGroup = new Reference(); // cc 1934 return this.observedGroup; 1935 } 1936 1937 public boolean hasObservedGroup() { 1938 return this.observedGroup != null && !this.observedGroup.isEmpty(); 1939 } 1940 1941 /** 1942 * @param value {@link #observedGroup} (Group of participants who were enrolled in study comparisonGroup.) 1943 */ 1944 public ResearchStudyComparisonGroupComponent setObservedGroup(Reference value) { 1945 this.observedGroup = value; 1946 return this; 1947 } 1948 1949 protected void listChildren(List<Property> children) { 1950 super.listChildren(children); 1951 children.add(new Property("identifier[x]", "uri|Identifier", "Allows the comparisonGroup for the study and the comparisonGroup for the subject to be linked easily.", 0, 1, identifier)); 1952 children.add(new Property("name", "string", "Unique, human-readable label for this comparisonGroup of the study.", 0, 1, name)); 1953 children.add(new Property("type", "CodeableConcept", "Categorization of study comparisonGroup, e.g. experimental, active comparator, placebo comparater.", 0, 1, type)); 1954 children.add(new Property("description", "markdown", "A succinct description of the path through the study that would be followed by a subject adhering to this comparisonGroup.", 0, 1, description)); 1955 children.add(new Property("intendedExposure", "Reference(EvidenceVariable)", "Interventions or exposures in this comparisonGroup or cohort.", 0, java.lang.Integer.MAX_VALUE, intendedExposure)); 1956 children.add(new Property("observedGroup", "Reference(Group)", "Group of participants who were enrolled in study comparisonGroup.", 0, 1, observedGroup)); 1957 } 1958 1959 @Override 1960 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1961 switch (_hash) { 1962 case 569772855: /*identifier[x]*/ return new Property("identifier[x]", "uri|Identifier", "Allows the comparisonGroup for the study and the comparisonGroup for the subject to be linked easily.", 0, 1, identifier); 1963 case -1618432855: /*identifier*/ return new Property("identifier[x]", "uri|Identifier", "Allows the comparisonGroup for the study and the comparisonGroup for the subject to be linked easily.", 0, 1, identifier); 1964 case 569766915: /*identifierUri*/ return new Property("identifier[x]", "uri", "Allows the comparisonGroup for the study and the comparisonGroup for the subject to be linked easily.", 0, 1, identifier); 1965 case -554289614: /*identifierIdentifier*/ return new Property("identifier[x]", "Identifier", "Allows the comparisonGroup for the study and the comparisonGroup for the subject to be linked easily.", 0, 1, identifier); 1966 case 3373707: /*name*/ return new Property("name", "string", "Unique, human-readable label for this comparisonGroup of the study.", 0, 1, name); 1967 case 3575610: /*type*/ return new Property("type", "CodeableConcept", "Categorization of study comparisonGroup, e.g. experimental, active comparator, placebo comparater.", 0, 1, type); 1968 case -1724546052: /*description*/ return new Property("description", "markdown", "A succinct description of the path through the study that would be followed by a subject adhering to this comparisonGroup.", 0, 1, description); 1969 case -407218606: /*intendedExposure*/ return new Property("intendedExposure", "Reference(EvidenceVariable)", "Interventions or exposures in this comparisonGroup or cohort.", 0, java.lang.Integer.MAX_VALUE, intendedExposure); 1970 case 375599255: /*observedGroup*/ return new Property("observedGroup", "Reference(Group)", "Group of participants who were enrolled in study comparisonGroup.", 0, 1, observedGroup); 1971 default: return super.getNamedProperty(_hash, _name, _checkValid); 1972 } 1973 1974 } 1975 1976 @Override 1977 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1978 switch (hash) { 1979 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : new Base[] {this.identifier}; // DataType 1980 case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType 1981 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // CodeableConcept 1982 case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType 1983 case -407218606: /*intendedExposure*/ return this.intendedExposure == null ? new Base[0] : this.intendedExposure.toArray(new Base[this.intendedExposure.size()]); // Reference 1984 case 375599255: /*observedGroup*/ return this.observedGroup == null ? new Base[0] : new Base[] {this.observedGroup}; // Reference 1985 default: return super.getProperty(hash, name, checkValid); 1986 } 1987 1988 } 1989 1990 @Override 1991 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1992 switch (hash) { 1993 case -1618432855: // identifier 1994 this.identifier = TypeConvertor.castToType(value); // DataType 1995 return value; 1996 case 3373707: // name 1997 this.name = TypeConvertor.castToString(value); // StringType 1998 return value; 1999 case 3575610: // type 2000 this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 2001 return value; 2002 case -1724546052: // description 2003 this.description = TypeConvertor.castToMarkdown(value); // MarkdownType 2004 return value; 2005 case -407218606: // intendedExposure 2006 this.getIntendedExposure().add(TypeConvertor.castToReference(value)); // Reference 2007 return value; 2008 case 375599255: // observedGroup 2009 this.observedGroup = TypeConvertor.castToReference(value); // Reference 2010 return value; 2011 default: return super.setProperty(hash, name, value); 2012 } 2013 2014 } 2015 2016 @Override 2017 public Base setProperty(String name, Base value) throws FHIRException { 2018 if (name.equals("identifier[x]")) { 2019 this.identifier = TypeConvertor.castToType(value); // DataType 2020 } else if (name.equals("name")) { 2021 this.name = TypeConvertor.castToString(value); // StringType 2022 } else if (name.equals("type")) { 2023 this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 2024 } else if (name.equals("description")) { 2025 this.description = TypeConvertor.castToMarkdown(value); // MarkdownType 2026 } else if (name.equals("intendedExposure")) { 2027 this.getIntendedExposure().add(TypeConvertor.castToReference(value)); 2028 } else if (name.equals("observedGroup")) { 2029 this.observedGroup = TypeConvertor.castToReference(value); // Reference 2030 } else 2031 return super.setProperty(name, value); 2032 return value; 2033 } 2034 2035 @Override 2036 public Base makeProperty(int hash, String name) throws FHIRException { 2037 switch (hash) { 2038 case 569772855: return getIdentifier(); 2039 case -1618432855: return getIdentifier(); 2040 case 3373707: return getNameElement(); 2041 case 3575610: return getType(); 2042 case -1724546052: return getDescriptionElement(); 2043 case -407218606: return addIntendedExposure(); 2044 case 375599255: return getObservedGroup(); 2045 default: return super.makeProperty(hash, name); 2046 } 2047 2048 } 2049 2050 @Override 2051 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2052 switch (hash) { 2053 case -1618432855: /*identifier*/ return new String[] {"uri", "Identifier"}; 2054 case 3373707: /*name*/ return new String[] {"string"}; 2055 case 3575610: /*type*/ return new String[] {"CodeableConcept"}; 2056 case -1724546052: /*description*/ return new String[] {"markdown"}; 2057 case -407218606: /*intendedExposure*/ return new String[] {"Reference"}; 2058 case 375599255: /*observedGroup*/ return new String[] {"Reference"}; 2059 default: return super.getTypesForProperty(hash, name); 2060 } 2061 2062 } 2063 2064 @Override 2065 public Base addChild(String name) throws FHIRException { 2066 if (name.equals("identifierUri")) { 2067 this.identifier = new UriType(); 2068 return this.identifier; 2069 } 2070 else if (name.equals("identifierIdentifier")) { 2071 this.identifier = new Identifier(); 2072 return this.identifier; 2073 } 2074 else if (name.equals("name")) { 2075 throw new FHIRException("Cannot call addChild on a primitive type ResearchStudy.comparisonGroup.name"); 2076 } 2077 else if (name.equals("type")) { 2078 this.type = new CodeableConcept(); 2079 return this.type; 2080 } 2081 else if (name.equals("description")) { 2082 throw new FHIRException("Cannot call addChild on a primitive type ResearchStudy.comparisonGroup.description"); 2083 } 2084 else if (name.equals("intendedExposure")) { 2085 return addIntendedExposure(); 2086 } 2087 else if (name.equals("observedGroup")) { 2088 this.observedGroup = new Reference(); 2089 return this.observedGroup; 2090 } 2091 else 2092 return super.addChild(name); 2093 } 2094 2095 public ResearchStudyComparisonGroupComponent copy() { 2096 ResearchStudyComparisonGroupComponent dst = new ResearchStudyComparisonGroupComponent(); 2097 copyValues(dst); 2098 return dst; 2099 } 2100 2101 public void copyValues(ResearchStudyComparisonGroupComponent dst) { 2102 super.copyValues(dst); 2103 dst.identifier = identifier == null ? null : identifier.copy(); 2104 dst.name = name == null ? null : name.copy(); 2105 dst.type = type == null ? null : type.copy(); 2106 dst.description = description == null ? null : description.copy(); 2107 if (intendedExposure != null) { 2108 dst.intendedExposure = new ArrayList<Reference>(); 2109 for (Reference i : intendedExposure) 2110 dst.intendedExposure.add(i.copy()); 2111 }; 2112 dst.observedGroup = observedGroup == null ? null : observedGroup.copy(); 2113 } 2114 2115 @Override 2116 public boolean equalsDeep(Base other_) { 2117 if (!super.equalsDeep(other_)) 2118 return false; 2119 if (!(other_ instanceof ResearchStudyComparisonGroupComponent)) 2120 return false; 2121 ResearchStudyComparisonGroupComponent o = (ResearchStudyComparisonGroupComponent) other_; 2122 return compareDeep(identifier, o.identifier, true) && compareDeep(name, o.name, true) && compareDeep(type, o.type, true) 2123 && compareDeep(description, o.description, true) && compareDeep(intendedExposure, o.intendedExposure, true) 2124 && compareDeep(observedGroup, o.observedGroup, true); 2125 } 2126 2127 @Override 2128 public boolean equalsShallow(Base other_) { 2129 if (!super.equalsShallow(other_)) 2130 return false; 2131 if (!(other_ instanceof ResearchStudyComparisonGroupComponent)) 2132 return false; 2133 ResearchStudyComparisonGroupComponent o = (ResearchStudyComparisonGroupComponent) other_; 2134 return compareValues(name, o.name, true) && compareValues(description, o.description, true); 2135 } 2136 2137 public boolean isEmpty() { 2138 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, name, type, description 2139 , intendedExposure, observedGroup); 2140 } 2141 2142 public String fhirType() { 2143 return "ResearchStudy.comparisonGroup"; 2144 2145 } 2146 2147 } 2148 2149 @Block() 2150 public static class ResearchStudyObjectiveComponent extends BackboneElement implements IBaseBackboneElement { 2151 /** 2152 * Unique, human-readable label for this objective of the study. 2153 */ 2154 @Child(name = "name", type = {StringType.class}, order=1, min=0, max=1, modifier=false, summary=false) 2155 @Description(shortDefinition="Label for the objective", formalDefinition="Unique, human-readable label for this objective of the study." ) 2156 protected StringType name; 2157 2158 /** 2159 * The kind of study objective. 2160 */ 2161 @Child(name = "type", type = {CodeableConcept.class}, order=2, min=0, max=1, modifier=false, summary=false) 2162 @Description(shortDefinition="primary | secondary | exploratory", formalDefinition="The kind of study objective." ) 2163 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/research-study-objective-type") 2164 protected CodeableConcept type; 2165 2166 /** 2167 * Free text description of the objective of the study. This is what the study is trying to achieve rather than how it is going to achieve it (see ResearchStudy.description). 2168 */ 2169 @Child(name = "description", type = {MarkdownType.class}, order=3, min=0, max=1, modifier=false, summary=false) 2170 @Description(shortDefinition="Description of the objective", formalDefinition="Free text description of the objective of the study. This is what the study is trying to achieve rather than how it is going to achieve it (see ResearchStudy.description)." ) 2171 protected MarkdownType description; 2172 2173 private static final long serialVersionUID = -1976083810L; 2174 2175 /** 2176 * Constructor 2177 */ 2178 public ResearchStudyObjectiveComponent() { 2179 super(); 2180 } 2181 2182 /** 2183 * @return {@link #name} (Unique, human-readable label for this objective of the study.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value 2184 */ 2185 public StringType getNameElement() { 2186 if (this.name == null) 2187 if (Configuration.errorOnAutoCreate()) 2188 throw new Error("Attempt to auto-create ResearchStudyObjectiveComponent.name"); 2189 else if (Configuration.doAutoCreate()) 2190 this.name = new StringType(); // bb 2191 return this.name; 2192 } 2193 2194 public boolean hasNameElement() { 2195 return this.name != null && !this.name.isEmpty(); 2196 } 2197 2198 public boolean hasName() { 2199 return this.name != null && !this.name.isEmpty(); 2200 } 2201 2202 /** 2203 * @param value {@link #name} (Unique, human-readable label for this objective of the study.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value 2204 */ 2205 public ResearchStudyObjectiveComponent setNameElement(StringType value) { 2206 this.name = value; 2207 return this; 2208 } 2209 2210 /** 2211 * @return Unique, human-readable label for this objective of the study. 2212 */ 2213 public String getName() { 2214 return this.name == null ? null : this.name.getValue(); 2215 } 2216 2217 /** 2218 * @param value Unique, human-readable label for this objective of the study. 2219 */ 2220 public ResearchStudyObjectiveComponent setName(String value) { 2221 if (Utilities.noString(value)) 2222 this.name = null; 2223 else { 2224 if (this.name == null) 2225 this.name = new StringType(); 2226 this.name.setValue(value); 2227 } 2228 return this; 2229 } 2230 2231 /** 2232 * @return {@link #type} (The kind of study objective.) 2233 */ 2234 public CodeableConcept getType() { 2235 if (this.type == null) 2236 if (Configuration.errorOnAutoCreate()) 2237 throw new Error("Attempt to auto-create ResearchStudyObjectiveComponent.type"); 2238 else if (Configuration.doAutoCreate()) 2239 this.type = new CodeableConcept(); // cc 2240 return this.type; 2241 } 2242 2243 public boolean hasType() { 2244 return this.type != null && !this.type.isEmpty(); 2245 } 2246 2247 /** 2248 * @param value {@link #type} (The kind of study objective.) 2249 */ 2250 public ResearchStudyObjectiveComponent setType(CodeableConcept value) { 2251 this.type = value; 2252 return this; 2253 } 2254 2255 /** 2256 * @return {@link #description} (Free text description of the objective of the study. This is what the study is trying to achieve rather than how it is going to achieve it (see ResearchStudy.description).). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 2257 */ 2258 public MarkdownType getDescriptionElement() { 2259 if (this.description == null) 2260 if (Configuration.errorOnAutoCreate()) 2261 throw new Error("Attempt to auto-create ResearchStudyObjectiveComponent.description"); 2262 else if (Configuration.doAutoCreate()) 2263 this.description = new MarkdownType(); // bb 2264 return this.description; 2265 } 2266 2267 public boolean hasDescriptionElement() { 2268 return this.description != null && !this.description.isEmpty(); 2269 } 2270 2271 public boolean hasDescription() { 2272 return this.description != null && !this.description.isEmpty(); 2273 } 2274 2275 /** 2276 * @param value {@link #description} (Free text description of the objective of the study. This is what the study is trying to achieve rather than how it is going to achieve it (see ResearchStudy.description).). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 2277 */ 2278 public ResearchStudyObjectiveComponent setDescriptionElement(MarkdownType value) { 2279 this.description = value; 2280 return this; 2281 } 2282 2283 /** 2284 * @return Free text description of the objective of the study. This is what the study is trying to achieve rather than how it is going to achieve it (see ResearchStudy.description). 2285 */ 2286 public String getDescription() { 2287 return this.description == null ? null : this.description.getValue(); 2288 } 2289 2290 /** 2291 * @param value Free text description of the objective of the study. This is what the study is trying to achieve rather than how it is going to achieve it (see ResearchStudy.description). 2292 */ 2293 public ResearchStudyObjectiveComponent setDescription(String value) { 2294 if (value == null) 2295 this.description = null; 2296 else { 2297 if (this.description == null) 2298 this.description = new MarkdownType(); 2299 this.description.setValue(value); 2300 } 2301 return this; 2302 } 2303 2304 protected void listChildren(List<Property> children) { 2305 super.listChildren(children); 2306 children.add(new Property("name", "string", "Unique, human-readable label for this objective of the study.", 0, 1, name)); 2307 children.add(new Property("type", "CodeableConcept", "The kind of study objective.", 0, 1, type)); 2308 children.add(new Property("description", "markdown", "Free text description of the objective of the study. This is what the study is trying to achieve rather than how it is going to achieve it (see ResearchStudy.description).", 0, 1, description)); 2309 } 2310 2311 @Override 2312 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 2313 switch (_hash) { 2314 case 3373707: /*name*/ return new Property("name", "string", "Unique, human-readable label for this objective of the study.", 0, 1, name); 2315 case 3575610: /*type*/ return new Property("type", "CodeableConcept", "The kind of study objective.", 0, 1, type); 2316 case -1724546052: /*description*/ return new Property("description", "markdown", "Free text description of the objective of the study. This is what the study is trying to achieve rather than how it is going to achieve it (see ResearchStudy.description).", 0, 1, description); 2317 default: return super.getNamedProperty(_hash, _name, _checkValid); 2318 } 2319 2320 } 2321 2322 @Override 2323 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2324 switch (hash) { 2325 case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType 2326 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // CodeableConcept 2327 case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType 2328 default: return super.getProperty(hash, name, checkValid); 2329 } 2330 2331 } 2332 2333 @Override 2334 public Base setProperty(int hash, String name, Base value) throws FHIRException { 2335 switch (hash) { 2336 case 3373707: // name 2337 this.name = TypeConvertor.castToString(value); // StringType 2338 return value; 2339 case 3575610: // type 2340 this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 2341 return value; 2342 case -1724546052: // description 2343 this.description = TypeConvertor.castToMarkdown(value); // MarkdownType 2344 return value; 2345 default: return super.setProperty(hash, name, value); 2346 } 2347 2348 } 2349 2350 @Override 2351 public Base setProperty(String name, Base value) throws FHIRException { 2352 if (name.equals("name")) { 2353 this.name = TypeConvertor.castToString(value); // StringType 2354 } else if (name.equals("type")) { 2355 this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 2356 } else if (name.equals("description")) { 2357 this.description = TypeConvertor.castToMarkdown(value); // MarkdownType 2358 } else 2359 return super.setProperty(name, value); 2360 return value; 2361 } 2362 2363 @Override 2364 public Base makeProperty(int hash, String name) throws FHIRException { 2365 switch (hash) { 2366 case 3373707: return getNameElement(); 2367 case 3575610: return getType(); 2368 case -1724546052: return getDescriptionElement(); 2369 default: return super.makeProperty(hash, name); 2370 } 2371 2372 } 2373 2374 @Override 2375 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2376 switch (hash) { 2377 case 3373707: /*name*/ return new String[] {"string"}; 2378 case 3575610: /*type*/ return new String[] {"CodeableConcept"}; 2379 case -1724546052: /*description*/ return new String[] {"markdown"}; 2380 default: return super.getTypesForProperty(hash, name); 2381 } 2382 2383 } 2384 2385 @Override 2386 public Base addChild(String name) throws FHIRException { 2387 if (name.equals("name")) { 2388 throw new FHIRException("Cannot call addChild on a primitive type ResearchStudy.objective.name"); 2389 } 2390 else if (name.equals("type")) { 2391 this.type = new CodeableConcept(); 2392 return this.type; 2393 } 2394 else if (name.equals("description")) { 2395 throw new FHIRException("Cannot call addChild on a primitive type ResearchStudy.objective.description"); 2396 } 2397 else 2398 return super.addChild(name); 2399 } 2400 2401 public ResearchStudyObjectiveComponent copy() { 2402 ResearchStudyObjectiveComponent dst = new ResearchStudyObjectiveComponent(); 2403 copyValues(dst); 2404 return dst; 2405 } 2406 2407 public void copyValues(ResearchStudyObjectiveComponent dst) { 2408 super.copyValues(dst); 2409 dst.name = name == null ? null : name.copy(); 2410 dst.type = type == null ? null : type.copy(); 2411 dst.description = description == null ? null : description.copy(); 2412 } 2413 2414 @Override 2415 public boolean equalsDeep(Base other_) { 2416 if (!super.equalsDeep(other_)) 2417 return false; 2418 if (!(other_ instanceof ResearchStudyObjectiveComponent)) 2419 return false; 2420 ResearchStudyObjectiveComponent o = (ResearchStudyObjectiveComponent) other_; 2421 return compareDeep(name, o.name, true) && compareDeep(type, o.type, true) && compareDeep(description, o.description, true) 2422 ; 2423 } 2424 2425 @Override 2426 public boolean equalsShallow(Base other_) { 2427 if (!super.equalsShallow(other_)) 2428 return false; 2429 if (!(other_ instanceof ResearchStudyObjectiveComponent)) 2430 return false; 2431 ResearchStudyObjectiveComponent o = (ResearchStudyObjectiveComponent) other_; 2432 return compareValues(name, o.name, true) && compareValues(description, o.description, true); 2433 } 2434 2435 public boolean isEmpty() { 2436 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(name, type, description 2437 ); 2438 } 2439 2440 public String fhirType() { 2441 return "ResearchStudy.objective"; 2442 2443 } 2444 2445 } 2446 2447 @Block() 2448 public static class ResearchStudyOutcomeMeasureComponent extends BackboneElement implements IBaseBackboneElement { 2449 /** 2450 * Label for the outcome. 2451 */ 2452 @Child(name = "name", type = {StringType.class}, order=1, min=0, max=1, modifier=false, summary=false) 2453 @Description(shortDefinition="Label for the outcome", formalDefinition="Label for the outcome." ) 2454 protected StringType name; 2455 2456 /** 2457 * The parameter or characteristic being assessed as one of the values by which the study is assessed. 2458 */ 2459 @Child(name = "type", type = {CodeableConcept.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 2460 @Description(shortDefinition="primary | secondary | exploratory", formalDefinition="The parameter or characteristic being assessed as one of the values by which the study is assessed." ) 2461 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/research-study-objective-type") 2462 protected List<CodeableConcept> type; 2463 2464 /** 2465 * Description of the outcome. 2466 */ 2467 @Child(name = "description", type = {MarkdownType.class}, order=3, min=0, max=1, modifier=false, summary=false) 2468 @Description(shortDefinition="Description of the outcome", formalDefinition="Description of the outcome." ) 2469 protected MarkdownType description; 2470 2471 /** 2472 * Structured outcome definition. 2473 */ 2474 @Child(name = "reference", type = {EvidenceVariable.class}, order=4, min=0, max=1, modifier=false, summary=false) 2475 @Description(shortDefinition="Structured outcome definition", formalDefinition="Structured outcome definition." ) 2476 protected Reference reference; 2477 2478 private static final long serialVersionUID = 1786559672L; 2479 2480 /** 2481 * Constructor 2482 */ 2483 public ResearchStudyOutcomeMeasureComponent() { 2484 super(); 2485 } 2486 2487 /** 2488 * @return {@link #name} (Label for the outcome.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value 2489 */ 2490 public StringType getNameElement() { 2491 if (this.name == null) 2492 if (Configuration.errorOnAutoCreate()) 2493 throw new Error("Attempt to auto-create ResearchStudyOutcomeMeasureComponent.name"); 2494 else if (Configuration.doAutoCreate()) 2495 this.name = new StringType(); // bb 2496 return this.name; 2497 } 2498 2499 public boolean hasNameElement() { 2500 return this.name != null && !this.name.isEmpty(); 2501 } 2502 2503 public boolean hasName() { 2504 return this.name != null && !this.name.isEmpty(); 2505 } 2506 2507 /** 2508 * @param value {@link #name} (Label for the outcome.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value 2509 */ 2510 public ResearchStudyOutcomeMeasureComponent setNameElement(StringType value) { 2511 this.name = value; 2512 return this; 2513 } 2514 2515 /** 2516 * @return Label for the outcome. 2517 */ 2518 public String getName() { 2519 return this.name == null ? null : this.name.getValue(); 2520 } 2521 2522 /** 2523 * @param value Label for the outcome. 2524 */ 2525 public ResearchStudyOutcomeMeasureComponent setName(String value) { 2526 if (Utilities.noString(value)) 2527 this.name = null; 2528 else { 2529 if (this.name == null) 2530 this.name = new StringType(); 2531 this.name.setValue(value); 2532 } 2533 return this; 2534 } 2535 2536 /** 2537 * @return {@link #type} (The parameter or characteristic being assessed as one of the values by which the study is assessed.) 2538 */ 2539 public List<CodeableConcept> getType() { 2540 if (this.type == null) 2541 this.type = new ArrayList<CodeableConcept>(); 2542 return this.type; 2543 } 2544 2545 /** 2546 * @return Returns a reference to <code>this</code> for easy method chaining 2547 */ 2548 public ResearchStudyOutcomeMeasureComponent setType(List<CodeableConcept> theType) { 2549 this.type = theType; 2550 return this; 2551 } 2552 2553 public boolean hasType() { 2554 if (this.type == null) 2555 return false; 2556 for (CodeableConcept item : this.type) 2557 if (!item.isEmpty()) 2558 return true; 2559 return false; 2560 } 2561 2562 public CodeableConcept addType() { //3 2563 CodeableConcept t = new CodeableConcept(); 2564 if (this.type == null) 2565 this.type = new ArrayList<CodeableConcept>(); 2566 this.type.add(t); 2567 return t; 2568 } 2569 2570 public ResearchStudyOutcomeMeasureComponent addType(CodeableConcept t) { //3 2571 if (t == null) 2572 return this; 2573 if (this.type == null) 2574 this.type = new ArrayList<CodeableConcept>(); 2575 this.type.add(t); 2576 return this; 2577 } 2578 2579 /** 2580 * @return The first repetition of repeating field {@link #type}, creating it if it does not already exist {3} 2581 */ 2582 public CodeableConcept getTypeFirstRep() { 2583 if (getType().isEmpty()) { 2584 addType(); 2585 } 2586 return getType().get(0); 2587 } 2588 2589 /** 2590 * @return {@link #description} (Description of the outcome.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 2591 */ 2592 public MarkdownType getDescriptionElement() { 2593 if (this.description == null) 2594 if (Configuration.errorOnAutoCreate()) 2595 throw new Error("Attempt to auto-create ResearchStudyOutcomeMeasureComponent.description"); 2596 else if (Configuration.doAutoCreate()) 2597 this.description = new MarkdownType(); // bb 2598 return this.description; 2599 } 2600 2601 public boolean hasDescriptionElement() { 2602 return this.description != null && !this.description.isEmpty(); 2603 } 2604 2605 public boolean hasDescription() { 2606 return this.description != null && !this.description.isEmpty(); 2607 } 2608 2609 /** 2610 * @param value {@link #description} (Description of the outcome.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 2611 */ 2612 public ResearchStudyOutcomeMeasureComponent setDescriptionElement(MarkdownType value) { 2613 this.description = value; 2614 return this; 2615 } 2616 2617 /** 2618 * @return Description of the outcome. 2619 */ 2620 public String getDescription() { 2621 return this.description == null ? null : this.description.getValue(); 2622 } 2623 2624 /** 2625 * @param value Description of the outcome. 2626 */ 2627 public ResearchStudyOutcomeMeasureComponent setDescription(String value) { 2628 if (value == null) 2629 this.description = null; 2630 else { 2631 if (this.description == null) 2632 this.description = new MarkdownType(); 2633 this.description.setValue(value); 2634 } 2635 return this; 2636 } 2637 2638 /** 2639 * @return {@link #reference} (Structured outcome definition.) 2640 */ 2641 public Reference getReference() { 2642 if (this.reference == null) 2643 if (Configuration.errorOnAutoCreate()) 2644 throw new Error("Attempt to auto-create ResearchStudyOutcomeMeasureComponent.reference"); 2645 else if (Configuration.doAutoCreate()) 2646 this.reference = new Reference(); // cc 2647 return this.reference; 2648 } 2649 2650 public boolean hasReference() { 2651 return this.reference != null && !this.reference.isEmpty(); 2652 } 2653 2654 /** 2655 * @param value {@link #reference} (Structured outcome definition.) 2656 */ 2657 public ResearchStudyOutcomeMeasureComponent setReference(Reference value) { 2658 this.reference = value; 2659 return this; 2660 } 2661 2662 protected void listChildren(List<Property> children) { 2663 super.listChildren(children); 2664 children.add(new Property("name", "string", "Label for the outcome.", 0, 1, name)); 2665 children.add(new Property("type", "CodeableConcept", "The parameter or characteristic being assessed as one of the values by which the study is assessed.", 0, java.lang.Integer.MAX_VALUE, type)); 2666 children.add(new Property("description", "markdown", "Description of the outcome.", 0, 1, description)); 2667 children.add(new Property("reference", "Reference(EvidenceVariable)", "Structured outcome definition.", 0, 1, reference)); 2668 } 2669 2670 @Override 2671 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 2672 switch (_hash) { 2673 case 3373707: /*name*/ return new Property("name", "string", "Label for the outcome.", 0, 1, name); 2674 case 3575610: /*type*/ return new Property("type", "CodeableConcept", "The parameter or characteristic being assessed as one of the values by which the study is assessed.", 0, java.lang.Integer.MAX_VALUE, type); 2675 case -1724546052: /*description*/ return new Property("description", "markdown", "Description of the outcome.", 0, 1, description); 2676 case -925155509: /*reference*/ return new Property("reference", "Reference(EvidenceVariable)", "Structured outcome definition.", 0, 1, reference); 2677 default: return super.getNamedProperty(_hash, _name, _checkValid); 2678 } 2679 2680 } 2681 2682 @Override 2683 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2684 switch (hash) { 2685 case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType 2686 case 3575610: /*type*/ return this.type == null ? new Base[0] : this.type.toArray(new Base[this.type.size()]); // CodeableConcept 2687 case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType 2688 case -925155509: /*reference*/ return this.reference == null ? new Base[0] : new Base[] {this.reference}; // Reference 2689 default: return super.getProperty(hash, name, checkValid); 2690 } 2691 2692 } 2693 2694 @Override 2695 public Base setProperty(int hash, String name, Base value) throws FHIRException { 2696 switch (hash) { 2697 case 3373707: // name 2698 this.name = TypeConvertor.castToString(value); // StringType 2699 return value; 2700 case 3575610: // type 2701 this.getType().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 2702 return value; 2703 case -1724546052: // description 2704 this.description = TypeConvertor.castToMarkdown(value); // MarkdownType 2705 return value; 2706 case -925155509: // reference 2707 this.reference = TypeConvertor.castToReference(value); // Reference 2708 return value; 2709 default: return super.setProperty(hash, name, value); 2710 } 2711 2712 } 2713 2714 @Override 2715 public Base setProperty(String name, Base value) throws FHIRException { 2716 if (name.equals("name")) { 2717 this.name = TypeConvertor.castToString(value); // StringType 2718 } else if (name.equals("type")) { 2719 this.getType().add(TypeConvertor.castToCodeableConcept(value)); 2720 } else if (name.equals("description")) { 2721 this.description = TypeConvertor.castToMarkdown(value); // MarkdownType 2722 } else if (name.equals("reference")) { 2723 this.reference = TypeConvertor.castToReference(value); // Reference 2724 } else 2725 return super.setProperty(name, value); 2726 return value; 2727 } 2728 2729 @Override 2730 public Base makeProperty(int hash, String name) throws FHIRException { 2731 switch (hash) { 2732 case 3373707: return getNameElement(); 2733 case 3575610: return addType(); 2734 case -1724546052: return getDescriptionElement(); 2735 case -925155509: return getReference(); 2736 default: return super.makeProperty(hash, name); 2737 } 2738 2739 } 2740 2741 @Override 2742 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2743 switch (hash) { 2744 case 3373707: /*name*/ return new String[] {"string"}; 2745 case 3575610: /*type*/ return new String[] {"CodeableConcept"}; 2746 case -1724546052: /*description*/ return new String[] {"markdown"}; 2747 case -925155509: /*reference*/ return new String[] {"Reference"}; 2748 default: return super.getTypesForProperty(hash, name); 2749 } 2750 2751 } 2752 2753 @Override 2754 public Base addChild(String name) throws FHIRException { 2755 if (name.equals("name")) { 2756 throw new FHIRException("Cannot call addChild on a primitive type ResearchStudy.outcomeMeasure.name"); 2757 } 2758 else if (name.equals("type")) { 2759 return addType(); 2760 } 2761 else if (name.equals("description")) { 2762 throw new FHIRException("Cannot call addChild on a primitive type ResearchStudy.outcomeMeasure.description"); 2763 } 2764 else if (name.equals("reference")) { 2765 this.reference = new Reference(); 2766 return this.reference; 2767 } 2768 else 2769 return super.addChild(name); 2770 } 2771 2772 public ResearchStudyOutcomeMeasureComponent copy() { 2773 ResearchStudyOutcomeMeasureComponent dst = new ResearchStudyOutcomeMeasureComponent(); 2774 copyValues(dst); 2775 return dst; 2776 } 2777 2778 public void copyValues(ResearchStudyOutcomeMeasureComponent dst) { 2779 super.copyValues(dst); 2780 dst.name = name == null ? null : name.copy(); 2781 if (type != null) { 2782 dst.type = new ArrayList<CodeableConcept>(); 2783 for (CodeableConcept i : type) 2784 dst.type.add(i.copy()); 2785 }; 2786 dst.description = description == null ? null : description.copy(); 2787 dst.reference = reference == null ? null : reference.copy(); 2788 } 2789 2790 @Override 2791 public boolean equalsDeep(Base other_) { 2792 if (!super.equalsDeep(other_)) 2793 return false; 2794 if (!(other_ instanceof ResearchStudyOutcomeMeasureComponent)) 2795 return false; 2796 ResearchStudyOutcomeMeasureComponent o = (ResearchStudyOutcomeMeasureComponent) other_; 2797 return compareDeep(name, o.name, true) && compareDeep(type, o.type, true) && compareDeep(description, o.description, true) 2798 && compareDeep(reference, o.reference, true); 2799 } 2800 2801 @Override 2802 public boolean equalsShallow(Base other_) { 2803 if (!super.equalsShallow(other_)) 2804 return false; 2805 if (!(other_ instanceof ResearchStudyOutcomeMeasureComponent)) 2806 return false; 2807 ResearchStudyOutcomeMeasureComponent o = (ResearchStudyOutcomeMeasureComponent) other_; 2808 return compareValues(name, o.name, true) && compareValues(description, o.description, true); 2809 } 2810 2811 public boolean isEmpty() { 2812 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(name, type, description 2813 , reference); 2814 } 2815 2816 public String fhirType() { 2817 return "ResearchStudy.outcomeMeasure"; 2818 2819 } 2820 2821 } 2822 2823 @Block() 2824 public static class ResearchStudyWebLocationComponent extends BackboneElement implements IBaseBackboneElement { 2825 /** 2826 * Describes the nature of the location being specified. 2827 */ 2828 @Child(name = "classifier", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=false, summary=false) 2829 @Description(shortDefinition="registry-page|recruitment-page|contact-page", formalDefinition="Describes the nature of the location being specified." ) 2830 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/artifact-url-classifier") 2831 protected CodeableConcept classifier; 2832 2833 /** 2834 * The location address. 2835 */ 2836 @Child(name = "url", type = {UriType.class}, order=2, min=1, max=1, modifier=false, summary=false) 2837 @Description(shortDefinition="The location address", formalDefinition="The location address." ) 2838 protected UriType url; 2839 2840 private static final long serialVersionUID = -1718812997L; 2841 2842 /** 2843 * Constructor 2844 */ 2845 public ResearchStudyWebLocationComponent() { 2846 super(); 2847 } 2848 2849 /** 2850 * Constructor 2851 */ 2852 public ResearchStudyWebLocationComponent(String url) { 2853 super(); 2854 this.setUrl(url); 2855 } 2856 2857 /** 2858 * @return {@link #classifier} (Describes the nature of the location being specified.) 2859 */ 2860 public CodeableConcept getClassifier() { 2861 if (this.classifier == null) 2862 if (Configuration.errorOnAutoCreate()) 2863 throw new Error("Attempt to auto-create ResearchStudyWebLocationComponent.classifier"); 2864 else if (Configuration.doAutoCreate()) 2865 this.classifier = new CodeableConcept(); // cc 2866 return this.classifier; 2867 } 2868 2869 public boolean hasClassifier() { 2870 return this.classifier != null && !this.classifier.isEmpty(); 2871 } 2872 2873 /** 2874 * @param value {@link #classifier} (Describes the nature of the location being specified.) 2875 */ 2876 public ResearchStudyWebLocationComponent setClassifier(CodeableConcept value) { 2877 this.classifier = value; 2878 return this; 2879 } 2880 2881 /** 2882 * @return {@link #url} (The location address.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value 2883 */ 2884 public UriType getUrlElement() { 2885 if (this.url == null) 2886 if (Configuration.errorOnAutoCreate()) 2887 throw new Error("Attempt to auto-create ResearchStudyWebLocationComponent.url"); 2888 else if (Configuration.doAutoCreate()) 2889 this.url = new UriType(); // bb 2890 return this.url; 2891 } 2892 2893 public boolean hasUrlElement() { 2894 return this.url != null && !this.url.isEmpty(); 2895 } 2896 2897 public boolean hasUrl() { 2898 return this.url != null && !this.url.isEmpty(); 2899 } 2900 2901 /** 2902 * @param value {@link #url} (The location address.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value 2903 */ 2904 public ResearchStudyWebLocationComponent setUrlElement(UriType value) { 2905 this.url = value; 2906 return this; 2907 } 2908 2909 /** 2910 * @return The location address. 2911 */ 2912 public String getUrl() { 2913 return this.url == null ? null : this.url.getValue(); 2914 } 2915 2916 /** 2917 * @param value The location address. 2918 */ 2919 public ResearchStudyWebLocationComponent setUrl(String value) { 2920 if (this.url == null) 2921 this.url = new UriType(); 2922 this.url.setValue(value); 2923 return this; 2924 } 2925 2926 protected void listChildren(List<Property> children) { 2927 super.listChildren(children); 2928 children.add(new Property("classifier", "CodeableConcept", "Describes the nature of the location being specified.", 0, 1, classifier)); 2929 children.add(new Property("url", "uri", "The location address.", 0, 1, url)); 2930 } 2931 2932 @Override 2933 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 2934 switch (_hash) { 2935 case -281470431: /*classifier*/ return new Property("classifier", "CodeableConcept", "Describes the nature of the location being specified.", 0, 1, classifier); 2936 case 116079: /*url*/ return new Property("url", "uri", "The location address.", 0, 1, url); 2937 default: return super.getNamedProperty(_hash, _name, _checkValid); 2938 } 2939 2940 } 2941 2942 @Override 2943 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2944 switch (hash) { 2945 case -281470431: /*classifier*/ return this.classifier == null ? new Base[0] : new Base[] {this.classifier}; // CodeableConcept 2946 case 116079: /*url*/ return this.url == null ? new Base[0] : new Base[] {this.url}; // UriType 2947 default: return super.getProperty(hash, name, checkValid); 2948 } 2949 2950 } 2951 2952 @Override 2953 public Base setProperty(int hash, String name, Base value) throws FHIRException { 2954 switch (hash) { 2955 case -281470431: // classifier 2956 this.classifier = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 2957 return value; 2958 case 116079: // url 2959 this.url = TypeConvertor.castToUri(value); // UriType 2960 return value; 2961 default: return super.setProperty(hash, name, value); 2962 } 2963 2964 } 2965 2966 @Override 2967 public Base setProperty(String name, Base value) throws FHIRException { 2968 if (name.equals("classifier")) { 2969 this.classifier = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 2970 } else if (name.equals("url")) { 2971 this.url = TypeConvertor.castToUri(value); // UriType 2972 } else 2973 return super.setProperty(name, value); 2974 return value; 2975 } 2976 2977 @Override 2978 public Base makeProperty(int hash, String name) throws FHIRException { 2979 switch (hash) { 2980 case -281470431: return getClassifier(); 2981 case 116079: return getUrlElement(); 2982 default: return super.makeProperty(hash, name); 2983 } 2984 2985 } 2986 2987 @Override 2988 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2989 switch (hash) { 2990 case -281470431: /*classifier*/ return new String[] {"CodeableConcept"}; 2991 case 116079: /*url*/ return new String[] {"uri"}; 2992 default: return super.getTypesForProperty(hash, name); 2993 } 2994 2995 } 2996 2997 @Override 2998 public Base addChild(String name) throws FHIRException { 2999 if (name.equals("classifier")) { 3000 this.classifier = new CodeableConcept(); 3001 return this.classifier; 3002 } 3003 else if (name.equals("url")) { 3004 throw new FHIRException("Cannot call addChild on a primitive type ResearchStudy.webLocation.url"); 3005 } 3006 else 3007 return super.addChild(name); 3008 } 3009 3010 public ResearchStudyWebLocationComponent copy() { 3011 ResearchStudyWebLocationComponent dst = new ResearchStudyWebLocationComponent(); 3012 copyValues(dst); 3013 return dst; 3014 } 3015 3016 public void copyValues(ResearchStudyWebLocationComponent dst) { 3017 super.copyValues(dst); 3018 dst.classifier = classifier == null ? null : classifier.copy(); 3019 dst.url = url == null ? null : url.copy(); 3020 } 3021 3022 @Override 3023 public boolean equalsDeep(Base other_) { 3024 if (!super.equalsDeep(other_)) 3025 return false; 3026 if (!(other_ instanceof ResearchStudyWebLocationComponent)) 3027 return false; 3028 ResearchStudyWebLocationComponent o = (ResearchStudyWebLocationComponent) other_; 3029 return compareDeep(classifier, o.classifier, true) && compareDeep(url, o.url, true); 3030 } 3031 3032 @Override 3033 public boolean equalsShallow(Base other_) { 3034 if (!super.equalsShallow(other_)) 3035 return false; 3036 if (!(other_ instanceof ResearchStudyWebLocationComponent)) 3037 return false; 3038 ResearchStudyWebLocationComponent o = (ResearchStudyWebLocationComponent) other_; 3039 return compareValues(url, o.url, true); 3040 } 3041 3042 public boolean isEmpty() { 3043 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(classifier, url); 3044 } 3045 3046 public String fhirType() { 3047 return "ResearchStudy.webLocation"; 3048 3049 } 3050 3051 } 3052 3053 /** 3054 * Canonical identifier for this study resource, represented as a globally unique URI. 3055 */ 3056 @Child(name = "url", type = {UriType.class}, order=0, min=0, max=1, modifier=false, summary=false) 3057 @Description(shortDefinition="Canonical identifier for this study resource", formalDefinition="Canonical identifier for this study resource, represented as a globally unique URI." ) 3058 protected UriType url; 3059 3060 /** 3061 * Identifiers assigned to this research study by the sponsor or other systems. 3062 */ 3063 @Child(name = "identifier", type = {Identifier.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 3064 @Description(shortDefinition="Business Identifier for study", formalDefinition="Identifiers assigned to this research study by the sponsor or other systems." ) 3065 protected List<Identifier> identifier; 3066 3067 /** 3068 * The business version for the study record. 3069 */ 3070 @Child(name = "version", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=false) 3071 @Description(shortDefinition="The business version for the study record", formalDefinition="The business version for the study record." ) 3072 protected StringType version; 3073 3074 /** 3075 * Name for this study (computer friendly). 3076 */ 3077 @Child(name = "name", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=false) 3078 @Description(shortDefinition="Name for this study (computer friendly)", formalDefinition="Name for this study (computer friendly)." ) 3079 protected StringType name; 3080 3081 /** 3082 * The human readable name of the research study. 3083 */ 3084 @Child(name = "title", type = {StringType.class}, order=4, min=0, max=1, modifier=false, summary=true) 3085 @Description(shortDefinition="Human readable name of the study", formalDefinition="The human readable name of the research study." ) 3086 protected StringType title; 3087 3088 /** 3089 * Additional names for the study. 3090 */ 3091 @Child(name = "label", type = {}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 3092 @Description(shortDefinition="Additional names for the study", formalDefinition="Additional names for the study." ) 3093 protected List<ResearchStudyLabelComponent> label; 3094 3095 /** 3096 * The set of steps expected to be performed as part of the execution of the study. 3097 */ 3098 @Child(name = "protocol", type = {PlanDefinition.class}, order=6, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 3099 @Description(shortDefinition="Steps followed in executing study", formalDefinition="The set of steps expected to be performed as part of the execution of the study." ) 3100 protected List<Reference> protocol; 3101 3102 /** 3103 * A larger research study of which this particular study is a component or step. 3104 */ 3105 @Child(name = "partOf", type = {ResearchStudy.class}, order=7, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 3106 @Description(shortDefinition="Part of larger study", formalDefinition="A larger research study of which this particular study is a component or step." ) 3107 protected List<Reference> partOf; 3108 3109 /** 3110 * Citations, references and other related documents. 3111 */ 3112 @Child(name = "relatedArtifact", type = {RelatedArtifact.class}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 3113 @Description(shortDefinition="References and dependencies", formalDefinition="Citations, references and other related documents." ) 3114 protected List<RelatedArtifact> relatedArtifact; 3115 3116 /** 3117 * The date (and optionally time) when the ResearchStudy Resource was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the ResearchStudy Resource changes. 3118 */ 3119 @Child(name = "date", type = {DateTimeType.class}, order=9, min=0, max=1, modifier=false, summary=false) 3120 @Description(shortDefinition="Date the resource last changed", formalDefinition="The date (and optionally time) when the ResearchStudy Resource was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the ResearchStudy Resource changes." ) 3121 protected DateTimeType date; 3122 3123 /** 3124 * The publication state of the resource (not of the study). 3125 */ 3126 @Child(name = "status", type = {CodeType.class}, order=10, min=1, max=1, modifier=true, summary=true) 3127 @Description(shortDefinition="draft | active | retired | unknown", formalDefinition="The publication state of the resource (not of the study)." ) 3128 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/publication-status") 3129 protected Enumeration<PublicationStatus> status; 3130 3131 /** 3132 * The type of study based upon the intent of the study activities. A classification of the intent of the study. 3133 */ 3134 @Child(name = "primaryPurposeType", type = {CodeableConcept.class}, order=11, min=0, max=1, modifier=false, summary=true) 3135 @Description(shortDefinition="treatment | prevention | diagnostic | supportive-care | screening | health-services-research | basic-science | device-feasibility", formalDefinition="The type of study based upon the intent of the study activities. A classification of the intent of the study." ) 3136 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/research-study-prim-purp-type") 3137 protected CodeableConcept primaryPurposeType; 3138 3139 /** 3140 * The stage in the progression of a therapy from initial experimental use in humans in clinical trials to post-market evaluation. 3141 */ 3142 @Child(name = "phase", type = {CodeableConcept.class}, order=12, min=0, max=1, modifier=false, summary=true) 3143 @Description(shortDefinition="n-a | early-phase-1 | phase-1 | phase-1-phase-2 | phase-2 | phase-2-phase-3 | phase-3 | phase-4", formalDefinition="The stage in the progression of a therapy from initial experimental use in humans in clinical trials to post-market evaluation." ) 3144 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/research-study-phase") 3145 protected CodeableConcept phase; 3146 3147 /** 3148 * Codes categorizing the type of study such as investigational vs. observational, type of blinding, type of randomization, safety vs. efficacy, etc. 3149 */ 3150 @Child(name = "studyDesign", type = {CodeableConcept.class}, order=13, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 3151 @Description(shortDefinition="Classifications of the study design characteristics", formalDefinition="Codes categorizing the type of study such as investigational vs. observational, type of blinding, type of randomization, safety vs. efficacy, etc." ) 3152 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/study-design") 3153 protected List<CodeableConcept> studyDesign; 3154 3155 /** 3156 * The medication(s), food(s), therapy(ies), device(s) or other concerns or interventions that the study is seeking to gain more information about. 3157 */ 3158 @Child(name = "focus", type = {}, order=14, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 3159 @Description(shortDefinition="Drugs, devices, etc. under study", formalDefinition="The medication(s), food(s), therapy(ies), device(s) or other concerns or interventions that the study is seeking to gain more information about." ) 3160 protected List<ResearchStudyFocusComponent> focus; 3161 3162 /** 3163 * The condition that is the focus of the study. For example, In a study to examine risk factors for Lupus, might have as an inclusion criterion "healthy volunteer", but the target condition code would be a Lupus SNOMED code. 3164 */ 3165 @Child(name = "condition", type = {CodeableConcept.class}, order=15, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 3166 @Description(shortDefinition="Condition being studied", formalDefinition="The condition that is the focus of the study. For example, In a study to examine risk factors for Lupus, might have as an inclusion criterion \"healthy volunteer\", but the target condition code would be a Lupus SNOMED code." ) 3167 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/condition-code") 3168 protected List<CodeableConcept> condition; 3169 3170 /** 3171 * Key terms to aid in searching for or filtering the study. 3172 */ 3173 @Child(name = "keyword", type = {CodeableConcept.class}, order=16, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 3174 @Description(shortDefinition="Used to search for the study", formalDefinition="Key terms to aid in searching for or filtering the study." ) 3175 protected List<CodeableConcept> keyword; 3176 3177 /** 3178 * A country, state or other area where the study is taking place rather than its precise geographic location or address. 3179 */ 3180 @Child(name = "region", type = {CodeableConcept.class}, order=17, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 3181 @Description(shortDefinition="Geographic area for the study", formalDefinition="A country, state or other area where the study is taking place rather than its precise geographic location or address." ) 3182 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/jurisdiction") 3183 protected List<CodeableConcept> region; 3184 3185 /** 3186 * A brief text for explaining the study. 3187 */ 3188 @Child(name = "descriptionSummary", type = {MarkdownType.class}, order=18, min=0, max=1, modifier=false, summary=false) 3189 @Description(shortDefinition="Brief text explaining the study", formalDefinition="A brief text for explaining the study." ) 3190 protected MarkdownType descriptionSummary; 3191 3192 /** 3193 * A detailed and human-readable narrative of the study. E.g., study abstract. 3194 */ 3195 @Child(name = "description", type = {MarkdownType.class}, order=19, min=0, max=1, modifier=false, summary=false) 3196 @Description(shortDefinition="Detailed narrative of the study", formalDefinition="A detailed and human-readable narrative of the study. E.g., study abstract." ) 3197 protected MarkdownType description; 3198 3199 /** 3200 * Identifies the start date and the expected (or actual, depending on status) end date for the study. 3201 */ 3202 @Child(name = "period", type = {Period.class}, order=20, min=0, max=1, modifier=false, summary=true) 3203 @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." ) 3204 protected Period period; 3205 3206 /** 3207 * A facility in which study activities are conducted. 3208 */ 3209 @Child(name = "site", type = {Location.class, ResearchStudy.class, Organization.class}, order=21, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 3210 @Description(shortDefinition="Facility where study activities are conducted", formalDefinition="A facility in which study activities are conducted." ) 3211 protected List<Reference> site; 3212 3213 /** 3214 * Comments made about the study by the performer, subject or other participants. 3215 */ 3216 @Child(name = "note", type = {Annotation.class}, order=22, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 3217 @Description(shortDefinition="Comments made about the study", formalDefinition="Comments made about the study by the performer, subject or other participants." ) 3218 protected List<Annotation> note; 3219 3220 /** 3221 * Additional grouping mechanism or categorization of a research study. Example: FDA regulated device, FDA regulated drug, MPG Paragraph 23b (a German legal requirement), IRB-exempt, etc. Implementation Note: do not use the classifier element to support existing semantics that are already supported thru explicit elements in the resource. 3222 */ 3223 @Child(name = "classifier", type = {CodeableConcept.class}, order=23, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 3224 @Description(shortDefinition="Classification for the study", formalDefinition="Additional grouping mechanism or categorization of a research study. Example: FDA regulated device, FDA regulated drug, MPG Paragraph 23b (a German legal requirement), IRB-exempt, etc. Implementation Note: do not use the classifier element to support existing semantics that are already supported thru explicit elements in the resource." ) 3225 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/research-study-classifiers") 3226 protected List<CodeableConcept> classifier; 3227 3228 /** 3229 * Sponsors, collaborators, and other parties. 3230 */ 3231 @Child(name = "associatedParty", type = {}, order=24, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 3232 @Description(shortDefinition="Sponsors, collaborators, and other parties", formalDefinition="Sponsors, collaborators, and other parties." ) 3233 protected List<ResearchStudyAssociatedPartyComponent> associatedParty; 3234 3235 /** 3236 * Status of study with time for that status. 3237 */ 3238 @Child(name = "progressStatus", type = {}, order=25, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 3239 @Description(shortDefinition="Status of study with time for that status", formalDefinition="Status of study with time for that status." ) 3240 protected List<ResearchStudyProgressStatusComponent> progressStatus; 3241 3242 /** 3243 * A description and/or code explaining the premature termination of the study. 3244 */ 3245 @Child(name = "whyStopped", type = {CodeableConcept.class}, order=26, min=0, max=1, modifier=false, summary=true) 3246 @Description(shortDefinition="accrual-goal-met | closed-due-to-toxicity | closed-due-to-lack-of-study-progress | temporarily-closed-per-study-design", formalDefinition="A description and/or code explaining the premature termination of the study." ) 3247 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/research-study-reason-stopped") 3248 protected CodeableConcept whyStopped; 3249 3250 /** 3251 * Target or actual group of participants enrolled in study. 3252 */ 3253 @Child(name = "recruitment", type = {}, order=27, min=0, max=1, modifier=false, summary=true) 3254 @Description(shortDefinition="Target or actual group of participants enrolled in study", formalDefinition="Target or actual group of participants enrolled in study." ) 3255 protected ResearchStudyRecruitmentComponent recruitment; 3256 3257 /** 3258 * 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. 3259 */ 3260 @Child(name = "comparisonGroup", type = {}, order=28, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 3261 @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." ) 3262 protected List<ResearchStudyComparisonGroupComponent> comparisonGroup; 3263 3264 /** 3265 * A goal that the study is aiming to achieve in terms of a scientific question to be answered by the analysis of data collected during the study. 3266 */ 3267 @Child(name = "objective", type = {}, order=29, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 3268 @Description(shortDefinition="A goal for the study", formalDefinition="A goal that the study is aiming to achieve in terms of a scientific question to be answered by the analysis of data collected during the study." ) 3269 protected List<ResearchStudyObjectiveComponent> objective; 3270 3271 /** 3272 * An outcome or planned variable to measure during the study. 3273 */ 3274 @Child(name = "outcomeMeasure", type = {}, order=30, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 3275 @Description(shortDefinition="An outcome or planned variable to measure during the study", formalDefinition="An outcome or planned variable to measure during the study." ) 3276 protected List<ResearchStudyOutcomeMeasureComponent> outcomeMeasure; 3277 3278 /** 3279 * Link to one or more sets of results generated by the study. Could also link to a research registry holding the results such as ClinicalTrials.gov. 3280 */ 3281 @Child(name = "result", type = {EvidenceReport.class, Citation.class, DiagnosticReport.class}, order=31, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 3282 @Description(shortDefinition="Link to results generated during the study", formalDefinition="Link to one or more sets of results generated by the study. Could also link to a research registry holding the results such as ClinicalTrials.gov." ) 3283 protected List<Reference> result; 3284 3285 /** 3286 * A general storage or archive location for the study. This may contain an assortment of content which is not specified in advance. 3287 */ 3288 @Child(name = "webLocation", type = {}, order=32, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 3289 @Description(shortDefinition="Archive location for the study", formalDefinition="A general storage or archive location for the study. This may contain an assortment of content which is not specified in advance." ) 3290 protected List<ResearchStudyWebLocationComponent> webLocation; 3291 3292 private static final long serialVersionUID = 1995353917L; 3293 3294 /** 3295 * Constructor 3296 */ 3297 public ResearchStudy() { 3298 super(); 3299 } 3300 3301 /** 3302 * Constructor 3303 */ 3304 public ResearchStudy(PublicationStatus status) { 3305 super(); 3306 this.setStatus(status); 3307 } 3308 3309 /** 3310 * @return {@link #url} (Canonical identifier for this study resource, represented as a globally unique URI.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value 3311 */ 3312 public UriType getUrlElement() { 3313 if (this.url == null) 3314 if (Configuration.errorOnAutoCreate()) 3315 throw new Error("Attempt to auto-create ResearchStudy.url"); 3316 else if (Configuration.doAutoCreate()) 3317 this.url = new UriType(); // bb 3318 return this.url; 3319 } 3320 3321 public boolean hasUrlElement() { 3322 return this.url != null && !this.url.isEmpty(); 3323 } 3324 3325 public boolean hasUrl() { 3326 return this.url != null && !this.url.isEmpty(); 3327 } 3328 3329 /** 3330 * @param value {@link #url} (Canonical identifier for this study resource, represented as a globally unique URI.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value 3331 */ 3332 public ResearchStudy setUrlElement(UriType value) { 3333 this.url = value; 3334 return this; 3335 } 3336 3337 /** 3338 * @return Canonical identifier for this study resource, represented as a globally unique URI. 3339 */ 3340 public String getUrl() { 3341 return this.url == null ? null : this.url.getValue(); 3342 } 3343 3344 /** 3345 * @param value Canonical identifier for this study resource, represented as a globally unique URI. 3346 */ 3347 public ResearchStudy setUrl(String value) { 3348 if (Utilities.noString(value)) 3349 this.url = null; 3350 else { 3351 if (this.url == null) 3352 this.url = new UriType(); 3353 this.url.setValue(value); 3354 } 3355 return this; 3356 } 3357 3358 /** 3359 * @return {@link #identifier} (Identifiers assigned to this research study by the sponsor or other systems.) 3360 */ 3361 public List<Identifier> getIdentifier() { 3362 if (this.identifier == null) 3363 this.identifier = new ArrayList<Identifier>(); 3364 return this.identifier; 3365 } 3366 3367 /** 3368 * @return Returns a reference to <code>this</code> for easy method chaining 3369 */ 3370 public ResearchStudy setIdentifier(List<Identifier> theIdentifier) { 3371 this.identifier = theIdentifier; 3372 return this; 3373 } 3374 3375 public boolean hasIdentifier() { 3376 if (this.identifier == null) 3377 return false; 3378 for (Identifier item : this.identifier) 3379 if (!item.isEmpty()) 3380 return true; 3381 return false; 3382 } 3383 3384 public Identifier addIdentifier() { //3 3385 Identifier t = new Identifier(); 3386 if (this.identifier == null) 3387 this.identifier = new ArrayList<Identifier>(); 3388 this.identifier.add(t); 3389 return t; 3390 } 3391 3392 public ResearchStudy addIdentifier(Identifier t) { //3 3393 if (t == null) 3394 return this; 3395 if (this.identifier == null) 3396 this.identifier = new ArrayList<Identifier>(); 3397 this.identifier.add(t); 3398 return this; 3399 } 3400 3401 /** 3402 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3} 3403 */ 3404 public Identifier getIdentifierFirstRep() { 3405 if (getIdentifier().isEmpty()) { 3406 addIdentifier(); 3407 } 3408 return getIdentifier().get(0); 3409 } 3410 3411 /** 3412 * @return {@link #version} (The business version for the study record.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value 3413 */ 3414 public StringType getVersionElement() { 3415 if (this.version == null) 3416 if (Configuration.errorOnAutoCreate()) 3417 throw new Error("Attempt to auto-create ResearchStudy.version"); 3418 else if (Configuration.doAutoCreate()) 3419 this.version = new StringType(); // bb 3420 return this.version; 3421 } 3422 3423 public boolean hasVersionElement() { 3424 return this.version != null && !this.version.isEmpty(); 3425 } 3426 3427 public boolean hasVersion() { 3428 return this.version != null && !this.version.isEmpty(); 3429 } 3430 3431 /** 3432 * @param value {@link #version} (The business version for the study record.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value 3433 */ 3434 public ResearchStudy setVersionElement(StringType value) { 3435 this.version = value; 3436 return this; 3437 } 3438 3439 /** 3440 * @return The business version for the study record. 3441 */ 3442 public String getVersion() { 3443 return this.version == null ? null : this.version.getValue(); 3444 } 3445 3446 /** 3447 * @param value The business version for the study record. 3448 */ 3449 public ResearchStudy setVersion(String value) { 3450 if (Utilities.noString(value)) 3451 this.version = null; 3452 else { 3453 if (this.version == null) 3454 this.version = new StringType(); 3455 this.version.setValue(value); 3456 } 3457 return this; 3458 } 3459 3460 /** 3461 * @return {@link #name} (Name for this study (computer friendly).). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value 3462 */ 3463 public StringType getNameElement() { 3464 if (this.name == null) 3465 if (Configuration.errorOnAutoCreate()) 3466 throw new Error("Attempt to auto-create ResearchStudy.name"); 3467 else if (Configuration.doAutoCreate()) 3468 this.name = new StringType(); // bb 3469 return this.name; 3470 } 3471 3472 public boolean hasNameElement() { 3473 return this.name != null && !this.name.isEmpty(); 3474 } 3475 3476 public boolean hasName() { 3477 return this.name != null && !this.name.isEmpty(); 3478 } 3479 3480 /** 3481 * @param value {@link #name} (Name for this study (computer friendly).). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value 3482 */ 3483 public ResearchStudy setNameElement(StringType value) { 3484 this.name = value; 3485 return this; 3486 } 3487 3488 /** 3489 * @return Name for this study (computer friendly). 3490 */ 3491 public String getName() { 3492 return this.name == null ? null : this.name.getValue(); 3493 } 3494 3495 /** 3496 * @param value Name for this study (computer friendly). 3497 */ 3498 public ResearchStudy setName(String value) { 3499 if (Utilities.noString(value)) 3500 this.name = null; 3501 else { 3502 if (this.name == null) 3503 this.name = new StringType(); 3504 this.name.setValue(value); 3505 } 3506 return this; 3507 } 3508 3509 /** 3510 * @return {@link #title} (The human readable name of the research study.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value 3511 */ 3512 public StringType getTitleElement() { 3513 if (this.title == null) 3514 if (Configuration.errorOnAutoCreate()) 3515 throw new Error("Attempt to auto-create ResearchStudy.title"); 3516 else if (Configuration.doAutoCreate()) 3517 this.title = new StringType(); // bb 3518 return this.title; 3519 } 3520 3521 public boolean hasTitleElement() { 3522 return this.title != null && !this.title.isEmpty(); 3523 } 3524 3525 public boolean hasTitle() { 3526 return this.title != null && !this.title.isEmpty(); 3527 } 3528 3529 /** 3530 * @param value {@link #title} (The human readable name of the research study.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value 3531 */ 3532 public ResearchStudy setTitleElement(StringType value) { 3533 this.title = value; 3534 return this; 3535 } 3536 3537 /** 3538 * @return The human readable name of the research study. 3539 */ 3540 public String getTitle() { 3541 return this.title == null ? null : this.title.getValue(); 3542 } 3543 3544 /** 3545 * @param value The human readable name of the research study. 3546 */ 3547 public ResearchStudy setTitle(String value) { 3548 if (Utilities.noString(value)) 3549 this.title = null; 3550 else { 3551 if (this.title == null) 3552 this.title = new StringType(); 3553 this.title.setValue(value); 3554 } 3555 return this; 3556 } 3557 3558 /** 3559 * @return {@link #label} (Additional names for the study.) 3560 */ 3561 public List<ResearchStudyLabelComponent> getLabel() { 3562 if (this.label == null) 3563 this.label = new ArrayList<ResearchStudyLabelComponent>(); 3564 return this.label; 3565 } 3566 3567 /** 3568 * @return Returns a reference to <code>this</code> for easy method chaining 3569 */ 3570 public ResearchStudy setLabel(List<ResearchStudyLabelComponent> theLabel) { 3571 this.label = theLabel; 3572 return this; 3573 } 3574 3575 public boolean hasLabel() { 3576 if (this.label == null) 3577 return false; 3578 for (ResearchStudyLabelComponent item : this.label) 3579 if (!item.isEmpty()) 3580 return true; 3581 return false; 3582 } 3583 3584 public ResearchStudyLabelComponent addLabel() { //3 3585 ResearchStudyLabelComponent t = new ResearchStudyLabelComponent(); 3586 if (this.label == null) 3587 this.label = new ArrayList<ResearchStudyLabelComponent>(); 3588 this.label.add(t); 3589 return t; 3590 } 3591 3592 public ResearchStudy addLabel(ResearchStudyLabelComponent t) { //3 3593 if (t == null) 3594 return this; 3595 if (this.label == null) 3596 this.label = new ArrayList<ResearchStudyLabelComponent>(); 3597 this.label.add(t); 3598 return this; 3599 } 3600 3601 /** 3602 * @return The first repetition of repeating field {@link #label}, creating it if it does not already exist {3} 3603 */ 3604 public ResearchStudyLabelComponent getLabelFirstRep() { 3605 if (getLabel().isEmpty()) { 3606 addLabel(); 3607 } 3608 return getLabel().get(0); 3609 } 3610 3611 /** 3612 * @return {@link #protocol} (The set of steps expected to be performed as part of the execution of the study.) 3613 */ 3614 public List<Reference> getProtocol() { 3615 if (this.protocol == null) 3616 this.protocol = new ArrayList<Reference>(); 3617 return this.protocol; 3618 } 3619 3620 /** 3621 * @return Returns a reference to <code>this</code> for easy method chaining 3622 */ 3623 public ResearchStudy setProtocol(List<Reference> theProtocol) { 3624 this.protocol = theProtocol; 3625 return this; 3626 } 3627 3628 public boolean hasProtocol() { 3629 if (this.protocol == null) 3630 return false; 3631 for (Reference item : this.protocol) 3632 if (!item.isEmpty()) 3633 return true; 3634 return false; 3635 } 3636 3637 public Reference addProtocol() { //3 3638 Reference t = new Reference(); 3639 if (this.protocol == null) 3640 this.protocol = new ArrayList<Reference>(); 3641 this.protocol.add(t); 3642 return t; 3643 } 3644 3645 public ResearchStudy addProtocol(Reference t) { //3 3646 if (t == null) 3647 return this; 3648 if (this.protocol == null) 3649 this.protocol = new ArrayList<Reference>(); 3650 this.protocol.add(t); 3651 return this; 3652 } 3653 3654 /** 3655 * @return The first repetition of repeating field {@link #protocol}, creating it if it does not already exist {3} 3656 */ 3657 public Reference getProtocolFirstRep() { 3658 if (getProtocol().isEmpty()) { 3659 addProtocol(); 3660 } 3661 return getProtocol().get(0); 3662 } 3663 3664 /** 3665 * @return {@link #partOf} (A larger research study of which this particular study is a component or step.) 3666 */ 3667 public List<Reference> getPartOf() { 3668 if (this.partOf == null) 3669 this.partOf = new ArrayList<Reference>(); 3670 return this.partOf; 3671 } 3672 3673 /** 3674 * @return Returns a reference to <code>this</code> for easy method chaining 3675 */ 3676 public ResearchStudy setPartOf(List<Reference> thePartOf) { 3677 this.partOf = thePartOf; 3678 return this; 3679 } 3680 3681 public boolean hasPartOf() { 3682 if (this.partOf == null) 3683 return false; 3684 for (Reference item : this.partOf) 3685 if (!item.isEmpty()) 3686 return true; 3687 return false; 3688 } 3689 3690 public Reference addPartOf() { //3 3691 Reference t = new Reference(); 3692 if (this.partOf == null) 3693 this.partOf = new ArrayList<Reference>(); 3694 this.partOf.add(t); 3695 return t; 3696 } 3697 3698 public ResearchStudy addPartOf(Reference t) { //3 3699 if (t == null) 3700 return this; 3701 if (this.partOf == null) 3702 this.partOf = new ArrayList<Reference>(); 3703 this.partOf.add(t); 3704 return this; 3705 } 3706 3707 /** 3708 * @return The first repetition of repeating field {@link #partOf}, creating it if it does not already exist {3} 3709 */ 3710 public Reference getPartOfFirstRep() { 3711 if (getPartOf().isEmpty()) { 3712 addPartOf(); 3713 } 3714 return getPartOf().get(0); 3715 } 3716 3717 /** 3718 * @return {@link #relatedArtifact} (Citations, references and other related documents.) 3719 */ 3720 public List<RelatedArtifact> getRelatedArtifact() { 3721 if (this.relatedArtifact == null) 3722 this.relatedArtifact = new ArrayList<RelatedArtifact>(); 3723 return this.relatedArtifact; 3724 } 3725 3726 /** 3727 * @return Returns a reference to <code>this</code> for easy method chaining 3728 */ 3729 public ResearchStudy setRelatedArtifact(List<RelatedArtifact> theRelatedArtifact) { 3730 this.relatedArtifact = theRelatedArtifact; 3731 return this; 3732 } 3733 3734 public boolean hasRelatedArtifact() { 3735 if (this.relatedArtifact == null) 3736 return false; 3737 for (RelatedArtifact item : this.relatedArtifact) 3738 if (!item.isEmpty()) 3739 return true; 3740 return false; 3741 } 3742 3743 public RelatedArtifact addRelatedArtifact() { //3 3744 RelatedArtifact t = new RelatedArtifact(); 3745 if (this.relatedArtifact == null) 3746 this.relatedArtifact = new ArrayList<RelatedArtifact>(); 3747 this.relatedArtifact.add(t); 3748 return t; 3749 } 3750 3751 public ResearchStudy addRelatedArtifact(RelatedArtifact t) { //3 3752 if (t == null) 3753 return this; 3754 if (this.relatedArtifact == null) 3755 this.relatedArtifact = new ArrayList<RelatedArtifact>(); 3756 this.relatedArtifact.add(t); 3757 return this; 3758 } 3759 3760 /** 3761 * @return The first repetition of repeating field {@link #relatedArtifact}, creating it if it does not already exist {3} 3762 */ 3763 public RelatedArtifact getRelatedArtifactFirstRep() { 3764 if (getRelatedArtifact().isEmpty()) { 3765 addRelatedArtifact(); 3766 } 3767 return getRelatedArtifact().get(0); 3768 } 3769 3770 /** 3771 * @return {@link #date} (The date (and optionally time) when the ResearchStudy Resource was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the ResearchStudy Resource changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value 3772 */ 3773 public DateTimeType getDateElement() { 3774 if (this.date == null) 3775 if (Configuration.errorOnAutoCreate()) 3776 throw new Error("Attempt to auto-create ResearchStudy.date"); 3777 else if (Configuration.doAutoCreate()) 3778 this.date = new DateTimeType(); // bb 3779 return this.date; 3780 } 3781 3782 public boolean hasDateElement() { 3783 return this.date != null && !this.date.isEmpty(); 3784 } 3785 3786 public boolean hasDate() { 3787 return this.date != null && !this.date.isEmpty(); 3788 } 3789 3790 /** 3791 * @param value {@link #date} (The date (and optionally time) when the ResearchStudy Resource was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the ResearchStudy Resource changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value 3792 */ 3793 public ResearchStudy setDateElement(DateTimeType value) { 3794 this.date = value; 3795 return this; 3796 } 3797 3798 /** 3799 * @return The date (and optionally time) when the ResearchStudy Resource was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the ResearchStudy Resource changes. 3800 */ 3801 public Date getDate() { 3802 return this.date == null ? null : this.date.getValue(); 3803 } 3804 3805 /** 3806 * @param value The date (and optionally time) when the ResearchStudy Resource was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the ResearchStudy Resource changes. 3807 */ 3808 public ResearchStudy setDate(Date value) { 3809 if (value == null) 3810 this.date = null; 3811 else { 3812 if (this.date == null) 3813 this.date = new DateTimeType(); 3814 this.date.setValue(value); 3815 } 3816 return this; 3817 } 3818 3819 /** 3820 * @return {@link #status} (The publication state of the resource (not of the study).). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 3821 */ 3822 public Enumeration<PublicationStatus> getStatusElement() { 3823 if (this.status == null) 3824 if (Configuration.errorOnAutoCreate()) 3825 throw new Error("Attempt to auto-create ResearchStudy.status"); 3826 else if (Configuration.doAutoCreate()) 3827 this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); // bb 3828 return this.status; 3829 } 3830 3831 public boolean hasStatusElement() { 3832 return this.status != null && !this.status.isEmpty(); 3833 } 3834 3835 public boolean hasStatus() { 3836 return this.status != null && !this.status.isEmpty(); 3837 } 3838 3839 /** 3840 * @param value {@link #status} (The publication state of the resource (not of the study).). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 3841 */ 3842 public ResearchStudy setStatusElement(Enumeration<PublicationStatus> value) { 3843 this.status = value; 3844 return this; 3845 } 3846 3847 /** 3848 * @return The publication state of the resource (not of the study). 3849 */ 3850 public PublicationStatus getStatus() { 3851 return this.status == null ? null : this.status.getValue(); 3852 } 3853 3854 /** 3855 * @param value The publication state of the resource (not of the study). 3856 */ 3857 public ResearchStudy setStatus(PublicationStatus value) { 3858 if (this.status == null) 3859 this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); 3860 this.status.setValue(value); 3861 return this; 3862 } 3863 3864 /** 3865 * @return {@link #primaryPurposeType} (The type of study based upon the intent of the study activities. A classification of the intent of the study.) 3866 */ 3867 public CodeableConcept getPrimaryPurposeType() { 3868 if (this.primaryPurposeType == null) 3869 if (Configuration.errorOnAutoCreate()) 3870 throw new Error("Attempt to auto-create ResearchStudy.primaryPurposeType"); 3871 else if (Configuration.doAutoCreate()) 3872 this.primaryPurposeType = new CodeableConcept(); // cc 3873 return this.primaryPurposeType; 3874 } 3875 3876 public boolean hasPrimaryPurposeType() { 3877 return this.primaryPurposeType != null && !this.primaryPurposeType.isEmpty(); 3878 } 3879 3880 /** 3881 * @param value {@link #primaryPurposeType} (The type of study based upon the intent of the study activities. A classification of the intent of the study.) 3882 */ 3883 public ResearchStudy setPrimaryPurposeType(CodeableConcept value) { 3884 this.primaryPurposeType = value; 3885 return this; 3886 } 3887 3888 /** 3889 * @return {@link #phase} (The stage in the progression of a therapy from initial experimental use in humans in clinical trials to post-market evaluation.) 3890 */ 3891 public CodeableConcept getPhase() { 3892 if (this.phase == null) 3893 if (Configuration.errorOnAutoCreate()) 3894 throw new Error("Attempt to auto-create ResearchStudy.phase"); 3895 else if (Configuration.doAutoCreate()) 3896 this.phase = new CodeableConcept(); // cc 3897 return this.phase; 3898 } 3899 3900 public boolean hasPhase() { 3901 return this.phase != null && !this.phase.isEmpty(); 3902 } 3903 3904 /** 3905 * @param value {@link #phase} (The stage in the progression of a therapy from initial experimental use in humans in clinical trials to post-market evaluation.) 3906 */ 3907 public ResearchStudy setPhase(CodeableConcept value) { 3908 this.phase = value; 3909 return this; 3910 } 3911 3912 /** 3913 * @return {@link #studyDesign} (Codes categorizing the type of study such as investigational vs. observational, type of blinding, type of randomization, safety vs. efficacy, etc.) 3914 */ 3915 public List<CodeableConcept> getStudyDesign() { 3916 if (this.studyDesign == null) 3917 this.studyDesign = new ArrayList<CodeableConcept>(); 3918 return this.studyDesign; 3919 } 3920 3921 /** 3922 * @return Returns a reference to <code>this</code> for easy method chaining 3923 */ 3924 public ResearchStudy setStudyDesign(List<CodeableConcept> theStudyDesign) { 3925 this.studyDesign = theStudyDesign; 3926 return this; 3927 } 3928 3929 public boolean hasStudyDesign() { 3930 if (this.studyDesign == null) 3931 return false; 3932 for (CodeableConcept item : this.studyDesign) 3933 if (!item.isEmpty()) 3934 return true; 3935 return false; 3936 } 3937 3938 public CodeableConcept addStudyDesign() { //3 3939 CodeableConcept t = new CodeableConcept(); 3940 if (this.studyDesign == null) 3941 this.studyDesign = new ArrayList<CodeableConcept>(); 3942 this.studyDesign.add(t); 3943 return t; 3944 } 3945 3946 public ResearchStudy addStudyDesign(CodeableConcept t) { //3 3947 if (t == null) 3948 return this; 3949 if (this.studyDesign == null) 3950 this.studyDesign = new ArrayList<CodeableConcept>(); 3951 this.studyDesign.add(t); 3952 return this; 3953 } 3954 3955 /** 3956 * @return The first repetition of repeating field {@link #studyDesign}, creating it if it does not already exist {3} 3957 */ 3958 public CodeableConcept getStudyDesignFirstRep() { 3959 if (getStudyDesign().isEmpty()) { 3960 addStudyDesign(); 3961 } 3962 return getStudyDesign().get(0); 3963 } 3964 3965 /** 3966 * @return {@link #focus} (The medication(s), food(s), therapy(ies), device(s) or other concerns or interventions that the study is seeking to gain more information about.) 3967 */ 3968 public List<ResearchStudyFocusComponent> getFocus() { 3969 if (this.focus == null) 3970 this.focus = new ArrayList<ResearchStudyFocusComponent>(); 3971 return this.focus; 3972 } 3973 3974 /** 3975 * @return Returns a reference to <code>this</code> for easy method chaining 3976 */ 3977 public ResearchStudy setFocus(List<ResearchStudyFocusComponent> theFocus) { 3978 this.focus = theFocus; 3979 return this; 3980 } 3981 3982 public boolean hasFocus() { 3983 if (this.focus == null) 3984 return false; 3985 for (ResearchStudyFocusComponent item : this.focus) 3986 if (!item.isEmpty()) 3987 return true; 3988 return false; 3989 } 3990 3991 public ResearchStudyFocusComponent addFocus() { //3 3992 ResearchStudyFocusComponent t = new ResearchStudyFocusComponent(); 3993 if (this.focus == null) 3994 this.focus = new ArrayList<ResearchStudyFocusComponent>(); 3995 this.focus.add(t); 3996 return t; 3997 } 3998 3999 public ResearchStudy addFocus(ResearchStudyFocusComponent t) { //3 4000 if (t == null) 4001 return this; 4002 if (this.focus == null) 4003 this.focus = new ArrayList<ResearchStudyFocusComponent>(); 4004 this.focus.add(t); 4005 return this; 4006 } 4007 4008 /** 4009 * @return The first repetition of repeating field {@link #focus}, creating it if it does not already exist {3} 4010 */ 4011 public ResearchStudyFocusComponent getFocusFirstRep() { 4012 if (getFocus().isEmpty()) { 4013 addFocus(); 4014 } 4015 return getFocus().get(0); 4016 } 4017 4018 /** 4019 * @return {@link #condition} (The condition that is the focus of the study. For example, In a study to examine risk factors for Lupus, might have as an inclusion criterion "healthy volunteer", but the target condition code would be a Lupus SNOMED code.) 4020 */ 4021 public List<CodeableConcept> getCondition() { 4022 if (this.condition == null) 4023 this.condition = new ArrayList<CodeableConcept>(); 4024 return this.condition; 4025 } 4026 4027 /** 4028 * @return Returns a reference to <code>this</code> for easy method chaining 4029 */ 4030 public ResearchStudy setCondition(List<CodeableConcept> theCondition) { 4031 this.condition = theCondition; 4032 return this; 4033 } 4034 4035 public boolean hasCondition() { 4036 if (this.condition == null) 4037 return false; 4038 for (CodeableConcept item : this.condition) 4039 if (!item.isEmpty()) 4040 return true; 4041 return false; 4042 } 4043 4044 public CodeableConcept addCondition() { //3 4045 CodeableConcept t = new CodeableConcept(); 4046 if (this.condition == null) 4047 this.condition = new ArrayList<CodeableConcept>(); 4048 this.condition.add(t); 4049 return t; 4050 } 4051 4052 public ResearchStudy addCondition(CodeableConcept t) { //3 4053 if (t == null) 4054 return this; 4055 if (this.condition == null) 4056 this.condition = new ArrayList<CodeableConcept>(); 4057 this.condition.add(t); 4058 return this; 4059 } 4060 4061 /** 4062 * @return The first repetition of repeating field {@link #condition}, creating it if it does not already exist {3} 4063 */ 4064 public CodeableConcept getConditionFirstRep() { 4065 if (getCondition().isEmpty()) { 4066 addCondition(); 4067 } 4068 return getCondition().get(0); 4069 } 4070 4071 /** 4072 * @return {@link #keyword} (Key terms to aid in searching for or filtering the study.) 4073 */ 4074 public List<CodeableConcept> getKeyword() { 4075 if (this.keyword == null) 4076 this.keyword = new ArrayList<CodeableConcept>(); 4077 return this.keyword; 4078 } 4079 4080 /** 4081 * @return Returns a reference to <code>this</code> for easy method chaining 4082 */ 4083 public ResearchStudy setKeyword(List<CodeableConcept> theKeyword) { 4084 this.keyword = theKeyword; 4085 return this; 4086 } 4087 4088 public boolean hasKeyword() { 4089 if (this.keyword == null) 4090 return false; 4091 for (CodeableConcept item : this.keyword) 4092 if (!item.isEmpty()) 4093 return true; 4094 return false; 4095 } 4096 4097 public CodeableConcept addKeyword() { //3 4098 CodeableConcept t = new CodeableConcept(); 4099 if (this.keyword == null) 4100 this.keyword = new ArrayList<CodeableConcept>(); 4101 this.keyword.add(t); 4102 return t; 4103 } 4104 4105 public ResearchStudy addKeyword(CodeableConcept t) { //3 4106 if (t == null) 4107 return this; 4108 if (this.keyword == null) 4109 this.keyword = new ArrayList<CodeableConcept>(); 4110 this.keyword.add(t); 4111 return this; 4112 } 4113 4114 /** 4115 * @return The first repetition of repeating field {@link #keyword}, creating it if it does not already exist {3} 4116 */ 4117 public CodeableConcept getKeywordFirstRep() { 4118 if (getKeyword().isEmpty()) { 4119 addKeyword(); 4120 } 4121 return getKeyword().get(0); 4122 } 4123 4124 /** 4125 * @return {@link #region} (A country, state or other area where the study is taking place rather than its precise geographic location or address.) 4126 */ 4127 public List<CodeableConcept> getRegion() { 4128 if (this.region == null) 4129 this.region = new ArrayList<CodeableConcept>(); 4130 return this.region; 4131 } 4132 4133 /** 4134 * @return Returns a reference to <code>this</code> for easy method chaining 4135 */ 4136 public ResearchStudy setRegion(List<CodeableConcept> theRegion) { 4137 this.region = theRegion; 4138 return this; 4139 } 4140 4141 public boolean hasRegion() { 4142 if (this.region == null) 4143 return false; 4144 for (CodeableConcept item : this.region) 4145 if (!item.isEmpty()) 4146 return true; 4147 return false; 4148 } 4149 4150 public CodeableConcept addRegion() { //3 4151 CodeableConcept t = new CodeableConcept(); 4152 if (this.region == null) 4153 this.region = new ArrayList<CodeableConcept>(); 4154 this.region.add(t); 4155 return t; 4156 } 4157 4158 public ResearchStudy addRegion(CodeableConcept t) { //3 4159 if (t == null) 4160 return this; 4161 if (this.region == null) 4162 this.region = new ArrayList<CodeableConcept>(); 4163 this.region.add(t); 4164 return this; 4165 } 4166 4167 /** 4168 * @return The first repetition of repeating field {@link #region}, creating it if it does not already exist {3} 4169 */ 4170 public CodeableConcept getRegionFirstRep() { 4171 if (getRegion().isEmpty()) { 4172 addRegion(); 4173 } 4174 return getRegion().get(0); 4175 } 4176 4177 /** 4178 * @return {@link #descriptionSummary} (A brief text for explaining the study.). This is the underlying object with id, value and extensions. The accessor "getDescriptionSummary" gives direct access to the value 4179 */ 4180 public MarkdownType getDescriptionSummaryElement() { 4181 if (this.descriptionSummary == null) 4182 if (Configuration.errorOnAutoCreate()) 4183 throw new Error("Attempt to auto-create ResearchStudy.descriptionSummary"); 4184 else if (Configuration.doAutoCreate()) 4185 this.descriptionSummary = new MarkdownType(); // bb 4186 return this.descriptionSummary; 4187 } 4188 4189 public boolean hasDescriptionSummaryElement() { 4190 return this.descriptionSummary != null && !this.descriptionSummary.isEmpty(); 4191 } 4192 4193 public boolean hasDescriptionSummary() { 4194 return this.descriptionSummary != null && !this.descriptionSummary.isEmpty(); 4195 } 4196 4197 /** 4198 * @param value {@link #descriptionSummary} (A brief text for explaining the study.). This is the underlying object with id, value and extensions. The accessor "getDescriptionSummary" gives direct access to the value 4199 */ 4200 public ResearchStudy setDescriptionSummaryElement(MarkdownType value) { 4201 this.descriptionSummary = value; 4202 return this; 4203 } 4204 4205 /** 4206 * @return A brief text for explaining the study. 4207 */ 4208 public String getDescriptionSummary() { 4209 return this.descriptionSummary == null ? null : this.descriptionSummary.getValue(); 4210 } 4211 4212 /** 4213 * @param value A brief text for explaining the study. 4214 */ 4215 public ResearchStudy setDescriptionSummary(String value) { 4216 if (value == null) 4217 this.descriptionSummary = null; 4218 else { 4219 if (this.descriptionSummary == null) 4220 this.descriptionSummary = new MarkdownType(); 4221 this.descriptionSummary.setValue(value); 4222 } 4223 return this; 4224 } 4225 4226 /** 4227 * @return {@link #description} (A detailed and human-readable narrative of the study. E.g., study abstract.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 4228 */ 4229 public MarkdownType getDescriptionElement() { 4230 if (this.description == null) 4231 if (Configuration.errorOnAutoCreate()) 4232 throw new Error("Attempt to auto-create ResearchStudy.description"); 4233 else if (Configuration.doAutoCreate()) 4234 this.description = new MarkdownType(); // bb 4235 return this.description; 4236 } 4237 4238 public boolean hasDescriptionElement() { 4239 return this.description != null && !this.description.isEmpty(); 4240 } 4241 4242 public boolean hasDescription() { 4243 return this.description != null && !this.description.isEmpty(); 4244 } 4245 4246 /** 4247 * @param value {@link #description} (A detailed and human-readable narrative of the study. E.g., study abstract.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 4248 */ 4249 public ResearchStudy setDescriptionElement(MarkdownType value) { 4250 this.description = value; 4251 return this; 4252 } 4253 4254 /** 4255 * @return A detailed and human-readable narrative of the study. E.g., study abstract. 4256 */ 4257 public String getDescription() { 4258 return this.description == null ? null : this.description.getValue(); 4259 } 4260 4261 /** 4262 * @param value A detailed and human-readable narrative of the study. E.g., study abstract. 4263 */ 4264 public ResearchStudy setDescription(String value) { 4265 if (value == null) 4266 this.description = null; 4267 else { 4268 if (this.description == null) 4269 this.description = new MarkdownType(); 4270 this.description.setValue(value); 4271 } 4272 return this; 4273 } 4274 4275 /** 4276 * @return {@link #period} (Identifies the start date and the expected (or actual, depending on status) end date for the study.) 4277 */ 4278 public Period getPeriod() { 4279 if (this.period == null) 4280 if (Configuration.errorOnAutoCreate()) 4281 throw new Error("Attempt to auto-create ResearchStudy.period"); 4282 else if (Configuration.doAutoCreate()) 4283 this.period = new Period(); // cc 4284 return this.period; 4285 } 4286 4287 public boolean hasPeriod() { 4288 return this.period != null && !this.period.isEmpty(); 4289 } 4290 4291 /** 4292 * @param value {@link #period} (Identifies the start date and the expected (or actual, depending on status) end date for the study.) 4293 */ 4294 public ResearchStudy setPeriod(Period value) { 4295 this.period = value; 4296 return this; 4297 } 4298 4299 /** 4300 * @return {@link #site} (A facility in which study activities are conducted.) 4301 */ 4302 public List<Reference> getSite() { 4303 if (this.site == null) 4304 this.site = new ArrayList<Reference>(); 4305 return this.site; 4306 } 4307 4308 /** 4309 * @return Returns a reference to <code>this</code> for easy method chaining 4310 */ 4311 public ResearchStudy setSite(List<Reference> theSite) { 4312 this.site = theSite; 4313 return this; 4314 } 4315 4316 public boolean hasSite() { 4317 if (this.site == null) 4318 return false; 4319 for (Reference item : this.site) 4320 if (!item.isEmpty()) 4321 return true; 4322 return false; 4323 } 4324 4325 public Reference addSite() { //3 4326 Reference t = new Reference(); 4327 if (this.site == null) 4328 this.site = new ArrayList<Reference>(); 4329 this.site.add(t); 4330 return t; 4331 } 4332 4333 public ResearchStudy addSite(Reference t) { //3 4334 if (t == null) 4335 return this; 4336 if (this.site == null) 4337 this.site = new ArrayList<Reference>(); 4338 this.site.add(t); 4339 return this; 4340 } 4341 4342 /** 4343 * @return The first repetition of repeating field {@link #site}, creating it if it does not already exist {3} 4344 */ 4345 public Reference getSiteFirstRep() { 4346 if (getSite().isEmpty()) { 4347 addSite(); 4348 } 4349 return getSite().get(0); 4350 } 4351 4352 /** 4353 * @return {@link #note} (Comments made about the study by the performer, subject or other participants.) 4354 */ 4355 public List<Annotation> getNote() { 4356 if (this.note == null) 4357 this.note = new ArrayList<Annotation>(); 4358 return this.note; 4359 } 4360 4361 /** 4362 * @return Returns a reference to <code>this</code> for easy method chaining 4363 */ 4364 public ResearchStudy setNote(List<Annotation> theNote) { 4365 this.note = theNote; 4366 return this; 4367 } 4368 4369 public boolean hasNote() { 4370 if (this.note == null) 4371 return false; 4372 for (Annotation item : this.note) 4373 if (!item.isEmpty()) 4374 return true; 4375 return false; 4376 } 4377 4378 public Annotation addNote() { //3 4379 Annotation t = new Annotation(); 4380 if (this.note == null) 4381 this.note = new ArrayList<Annotation>(); 4382 this.note.add(t); 4383 return t; 4384 } 4385 4386 public ResearchStudy addNote(Annotation t) { //3 4387 if (t == null) 4388 return this; 4389 if (this.note == null) 4390 this.note = new ArrayList<Annotation>(); 4391 this.note.add(t); 4392 return this; 4393 } 4394 4395 /** 4396 * @return The first repetition of repeating field {@link #note}, creating it if it does not already exist {3} 4397 */ 4398 public Annotation getNoteFirstRep() { 4399 if (getNote().isEmpty()) { 4400 addNote(); 4401 } 4402 return getNote().get(0); 4403 } 4404 4405 /** 4406 * @return {@link #classifier} (Additional grouping mechanism or categorization of a research study. Example: FDA regulated device, FDA regulated drug, MPG Paragraph 23b (a German legal requirement), IRB-exempt, etc. Implementation Note: do not use the classifier element to support existing semantics that are already supported thru explicit elements in the resource.) 4407 */ 4408 public List<CodeableConcept> getClassifier() { 4409 if (this.classifier == null) 4410 this.classifier = new ArrayList<CodeableConcept>(); 4411 return this.classifier; 4412 } 4413 4414 /** 4415 * @return Returns a reference to <code>this</code> for easy method chaining 4416 */ 4417 public ResearchStudy setClassifier(List<CodeableConcept> theClassifier) { 4418 this.classifier = theClassifier; 4419 return this; 4420 } 4421 4422 public boolean hasClassifier() { 4423 if (this.classifier == null) 4424 return false; 4425 for (CodeableConcept item : this.classifier) 4426 if (!item.isEmpty()) 4427 return true; 4428 return false; 4429 } 4430 4431 public CodeableConcept addClassifier() { //3 4432 CodeableConcept t = new CodeableConcept(); 4433 if (this.classifier == null) 4434 this.classifier = new ArrayList<CodeableConcept>(); 4435 this.classifier.add(t); 4436 return t; 4437 } 4438 4439 public ResearchStudy addClassifier(CodeableConcept t) { //3 4440 if (t == null) 4441 return this; 4442 if (this.classifier == null) 4443 this.classifier = new ArrayList<CodeableConcept>(); 4444 this.classifier.add(t); 4445 return this; 4446 } 4447 4448 /** 4449 * @return The first repetition of repeating field {@link #classifier}, creating it if it does not already exist {3} 4450 */ 4451 public CodeableConcept getClassifierFirstRep() { 4452 if (getClassifier().isEmpty()) { 4453 addClassifier(); 4454 } 4455 return getClassifier().get(0); 4456 } 4457 4458 /** 4459 * @return {@link #associatedParty} (Sponsors, collaborators, and other parties.) 4460 */ 4461 public List<ResearchStudyAssociatedPartyComponent> getAssociatedParty() { 4462 if (this.associatedParty == null) 4463 this.associatedParty = new ArrayList<ResearchStudyAssociatedPartyComponent>(); 4464 return this.associatedParty; 4465 } 4466 4467 /** 4468 * @return Returns a reference to <code>this</code> for easy method chaining 4469 */ 4470 public ResearchStudy setAssociatedParty(List<ResearchStudyAssociatedPartyComponent> theAssociatedParty) { 4471 this.associatedParty = theAssociatedParty; 4472 return this; 4473 } 4474 4475 public boolean hasAssociatedParty() { 4476 if (this.associatedParty == null) 4477 return false; 4478 for (ResearchStudyAssociatedPartyComponent item : this.associatedParty) 4479 if (!item.isEmpty()) 4480 return true; 4481 return false; 4482 } 4483 4484 public ResearchStudyAssociatedPartyComponent addAssociatedParty() { //3 4485 ResearchStudyAssociatedPartyComponent t = new ResearchStudyAssociatedPartyComponent(); 4486 if (this.associatedParty == null) 4487 this.associatedParty = new ArrayList<ResearchStudyAssociatedPartyComponent>(); 4488 this.associatedParty.add(t); 4489 return t; 4490 } 4491 4492 public ResearchStudy addAssociatedParty(ResearchStudyAssociatedPartyComponent t) { //3 4493 if (t == null) 4494 return this; 4495 if (this.associatedParty == null) 4496 this.associatedParty = new ArrayList<ResearchStudyAssociatedPartyComponent>(); 4497 this.associatedParty.add(t); 4498 return this; 4499 } 4500 4501 /** 4502 * @return The first repetition of repeating field {@link #associatedParty}, creating it if it does not already exist {3} 4503 */ 4504 public ResearchStudyAssociatedPartyComponent getAssociatedPartyFirstRep() { 4505 if (getAssociatedParty().isEmpty()) { 4506 addAssociatedParty(); 4507 } 4508 return getAssociatedParty().get(0); 4509 } 4510 4511 /** 4512 * @return {@link #progressStatus} (Status of study with time for that status.) 4513 */ 4514 public List<ResearchStudyProgressStatusComponent> getProgressStatus() { 4515 if (this.progressStatus == null) 4516 this.progressStatus = new ArrayList<ResearchStudyProgressStatusComponent>(); 4517 return this.progressStatus; 4518 } 4519 4520 /** 4521 * @return Returns a reference to <code>this</code> for easy method chaining 4522 */ 4523 public ResearchStudy setProgressStatus(List<ResearchStudyProgressStatusComponent> theProgressStatus) { 4524 this.progressStatus = theProgressStatus; 4525 return this; 4526 } 4527 4528 public boolean hasProgressStatus() { 4529 if (this.progressStatus == null) 4530 return false; 4531 for (ResearchStudyProgressStatusComponent item : this.progressStatus) 4532 if (!item.isEmpty()) 4533 return true; 4534 return false; 4535 } 4536 4537 public ResearchStudyProgressStatusComponent addProgressStatus() { //3 4538 ResearchStudyProgressStatusComponent t = new ResearchStudyProgressStatusComponent(); 4539 if (this.progressStatus == null) 4540 this.progressStatus = new ArrayList<ResearchStudyProgressStatusComponent>(); 4541 this.progressStatus.add(t); 4542 return t; 4543 } 4544 4545 public ResearchStudy addProgressStatus(ResearchStudyProgressStatusComponent t) { //3 4546 if (t == null) 4547 return this; 4548 if (this.progressStatus == null) 4549 this.progressStatus = new ArrayList<ResearchStudyProgressStatusComponent>(); 4550 this.progressStatus.add(t); 4551 return this; 4552 } 4553 4554 /** 4555 * @return The first repetition of repeating field {@link #progressStatus}, creating it if it does not already exist {3} 4556 */ 4557 public ResearchStudyProgressStatusComponent getProgressStatusFirstRep() { 4558 if (getProgressStatus().isEmpty()) { 4559 addProgressStatus(); 4560 } 4561 return getProgressStatus().get(0); 4562 } 4563 4564 /** 4565 * @return {@link #whyStopped} (A description and/or code explaining the premature termination of the study.) 4566 */ 4567 public CodeableConcept getWhyStopped() { 4568 if (this.whyStopped == null) 4569 if (Configuration.errorOnAutoCreate()) 4570 throw new Error("Attempt to auto-create ResearchStudy.whyStopped"); 4571 else if (Configuration.doAutoCreate()) 4572 this.whyStopped = new CodeableConcept(); // cc 4573 return this.whyStopped; 4574 } 4575 4576 public boolean hasWhyStopped() { 4577 return this.whyStopped != null && !this.whyStopped.isEmpty(); 4578 } 4579 4580 /** 4581 * @param value {@link #whyStopped} (A description and/or code explaining the premature termination of the study.) 4582 */ 4583 public ResearchStudy setWhyStopped(CodeableConcept value) { 4584 this.whyStopped = value; 4585 return this; 4586 } 4587 4588 /** 4589 * @return {@link #recruitment} (Target or actual group of participants enrolled in study.) 4590 */ 4591 public ResearchStudyRecruitmentComponent getRecruitment() { 4592 if (this.recruitment == null) 4593 if (Configuration.errorOnAutoCreate()) 4594 throw new Error("Attempt to auto-create ResearchStudy.recruitment"); 4595 else if (Configuration.doAutoCreate()) 4596 this.recruitment = new ResearchStudyRecruitmentComponent(); // cc 4597 return this.recruitment; 4598 } 4599 4600 public boolean hasRecruitment() { 4601 return this.recruitment != null && !this.recruitment.isEmpty(); 4602 } 4603 4604 /** 4605 * @param value {@link #recruitment} (Target or actual group of participants enrolled in study.) 4606 */ 4607 public ResearchStudy setRecruitment(ResearchStudyRecruitmentComponent value) { 4608 this.recruitment = value; 4609 return this; 4610 } 4611 4612 /** 4613 * @return {@link #comparisonGroup} (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.) 4614 */ 4615 public List<ResearchStudyComparisonGroupComponent> getComparisonGroup() { 4616 if (this.comparisonGroup == null) 4617 this.comparisonGroup = new ArrayList<ResearchStudyComparisonGroupComponent>(); 4618 return this.comparisonGroup; 4619 } 4620 4621 /** 4622 * @return Returns a reference to <code>this</code> for easy method chaining 4623 */ 4624 public ResearchStudy setComparisonGroup(List<ResearchStudyComparisonGroupComponent> theComparisonGroup) { 4625 this.comparisonGroup = theComparisonGroup; 4626 return this; 4627 } 4628 4629 public boolean hasComparisonGroup() { 4630 if (this.comparisonGroup == null) 4631 return false; 4632 for (ResearchStudyComparisonGroupComponent item : this.comparisonGroup) 4633 if (!item.isEmpty()) 4634 return true; 4635 return false; 4636 } 4637 4638 public ResearchStudyComparisonGroupComponent addComparisonGroup() { //3 4639 ResearchStudyComparisonGroupComponent t = new ResearchStudyComparisonGroupComponent(); 4640 if (this.comparisonGroup == null) 4641 this.comparisonGroup = new ArrayList<ResearchStudyComparisonGroupComponent>(); 4642 this.comparisonGroup.add(t); 4643 return t; 4644 } 4645 4646 public ResearchStudy addComparisonGroup(ResearchStudyComparisonGroupComponent t) { //3 4647 if (t == null) 4648 return this; 4649 if (this.comparisonGroup == null) 4650 this.comparisonGroup = new ArrayList<ResearchStudyComparisonGroupComponent>(); 4651 this.comparisonGroup.add(t); 4652 return this; 4653 } 4654 4655 /** 4656 * @return The first repetition of repeating field {@link #comparisonGroup}, creating it if it does not already exist {3} 4657 */ 4658 public ResearchStudyComparisonGroupComponent getComparisonGroupFirstRep() { 4659 if (getComparisonGroup().isEmpty()) { 4660 addComparisonGroup(); 4661 } 4662 return getComparisonGroup().get(0); 4663 } 4664 4665 /** 4666 * @return {@link #objective} (A goal that the study is aiming to achieve in terms of a scientific question to be answered by the analysis of data collected during the study.) 4667 */ 4668 public List<ResearchStudyObjectiveComponent> getObjective() { 4669 if (this.objective == null) 4670 this.objective = new ArrayList<ResearchStudyObjectiveComponent>(); 4671 return this.objective; 4672 } 4673 4674 /** 4675 * @return Returns a reference to <code>this</code> for easy method chaining 4676 */ 4677 public ResearchStudy setObjective(List<ResearchStudyObjectiveComponent> theObjective) { 4678 this.objective = theObjective; 4679 return this; 4680 } 4681 4682 public boolean hasObjective() { 4683 if (this.objective == null) 4684 return false; 4685 for (ResearchStudyObjectiveComponent item : this.objective) 4686 if (!item.isEmpty()) 4687 return true; 4688 return false; 4689 } 4690 4691 public ResearchStudyObjectiveComponent addObjective() { //3 4692 ResearchStudyObjectiveComponent t = new ResearchStudyObjectiveComponent(); 4693 if (this.objective == null) 4694 this.objective = new ArrayList<ResearchStudyObjectiveComponent>(); 4695 this.objective.add(t); 4696 return t; 4697 } 4698 4699 public ResearchStudy addObjective(ResearchStudyObjectiveComponent t) { //3 4700 if (t == null) 4701 return this; 4702 if (this.objective == null) 4703 this.objective = new ArrayList<ResearchStudyObjectiveComponent>(); 4704 this.objective.add(t); 4705 return this; 4706 } 4707 4708 /** 4709 * @return The first repetition of repeating field {@link #objective}, creating it if it does not already exist {3} 4710 */ 4711 public ResearchStudyObjectiveComponent getObjectiveFirstRep() { 4712 if (getObjective().isEmpty()) { 4713 addObjective(); 4714 } 4715 return getObjective().get(0); 4716 } 4717 4718 /** 4719 * @return {@link #outcomeMeasure} (An outcome or planned variable to measure during the study.) 4720 */ 4721 public List<ResearchStudyOutcomeMeasureComponent> getOutcomeMeasure() { 4722 if (this.outcomeMeasure == null) 4723 this.outcomeMeasure = new ArrayList<ResearchStudyOutcomeMeasureComponent>(); 4724 return this.outcomeMeasure; 4725 } 4726 4727 /** 4728 * @return Returns a reference to <code>this</code> for easy method chaining 4729 */ 4730 public ResearchStudy setOutcomeMeasure(List<ResearchStudyOutcomeMeasureComponent> theOutcomeMeasure) { 4731 this.outcomeMeasure = theOutcomeMeasure; 4732 return this; 4733 } 4734 4735 public boolean hasOutcomeMeasure() { 4736 if (this.outcomeMeasure == null) 4737 return false; 4738 for (ResearchStudyOutcomeMeasureComponent item : this.outcomeMeasure) 4739 if (!item.isEmpty()) 4740 return true; 4741 return false; 4742 } 4743 4744 public ResearchStudyOutcomeMeasureComponent addOutcomeMeasure() { //3 4745 ResearchStudyOutcomeMeasureComponent t = new ResearchStudyOutcomeMeasureComponent(); 4746 if (this.outcomeMeasure == null) 4747 this.outcomeMeasure = new ArrayList<ResearchStudyOutcomeMeasureComponent>(); 4748 this.outcomeMeasure.add(t); 4749 return t; 4750 } 4751 4752 public ResearchStudy addOutcomeMeasure(ResearchStudyOutcomeMeasureComponent t) { //3 4753 if (t == null) 4754 return this; 4755 if (this.outcomeMeasure == null) 4756 this.outcomeMeasure = new ArrayList<ResearchStudyOutcomeMeasureComponent>(); 4757 this.outcomeMeasure.add(t); 4758 return this; 4759 } 4760 4761 /** 4762 * @return The first repetition of repeating field {@link #outcomeMeasure}, creating it if it does not already exist {3} 4763 */ 4764 public ResearchStudyOutcomeMeasureComponent getOutcomeMeasureFirstRep() { 4765 if (getOutcomeMeasure().isEmpty()) { 4766 addOutcomeMeasure(); 4767 } 4768 return getOutcomeMeasure().get(0); 4769 } 4770 4771 /** 4772 * @return {@link #result} (Link to one or more sets of results generated by the study. Could also link to a research registry holding the results such as ClinicalTrials.gov.) 4773 */ 4774 public List<Reference> getResult() { 4775 if (this.result == null) 4776 this.result = new ArrayList<Reference>(); 4777 return this.result; 4778 } 4779 4780 /** 4781 * @return Returns a reference to <code>this</code> for easy method chaining 4782 */ 4783 public ResearchStudy setResult(List<Reference> theResult) { 4784 this.result = theResult; 4785 return this; 4786 } 4787 4788 public boolean hasResult() { 4789 if (this.result == null) 4790 return false; 4791 for (Reference item : this.result) 4792 if (!item.isEmpty()) 4793 return true; 4794 return false; 4795 } 4796 4797 public Reference addResult() { //3 4798 Reference t = new Reference(); 4799 if (this.result == null) 4800 this.result = new ArrayList<Reference>(); 4801 this.result.add(t); 4802 return t; 4803 } 4804 4805 public ResearchStudy addResult(Reference t) { //3 4806 if (t == null) 4807 return this; 4808 if (this.result == null) 4809 this.result = new ArrayList<Reference>(); 4810 this.result.add(t); 4811 return this; 4812 } 4813 4814 /** 4815 * @return The first repetition of repeating field {@link #result}, creating it if it does not already exist {3} 4816 */ 4817 public Reference getResultFirstRep() { 4818 if (getResult().isEmpty()) { 4819 addResult(); 4820 } 4821 return getResult().get(0); 4822 } 4823 4824 /** 4825 * @return {@link #webLocation} (A general storage or archive location for the study. This may contain an assortment of content which is not specified in advance.) 4826 */ 4827 public List<ResearchStudyWebLocationComponent> getWebLocation() { 4828 if (this.webLocation == null) 4829 this.webLocation = new ArrayList<ResearchStudyWebLocationComponent>(); 4830 return this.webLocation; 4831 } 4832 4833 /** 4834 * @return Returns a reference to <code>this</code> for easy method chaining 4835 */ 4836 public ResearchStudy setWebLocation(List<ResearchStudyWebLocationComponent> theWebLocation) { 4837 this.webLocation = theWebLocation; 4838 return this; 4839 } 4840 4841 public boolean hasWebLocation() { 4842 if (this.webLocation == null) 4843 return false; 4844 for (ResearchStudyWebLocationComponent item : this.webLocation) 4845 if (!item.isEmpty()) 4846 return true; 4847 return false; 4848 } 4849 4850 public ResearchStudyWebLocationComponent addWebLocation() { //3 4851 ResearchStudyWebLocationComponent t = new ResearchStudyWebLocationComponent(); 4852 if (this.webLocation == null) 4853 this.webLocation = new ArrayList<ResearchStudyWebLocationComponent>(); 4854 this.webLocation.add(t); 4855 return t; 4856 } 4857 4858 public ResearchStudy addWebLocation(ResearchStudyWebLocationComponent t) { //3 4859 if (t == null) 4860 return this; 4861 if (this.webLocation == null) 4862 this.webLocation = new ArrayList<ResearchStudyWebLocationComponent>(); 4863 this.webLocation.add(t); 4864 return this; 4865 } 4866 4867 /** 4868 * @return The first repetition of repeating field {@link #webLocation}, creating it if it does not already exist {3} 4869 */ 4870 public ResearchStudyWebLocationComponent getWebLocationFirstRep() { 4871 if (getWebLocation().isEmpty()) { 4872 addWebLocation(); 4873 } 4874 return getWebLocation().get(0); 4875 } 4876 4877 protected void listChildren(List<Property> children) { 4878 super.listChildren(children); 4879 children.add(new Property("url", "uri", "Canonical identifier for this study resource, represented as a globally unique URI.", 0, 1, url)); 4880 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)); 4881 children.add(new Property("version", "string", "The business version for the study record.", 0, 1, version)); 4882 children.add(new Property("name", "string", "Name for this study (computer friendly).", 0, 1, name)); 4883 children.add(new Property("title", "string", "The human readable name of the research study.", 0, 1, title)); 4884 children.add(new Property("label", "", "Additional names for the study.", 0, java.lang.Integer.MAX_VALUE, label)); 4885 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)); 4886 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)); 4887 children.add(new Property("relatedArtifact", "RelatedArtifact", "Citations, references and other related documents.", 0, java.lang.Integer.MAX_VALUE, relatedArtifact)); 4888 children.add(new Property("date", "dateTime", "The date (and optionally time) when the ResearchStudy Resource was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the ResearchStudy Resource changes.", 0, 1, date)); 4889 children.add(new Property("status", "code", "The publication state of the resource (not of the study).", 0, 1, status)); 4890 children.add(new Property("primaryPurposeType", "CodeableConcept", "The type of study based upon the intent of the study activities. A classification of the intent of the study.", 0, 1, primaryPurposeType)); 4891 children.add(new Property("phase", "CodeableConcept", "The stage in the progression of a therapy from initial experimental use in humans in clinical trials to post-market evaluation.", 0, 1, phase)); 4892 children.add(new Property("studyDesign", "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, studyDesign)); 4893 children.add(new Property("focus", "", "The medication(s), food(s), therapy(ies), device(s) or other concerns or interventions that the study is seeking to gain more information about.", 0, java.lang.Integer.MAX_VALUE, focus)); 4894 children.add(new Property("condition", "CodeableConcept", "The condition that is the focus of the study. For example, In a study to examine risk factors for Lupus, might have as an inclusion criterion \"healthy volunteer\", but the target condition code would be a Lupus SNOMED code.", 0, java.lang.Integer.MAX_VALUE, condition)); 4895 children.add(new Property("keyword", "CodeableConcept", "Key terms to aid in searching for or filtering the study.", 0, java.lang.Integer.MAX_VALUE, keyword)); 4896 children.add(new Property("region", "CodeableConcept", "A country, state or other area where the study is taking place rather than its precise geographic location or address.", 0, java.lang.Integer.MAX_VALUE, region)); 4897 children.add(new Property("descriptionSummary", "markdown", "A brief text for explaining the study.", 0, 1, descriptionSummary)); 4898 children.add(new Property("description", "markdown", "A detailed and human-readable narrative of the study. E.g., study abstract.", 0, 1, description)); 4899 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)); 4900 children.add(new Property("site", "Reference(Location|ResearchStudy|Organization)", "A facility in which study activities are conducted.", 0, java.lang.Integer.MAX_VALUE, site)); 4901 children.add(new Property("note", "Annotation", "Comments made about the study by the performer, subject or other participants.", 0, java.lang.Integer.MAX_VALUE, note)); 4902 children.add(new Property("classifier", "CodeableConcept", "Additional grouping mechanism or categorization of a research study. Example: FDA regulated device, FDA regulated drug, MPG Paragraph 23b (a German legal requirement), IRB-exempt, etc. Implementation Note: do not use the classifier element to support existing semantics that are already supported thru explicit elements in the resource.", 0, java.lang.Integer.MAX_VALUE, classifier)); 4903 children.add(new Property("associatedParty", "", "Sponsors, collaborators, and other parties.", 0, java.lang.Integer.MAX_VALUE, associatedParty)); 4904 children.add(new Property("progressStatus", "", "Status of study with time for that status.", 0, java.lang.Integer.MAX_VALUE, progressStatus)); 4905 children.add(new Property("whyStopped", "CodeableConcept", "A description and/or code explaining the premature termination of the study.", 0, 1, whyStopped)); 4906 children.add(new Property("recruitment", "", "Target or actual group of participants enrolled in study.", 0, 1, recruitment)); 4907 children.add(new Property("comparisonGroup", "", "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, comparisonGroup)); 4908 children.add(new Property("objective", "", "A goal that the study is aiming to achieve in terms of a scientific question to be answered by the analysis of data collected during the study.", 0, java.lang.Integer.MAX_VALUE, objective)); 4909 children.add(new Property("outcomeMeasure", "", "An outcome or planned variable to measure during the study.", 0, java.lang.Integer.MAX_VALUE, outcomeMeasure)); 4910 children.add(new Property("result", "Reference(EvidenceReport|Citation|DiagnosticReport)", "Link to one or more sets of results generated by the study. Could also link to a research registry holding the results such as ClinicalTrials.gov.", 0, java.lang.Integer.MAX_VALUE, result)); 4911 children.add(new Property("webLocation", "", "A general storage or archive location for the study. This may contain an assortment of content which is not specified in advance.", 0, java.lang.Integer.MAX_VALUE, webLocation)); 4912 } 4913 4914 @Override 4915 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 4916 switch (_hash) { 4917 case 116079: /*url*/ return new Property("url", "uri", "Canonical identifier for this study resource, represented as a globally unique URI.", 0, 1, url); 4918 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); 4919 case 351608024: /*version*/ return new Property("version", "string", "The business version for the study record.", 0, 1, version); 4920 case 3373707: /*name*/ return new Property("name", "string", "Name for this study (computer friendly).", 0, 1, name); 4921 case 110371416: /*title*/ return new Property("title", "string", "The human readable name of the research study.", 0, 1, title); 4922 case 102727412: /*label*/ return new Property("label", "", "Additional names for the study.", 0, java.lang.Integer.MAX_VALUE, label); 4923 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); 4924 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); 4925 case 666807069: /*relatedArtifact*/ return new Property("relatedArtifact", "RelatedArtifact", "Citations, references and other related documents.", 0, java.lang.Integer.MAX_VALUE, relatedArtifact); 4926 case 3076014: /*date*/ return new Property("date", "dateTime", "The date (and optionally time) when the ResearchStudy Resource was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the ResearchStudy Resource changes.", 0, 1, date); 4927 case -892481550: /*status*/ return new Property("status", "code", "The publication state of the resource (not of the study).", 0, 1, status); 4928 case -2132842986: /*primaryPurposeType*/ return new Property("primaryPurposeType", "CodeableConcept", "The type of study based upon the intent of the study activities. A classification of the intent of the study.", 0, 1, primaryPurposeType); 4929 case 106629499: /*phase*/ return new Property("phase", "CodeableConcept", "The stage in the progression of a therapy from initial experimental use in humans in clinical trials to post-market evaluation.", 0, 1, phase); 4930 case 1709211879: /*studyDesign*/ return new Property("studyDesign", "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, studyDesign); 4931 case 97604824: /*focus*/ return new Property("focus", "", "The medication(s), food(s), therapy(ies), device(s) or other concerns or interventions that the study is seeking to gain more information about.", 0, java.lang.Integer.MAX_VALUE, focus); 4932 case -861311717: /*condition*/ return new Property("condition", "CodeableConcept", "The condition that is the focus of the study. For example, In a study to examine risk factors for Lupus, might have as an inclusion criterion \"healthy volunteer\", but the target condition code would be a Lupus SNOMED code.", 0, java.lang.Integer.MAX_VALUE, condition); 4933 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); 4934 case -934795532: /*region*/ return new Property("region", "CodeableConcept", "A country, state or other area where the study is taking place rather than its precise geographic location or address.", 0, java.lang.Integer.MAX_VALUE, region); 4935 case 21530634: /*descriptionSummary*/ return new Property("descriptionSummary", "markdown", "A brief text for explaining the study.", 0, 1, descriptionSummary); 4936 case -1724546052: /*description*/ return new Property("description", "markdown", "A detailed and human-readable narrative of the study. E.g., study abstract.", 0, 1, description); 4937 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); 4938 case 3530567: /*site*/ return new Property("site", "Reference(Location|ResearchStudy|Organization)", "A facility in which study activities are conducted.", 0, java.lang.Integer.MAX_VALUE, site); 4939 case 3387378: /*note*/ return new Property("note", "Annotation", "Comments made about the study by the performer, subject or other participants.", 0, java.lang.Integer.MAX_VALUE, note); 4940 case -281470431: /*classifier*/ return new Property("classifier", "CodeableConcept", "Additional grouping mechanism or categorization of a research study. Example: FDA regulated device, FDA regulated drug, MPG Paragraph 23b (a German legal requirement), IRB-exempt, etc. Implementation Note: do not use the classifier element to support existing semantics that are already supported thru explicit elements in the resource.", 0, java.lang.Integer.MAX_VALUE, classifier); 4941 case -1841460864: /*associatedParty*/ return new Property("associatedParty", "", "Sponsors, collaborators, and other parties.", 0, java.lang.Integer.MAX_VALUE, associatedParty); 4942 case -1897502593: /*progressStatus*/ return new Property("progressStatus", "", "Status of study with time for that status.", 0, java.lang.Integer.MAX_VALUE, progressStatus); 4943 case -699986715: /*whyStopped*/ return new Property("whyStopped", "CodeableConcept", "A description and/or code explaining the premature termination of the study.", 0, 1, whyStopped); 4944 case 780783004: /*recruitment*/ return new Property("recruitment", "", "Target or actual group of participants enrolled in study.", 0, 1, recruitment); 4945 case -138266634: /*comparisonGroup*/ return new Property("comparisonGroup", "", "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, comparisonGroup); 4946 case -1489585863: /*objective*/ return new Property("objective", "", "A goal that the study is aiming to achieve in terms of a scientific question to be answered by the analysis of data collected during the study.", 0, java.lang.Integer.MAX_VALUE, objective); 4947 case -1510689364: /*outcomeMeasure*/ return new Property("outcomeMeasure", "", "An outcome or planned variable to measure during the study.", 0, java.lang.Integer.MAX_VALUE, outcomeMeasure); 4948 case -934426595: /*result*/ return new Property("result", "Reference(EvidenceReport|Citation|DiagnosticReport)", "Link to one or more sets of results generated by the study. Could also link to a research registry holding the results such as ClinicalTrials.gov.", 0, java.lang.Integer.MAX_VALUE, result); 4949 case -828032215: /*webLocation*/ return new Property("webLocation", "", "A general storage or archive location for the study. This may contain an assortment of content which is not specified in advance.", 0, java.lang.Integer.MAX_VALUE, webLocation); 4950 default: return super.getNamedProperty(_hash, _name, _checkValid); 4951 } 4952 4953 } 4954 4955 @Override 4956 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 4957 switch (hash) { 4958 case 116079: /*url*/ return this.url == null ? new Base[0] : new Base[] {this.url}; // UriType 4959 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 4960 case 351608024: /*version*/ return this.version == null ? new Base[0] : new Base[] {this.version}; // StringType 4961 case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType 4962 case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType 4963 case 102727412: /*label*/ return this.label == null ? new Base[0] : this.label.toArray(new Base[this.label.size()]); // ResearchStudyLabelComponent 4964 case -989163880: /*protocol*/ return this.protocol == null ? new Base[0] : this.protocol.toArray(new Base[this.protocol.size()]); // Reference 4965 case -995410646: /*partOf*/ return this.partOf == null ? new Base[0] : this.partOf.toArray(new Base[this.partOf.size()]); // Reference 4966 case 666807069: /*relatedArtifact*/ return this.relatedArtifact == null ? new Base[0] : this.relatedArtifact.toArray(new Base[this.relatedArtifact.size()]); // RelatedArtifact 4967 case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType 4968 case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<PublicationStatus> 4969 case -2132842986: /*primaryPurposeType*/ return this.primaryPurposeType == null ? new Base[0] : new Base[] {this.primaryPurposeType}; // CodeableConcept 4970 case 106629499: /*phase*/ return this.phase == null ? new Base[0] : new Base[] {this.phase}; // CodeableConcept 4971 case 1709211879: /*studyDesign*/ return this.studyDesign == null ? new Base[0] : this.studyDesign.toArray(new Base[this.studyDesign.size()]); // CodeableConcept 4972 case 97604824: /*focus*/ return this.focus == null ? new Base[0] : this.focus.toArray(new Base[this.focus.size()]); // ResearchStudyFocusComponent 4973 case -861311717: /*condition*/ return this.condition == null ? new Base[0] : this.condition.toArray(new Base[this.condition.size()]); // CodeableConcept 4974 case -814408215: /*keyword*/ return this.keyword == null ? new Base[0] : this.keyword.toArray(new Base[this.keyword.size()]); // CodeableConcept 4975 case -934795532: /*region*/ return this.region == null ? new Base[0] : this.region.toArray(new Base[this.region.size()]); // CodeableConcept 4976 case 21530634: /*descriptionSummary*/ return this.descriptionSummary == null ? new Base[0] : new Base[] {this.descriptionSummary}; // MarkdownType 4977 case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType 4978 case -991726143: /*period*/ return this.period == null ? new Base[0] : new Base[] {this.period}; // Period 4979 case 3530567: /*site*/ return this.site == null ? new Base[0] : this.site.toArray(new Base[this.site.size()]); // Reference 4980 case 3387378: /*note*/ return this.note == null ? new Base[0] : this.note.toArray(new Base[this.note.size()]); // Annotation 4981 case -281470431: /*classifier*/ return this.classifier == null ? new Base[0] : this.classifier.toArray(new Base[this.classifier.size()]); // CodeableConcept 4982 case -1841460864: /*associatedParty*/ return this.associatedParty == null ? new Base[0] : this.associatedParty.toArray(new Base[this.associatedParty.size()]); // ResearchStudyAssociatedPartyComponent 4983 case -1897502593: /*progressStatus*/ return this.progressStatus == null ? new Base[0] : this.progressStatus.toArray(new Base[this.progressStatus.size()]); // ResearchStudyProgressStatusComponent 4984 case -699986715: /*whyStopped*/ return this.whyStopped == null ? new Base[0] : new Base[] {this.whyStopped}; // CodeableConcept 4985 case 780783004: /*recruitment*/ return this.recruitment == null ? new Base[0] : new Base[] {this.recruitment}; // ResearchStudyRecruitmentComponent 4986 case -138266634: /*comparisonGroup*/ return this.comparisonGroup == null ? new Base[0] : this.comparisonGroup.toArray(new Base[this.comparisonGroup.size()]); // ResearchStudyComparisonGroupComponent 4987 case -1489585863: /*objective*/ return this.objective == null ? new Base[0] : this.objective.toArray(new Base[this.objective.size()]); // ResearchStudyObjectiveComponent 4988 case -1510689364: /*outcomeMeasure*/ return this.outcomeMeasure == null ? new Base[0] : this.outcomeMeasure.toArray(new Base[this.outcomeMeasure.size()]); // ResearchStudyOutcomeMeasureComponent 4989 case -934426595: /*result*/ return this.result == null ? new Base[0] : this.result.toArray(new Base[this.result.size()]); // Reference 4990 case -828032215: /*webLocation*/ return this.webLocation == null ? new Base[0] : this.webLocation.toArray(new Base[this.webLocation.size()]); // ResearchStudyWebLocationComponent 4991 default: return super.getProperty(hash, name, checkValid); 4992 } 4993 4994 } 4995 4996 @Override 4997 public Base setProperty(int hash, String name, Base value) throws FHIRException { 4998 switch (hash) { 4999 case 116079: // url 5000 this.url = TypeConvertor.castToUri(value); // UriType 5001 return value; 5002 case -1618432855: // identifier 5003 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier 5004 return value; 5005 case 351608024: // version 5006 this.version = TypeConvertor.castToString(value); // StringType 5007 return value; 5008 case 3373707: // name 5009 this.name = TypeConvertor.castToString(value); // StringType 5010 return value; 5011 case 110371416: // title 5012 this.title = TypeConvertor.castToString(value); // StringType 5013 return value; 5014 case 102727412: // label 5015 this.getLabel().add((ResearchStudyLabelComponent) value); // ResearchStudyLabelComponent 5016 return value; 5017 case -989163880: // protocol 5018 this.getProtocol().add(TypeConvertor.castToReference(value)); // Reference 5019 return value; 5020 case -995410646: // partOf 5021 this.getPartOf().add(TypeConvertor.castToReference(value)); // Reference 5022 return value; 5023 case 666807069: // relatedArtifact 5024 this.getRelatedArtifact().add(TypeConvertor.castToRelatedArtifact(value)); // RelatedArtifact 5025 return value; 5026 case 3076014: // date 5027 this.date = TypeConvertor.castToDateTime(value); // DateTimeType 5028 return value; 5029 case -892481550: // status 5030 value = new PublicationStatusEnumFactory().fromType(TypeConvertor.castToCode(value)); 5031 this.status = (Enumeration) value; // Enumeration<PublicationStatus> 5032 return value; 5033 case -2132842986: // primaryPurposeType 5034 this.primaryPurposeType = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 5035 return value; 5036 case 106629499: // phase 5037 this.phase = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 5038 return value; 5039 case 1709211879: // studyDesign 5040 this.getStudyDesign().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 5041 return value; 5042 case 97604824: // focus 5043 this.getFocus().add((ResearchStudyFocusComponent) value); // ResearchStudyFocusComponent 5044 return value; 5045 case -861311717: // condition 5046 this.getCondition().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 5047 return value; 5048 case -814408215: // keyword 5049 this.getKeyword().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 5050 return value; 5051 case -934795532: // region 5052 this.getRegion().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 5053 return value; 5054 case 21530634: // descriptionSummary 5055 this.descriptionSummary = TypeConvertor.castToMarkdown(value); // MarkdownType 5056 return value; 5057 case -1724546052: // description 5058 this.description = TypeConvertor.castToMarkdown(value); // MarkdownType 5059 return value; 5060 case -991726143: // period 5061 this.period = TypeConvertor.castToPeriod(value); // Period 5062 return value; 5063 case 3530567: // site 5064 this.getSite().add(TypeConvertor.castToReference(value)); // Reference 5065 return value; 5066 case 3387378: // note 5067 this.getNote().add(TypeConvertor.castToAnnotation(value)); // Annotation 5068 return value; 5069 case -281470431: // classifier 5070 this.getClassifier().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 5071 return value; 5072 case -1841460864: // associatedParty 5073 this.getAssociatedParty().add((ResearchStudyAssociatedPartyComponent) value); // ResearchStudyAssociatedPartyComponent 5074 return value; 5075 case -1897502593: // progressStatus 5076 this.getProgressStatus().add((ResearchStudyProgressStatusComponent) value); // ResearchStudyProgressStatusComponent 5077 return value; 5078 case -699986715: // whyStopped 5079 this.whyStopped = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 5080 return value; 5081 case 780783004: // recruitment 5082 this.recruitment = (ResearchStudyRecruitmentComponent) value; // ResearchStudyRecruitmentComponent 5083 return value; 5084 case -138266634: // comparisonGroup 5085 this.getComparisonGroup().add((ResearchStudyComparisonGroupComponent) value); // ResearchStudyComparisonGroupComponent 5086 return value; 5087 case -1489585863: // objective 5088 this.getObjective().add((ResearchStudyObjectiveComponent) value); // ResearchStudyObjectiveComponent 5089 return value; 5090 case -1510689364: // outcomeMeasure 5091 this.getOutcomeMeasure().add((ResearchStudyOutcomeMeasureComponent) value); // ResearchStudyOutcomeMeasureComponent 5092 return value; 5093 case -934426595: // result 5094 this.getResult().add(TypeConvertor.castToReference(value)); // Reference 5095 return value; 5096 case -828032215: // webLocation 5097 this.getWebLocation().add((ResearchStudyWebLocationComponent) value); // ResearchStudyWebLocationComponent 5098 return value; 5099 default: return super.setProperty(hash, name, value); 5100 } 5101 5102 } 5103 5104 @Override 5105 public Base setProperty(String name, Base value) throws FHIRException { 5106 if (name.equals("url")) { 5107 this.url = TypeConvertor.castToUri(value); // UriType 5108 } else if (name.equals("identifier")) { 5109 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); 5110 } else if (name.equals("version")) { 5111 this.version = TypeConvertor.castToString(value); // StringType 5112 } else if (name.equals("name")) { 5113 this.name = TypeConvertor.castToString(value); // StringType 5114 } else if (name.equals("title")) { 5115 this.title = TypeConvertor.castToString(value); // StringType 5116 } else if (name.equals("label")) { 5117 this.getLabel().add((ResearchStudyLabelComponent) value); 5118 } else if (name.equals("protocol")) { 5119 this.getProtocol().add(TypeConvertor.castToReference(value)); 5120 } else if (name.equals("partOf")) { 5121 this.getPartOf().add(TypeConvertor.castToReference(value)); 5122 } else if (name.equals("relatedArtifact")) { 5123 this.getRelatedArtifact().add(TypeConvertor.castToRelatedArtifact(value)); 5124 } else if (name.equals("date")) { 5125 this.date = TypeConvertor.castToDateTime(value); // DateTimeType 5126 } else if (name.equals("status")) { 5127 value = new PublicationStatusEnumFactory().fromType(TypeConvertor.castToCode(value)); 5128 this.status = (Enumeration) value; // Enumeration<PublicationStatus> 5129 } else if (name.equals("primaryPurposeType")) { 5130 this.primaryPurposeType = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 5131 } else if (name.equals("phase")) { 5132 this.phase = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 5133 } else if (name.equals("studyDesign")) { 5134 this.getStudyDesign().add(TypeConvertor.castToCodeableConcept(value)); 5135 } else if (name.equals("focus")) { 5136 this.getFocus().add((ResearchStudyFocusComponent) value); 5137 } else if (name.equals("condition")) { 5138 this.getCondition().add(TypeConvertor.castToCodeableConcept(value)); 5139 } else if (name.equals("keyword")) { 5140 this.getKeyword().add(TypeConvertor.castToCodeableConcept(value)); 5141 } else if (name.equals("region")) { 5142 this.getRegion().add(TypeConvertor.castToCodeableConcept(value)); 5143 } else if (name.equals("descriptionSummary")) { 5144 this.descriptionSummary = TypeConvertor.castToMarkdown(value); // MarkdownType 5145 } else if (name.equals("description")) { 5146 this.description = TypeConvertor.castToMarkdown(value); // MarkdownType 5147 } else if (name.equals("period")) { 5148 this.period = TypeConvertor.castToPeriod(value); // Period 5149 } else if (name.equals("site")) { 5150 this.getSite().add(TypeConvertor.castToReference(value)); 5151 } else if (name.equals("note")) { 5152 this.getNote().add(TypeConvertor.castToAnnotation(value)); 5153 } else if (name.equals("classifier")) { 5154 this.getClassifier().add(TypeConvertor.castToCodeableConcept(value)); 5155 } else if (name.equals("associatedParty")) { 5156 this.getAssociatedParty().add((ResearchStudyAssociatedPartyComponent) value); 5157 } else if (name.equals("progressStatus")) { 5158 this.getProgressStatus().add((ResearchStudyProgressStatusComponent) value); 5159 } else if (name.equals("whyStopped")) { 5160 this.whyStopped = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 5161 } else if (name.equals("recruitment")) { 5162 this.recruitment = (ResearchStudyRecruitmentComponent) value; // ResearchStudyRecruitmentComponent 5163 } else if (name.equals("comparisonGroup")) { 5164 this.getComparisonGroup().add((ResearchStudyComparisonGroupComponent) value); 5165 } else if (name.equals("objective")) { 5166 this.getObjective().add((ResearchStudyObjectiveComponent) value); 5167 } else if (name.equals("outcomeMeasure")) { 5168 this.getOutcomeMeasure().add((ResearchStudyOutcomeMeasureComponent) value); 5169 } else if (name.equals("result")) { 5170 this.getResult().add(TypeConvertor.castToReference(value)); 5171 } else if (name.equals("webLocation")) { 5172 this.getWebLocation().add((ResearchStudyWebLocationComponent) value); 5173 } else 5174 return super.setProperty(name, value); 5175 return value; 5176 } 5177 5178 @Override 5179 public Base makeProperty(int hash, String name) throws FHIRException { 5180 switch (hash) { 5181 case 116079: return getUrlElement(); 5182 case -1618432855: return addIdentifier(); 5183 case 351608024: return getVersionElement(); 5184 case 3373707: return getNameElement(); 5185 case 110371416: return getTitleElement(); 5186 case 102727412: return addLabel(); 5187 case -989163880: return addProtocol(); 5188 case -995410646: return addPartOf(); 5189 case 666807069: return addRelatedArtifact(); 5190 case 3076014: return getDateElement(); 5191 case -892481550: return getStatusElement(); 5192 case -2132842986: return getPrimaryPurposeType(); 5193 case 106629499: return getPhase(); 5194 case 1709211879: return addStudyDesign(); 5195 case 97604824: return addFocus(); 5196 case -861311717: return addCondition(); 5197 case -814408215: return addKeyword(); 5198 case -934795532: return addRegion(); 5199 case 21530634: return getDescriptionSummaryElement(); 5200 case -1724546052: return getDescriptionElement(); 5201 case -991726143: return getPeriod(); 5202 case 3530567: return addSite(); 5203 case 3387378: return addNote(); 5204 case -281470431: return addClassifier(); 5205 case -1841460864: return addAssociatedParty(); 5206 case -1897502593: return addProgressStatus(); 5207 case -699986715: return getWhyStopped(); 5208 case 780783004: return getRecruitment(); 5209 case -138266634: return addComparisonGroup(); 5210 case -1489585863: return addObjective(); 5211 case -1510689364: return addOutcomeMeasure(); 5212 case -934426595: return addResult(); 5213 case -828032215: return addWebLocation(); 5214 default: return super.makeProperty(hash, name); 5215 } 5216 5217 } 5218 5219 @Override 5220 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 5221 switch (hash) { 5222 case 116079: /*url*/ return new String[] {"uri"}; 5223 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 5224 case 351608024: /*version*/ return new String[] {"string"}; 5225 case 3373707: /*name*/ return new String[] {"string"}; 5226 case 110371416: /*title*/ return new String[] {"string"}; 5227 case 102727412: /*label*/ return new String[] {}; 5228 case -989163880: /*protocol*/ return new String[] {"Reference"}; 5229 case -995410646: /*partOf*/ return new String[] {"Reference"}; 5230 case 666807069: /*relatedArtifact*/ return new String[] {"RelatedArtifact"}; 5231 case 3076014: /*date*/ return new String[] {"dateTime"}; 5232 case -892481550: /*status*/ return new String[] {"code"}; 5233 case -2132842986: /*primaryPurposeType*/ return new String[] {"CodeableConcept"}; 5234 case 106629499: /*phase*/ return new String[] {"CodeableConcept"}; 5235 case 1709211879: /*studyDesign*/ return new String[] {"CodeableConcept"}; 5236 case 97604824: /*focus*/ return new String[] {}; 5237 case -861311717: /*condition*/ return new String[] {"CodeableConcept"}; 5238 case -814408215: /*keyword*/ return new String[] {"CodeableConcept"}; 5239 case -934795532: /*region*/ return new String[] {"CodeableConcept"}; 5240 case 21530634: /*descriptionSummary*/ return new String[] {"markdown"}; 5241 case -1724546052: /*description*/ return new String[] {"markdown"}; 5242 case -991726143: /*period*/ return new String[] {"Period"}; 5243 case 3530567: /*site*/ return new String[] {"Reference"}; 5244 case 3387378: /*note*/ return new String[] {"Annotation"}; 5245 case -281470431: /*classifier*/ return new String[] {"CodeableConcept"}; 5246 case -1841460864: /*associatedParty*/ return new String[] {}; 5247 case -1897502593: /*progressStatus*/ return new String[] {}; 5248 case -699986715: /*whyStopped*/ return new String[] {"CodeableConcept"}; 5249 case 780783004: /*recruitment*/ return new String[] {}; 5250 case -138266634: /*comparisonGroup*/ return new String[] {}; 5251 case -1489585863: /*objective*/ return new String[] {}; 5252 case -1510689364: /*outcomeMeasure*/ return new String[] {}; 5253 case -934426595: /*result*/ return new String[] {"Reference"}; 5254 case -828032215: /*webLocation*/ return new String[] {}; 5255 default: return super.getTypesForProperty(hash, name); 5256 } 5257 5258 } 5259 5260 @Override 5261 public Base addChild(String name) throws FHIRException { 5262 if (name.equals("url")) { 5263 throw new FHIRException("Cannot call addChild on a primitive type ResearchStudy.url"); 5264 } 5265 else if (name.equals("identifier")) { 5266 return addIdentifier(); 5267 } 5268 else if (name.equals("version")) { 5269 throw new FHIRException("Cannot call addChild on a primitive type ResearchStudy.version"); 5270 } 5271 else if (name.equals("name")) { 5272 throw new FHIRException("Cannot call addChild on a primitive type ResearchStudy.name"); 5273 } 5274 else if (name.equals("title")) { 5275 throw new FHIRException("Cannot call addChild on a primitive type ResearchStudy.title"); 5276 } 5277 else if (name.equals("label")) { 5278 return addLabel(); 5279 } 5280 else if (name.equals("protocol")) { 5281 return addProtocol(); 5282 } 5283 else if (name.equals("partOf")) { 5284 return addPartOf(); 5285 } 5286 else if (name.equals("relatedArtifact")) { 5287 return addRelatedArtifact(); 5288 } 5289 else if (name.equals("date")) { 5290 throw new FHIRException("Cannot call addChild on a primitive type ResearchStudy.date"); 5291 } 5292 else if (name.equals("status")) { 5293 throw new FHIRException("Cannot call addChild on a primitive type ResearchStudy.status"); 5294 } 5295 else if (name.equals("primaryPurposeType")) { 5296 this.primaryPurposeType = new CodeableConcept(); 5297 return this.primaryPurposeType; 5298 } 5299 else if (name.equals("phase")) { 5300 this.phase = new CodeableConcept(); 5301 return this.phase; 5302 } 5303 else if (name.equals("studyDesign")) { 5304 return addStudyDesign(); 5305 } 5306 else if (name.equals("focus")) { 5307 return addFocus(); 5308 } 5309 else if (name.equals("condition")) { 5310 return addCondition(); 5311 } 5312 else if (name.equals("keyword")) { 5313 return addKeyword(); 5314 } 5315 else if (name.equals("region")) { 5316 return addRegion(); 5317 } 5318 else if (name.equals("descriptionSummary")) { 5319 throw new FHIRException("Cannot call addChild on a primitive type ResearchStudy.descriptionSummary"); 5320 } 5321 else if (name.equals("description")) { 5322 throw new FHIRException("Cannot call addChild on a primitive type ResearchStudy.description"); 5323 } 5324 else if (name.equals("period")) { 5325 this.period = new Period(); 5326 return this.period; 5327 } 5328 else if (name.equals("site")) { 5329 return addSite(); 5330 } 5331 else if (name.equals("note")) { 5332 return addNote(); 5333 } 5334 else if (name.equals("classifier")) { 5335 return addClassifier(); 5336 } 5337 else if (name.equals("associatedParty")) { 5338 return addAssociatedParty(); 5339 } 5340 else if (name.equals("progressStatus")) { 5341 return addProgressStatus(); 5342 } 5343 else if (name.equals("whyStopped")) { 5344 this.whyStopped = new CodeableConcept(); 5345 return this.whyStopped; 5346 } 5347 else if (name.equals("recruitment")) { 5348 this.recruitment = new ResearchStudyRecruitmentComponent(); 5349 return this.recruitment; 5350 } 5351 else if (name.equals("comparisonGroup")) { 5352 return addComparisonGroup(); 5353 } 5354 else if (name.equals("objective")) { 5355 return addObjective(); 5356 } 5357 else if (name.equals("outcomeMeasure")) { 5358 return addOutcomeMeasure(); 5359 } 5360 else if (name.equals("result")) { 5361 return addResult(); 5362 } 5363 else if (name.equals("webLocation")) { 5364 return addWebLocation(); 5365 } 5366 else 5367 return super.addChild(name); 5368 } 5369 5370 public String fhirType() { 5371 return "ResearchStudy"; 5372 5373 } 5374 5375 public ResearchStudy copy() { 5376 ResearchStudy dst = new ResearchStudy(); 5377 copyValues(dst); 5378 return dst; 5379 } 5380 5381 public void copyValues(ResearchStudy dst) { 5382 super.copyValues(dst); 5383 dst.url = url == null ? null : url.copy(); 5384 if (identifier != null) { 5385 dst.identifier = new ArrayList<Identifier>(); 5386 for (Identifier i : identifier) 5387 dst.identifier.add(i.copy()); 5388 }; 5389 dst.version = version == null ? null : version.copy(); 5390 dst.name = name == null ? null : name.copy(); 5391 dst.title = title == null ? null : title.copy(); 5392 if (label != null) { 5393 dst.label = new ArrayList<ResearchStudyLabelComponent>(); 5394 for (ResearchStudyLabelComponent i : label) 5395 dst.label.add(i.copy()); 5396 }; 5397 if (protocol != null) { 5398 dst.protocol = new ArrayList<Reference>(); 5399 for (Reference i : protocol) 5400 dst.protocol.add(i.copy()); 5401 }; 5402 if (partOf != null) { 5403 dst.partOf = new ArrayList<Reference>(); 5404 for (Reference i : partOf) 5405 dst.partOf.add(i.copy()); 5406 }; 5407 if (relatedArtifact != null) { 5408 dst.relatedArtifact = new ArrayList<RelatedArtifact>(); 5409 for (RelatedArtifact i : relatedArtifact) 5410 dst.relatedArtifact.add(i.copy()); 5411 }; 5412 dst.date = date == null ? null : date.copy(); 5413 dst.status = status == null ? null : status.copy(); 5414 dst.primaryPurposeType = primaryPurposeType == null ? null : primaryPurposeType.copy(); 5415 dst.phase = phase == null ? null : phase.copy(); 5416 if (studyDesign != null) { 5417 dst.studyDesign = new ArrayList<CodeableConcept>(); 5418 for (CodeableConcept i : studyDesign) 5419 dst.studyDesign.add(i.copy()); 5420 }; 5421 if (focus != null) { 5422 dst.focus = new ArrayList<ResearchStudyFocusComponent>(); 5423 for (ResearchStudyFocusComponent i : focus) 5424 dst.focus.add(i.copy()); 5425 }; 5426 if (condition != null) { 5427 dst.condition = new ArrayList<CodeableConcept>(); 5428 for (CodeableConcept i : condition) 5429 dst.condition.add(i.copy()); 5430 }; 5431 if (keyword != null) { 5432 dst.keyword = new ArrayList<CodeableConcept>(); 5433 for (CodeableConcept i : keyword) 5434 dst.keyword.add(i.copy()); 5435 }; 5436 if (region != null) { 5437 dst.region = new ArrayList<CodeableConcept>(); 5438 for (CodeableConcept i : region) 5439 dst.region.add(i.copy()); 5440 }; 5441 dst.descriptionSummary = descriptionSummary == null ? null : descriptionSummary.copy(); 5442 dst.description = description == null ? null : description.copy(); 5443 dst.period = period == null ? null : period.copy(); 5444 if (site != null) { 5445 dst.site = new ArrayList<Reference>(); 5446 for (Reference i : site) 5447 dst.site.add(i.copy()); 5448 }; 5449 if (note != null) { 5450 dst.note = new ArrayList<Annotation>(); 5451 for (Annotation i : note) 5452 dst.note.add(i.copy()); 5453 }; 5454 if (classifier != null) { 5455 dst.classifier = new ArrayList<CodeableConcept>(); 5456 for (CodeableConcept i : classifier) 5457 dst.classifier.add(i.copy()); 5458 }; 5459 if (associatedParty != null) { 5460 dst.associatedParty = new ArrayList<ResearchStudyAssociatedPartyComponent>(); 5461 for (ResearchStudyAssociatedPartyComponent i : associatedParty) 5462 dst.associatedParty.add(i.copy()); 5463 }; 5464 if (progressStatus != null) { 5465 dst.progressStatus = new ArrayList<ResearchStudyProgressStatusComponent>(); 5466 for (ResearchStudyProgressStatusComponent i : progressStatus) 5467 dst.progressStatus.add(i.copy()); 5468 }; 5469 dst.whyStopped = whyStopped == null ? null : whyStopped.copy(); 5470 dst.recruitment = recruitment == null ? null : recruitment.copy(); 5471 if (comparisonGroup != null) { 5472 dst.comparisonGroup = new ArrayList<ResearchStudyComparisonGroupComponent>(); 5473 for (ResearchStudyComparisonGroupComponent i : comparisonGroup) 5474 dst.comparisonGroup.add(i.copy()); 5475 }; 5476 if (objective != null) { 5477 dst.objective = new ArrayList<ResearchStudyObjectiveComponent>(); 5478 for (ResearchStudyObjectiveComponent i : objective) 5479 dst.objective.add(i.copy()); 5480 }; 5481 if (outcomeMeasure != null) { 5482 dst.outcomeMeasure = new ArrayList<ResearchStudyOutcomeMeasureComponent>(); 5483 for (ResearchStudyOutcomeMeasureComponent i : outcomeMeasure) 5484 dst.outcomeMeasure.add(i.copy()); 5485 }; 5486 if (result != null) { 5487 dst.result = new ArrayList<Reference>(); 5488 for (Reference i : result) 5489 dst.result.add(i.copy()); 5490 }; 5491 if (webLocation != null) { 5492 dst.webLocation = new ArrayList<ResearchStudyWebLocationComponent>(); 5493 for (ResearchStudyWebLocationComponent i : webLocation) 5494 dst.webLocation.add(i.copy()); 5495 }; 5496 } 5497 5498 protected ResearchStudy typedCopy() { 5499 return copy(); 5500 } 5501 5502 @Override 5503 public boolean equalsDeep(Base other_) { 5504 if (!super.equalsDeep(other_)) 5505 return false; 5506 if (!(other_ instanceof ResearchStudy)) 5507 return false; 5508 ResearchStudy o = (ResearchStudy) other_; 5509 return compareDeep(url, o.url, true) && compareDeep(identifier, o.identifier, true) && compareDeep(version, o.version, true) 5510 && compareDeep(name, o.name, true) && compareDeep(title, o.title, true) && compareDeep(label, o.label, true) 5511 && compareDeep(protocol, o.protocol, true) && compareDeep(partOf, o.partOf, true) && compareDeep(relatedArtifact, o.relatedArtifact, true) 5512 && compareDeep(date, o.date, true) && compareDeep(status, o.status, true) && compareDeep(primaryPurposeType, o.primaryPurposeType, true) 5513 && compareDeep(phase, o.phase, true) && compareDeep(studyDesign, o.studyDesign, true) && compareDeep(focus, o.focus, true) 5514 && compareDeep(condition, o.condition, true) && compareDeep(keyword, o.keyword, true) && compareDeep(region, o.region, true) 5515 && compareDeep(descriptionSummary, o.descriptionSummary, true) && compareDeep(description, o.description, true) 5516 && compareDeep(period, o.period, true) && compareDeep(site, o.site, true) && compareDeep(note, o.note, true) 5517 && compareDeep(classifier, o.classifier, true) && compareDeep(associatedParty, o.associatedParty, true) 5518 && compareDeep(progressStatus, o.progressStatus, true) && compareDeep(whyStopped, o.whyStopped, true) 5519 && compareDeep(recruitment, o.recruitment, true) && compareDeep(comparisonGroup, o.comparisonGroup, true) 5520 && compareDeep(objective, o.objective, true) && compareDeep(outcomeMeasure, o.outcomeMeasure, true) 5521 && compareDeep(result, o.result, true) && compareDeep(webLocation, o.webLocation, true); 5522 } 5523 5524 @Override 5525 public boolean equalsShallow(Base other_) { 5526 if (!super.equalsShallow(other_)) 5527 return false; 5528 if (!(other_ instanceof ResearchStudy)) 5529 return false; 5530 ResearchStudy o = (ResearchStudy) other_; 5531 return compareValues(url, o.url, true) && compareValues(version, o.version, true) && compareValues(name, o.name, true) 5532 && compareValues(title, o.title, true) && compareValues(date, o.date, true) && compareValues(status, o.status, true) 5533 && compareValues(descriptionSummary, o.descriptionSummary, true) && compareValues(description, o.description, true) 5534 ; 5535 } 5536 5537 public boolean isEmpty() { 5538 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(url, identifier, version 5539 , name, title, label, protocol, partOf, relatedArtifact, date, status, primaryPurposeType 5540 , phase, studyDesign, focus, condition, keyword, region, descriptionSummary, description 5541 , period, site, note, classifier, associatedParty, progressStatus, whyStopped 5542 , recruitment, comparisonGroup, objective, outcomeMeasure, result, webLocation); 5543 } 5544 5545 @Override 5546 public ResourceType getResourceType() { 5547 return ResourceType.ResearchStudy; 5548 } 5549 5550 /** 5551 * Search parameter: <b>condition</b> 5552 * <p> 5553 * Description: <b>Condition being studied</b><br> 5554 * Type: <b>token</b><br> 5555 * Path: <b>ResearchStudy.condition</b><br> 5556 * </p> 5557 */ 5558 @SearchParamDefinition(name="condition", path="ResearchStudy.condition", description="Condition being studied", type="token" ) 5559 public static final String SP_CONDITION = "condition"; 5560 /** 5561 * <b>Fluent Client</b> search parameter constant for <b>condition</b> 5562 * <p> 5563 * Description: <b>Condition being studied</b><br> 5564 * Type: <b>token</b><br> 5565 * Path: <b>ResearchStudy.condition</b><br> 5566 * </p> 5567 */ 5568 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONDITION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONDITION); 5569 5570 /** 5571 * Search parameter: <b>date</b> 5572 * <p> 5573 * Description: <b>When the study began and ended</b><br> 5574 * Type: <b>date</b><br> 5575 * Path: <b>ResearchStudy.period</b><br> 5576 * </p> 5577 */ 5578 @SearchParamDefinition(name="date", path="ResearchStudy.period", description="When the study began and ended", type="date" ) 5579 public static final String SP_DATE = "date"; 5580 /** 5581 * <b>Fluent Client</b> search parameter constant for <b>date</b> 5582 * <p> 5583 * Description: <b>When the study began and ended</b><br> 5584 * Type: <b>date</b><br> 5585 * Path: <b>ResearchStudy.period</b><br> 5586 * </p> 5587 */ 5588 public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE); 5589 5590 /** 5591 * Search parameter: <b>focus</b> 5592 * <p> 5593 * Description: <b>Drugs, devices, etc. under study</b><br> 5594 * Type: <b>token</b><br> 5595 * Path: <b>ResearchStudy.focus</b><br> 5596 * </p> 5597 */ 5598 @SearchParamDefinition(name="focus", path="ResearchStudy.focus", description="Drugs, devices, etc. under study", type="token" ) 5599 public static final String SP_FOCUS = "focus"; 5600 /** 5601 * <b>Fluent Client</b> search parameter constant for <b>focus</b> 5602 * <p> 5603 * Description: <b>Drugs, devices, etc. under study</b><br> 5604 * Type: <b>token</b><br> 5605 * Path: <b>ResearchStudy.focus</b><br> 5606 * </p> 5607 */ 5608 public static final ca.uhn.fhir.rest.gclient.TokenClientParam FOCUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_FOCUS); 5609 5610 /** 5611 * Search parameter: <b>identifier</b> 5612 * <p> 5613 * Description: <b>Business Identifier for study</b><br> 5614 * Type: <b>token</b><br> 5615 * Path: <b>ResearchStudy.identifier</b><br> 5616 * </p> 5617 */ 5618 @SearchParamDefinition(name="identifier", path="ResearchStudy.identifier", description="Business Identifier for study", type="token" ) 5619 public static final String SP_IDENTIFIER = "identifier"; 5620 /** 5621 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 5622 * <p> 5623 * Description: <b>Business Identifier for study</b><br> 5624 * Type: <b>token</b><br> 5625 * Path: <b>ResearchStudy.identifier</b><br> 5626 * </p> 5627 */ 5628 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 5629 5630 /** 5631 * Search parameter: <b>keyword</b> 5632 * <p> 5633 * Description: <b>Used to search for the study</b><br> 5634 * Type: <b>token</b><br> 5635 * Path: <b>ResearchStudy.keyword</b><br> 5636 * </p> 5637 */ 5638 @SearchParamDefinition(name="keyword", path="ResearchStudy.keyword", description="Used to search for the study", type="token" ) 5639 public static final String SP_KEYWORD = "keyword"; 5640 /** 5641 * <b>Fluent Client</b> search parameter constant for <b>keyword</b> 5642 * <p> 5643 * Description: <b>Used to search for the study</b><br> 5644 * Type: <b>token</b><br> 5645 * Path: <b>ResearchStudy.keyword</b><br> 5646 * </p> 5647 */ 5648 public static final ca.uhn.fhir.rest.gclient.TokenClientParam KEYWORD = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_KEYWORD); 5649 5650 /** 5651 * Search parameter: <b>partof</b> 5652 * <p> 5653 * Description: <b>Part of larger study</b><br> 5654 * Type: <b>reference</b><br> 5655 * Path: <b>ResearchStudy.partOf</b><br> 5656 * </p> 5657 */ 5658 @SearchParamDefinition(name="partof", path="ResearchStudy.partOf", description="Part of larger study", type="reference", target={ResearchStudy.class } ) 5659 public static final String SP_PARTOF = "partof"; 5660 /** 5661 * <b>Fluent Client</b> search parameter constant for <b>partof</b> 5662 * <p> 5663 * Description: <b>Part of larger study</b><br> 5664 * Type: <b>reference</b><br> 5665 * Path: <b>ResearchStudy.partOf</b><br> 5666 * </p> 5667 */ 5668 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PARTOF = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PARTOF); 5669 5670/** 5671 * Constant for fluent queries to be used to add include statements. Specifies 5672 * the path value of "<b>ResearchStudy:partof</b>". 5673 */ 5674 public static final ca.uhn.fhir.model.api.Include INCLUDE_PARTOF = new ca.uhn.fhir.model.api.Include("ResearchStudy:partof").toLocked(); 5675 5676 /** 5677 * Search parameter: <b>protocol</b> 5678 * <p> 5679 * Description: <b>Steps followed in executing study</b><br> 5680 * Type: <b>reference</b><br> 5681 * Path: <b>ResearchStudy.protocol</b><br> 5682 * </p> 5683 */ 5684 @SearchParamDefinition(name="protocol", path="ResearchStudy.protocol", description="Steps followed in executing study", type="reference", target={PlanDefinition.class } ) 5685 public static final String SP_PROTOCOL = "protocol"; 5686 /** 5687 * <b>Fluent Client</b> search parameter constant for <b>protocol</b> 5688 * <p> 5689 * Description: <b>Steps followed in executing study</b><br> 5690 * Type: <b>reference</b><br> 5691 * Path: <b>ResearchStudy.protocol</b><br> 5692 * </p> 5693 */ 5694 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PROTOCOL = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PROTOCOL); 5695 5696/** 5697 * Constant for fluent queries to be used to add include statements. Specifies 5698 * the path value of "<b>ResearchStudy:protocol</b>". 5699 */ 5700 public static final ca.uhn.fhir.model.api.Include INCLUDE_PROTOCOL = new ca.uhn.fhir.model.api.Include("ResearchStudy:protocol").toLocked(); 5701 5702 /** 5703 * Search parameter: <b>recruitment_actual</b> 5704 * <p> 5705 * Description: <b>Actual number of participants enrolled in study across all groups</b><br> 5706 * Type: <b>number</b><br> 5707 * Path: <b>ResearchStudy.recruitment.actualNumber</b><br> 5708 * </p> 5709 */ 5710 @SearchParamDefinition(name="recruitment_actual", path="ResearchStudy.recruitment.actualNumber", description="Actual number of participants enrolled in study across all groups", type="number" ) 5711 public static final String SP_RECRUITMENTACTUAL = "recruitment_actual"; 5712 /** 5713 * <b>Fluent Client</b> search parameter constant for <b>recruitment_actual</b> 5714 * <p> 5715 * Description: <b>Actual number of participants enrolled in study across all groups</b><br> 5716 * Type: <b>number</b><br> 5717 * Path: <b>ResearchStudy.recruitment.actualNumber</b><br> 5718 * </p> 5719 */ 5720 public static final ca.uhn.fhir.rest.gclient.NumberClientParam RECRUITMENTACTUAL = new ca.uhn.fhir.rest.gclient.NumberClientParam(SP_RECRUITMENTACTUAL); 5721 5722 /** 5723 * Search parameter: <b>recruitment_target</b> 5724 * <p> 5725 * Description: <b>Target number of participants enrolled in study across all groups</b><br> 5726 * Type: <b>number</b><br> 5727 * Path: <b>ResearchStudy.recruitment.targetNumber</b><br> 5728 * </p> 5729 */ 5730 @SearchParamDefinition(name="recruitment_target", path="ResearchStudy.recruitment.targetNumber", description="Target number of participants enrolled in study across all groups", type="number" ) 5731 public static final String SP_RECRUITMENTTARGET = "recruitment_target"; 5732 /** 5733 * <b>Fluent Client</b> search parameter constant for <b>recruitment_target</b> 5734 * <p> 5735 * Description: <b>Target number of participants enrolled in study across all groups</b><br> 5736 * Type: <b>number</b><br> 5737 * Path: <b>ResearchStudy.recruitment.targetNumber</b><br> 5738 * </p> 5739 */ 5740 public static final ca.uhn.fhir.rest.gclient.NumberClientParam RECRUITMENTTARGET = new ca.uhn.fhir.rest.gclient.NumberClientParam(SP_RECRUITMENTTARGET); 5741 5742 /** 5743 * Search parameter: <b>region</b> 5744 * <p> 5745 * Description: <b>Geographic area for the study</b><br> 5746 * Type: <b>token</b><br> 5747 * Path: <b>ResearchStudy.region</b><br> 5748 * </p> 5749 */ 5750 @SearchParamDefinition(name="region", path="ResearchStudy.region", description="Geographic area for the study", type="token" ) 5751 public static final String SP_REGION = "region"; 5752 /** 5753 * <b>Fluent Client</b> search parameter constant for <b>region</b> 5754 * <p> 5755 * Description: <b>Geographic area for the study</b><br> 5756 * Type: <b>token</b><br> 5757 * Path: <b>ResearchStudy.region</b><br> 5758 * </p> 5759 */ 5760 public static final ca.uhn.fhir.rest.gclient.TokenClientParam REGION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_REGION); 5761 5762 /** 5763 * Search parameter: <b>site</b> 5764 * <p> 5765 * Description: <b>Facility where study activities are conducted</b><br> 5766 * Type: <b>reference</b><br> 5767 * Path: <b>ResearchStudy.site</b><br> 5768 * </p> 5769 */ 5770 @SearchParamDefinition(name="site", path="ResearchStudy.site", description="Facility where study activities are conducted", type="reference", target={Location.class, Organization.class, ResearchStudy.class } ) 5771 public static final String SP_SITE = "site"; 5772 /** 5773 * <b>Fluent Client</b> search parameter constant for <b>site</b> 5774 * <p> 5775 * Description: <b>Facility where study activities are conducted</b><br> 5776 * Type: <b>reference</b><br> 5777 * Path: <b>ResearchStudy.site</b><br> 5778 * </p> 5779 */ 5780 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SITE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SITE); 5781 5782/** 5783 * Constant for fluent queries to be used to add include statements. Specifies 5784 * the path value of "<b>ResearchStudy:site</b>". 5785 */ 5786 public static final ca.uhn.fhir.model.api.Include INCLUDE_SITE = new ca.uhn.fhir.model.api.Include("ResearchStudy:site").toLocked(); 5787 5788 /** 5789 * Search parameter: <b>status</b> 5790 * <p> 5791 * Description: <b>active | active-but-not-recruiting | administratively-completed | approved | closed-to-accrual | closed-to-accrual-and-intervention | completed | disapproved | enrolling-by-invitation | in-review | not-yet-recruiting | recruiting | temporarily-closed-to-accrual | temporarily-closed-to-accrual-and-intervention | terminated | withdrawn</b><br> 5792 * Type: <b>token</b><br> 5793 * Path: <b>ResearchStudy.status</b><br> 5794 * </p> 5795 */ 5796 @SearchParamDefinition(name="status", path="ResearchStudy.status", description="active | active-but-not-recruiting | administratively-completed | approved | closed-to-accrual | closed-to-accrual-and-intervention | completed | disapproved | enrolling-by-invitation | in-review | not-yet-recruiting | recruiting | temporarily-closed-to-accrual | temporarily-closed-to-accrual-and-intervention | terminated | withdrawn", type="token" ) 5797 public static final String SP_STATUS = "status"; 5798 /** 5799 * <b>Fluent Client</b> search parameter constant for <b>status</b> 5800 * <p> 5801 * Description: <b>active | active-but-not-recruiting | administratively-completed | approved | closed-to-accrual | closed-to-accrual-and-intervention | completed | disapproved | enrolling-by-invitation | in-review | not-yet-recruiting | recruiting | temporarily-closed-to-accrual | temporarily-closed-to-accrual-and-intervention | terminated | withdrawn</b><br> 5802 * Type: <b>token</b><br> 5803 * Path: <b>ResearchStudy.status</b><br> 5804 * </p> 5805 */ 5806 public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS); 5807 5808 /** 5809 * Search parameter: <b>title</b> 5810 * <p> 5811 * Description: <b>Name for this study</b><br> 5812 * Type: <b>string</b><br> 5813 * Path: <b>ResearchStudy.title</b><br> 5814 * </p> 5815 */ 5816 @SearchParamDefinition(name="title", path="ResearchStudy.title", description="Name for this study", type="string" ) 5817 public static final String SP_TITLE = "title"; 5818 /** 5819 * <b>Fluent Client</b> search parameter constant for <b>title</b> 5820 * <p> 5821 * Description: <b>Name for this study</b><br> 5822 * Type: <b>string</b><br> 5823 * Path: <b>ResearchStudy.title</b><br> 5824 * </p> 5825 */ 5826 public static final ca.uhn.fhir.rest.gclient.StringClientParam TITLE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_TITLE); 5827 5828 5829} 5830