001package org.hl7.fhir.r4b.model; 002 003 004/* 005 Copyright (c) 2011+, HL7, Inc. 006 All rights reserved. 007 008 Redistribution and use in source and binary forms, with or without modification, \ 009 are permitted provided that the following conditions are met: 010 011 * Redistributions of source code must retain the above copyright notice, this \ 012 list of conditions and the following disclaimer. 013 * Redistributions in binary form must reproduce the above copyright notice, \ 014 this list of conditions and the following disclaimer in the documentation \ 015 and/or other materials provided with the distribution. 016 * Neither the name of HL7 nor the names of its contributors may be used to 017 endorse or promote products derived from this software without specific 018 prior written permission. 019 020 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \ 021 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \ 022 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \ 023 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \ 024 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT \ 025 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR \ 026 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, \ 027 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) \ 028 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE \ 029 POSSIBILITY OF SUCH DAMAGE. 030 */ 031 032// Generated on Fri, Dec 31, 2021 05:58+1100 for FHIR v4.3.0-snapshot1 033 034import java.util.ArrayList; 035import java.util.Date; 036import java.util.List; 037import org.hl7.fhir.utilities.Utilities; 038import org.hl7.fhir.r4b.model.Enumerations.*; 039import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 040import org.hl7.fhir.exceptions.FHIRException; 041import org.hl7.fhir.instance.model.api.ICompositeType; 042import ca.uhn.fhir.model.api.annotation.ResourceDef; 043import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 044import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 045import ca.uhn.fhir.model.api.annotation.Child; 046import ca.uhn.fhir.model.api.annotation.ChildOrder; 047import ca.uhn.fhir.model.api.annotation.Description; 048import ca.uhn.fhir.model.api.annotation.Block; 049 050/** 051 * The EvidenceReport Resource is a specialized container for a collection of resources and codable concepts, adapted to support compositions of Evidence, EvidenceVariable, and Citation resources and related concepts. 052 */ 053@ResourceDef(name="EvidenceReport", profile="http://hl7.org/fhir/StructureDefinition/EvidenceReport") 054public class EvidenceReport extends DomainResource { 055 056 public enum ReportRelationshipType { 057 /** 058 * This document replaces or supersedes the target document. 059 */ 060 REPLACES, 061 /** 062 * This document notes corrections or changes to replace or supersede parts of the target document. 063 */ 064 AMENDS, 065 /** 066 * This document adds additional information to the target document. 067 */ 068 APPENDS, 069 /** 070 * This document was generated by transforming the target document (eg format or language conversion). 071 */ 072 TRANSFORMS, 073 /** 074 * This document was. 075 */ 076 REPLACEDWITH, 077 /** 078 * This document was. 079 */ 080 AMENDEDWITH, 081 /** 082 * This document was. 083 */ 084 APPENDEDWITH, 085 /** 086 * This document was. 087 */ 088 TRANSFORMEDWITH, 089 /** 090 * added to help the parsers with the generic types 091 */ 092 NULL; 093 public static ReportRelationshipType fromCode(String codeString) throws FHIRException { 094 if (codeString == null || "".equals(codeString)) 095 return null; 096 if ("replaces".equals(codeString)) 097 return REPLACES; 098 if ("amends".equals(codeString)) 099 return AMENDS; 100 if ("appends".equals(codeString)) 101 return APPENDS; 102 if ("transforms".equals(codeString)) 103 return TRANSFORMS; 104 if ("replacedWith".equals(codeString)) 105 return REPLACEDWITH; 106 if ("amendedWith".equals(codeString)) 107 return AMENDEDWITH; 108 if ("appendedWith".equals(codeString)) 109 return APPENDEDWITH; 110 if ("transformedWith".equals(codeString)) 111 return TRANSFORMEDWITH; 112 if (Configuration.isAcceptInvalidEnums()) 113 return null; 114 else 115 throw new FHIRException("Unknown ReportRelationshipType code '"+codeString+"'"); 116 } 117 public String toCode() { 118 switch (this) { 119 case REPLACES: return "replaces"; 120 case AMENDS: return "amends"; 121 case APPENDS: return "appends"; 122 case TRANSFORMS: return "transforms"; 123 case REPLACEDWITH: return "replacedWith"; 124 case AMENDEDWITH: return "amendedWith"; 125 case APPENDEDWITH: return "appendedWith"; 126 case TRANSFORMEDWITH: return "transformedWith"; 127 case NULL: return null; 128 default: return "?"; 129 } 130 } 131 public String getSystem() { 132 switch (this) { 133 case REPLACES: return "http://hl7.org/fhir/report-relation-type"; 134 case AMENDS: return "http://hl7.org/fhir/report-relation-type"; 135 case APPENDS: return "http://hl7.org/fhir/report-relation-type"; 136 case TRANSFORMS: return "http://hl7.org/fhir/report-relation-type"; 137 case REPLACEDWITH: return "http://hl7.org/fhir/report-relation-type"; 138 case AMENDEDWITH: return "http://hl7.org/fhir/report-relation-type"; 139 case APPENDEDWITH: return "http://hl7.org/fhir/report-relation-type"; 140 case TRANSFORMEDWITH: return "http://hl7.org/fhir/report-relation-type"; 141 case NULL: return null; 142 default: return "?"; 143 } 144 } 145 public String getDefinition() { 146 switch (this) { 147 case REPLACES: return "This document replaces or supersedes the target document."; 148 case AMENDS: return "This document notes corrections or changes to replace or supersede parts of the target document."; 149 case APPENDS: return "This document adds additional information to the target document."; 150 case TRANSFORMS: return "This document was generated by transforming the target document (eg format or language conversion)."; 151 case REPLACEDWITH: return "This document was."; 152 case AMENDEDWITH: return "This document was."; 153 case APPENDEDWITH: return "This document was."; 154 case TRANSFORMEDWITH: return "This document was."; 155 case NULL: return null; 156 default: return "?"; 157 } 158 } 159 public String getDisplay() { 160 switch (this) { 161 case REPLACES: return "Replaces"; 162 case AMENDS: return "Amends"; 163 case APPENDS: return "Appends"; 164 case TRANSFORMS: return "Transforms"; 165 case REPLACEDWITH: return "Replaced With"; 166 case AMENDEDWITH: return "Amended With"; 167 case APPENDEDWITH: return "Appended With"; 168 case TRANSFORMEDWITH: return "Transformed With"; 169 case NULL: return null; 170 default: return "?"; 171 } 172 } 173 } 174 175 public static class ReportRelationshipTypeEnumFactory implements EnumFactory<ReportRelationshipType> { 176 public ReportRelationshipType fromCode(String codeString) throws IllegalArgumentException { 177 if (codeString == null || "".equals(codeString)) 178 if (codeString == null || "".equals(codeString)) 179 return null; 180 if ("replaces".equals(codeString)) 181 return ReportRelationshipType.REPLACES; 182 if ("amends".equals(codeString)) 183 return ReportRelationshipType.AMENDS; 184 if ("appends".equals(codeString)) 185 return ReportRelationshipType.APPENDS; 186 if ("transforms".equals(codeString)) 187 return ReportRelationshipType.TRANSFORMS; 188 if ("replacedWith".equals(codeString)) 189 return ReportRelationshipType.REPLACEDWITH; 190 if ("amendedWith".equals(codeString)) 191 return ReportRelationshipType.AMENDEDWITH; 192 if ("appendedWith".equals(codeString)) 193 return ReportRelationshipType.APPENDEDWITH; 194 if ("transformedWith".equals(codeString)) 195 return ReportRelationshipType.TRANSFORMEDWITH; 196 throw new IllegalArgumentException("Unknown ReportRelationshipType code '"+codeString+"'"); 197 } 198 public Enumeration<ReportRelationshipType> fromType(Base code) throws FHIRException { 199 if (code == null) 200 return null; 201 if (code.isEmpty()) 202 return new Enumeration<ReportRelationshipType>(this); 203 String codeString = ((PrimitiveType) code).asStringValue(); 204 if (codeString == null || "".equals(codeString)) 205 return null; 206 if ("replaces".equals(codeString)) 207 return new Enumeration<ReportRelationshipType>(this, ReportRelationshipType.REPLACES); 208 if ("amends".equals(codeString)) 209 return new Enumeration<ReportRelationshipType>(this, ReportRelationshipType.AMENDS); 210 if ("appends".equals(codeString)) 211 return new Enumeration<ReportRelationshipType>(this, ReportRelationshipType.APPENDS); 212 if ("transforms".equals(codeString)) 213 return new Enumeration<ReportRelationshipType>(this, ReportRelationshipType.TRANSFORMS); 214 if ("replacedWith".equals(codeString)) 215 return new Enumeration<ReportRelationshipType>(this, ReportRelationshipType.REPLACEDWITH); 216 if ("amendedWith".equals(codeString)) 217 return new Enumeration<ReportRelationshipType>(this, ReportRelationshipType.AMENDEDWITH); 218 if ("appendedWith".equals(codeString)) 219 return new Enumeration<ReportRelationshipType>(this, ReportRelationshipType.APPENDEDWITH); 220 if ("transformedWith".equals(codeString)) 221 return new Enumeration<ReportRelationshipType>(this, ReportRelationshipType.TRANSFORMEDWITH); 222 throw new FHIRException("Unknown ReportRelationshipType code '"+codeString+"'"); 223 } 224 public String toCode(ReportRelationshipType code) { 225 if (code == ReportRelationshipType.REPLACES) 226 return "replaces"; 227 if (code == ReportRelationshipType.AMENDS) 228 return "amends"; 229 if (code == ReportRelationshipType.APPENDS) 230 return "appends"; 231 if (code == ReportRelationshipType.TRANSFORMS) 232 return "transforms"; 233 if (code == ReportRelationshipType.REPLACEDWITH) 234 return "replacedWith"; 235 if (code == ReportRelationshipType.AMENDEDWITH) 236 return "amendedWith"; 237 if (code == ReportRelationshipType.APPENDEDWITH) 238 return "appendedWith"; 239 if (code == ReportRelationshipType.TRANSFORMEDWITH) 240 return "transformedWith"; 241 return "?"; 242 } 243 public String toSystem(ReportRelationshipType code) { 244 return code.getSystem(); 245 } 246 } 247 248 @Block() 249 public static class EvidenceReportSubjectComponent extends BackboneElement implements IBaseBackboneElement { 250 /** 251 * Characteristic. 252 */ 253 @Child(name = "characteristic", type = {}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 254 @Description(shortDefinition="Characteristic", formalDefinition="Characteristic." ) 255 protected List<EvidenceReportSubjectCharacteristicComponent> characteristic; 256 257 /** 258 * Used for general notes and annotations not coded elsewhere. 259 */ 260 @Child(name = "note", type = {Annotation.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 261 @Description(shortDefinition="Footnotes and/or explanatory notes", formalDefinition="Used for general notes and annotations not coded elsewhere." ) 262 protected List<Annotation> note; 263 264 private static final long serialVersionUID = -734040873L; 265 266 /** 267 * Constructor 268 */ 269 public EvidenceReportSubjectComponent() { 270 super(); 271 } 272 273 /** 274 * @return {@link #characteristic} (Characteristic.) 275 */ 276 public List<EvidenceReportSubjectCharacteristicComponent> getCharacteristic() { 277 if (this.characteristic == null) 278 this.characteristic = new ArrayList<EvidenceReportSubjectCharacteristicComponent>(); 279 return this.characteristic; 280 } 281 282 /** 283 * @return Returns a reference to <code>this</code> for easy method chaining 284 */ 285 public EvidenceReportSubjectComponent setCharacteristic(List<EvidenceReportSubjectCharacteristicComponent> theCharacteristic) { 286 this.characteristic = theCharacteristic; 287 return this; 288 } 289 290 public boolean hasCharacteristic() { 291 if (this.characteristic == null) 292 return false; 293 for (EvidenceReportSubjectCharacteristicComponent item : this.characteristic) 294 if (!item.isEmpty()) 295 return true; 296 return false; 297 } 298 299 public EvidenceReportSubjectCharacteristicComponent addCharacteristic() { //3 300 EvidenceReportSubjectCharacteristicComponent t = new EvidenceReportSubjectCharacteristicComponent(); 301 if (this.characteristic == null) 302 this.characteristic = new ArrayList<EvidenceReportSubjectCharacteristicComponent>(); 303 this.characteristic.add(t); 304 return t; 305 } 306 307 public EvidenceReportSubjectComponent addCharacteristic(EvidenceReportSubjectCharacteristicComponent t) { //3 308 if (t == null) 309 return this; 310 if (this.characteristic == null) 311 this.characteristic = new ArrayList<EvidenceReportSubjectCharacteristicComponent>(); 312 this.characteristic.add(t); 313 return this; 314 } 315 316 /** 317 * @return The first repetition of repeating field {@link #characteristic}, creating it if it does not already exist {3} 318 */ 319 public EvidenceReportSubjectCharacteristicComponent getCharacteristicFirstRep() { 320 if (getCharacteristic().isEmpty()) { 321 addCharacteristic(); 322 } 323 return getCharacteristic().get(0); 324 } 325 326 /** 327 * @return {@link #note} (Used for general notes and annotations not coded elsewhere.) 328 */ 329 public List<Annotation> getNote() { 330 if (this.note == null) 331 this.note = new ArrayList<Annotation>(); 332 return this.note; 333 } 334 335 /** 336 * @return Returns a reference to <code>this</code> for easy method chaining 337 */ 338 public EvidenceReportSubjectComponent setNote(List<Annotation> theNote) { 339 this.note = theNote; 340 return this; 341 } 342 343 public boolean hasNote() { 344 if (this.note == null) 345 return false; 346 for (Annotation item : this.note) 347 if (!item.isEmpty()) 348 return true; 349 return false; 350 } 351 352 public Annotation addNote() { //3 353 Annotation t = new Annotation(); 354 if (this.note == null) 355 this.note = new ArrayList<Annotation>(); 356 this.note.add(t); 357 return t; 358 } 359 360 public EvidenceReportSubjectComponent addNote(Annotation t) { //3 361 if (t == null) 362 return this; 363 if (this.note == null) 364 this.note = new ArrayList<Annotation>(); 365 this.note.add(t); 366 return this; 367 } 368 369 /** 370 * @return The first repetition of repeating field {@link #note}, creating it if it does not already exist {3} 371 */ 372 public Annotation getNoteFirstRep() { 373 if (getNote().isEmpty()) { 374 addNote(); 375 } 376 return getNote().get(0); 377 } 378 379 protected void listChildren(List<Property> children) { 380 super.listChildren(children); 381 children.add(new Property("characteristic", "", "Characteristic.", 0, java.lang.Integer.MAX_VALUE, characteristic)); 382 children.add(new Property("note", "Annotation", "Used for general notes and annotations not coded elsewhere.", 0, java.lang.Integer.MAX_VALUE, note)); 383 } 384 385 @Override 386 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 387 switch (_hash) { 388 case 366313883: /*characteristic*/ return new Property("characteristic", "", "Characteristic.", 0, java.lang.Integer.MAX_VALUE, characteristic); 389 case 3387378: /*note*/ return new Property("note", "Annotation", "Used for general notes and annotations not coded elsewhere.", 0, java.lang.Integer.MAX_VALUE, note); 390 default: return super.getNamedProperty(_hash, _name, _checkValid); 391 } 392 393 } 394 395 @Override 396 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 397 switch (hash) { 398 case 366313883: /*characteristic*/ return this.characteristic == null ? new Base[0] : this.characteristic.toArray(new Base[this.characteristic.size()]); // EvidenceReportSubjectCharacteristicComponent 399 case 3387378: /*note*/ return this.note == null ? new Base[0] : this.note.toArray(new Base[this.note.size()]); // Annotation 400 default: return super.getProperty(hash, name, checkValid); 401 } 402 403 } 404 405 @Override 406 public Base setProperty(int hash, String name, Base value) throws FHIRException { 407 switch (hash) { 408 case 366313883: // characteristic 409 this.getCharacteristic().add((EvidenceReportSubjectCharacteristicComponent) value); // EvidenceReportSubjectCharacteristicComponent 410 return value; 411 case 3387378: // note 412 this.getNote().add(TypeConvertor.castToAnnotation(value)); // Annotation 413 return value; 414 default: return super.setProperty(hash, name, value); 415 } 416 417 } 418 419 @Override 420 public Base setProperty(String name, Base value) throws FHIRException { 421 if (name.equals("characteristic")) { 422 this.getCharacteristic().add((EvidenceReportSubjectCharacteristicComponent) value); 423 } else if (name.equals("note")) { 424 this.getNote().add(TypeConvertor.castToAnnotation(value)); 425 } else 426 return super.setProperty(name, value); 427 return value; 428 } 429 430 @Override 431 public Base makeProperty(int hash, String name) throws FHIRException { 432 switch (hash) { 433 case 366313883: return addCharacteristic(); 434 case 3387378: return addNote(); 435 default: return super.makeProperty(hash, name); 436 } 437 438 } 439 440 @Override 441 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 442 switch (hash) { 443 case 366313883: /*characteristic*/ return new String[] {}; 444 case 3387378: /*note*/ return new String[] {"Annotation"}; 445 default: return super.getTypesForProperty(hash, name); 446 } 447 448 } 449 450 @Override 451 public Base addChild(String name) throws FHIRException { 452 if (name.equals("characteristic")) { 453 return addCharacteristic(); 454 } 455 else if (name.equals("note")) { 456 return addNote(); 457 } 458 else 459 return super.addChild(name); 460 } 461 462 public EvidenceReportSubjectComponent copy() { 463 EvidenceReportSubjectComponent dst = new EvidenceReportSubjectComponent(); 464 copyValues(dst); 465 return dst; 466 } 467 468 public void copyValues(EvidenceReportSubjectComponent dst) { 469 super.copyValues(dst); 470 if (characteristic != null) { 471 dst.characteristic = new ArrayList<EvidenceReportSubjectCharacteristicComponent>(); 472 for (EvidenceReportSubjectCharacteristicComponent i : characteristic) 473 dst.characteristic.add(i.copy()); 474 }; 475 if (note != null) { 476 dst.note = new ArrayList<Annotation>(); 477 for (Annotation i : note) 478 dst.note.add(i.copy()); 479 }; 480 } 481 482 @Override 483 public boolean equalsDeep(Base other_) { 484 if (!super.equalsDeep(other_)) 485 return false; 486 if (!(other_ instanceof EvidenceReportSubjectComponent)) 487 return false; 488 EvidenceReportSubjectComponent o = (EvidenceReportSubjectComponent) other_; 489 return compareDeep(characteristic, o.characteristic, true) && compareDeep(note, o.note, true); 490 } 491 492 @Override 493 public boolean equalsShallow(Base other_) { 494 if (!super.equalsShallow(other_)) 495 return false; 496 if (!(other_ instanceof EvidenceReportSubjectComponent)) 497 return false; 498 EvidenceReportSubjectComponent o = (EvidenceReportSubjectComponent) other_; 499 return true; 500 } 501 502 public boolean isEmpty() { 503 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(characteristic, note); 504 } 505 506 public String fhirType() { 507 return "EvidenceReport.subject"; 508 509 } 510 511 } 512 513 @Block() 514 public static class EvidenceReportSubjectCharacteristicComponent extends BackboneElement implements IBaseBackboneElement { 515 /** 516 * Characteristic code. 517 */ 518 @Child(name = "code", type = {CodeableConcept.class}, order=1, min=1, max=1, modifier=false, summary=false) 519 @Description(shortDefinition="Characteristic code", formalDefinition="Characteristic code." ) 520 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/focus-characteristic-code") 521 protected CodeableConcept code; 522 523 /** 524 * Characteristic value. 525 */ 526 @Child(name = "value", type = {Reference.class, CodeableConcept.class, BooleanType.class, Quantity.class, Range.class}, order=2, min=1, max=1, modifier=false, summary=false) 527 @Description(shortDefinition="Characteristic value", formalDefinition="Characteristic value." ) 528 protected DataType value; 529 530 /** 531 * Is used to express not the characteristic. 532 */ 533 @Child(name = "exclude", type = {BooleanType.class}, order=3, min=0, max=1, modifier=false, summary=false) 534 @Description(shortDefinition="Is used to express not the characteristic", formalDefinition="Is used to express not the characteristic." ) 535 protected BooleanType exclude; 536 537 /** 538 * Timeframe for the characteristic. 539 */ 540 @Child(name = "period", type = {Period.class}, order=4, min=0, max=1, modifier=false, summary=false) 541 @Description(shortDefinition="Timeframe for the characteristic", formalDefinition="Timeframe for the characteristic." ) 542 protected Period period; 543 544 private static final long serialVersionUID = 279867823L; 545 546 /** 547 * Constructor 548 */ 549 public EvidenceReportSubjectCharacteristicComponent() { 550 super(); 551 } 552 553 /** 554 * Constructor 555 */ 556 public EvidenceReportSubjectCharacteristicComponent(CodeableConcept code, DataType value) { 557 super(); 558 this.setCode(code); 559 this.setValue(value); 560 } 561 562 /** 563 * @return {@link #code} (Characteristic code.) 564 */ 565 public CodeableConcept getCode() { 566 if (this.code == null) 567 if (Configuration.errorOnAutoCreate()) 568 throw new Error("Attempt to auto-create EvidenceReportSubjectCharacteristicComponent.code"); 569 else if (Configuration.doAutoCreate()) 570 this.code = new CodeableConcept(); // cc 571 return this.code; 572 } 573 574 public boolean hasCode() { 575 return this.code != null && !this.code.isEmpty(); 576 } 577 578 /** 579 * @param value {@link #code} (Characteristic code.) 580 */ 581 public EvidenceReportSubjectCharacteristicComponent setCode(CodeableConcept value) { 582 this.code = value; 583 return this; 584 } 585 586 /** 587 * @return {@link #value} (Characteristic value.) 588 */ 589 public DataType getValue() { 590 return this.value; 591 } 592 593 /** 594 * @return {@link #value} (Characteristic value.) 595 */ 596 public Reference getValueReference() throws FHIRException { 597 if (this.value == null) 598 this.value = new Reference(); 599 if (!(this.value instanceof Reference)) 600 throw new FHIRException("Type mismatch: the type Reference was expected, but "+this.value.getClass().getName()+" was encountered"); 601 return (Reference) this.value; 602 } 603 604 public boolean hasValueReference() { 605 return this != null && this.value instanceof Reference; 606 } 607 608 /** 609 * @return {@link #value} (Characteristic value.) 610 */ 611 public CodeableConcept getValueCodeableConcept() throws FHIRException { 612 if (this.value == null) 613 this.value = new CodeableConcept(); 614 if (!(this.value instanceof CodeableConcept)) 615 throw new FHIRException("Type mismatch: the type CodeableConcept was expected, but "+this.value.getClass().getName()+" was encountered"); 616 return (CodeableConcept) this.value; 617 } 618 619 public boolean hasValueCodeableConcept() { 620 return this != null && this.value instanceof CodeableConcept; 621 } 622 623 /** 624 * @return {@link #value} (Characteristic value.) 625 */ 626 public BooleanType getValueBooleanType() throws FHIRException { 627 if (this.value == null) 628 this.value = new BooleanType(); 629 if (!(this.value instanceof BooleanType)) 630 throw new FHIRException("Type mismatch: the type BooleanType was expected, but "+this.value.getClass().getName()+" was encountered"); 631 return (BooleanType) this.value; 632 } 633 634 public boolean hasValueBooleanType() { 635 return this != null && this.value instanceof BooleanType; 636 } 637 638 /** 639 * @return {@link #value} (Characteristic value.) 640 */ 641 public Quantity getValueQuantity() throws FHIRException { 642 if (this.value == null) 643 this.value = new Quantity(); 644 if (!(this.value instanceof Quantity)) 645 throw new FHIRException("Type mismatch: the type Quantity was expected, but "+this.value.getClass().getName()+" was encountered"); 646 return (Quantity) this.value; 647 } 648 649 public boolean hasValueQuantity() { 650 return this != null && this.value instanceof Quantity; 651 } 652 653 /** 654 * @return {@link #value} (Characteristic value.) 655 */ 656 public Range getValueRange() throws FHIRException { 657 if (this.value == null) 658 this.value = new Range(); 659 if (!(this.value instanceof Range)) 660 throw new FHIRException("Type mismatch: the type Range was expected, but "+this.value.getClass().getName()+" was encountered"); 661 return (Range) this.value; 662 } 663 664 public boolean hasValueRange() { 665 return this != null && this.value instanceof Range; 666 } 667 668 public boolean hasValue() { 669 return this.value != null && !this.value.isEmpty(); 670 } 671 672 /** 673 * @param value {@link #value} (Characteristic value.) 674 */ 675 public EvidenceReportSubjectCharacteristicComponent setValue(DataType value) { 676 if (value != null && !(value instanceof Reference || value instanceof CodeableConcept || value instanceof BooleanType || value instanceof Quantity || value instanceof Range)) 677 throw new Error("Not the right type for EvidenceReport.subject.characteristic.value[x]: "+value.fhirType()); 678 this.value = value; 679 return this; 680 } 681 682 /** 683 * @return {@link #exclude} (Is used to express not the characteristic.). This is the underlying object with id, value and extensions. The accessor "getExclude" gives direct access to the value 684 */ 685 public BooleanType getExcludeElement() { 686 if (this.exclude == null) 687 if (Configuration.errorOnAutoCreate()) 688 throw new Error("Attempt to auto-create EvidenceReportSubjectCharacteristicComponent.exclude"); 689 else if (Configuration.doAutoCreate()) 690 this.exclude = new BooleanType(); // bb 691 return this.exclude; 692 } 693 694 public boolean hasExcludeElement() { 695 return this.exclude != null && !this.exclude.isEmpty(); 696 } 697 698 public boolean hasExclude() { 699 return this.exclude != null && !this.exclude.isEmpty(); 700 } 701 702 /** 703 * @param value {@link #exclude} (Is used to express not the characteristic.). This is the underlying object with id, value and extensions. The accessor "getExclude" gives direct access to the value 704 */ 705 public EvidenceReportSubjectCharacteristicComponent setExcludeElement(BooleanType value) { 706 this.exclude = value; 707 return this; 708 } 709 710 /** 711 * @return Is used to express not the characteristic. 712 */ 713 public boolean getExclude() { 714 return this.exclude == null || this.exclude.isEmpty() ? false : this.exclude.getValue(); 715 } 716 717 /** 718 * @param value Is used to express not the characteristic. 719 */ 720 public EvidenceReportSubjectCharacteristicComponent setExclude(boolean value) { 721 if (this.exclude == null) 722 this.exclude = new BooleanType(); 723 this.exclude.setValue(value); 724 return this; 725 } 726 727 /** 728 * @return {@link #period} (Timeframe for the characteristic.) 729 */ 730 public Period getPeriod() { 731 if (this.period == null) 732 if (Configuration.errorOnAutoCreate()) 733 throw new Error("Attempt to auto-create EvidenceReportSubjectCharacteristicComponent.period"); 734 else if (Configuration.doAutoCreate()) 735 this.period = new Period(); // cc 736 return this.period; 737 } 738 739 public boolean hasPeriod() { 740 return this.period != null && !this.period.isEmpty(); 741 } 742 743 /** 744 * @param value {@link #period} (Timeframe for the characteristic.) 745 */ 746 public EvidenceReportSubjectCharacteristicComponent setPeriod(Period value) { 747 this.period = value; 748 return this; 749 } 750 751 protected void listChildren(List<Property> children) { 752 super.listChildren(children); 753 children.add(new Property("code", "CodeableConcept", "Characteristic code.", 0, 1, code)); 754 children.add(new Property("value[x]", "Reference(Any)|CodeableConcept|boolean|Quantity|Range", "Characteristic value.", 0, 1, value)); 755 children.add(new Property("exclude", "boolean", "Is used to express not the characteristic.", 0, 1, exclude)); 756 children.add(new Property("period", "Period", "Timeframe for the characteristic.", 0, 1, period)); 757 } 758 759 @Override 760 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 761 switch (_hash) { 762 case 3059181: /*code*/ return new Property("code", "CodeableConcept", "Characteristic code.", 0, 1, code); 763 case -1410166417: /*value[x]*/ return new Property("value[x]", "Reference(Any)|CodeableConcept|boolean|Quantity|Range", "Characteristic value.", 0, 1, value); 764 case 111972721: /*value*/ return new Property("value[x]", "Reference(Any)|CodeableConcept|boolean|Quantity|Range", "Characteristic value.", 0, 1, value); 765 case 1755241690: /*valueReference*/ return new Property("value[x]", "Reference(Any)", "Characteristic value.", 0, 1, value); 766 case 924902896: /*valueCodeableConcept*/ return new Property("value[x]", "CodeableConcept", "Characteristic value.", 0, 1, value); 767 case 733421943: /*valueBoolean*/ return new Property("value[x]", "boolean", "Characteristic value.", 0, 1, value); 768 case -2029823716: /*valueQuantity*/ return new Property("value[x]", "Quantity", "Characteristic value.", 0, 1, value); 769 case 2030761548: /*valueRange*/ return new Property("value[x]", "Range", "Characteristic value.", 0, 1, value); 770 case -1321148966: /*exclude*/ return new Property("exclude", "boolean", "Is used to express not the characteristic.", 0, 1, exclude); 771 case -991726143: /*period*/ return new Property("period", "Period", "Timeframe for the characteristic.", 0, 1, period); 772 default: return super.getNamedProperty(_hash, _name, _checkValid); 773 } 774 775 } 776 777 @Override 778 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 779 switch (hash) { 780 case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept 781 case 111972721: /*value*/ return this.value == null ? new Base[0] : new Base[] {this.value}; // DataType 782 case -1321148966: /*exclude*/ return this.exclude == null ? new Base[0] : new Base[] {this.exclude}; // BooleanType 783 case -991726143: /*period*/ return this.period == null ? new Base[0] : new Base[] {this.period}; // Period 784 default: return super.getProperty(hash, name, checkValid); 785 } 786 787 } 788 789 @Override 790 public Base setProperty(int hash, String name, Base value) throws FHIRException { 791 switch (hash) { 792 case 3059181: // code 793 this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 794 return value; 795 case 111972721: // value 796 this.value = TypeConvertor.castToType(value); // DataType 797 return value; 798 case -1321148966: // exclude 799 this.exclude = TypeConvertor.castToBoolean(value); // BooleanType 800 return value; 801 case -991726143: // period 802 this.period = TypeConvertor.castToPeriod(value); // Period 803 return value; 804 default: return super.setProperty(hash, name, value); 805 } 806 807 } 808 809 @Override 810 public Base setProperty(String name, Base value) throws FHIRException { 811 if (name.equals("code")) { 812 this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 813 } else if (name.equals("value[x]")) { 814 this.value = TypeConvertor.castToType(value); // DataType 815 } else if (name.equals("exclude")) { 816 this.exclude = TypeConvertor.castToBoolean(value); // BooleanType 817 } else if (name.equals("period")) { 818 this.period = TypeConvertor.castToPeriod(value); // Period 819 } else 820 return super.setProperty(name, value); 821 return value; 822 } 823 824 @Override 825 public Base makeProperty(int hash, String name) throws FHIRException { 826 switch (hash) { 827 case 3059181: return getCode(); 828 case -1410166417: return getValue(); 829 case 111972721: return getValue(); 830 case -1321148966: return getExcludeElement(); 831 case -991726143: return getPeriod(); 832 default: return super.makeProperty(hash, name); 833 } 834 835 } 836 837 @Override 838 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 839 switch (hash) { 840 case 3059181: /*code*/ return new String[] {"CodeableConcept"}; 841 case 111972721: /*value*/ return new String[] {"Reference", "CodeableConcept", "boolean", "Quantity", "Range"}; 842 case -1321148966: /*exclude*/ return new String[] {"boolean"}; 843 case -991726143: /*period*/ return new String[] {"Period"}; 844 default: return super.getTypesForProperty(hash, name); 845 } 846 847 } 848 849 @Override 850 public Base addChild(String name) throws FHIRException { 851 if (name.equals("code")) { 852 this.code = new CodeableConcept(); 853 return this.code; 854 } 855 else if (name.equals("valueReference")) { 856 this.value = new Reference(); 857 return this.value; 858 } 859 else if (name.equals("valueCodeableConcept")) { 860 this.value = new CodeableConcept(); 861 return this.value; 862 } 863 else if (name.equals("valueBoolean")) { 864 this.value = new BooleanType(); 865 return this.value; 866 } 867 else if (name.equals("valueQuantity")) { 868 this.value = new Quantity(); 869 return this.value; 870 } 871 else if (name.equals("valueRange")) { 872 this.value = new Range(); 873 return this.value; 874 } 875 else if (name.equals("exclude")) { 876 throw new FHIRException("Cannot call addChild on a primitive type EvidenceReport.subject.characteristic.exclude"); 877 } 878 else if (name.equals("period")) { 879 this.period = new Period(); 880 return this.period; 881 } 882 else 883 return super.addChild(name); 884 } 885 886 public EvidenceReportSubjectCharacteristicComponent copy() { 887 EvidenceReportSubjectCharacteristicComponent dst = new EvidenceReportSubjectCharacteristicComponent(); 888 copyValues(dst); 889 return dst; 890 } 891 892 public void copyValues(EvidenceReportSubjectCharacteristicComponent dst) { 893 super.copyValues(dst); 894 dst.code = code == null ? null : code.copy(); 895 dst.value = value == null ? null : value.copy(); 896 dst.exclude = exclude == null ? null : exclude.copy(); 897 dst.period = period == null ? null : period.copy(); 898 } 899 900 @Override 901 public boolean equalsDeep(Base other_) { 902 if (!super.equalsDeep(other_)) 903 return false; 904 if (!(other_ instanceof EvidenceReportSubjectCharacteristicComponent)) 905 return false; 906 EvidenceReportSubjectCharacteristicComponent o = (EvidenceReportSubjectCharacteristicComponent) other_; 907 return compareDeep(code, o.code, true) && compareDeep(value, o.value, true) && compareDeep(exclude, o.exclude, true) 908 && compareDeep(period, o.period, true); 909 } 910 911 @Override 912 public boolean equalsShallow(Base other_) { 913 if (!super.equalsShallow(other_)) 914 return false; 915 if (!(other_ instanceof EvidenceReportSubjectCharacteristicComponent)) 916 return false; 917 EvidenceReportSubjectCharacteristicComponent o = (EvidenceReportSubjectCharacteristicComponent) other_; 918 return compareValues(exclude, o.exclude, true); 919 } 920 921 public boolean isEmpty() { 922 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, value, exclude, period 923 ); 924 } 925 926 public String fhirType() { 927 return "EvidenceReport.subject.characteristic"; 928 929 } 930 931 } 932 933 @Block() 934 public static class EvidenceReportRelatesToComponent extends BackboneElement implements IBaseBackboneElement { 935 /** 936 * The type of relationship that this composition has with anther composition or document. 937 */ 938 @Child(name = "code", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=false) 939 @Description(shortDefinition="replaces | amends | appends | transforms | replacedWith | amendedWith | appendedWith | transformedWith", formalDefinition="The type of relationship that this composition has with anther composition or document." ) 940 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/report-relation-type") 941 protected Enumeration<ReportRelationshipType> code; 942 943 /** 944 * The target composition/document of this relationship. 945 */ 946 @Child(name = "target", type = {Identifier.class, EvidenceReport.class}, order=2, min=1, max=1, modifier=false, summary=false) 947 @Description(shortDefinition="Target of the relationship", formalDefinition="The target composition/document of this relationship." ) 948 protected DataType target; 949 950 private static final long serialVersionUID = -1091549831L; 951 952 /** 953 * Constructor 954 */ 955 public EvidenceReportRelatesToComponent() { 956 super(); 957 } 958 959 /** 960 * Constructor 961 */ 962 public EvidenceReportRelatesToComponent(ReportRelationshipType code, DataType target) { 963 super(); 964 this.setCode(code); 965 this.setTarget(target); 966 } 967 968 /** 969 * @return {@link #code} (The type of relationship that this composition has with anther composition or document.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value 970 */ 971 public Enumeration<ReportRelationshipType> getCodeElement() { 972 if (this.code == null) 973 if (Configuration.errorOnAutoCreate()) 974 throw new Error("Attempt to auto-create EvidenceReportRelatesToComponent.code"); 975 else if (Configuration.doAutoCreate()) 976 this.code = new Enumeration<ReportRelationshipType>(new ReportRelationshipTypeEnumFactory()); // bb 977 return this.code; 978 } 979 980 public boolean hasCodeElement() { 981 return this.code != null && !this.code.isEmpty(); 982 } 983 984 public boolean hasCode() { 985 return this.code != null && !this.code.isEmpty(); 986 } 987 988 /** 989 * @param value {@link #code} (The type of relationship that this composition has with anther composition or document.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value 990 */ 991 public EvidenceReportRelatesToComponent setCodeElement(Enumeration<ReportRelationshipType> value) { 992 this.code = value; 993 return this; 994 } 995 996 /** 997 * @return The type of relationship that this composition has with anther composition or document. 998 */ 999 public ReportRelationshipType getCode() { 1000 return this.code == null ? null : this.code.getValue(); 1001 } 1002 1003 /** 1004 * @param value The type of relationship that this composition has with anther composition or document. 1005 */ 1006 public EvidenceReportRelatesToComponent setCode(ReportRelationshipType value) { 1007 if (this.code == null) 1008 this.code = new Enumeration<ReportRelationshipType>(new ReportRelationshipTypeEnumFactory()); 1009 this.code.setValue(value); 1010 return this; 1011 } 1012 1013 /** 1014 * @return {@link #target} (The target composition/document of this relationship.) 1015 */ 1016 public DataType getTarget() { 1017 return this.target; 1018 } 1019 1020 /** 1021 * @return {@link #target} (The target composition/document of this relationship.) 1022 */ 1023 public Identifier getTargetIdentifier() throws FHIRException { 1024 if (this.target == null) 1025 this.target = new Identifier(); 1026 if (!(this.target instanceof Identifier)) 1027 throw new FHIRException("Type mismatch: the type Identifier was expected, but "+this.target.getClass().getName()+" was encountered"); 1028 return (Identifier) this.target; 1029 } 1030 1031 public boolean hasTargetIdentifier() { 1032 return this != null && this.target instanceof Identifier; 1033 } 1034 1035 /** 1036 * @return {@link #target} (The target composition/document of this relationship.) 1037 */ 1038 public Reference getTargetReference() throws FHIRException { 1039 if (this.target == null) 1040 this.target = new Reference(); 1041 if (!(this.target instanceof Reference)) 1042 throw new FHIRException("Type mismatch: the type Reference was expected, but "+this.target.getClass().getName()+" was encountered"); 1043 return (Reference) this.target; 1044 } 1045 1046 public boolean hasTargetReference() { 1047 return this != null && this.target instanceof Reference; 1048 } 1049 1050 public boolean hasTarget() { 1051 return this.target != null && !this.target.isEmpty(); 1052 } 1053 1054 /** 1055 * @param value {@link #target} (The target composition/document of this relationship.) 1056 */ 1057 public EvidenceReportRelatesToComponent setTarget(DataType value) { 1058 if (value != null && !(value instanceof Identifier || value instanceof Reference)) 1059 throw new Error("Not the right type for EvidenceReport.relatesTo.target[x]: "+value.fhirType()); 1060 this.target = value; 1061 return this; 1062 } 1063 1064 protected void listChildren(List<Property> children) { 1065 super.listChildren(children); 1066 children.add(new Property("code", "code", "The type of relationship that this composition has with anther composition or document.", 0, 1, code)); 1067 children.add(new Property("target[x]", "Identifier|Reference(EvidenceReport)", "The target composition/document of this relationship.", 0, 1, target)); 1068 } 1069 1070 @Override 1071 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1072 switch (_hash) { 1073 case 3059181: /*code*/ return new Property("code", "code", "The type of relationship that this composition has with anther composition or document.", 0, 1, code); 1074 case -815579825: /*target[x]*/ return new Property("target[x]", "Identifier|Reference(EvidenceReport)", "The target composition/document of this relationship.", 0, 1, target); 1075 case -880905839: /*target*/ return new Property("target[x]", "Identifier|Reference(EvidenceReport)", "The target composition/document of this relationship.", 0, 1, target); 1076 case 1690892570: /*targetIdentifier*/ return new Property("target[x]", "Identifier", "The target composition/document of this relationship.", 0, 1, target); 1077 case 1259806906: /*targetReference*/ return new Property("target[x]", "Reference(EvidenceReport)", "The target composition/document of this relationship.", 0, 1, target); 1078 default: return super.getNamedProperty(_hash, _name, _checkValid); 1079 } 1080 1081 } 1082 1083 @Override 1084 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1085 switch (hash) { 1086 case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // Enumeration<ReportRelationshipType> 1087 case -880905839: /*target*/ return this.target == null ? new Base[0] : new Base[] {this.target}; // DataType 1088 default: return super.getProperty(hash, name, checkValid); 1089 } 1090 1091 } 1092 1093 @Override 1094 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1095 switch (hash) { 1096 case 3059181: // code 1097 value = new ReportRelationshipTypeEnumFactory().fromType(TypeConvertor.castToCode(value)); 1098 this.code = (Enumeration) value; // Enumeration<ReportRelationshipType> 1099 return value; 1100 case -880905839: // target 1101 this.target = TypeConvertor.castToType(value); // DataType 1102 return value; 1103 default: return super.setProperty(hash, name, value); 1104 } 1105 1106 } 1107 1108 @Override 1109 public Base setProperty(String name, Base value) throws FHIRException { 1110 if (name.equals("code")) { 1111 value = new ReportRelationshipTypeEnumFactory().fromType(TypeConvertor.castToCode(value)); 1112 this.code = (Enumeration) value; // Enumeration<ReportRelationshipType> 1113 } else if (name.equals("target[x]")) { 1114 this.target = TypeConvertor.castToType(value); // DataType 1115 } else 1116 return super.setProperty(name, value); 1117 return value; 1118 } 1119 1120 @Override 1121 public Base makeProperty(int hash, String name) throws FHIRException { 1122 switch (hash) { 1123 case 3059181: return getCodeElement(); 1124 case -815579825: return getTarget(); 1125 case -880905839: return getTarget(); 1126 default: return super.makeProperty(hash, name); 1127 } 1128 1129 } 1130 1131 @Override 1132 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1133 switch (hash) { 1134 case 3059181: /*code*/ return new String[] {"code"}; 1135 case -880905839: /*target*/ return new String[] {"Identifier", "Reference"}; 1136 default: return super.getTypesForProperty(hash, name); 1137 } 1138 1139 } 1140 1141 @Override 1142 public Base addChild(String name) throws FHIRException { 1143 if (name.equals("code")) { 1144 throw new FHIRException("Cannot call addChild on a primitive type EvidenceReport.relatesTo.code"); 1145 } 1146 else if (name.equals("targetIdentifier")) { 1147 this.target = new Identifier(); 1148 return this.target; 1149 } 1150 else if (name.equals("targetReference")) { 1151 this.target = new Reference(); 1152 return this.target; 1153 } 1154 else 1155 return super.addChild(name); 1156 } 1157 1158 public EvidenceReportRelatesToComponent copy() { 1159 EvidenceReportRelatesToComponent dst = new EvidenceReportRelatesToComponent(); 1160 copyValues(dst); 1161 return dst; 1162 } 1163 1164 public void copyValues(EvidenceReportRelatesToComponent dst) { 1165 super.copyValues(dst); 1166 dst.code = code == null ? null : code.copy(); 1167 dst.target = target == null ? null : target.copy(); 1168 } 1169 1170 @Override 1171 public boolean equalsDeep(Base other_) { 1172 if (!super.equalsDeep(other_)) 1173 return false; 1174 if (!(other_ instanceof EvidenceReportRelatesToComponent)) 1175 return false; 1176 EvidenceReportRelatesToComponent o = (EvidenceReportRelatesToComponent) other_; 1177 return compareDeep(code, o.code, true) && compareDeep(target, o.target, true); 1178 } 1179 1180 @Override 1181 public boolean equalsShallow(Base other_) { 1182 if (!super.equalsShallow(other_)) 1183 return false; 1184 if (!(other_ instanceof EvidenceReportRelatesToComponent)) 1185 return false; 1186 EvidenceReportRelatesToComponent o = (EvidenceReportRelatesToComponent) other_; 1187 return compareValues(code, o.code, true); 1188 } 1189 1190 public boolean isEmpty() { 1191 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, target); 1192 } 1193 1194 public String fhirType() { 1195 return "EvidenceReport.relatesTo"; 1196 1197 } 1198 1199 } 1200 1201 @Block() 1202 public static class SectionComponent extends BackboneElement implements IBaseBackboneElement { 1203 /** 1204 * The label for this particular section. This will be part of the rendered content for the document, and is often used to build a table of contents. 1205 */ 1206 @Child(name = "title", type = {StringType.class}, order=1, min=0, max=1, modifier=false, summary=false) 1207 @Description(shortDefinition="Label for section (e.g. for ToC)", formalDefinition="The label for this particular section. This will be part of the rendered content for the document, and is often used to build a table of contents." ) 1208 protected StringType title; 1209 1210 /** 1211 * A code identifying the kind of content contained within the section. This should be consistent with the section title. 1212 */ 1213 @Child(name = "focus", type = {CodeableConcept.class}, order=2, min=0, max=1, modifier=false, summary=false) 1214 @Description(shortDefinition="Classification of section (recommended)", formalDefinition="A code identifying the kind of content contained within the section. This should be consistent with the section title." ) 1215 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/evidence-report-section") 1216 protected CodeableConcept focus; 1217 1218 /** 1219 * A definitional Resource identifying the kind of content contained within the section. This should be consistent with the section title. 1220 */ 1221 @Child(name = "focusReference", type = {Reference.class}, order=3, min=0, max=1, modifier=false, summary=false) 1222 @Description(shortDefinition="Classification of section by Resource", formalDefinition="A definitional Resource identifying the kind of content contained within the section. This should be consistent with the section title." ) 1223 protected Reference focusReference; 1224 1225 /** 1226 * Identifies who is responsible for the information in this section, not necessarily who typed it in. 1227 */ 1228 @Child(name = "author", type = {Person.class, Device.class, Group.class, Organization.class}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1229 @Description(shortDefinition="Who and/or what authored the section", formalDefinition="Identifies who is responsible for the information in this section, not necessarily who typed it in." ) 1230 protected List<Reference> author; 1231 1232 /** 1233 * A human-readable narrative that contains the attested content of the section, used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is peferred to contain sufficient detail to make it acceptable for a human to just read the narrative. 1234 */ 1235 @Child(name = "text", type = {Narrative.class}, order=5, min=0, max=1, modifier=false, summary=false) 1236 @Description(shortDefinition="Text summary of the section, for human interpretation", formalDefinition="A human-readable narrative that contains the attested content of the section, used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is peferred to contain sufficient detail to make it acceptable for a human to just read the narrative." ) 1237 protected Narrative text; 1238 1239 /** 1240 * How the entry list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted. 1241 */ 1242 @Child(name = "mode", type = {CodeType.class}, order=6, min=0, max=1, modifier=false, summary=false) 1243 @Description(shortDefinition="working | snapshot | changes", formalDefinition="How the entry list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted." ) 1244 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/list-mode") 1245 protected Enumeration<ListMode> mode; 1246 1247 /** 1248 * Specifies the order applied to the items in the section entries. 1249 */ 1250 @Child(name = "orderedBy", type = {CodeableConcept.class}, order=7, min=0, max=1, modifier=false, summary=false) 1251 @Description(shortDefinition="Order of section entries", formalDefinition="Specifies the order applied to the items in the section entries." ) 1252 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/list-order") 1253 protected CodeableConcept orderedBy; 1254 1255 /** 1256 * Specifies any type of classification of the evidence report. 1257 */ 1258 @Child(name = "entryClassifier", type = {CodeableConcept.class}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1259 @Description(shortDefinition="Extensible classifiers as content", formalDefinition="Specifies any type of classification of the evidence report." ) 1260 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/evidence-classifier-code") 1261 protected List<CodeableConcept> entryClassifier; 1262 1263 /** 1264 * A reference to the actual resource from which the narrative in the section is derived. 1265 */ 1266 @Child(name = "entryReference", type = {Reference.class}, order=9, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1267 @Description(shortDefinition="Reference to resources as content", formalDefinition="A reference to the actual resource from which the narrative in the section is derived." ) 1268 protected List<Reference> entryReference; 1269 1270 /** 1271 * Quantity as content. 1272 */ 1273 @Child(name = "entryQuantity", type = {Quantity.class}, order=10, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1274 @Description(shortDefinition="Quantity as content", formalDefinition="Quantity as content." ) 1275 protected List<Quantity> entryQuantity; 1276 1277 /** 1278 * If the section is empty, why the list is empty. An empty section typically has some text explaining the empty reason. 1279 */ 1280 @Child(name = "emptyReason", type = {CodeableConcept.class}, order=11, min=0, max=1, modifier=false, summary=false) 1281 @Description(shortDefinition="Why the section is empty", formalDefinition="If the section is empty, why the list is empty. An empty section typically has some text explaining the empty reason." ) 1282 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/list-empty-reason") 1283 protected CodeableConcept emptyReason; 1284 1285 /** 1286 * A nested sub-section within this section. 1287 */ 1288 @Child(name = "section", type = {SectionComponent.class}, order=12, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1289 @Description(shortDefinition="Nested Section", formalDefinition="A nested sub-section within this section." ) 1290 protected List<SectionComponent> section; 1291 1292 private static final long serialVersionUID = -324854168L; 1293 1294 /** 1295 * Constructor 1296 */ 1297 public SectionComponent() { 1298 super(); 1299 } 1300 1301 /** 1302 * @return {@link #title} (The label for this particular section. This will be part of the rendered content for the document, and is often used to build a table of contents.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value 1303 */ 1304 public StringType getTitleElement() { 1305 if (this.title == null) 1306 if (Configuration.errorOnAutoCreate()) 1307 throw new Error("Attempt to auto-create SectionComponent.title"); 1308 else if (Configuration.doAutoCreate()) 1309 this.title = new StringType(); // bb 1310 return this.title; 1311 } 1312 1313 public boolean hasTitleElement() { 1314 return this.title != null && !this.title.isEmpty(); 1315 } 1316 1317 public boolean hasTitle() { 1318 return this.title != null && !this.title.isEmpty(); 1319 } 1320 1321 /** 1322 * @param value {@link #title} (The label for this particular section. This will be part of the rendered content for the document, and is often used to build a table of contents.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value 1323 */ 1324 public SectionComponent setTitleElement(StringType value) { 1325 this.title = value; 1326 return this; 1327 } 1328 1329 /** 1330 * @return The label for this particular section. This will be part of the rendered content for the document, and is often used to build a table of contents. 1331 */ 1332 public String getTitle() { 1333 return this.title == null ? null : this.title.getValue(); 1334 } 1335 1336 /** 1337 * @param value The label for this particular section. This will be part of the rendered content for the document, and is often used to build a table of contents. 1338 */ 1339 public SectionComponent setTitle(String value) { 1340 if (Utilities.noString(value)) 1341 this.title = null; 1342 else { 1343 if (this.title == null) 1344 this.title = new StringType(); 1345 this.title.setValue(value); 1346 } 1347 return this; 1348 } 1349 1350 /** 1351 * @return {@link #focus} (A code identifying the kind of content contained within the section. This should be consistent with the section title.) 1352 */ 1353 public CodeableConcept getFocus() { 1354 if (this.focus == null) 1355 if (Configuration.errorOnAutoCreate()) 1356 throw new Error("Attempt to auto-create SectionComponent.focus"); 1357 else if (Configuration.doAutoCreate()) 1358 this.focus = new CodeableConcept(); // cc 1359 return this.focus; 1360 } 1361 1362 public boolean hasFocus() { 1363 return this.focus != null && !this.focus.isEmpty(); 1364 } 1365 1366 /** 1367 * @param value {@link #focus} (A code identifying the kind of content contained within the section. This should be consistent with the section title.) 1368 */ 1369 public SectionComponent setFocus(CodeableConcept value) { 1370 this.focus = value; 1371 return this; 1372 } 1373 1374 /** 1375 * @return {@link #focusReference} (A definitional Resource identifying the kind of content contained within the section. This should be consistent with the section title.) 1376 */ 1377 public Reference getFocusReference() { 1378 if (this.focusReference == null) 1379 if (Configuration.errorOnAutoCreate()) 1380 throw new Error("Attempt to auto-create SectionComponent.focusReference"); 1381 else if (Configuration.doAutoCreate()) 1382 this.focusReference = new Reference(); // cc 1383 return this.focusReference; 1384 } 1385 1386 public boolean hasFocusReference() { 1387 return this.focusReference != null && !this.focusReference.isEmpty(); 1388 } 1389 1390 /** 1391 * @param value {@link #focusReference} (A definitional Resource identifying the kind of content contained within the section. This should be consistent with the section title.) 1392 */ 1393 public SectionComponent setFocusReference(Reference value) { 1394 this.focusReference = value; 1395 return this; 1396 } 1397 1398 /** 1399 * @return {@link #author} (Identifies who is responsible for the information in this section, not necessarily who typed it in.) 1400 */ 1401 public List<Reference> getAuthor() { 1402 if (this.author == null) 1403 this.author = new ArrayList<Reference>(); 1404 return this.author; 1405 } 1406 1407 /** 1408 * @return Returns a reference to <code>this</code> for easy method chaining 1409 */ 1410 public SectionComponent setAuthor(List<Reference> theAuthor) { 1411 this.author = theAuthor; 1412 return this; 1413 } 1414 1415 public boolean hasAuthor() { 1416 if (this.author == null) 1417 return false; 1418 for (Reference item : this.author) 1419 if (!item.isEmpty()) 1420 return true; 1421 return false; 1422 } 1423 1424 public Reference addAuthor() { //3 1425 Reference t = new Reference(); 1426 if (this.author == null) 1427 this.author = new ArrayList<Reference>(); 1428 this.author.add(t); 1429 return t; 1430 } 1431 1432 public SectionComponent addAuthor(Reference t) { //3 1433 if (t == null) 1434 return this; 1435 if (this.author == null) 1436 this.author = new ArrayList<Reference>(); 1437 this.author.add(t); 1438 return this; 1439 } 1440 1441 /** 1442 * @return The first repetition of repeating field {@link #author}, creating it if it does not already exist {3} 1443 */ 1444 public Reference getAuthorFirstRep() { 1445 if (getAuthor().isEmpty()) { 1446 addAuthor(); 1447 } 1448 return getAuthor().get(0); 1449 } 1450 1451 /** 1452 * @return {@link #text} (A human-readable narrative that contains the attested content of the section, used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is peferred to contain sufficient detail to make it acceptable for a human to just read the narrative.) 1453 */ 1454 public Narrative getText() { 1455 if (this.text == null) 1456 if (Configuration.errorOnAutoCreate()) 1457 throw new Error("Attempt to auto-create SectionComponent.text"); 1458 else if (Configuration.doAutoCreate()) 1459 this.text = new Narrative(); // cc 1460 return this.text; 1461 } 1462 1463 public boolean hasText() { 1464 return this.text != null && !this.text.isEmpty(); 1465 } 1466 1467 /** 1468 * @param value {@link #text} (A human-readable narrative that contains the attested content of the section, used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is peferred to contain sufficient detail to make it acceptable for a human to just read the narrative.) 1469 */ 1470 public SectionComponent setText(Narrative value) { 1471 this.text = value; 1472 return this; 1473 } 1474 1475 /** 1476 * @return {@link #mode} (How the entry list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted.). This is the underlying object with id, value and extensions. The accessor "getMode" gives direct access to the value 1477 */ 1478 public Enumeration<ListMode> getModeElement() { 1479 if (this.mode == null) 1480 if (Configuration.errorOnAutoCreate()) 1481 throw new Error("Attempt to auto-create SectionComponent.mode"); 1482 else if (Configuration.doAutoCreate()) 1483 this.mode = new Enumeration<ListMode>(new ListModeEnumFactory()); // bb 1484 return this.mode; 1485 } 1486 1487 public boolean hasModeElement() { 1488 return this.mode != null && !this.mode.isEmpty(); 1489 } 1490 1491 public boolean hasMode() { 1492 return this.mode != null && !this.mode.isEmpty(); 1493 } 1494 1495 /** 1496 * @param value {@link #mode} (How the entry list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted.). This is the underlying object with id, value and extensions. The accessor "getMode" gives direct access to the value 1497 */ 1498 public SectionComponent setModeElement(Enumeration<ListMode> value) { 1499 this.mode = value; 1500 return this; 1501 } 1502 1503 /** 1504 * @return How the entry list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted. 1505 */ 1506 public ListMode getMode() { 1507 return this.mode == null ? null : this.mode.getValue(); 1508 } 1509 1510 /** 1511 * @param value How the entry list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted. 1512 */ 1513 public SectionComponent setMode(ListMode value) { 1514 if (value == null) 1515 this.mode = null; 1516 else { 1517 if (this.mode == null) 1518 this.mode = new Enumeration<ListMode>(new ListModeEnumFactory()); 1519 this.mode.setValue(value); 1520 } 1521 return this; 1522 } 1523 1524 /** 1525 * @return {@link #orderedBy} (Specifies the order applied to the items in the section entries.) 1526 */ 1527 public CodeableConcept getOrderedBy() { 1528 if (this.orderedBy == null) 1529 if (Configuration.errorOnAutoCreate()) 1530 throw new Error("Attempt to auto-create SectionComponent.orderedBy"); 1531 else if (Configuration.doAutoCreate()) 1532 this.orderedBy = new CodeableConcept(); // cc 1533 return this.orderedBy; 1534 } 1535 1536 public boolean hasOrderedBy() { 1537 return this.orderedBy != null && !this.orderedBy.isEmpty(); 1538 } 1539 1540 /** 1541 * @param value {@link #orderedBy} (Specifies the order applied to the items in the section entries.) 1542 */ 1543 public SectionComponent setOrderedBy(CodeableConcept value) { 1544 this.orderedBy = value; 1545 return this; 1546 } 1547 1548 /** 1549 * @return {@link #entryClassifier} (Specifies any type of classification of the evidence report.) 1550 */ 1551 public List<CodeableConcept> getEntryClassifier() { 1552 if (this.entryClassifier == null) 1553 this.entryClassifier = new ArrayList<CodeableConcept>(); 1554 return this.entryClassifier; 1555 } 1556 1557 /** 1558 * @return Returns a reference to <code>this</code> for easy method chaining 1559 */ 1560 public SectionComponent setEntryClassifier(List<CodeableConcept> theEntryClassifier) { 1561 this.entryClassifier = theEntryClassifier; 1562 return this; 1563 } 1564 1565 public boolean hasEntryClassifier() { 1566 if (this.entryClassifier == null) 1567 return false; 1568 for (CodeableConcept item : this.entryClassifier) 1569 if (!item.isEmpty()) 1570 return true; 1571 return false; 1572 } 1573 1574 public CodeableConcept addEntryClassifier() { //3 1575 CodeableConcept t = new CodeableConcept(); 1576 if (this.entryClassifier == null) 1577 this.entryClassifier = new ArrayList<CodeableConcept>(); 1578 this.entryClassifier.add(t); 1579 return t; 1580 } 1581 1582 public SectionComponent addEntryClassifier(CodeableConcept t) { //3 1583 if (t == null) 1584 return this; 1585 if (this.entryClassifier == null) 1586 this.entryClassifier = new ArrayList<CodeableConcept>(); 1587 this.entryClassifier.add(t); 1588 return this; 1589 } 1590 1591 /** 1592 * @return The first repetition of repeating field {@link #entryClassifier}, creating it if it does not already exist {3} 1593 */ 1594 public CodeableConcept getEntryClassifierFirstRep() { 1595 if (getEntryClassifier().isEmpty()) { 1596 addEntryClassifier(); 1597 } 1598 return getEntryClassifier().get(0); 1599 } 1600 1601 /** 1602 * @return {@link #entryReference} (A reference to the actual resource from which the narrative in the section is derived.) 1603 */ 1604 public List<Reference> getEntryReference() { 1605 if (this.entryReference == null) 1606 this.entryReference = new ArrayList<Reference>(); 1607 return this.entryReference; 1608 } 1609 1610 /** 1611 * @return Returns a reference to <code>this</code> for easy method chaining 1612 */ 1613 public SectionComponent setEntryReference(List<Reference> theEntryReference) { 1614 this.entryReference = theEntryReference; 1615 return this; 1616 } 1617 1618 public boolean hasEntryReference() { 1619 if (this.entryReference == null) 1620 return false; 1621 for (Reference item : this.entryReference) 1622 if (!item.isEmpty()) 1623 return true; 1624 return false; 1625 } 1626 1627 public Reference addEntryReference() { //3 1628 Reference t = new Reference(); 1629 if (this.entryReference == null) 1630 this.entryReference = new ArrayList<Reference>(); 1631 this.entryReference.add(t); 1632 return t; 1633 } 1634 1635 public SectionComponent addEntryReference(Reference t) { //3 1636 if (t == null) 1637 return this; 1638 if (this.entryReference == null) 1639 this.entryReference = new ArrayList<Reference>(); 1640 this.entryReference.add(t); 1641 return this; 1642 } 1643 1644 /** 1645 * @return The first repetition of repeating field {@link #entryReference}, creating it if it does not already exist {3} 1646 */ 1647 public Reference getEntryReferenceFirstRep() { 1648 if (getEntryReference().isEmpty()) { 1649 addEntryReference(); 1650 } 1651 return getEntryReference().get(0); 1652 } 1653 1654 /** 1655 * @return {@link #entryQuantity} (Quantity as content.) 1656 */ 1657 public List<Quantity> getEntryQuantity() { 1658 if (this.entryQuantity == null) 1659 this.entryQuantity = new ArrayList<Quantity>(); 1660 return this.entryQuantity; 1661 } 1662 1663 /** 1664 * @return Returns a reference to <code>this</code> for easy method chaining 1665 */ 1666 public SectionComponent setEntryQuantity(List<Quantity> theEntryQuantity) { 1667 this.entryQuantity = theEntryQuantity; 1668 return this; 1669 } 1670 1671 public boolean hasEntryQuantity() { 1672 if (this.entryQuantity == null) 1673 return false; 1674 for (Quantity item : this.entryQuantity) 1675 if (!item.isEmpty()) 1676 return true; 1677 return false; 1678 } 1679 1680 public Quantity addEntryQuantity() { //3 1681 Quantity t = new Quantity(); 1682 if (this.entryQuantity == null) 1683 this.entryQuantity = new ArrayList<Quantity>(); 1684 this.entryQuantity.add(t); 1685 return t; 1686 } 1687 1688 public SectionComponent addEntryQuantity(Quantity t) { //3 1689 if (t == null) 1690 return this; 1691 if (this.entryQuantity == null) 1692 this.entryQuantity = new ArrayList<Quantity>(); 1693 this.entryQuantity.add(t); 1694 return this; 1695 } 1696 1697 /** 1698 * @return The first repetition of repeating field {@link #entryQuantity}, creating it if it does not already exist {3} 1699 */ 1700 public Quantity getEntryQuantityFirstRep() { 1701 if (getEntryQuantity().isEmpty()) { 1702 addEntryQuantity(); 1703 } 1704 return getEntryQuantity().get(0); 1705 } 1706 1707 /** 1708 * @return {@link #emptyReason} (If the section is empty, why the list is empty. An empty section typically has some text explaining the empty reason.) 1709 */ 1710 public CodeableConcept getEmptyReason() { 1711 if (this.emptyReason == null) 1712 if (Configuration.errorOnAutoCreate()) 1713 throw new Error("Attempt to auto-create SectionComponent.emptyReason"); 1714 else if (Configuration.doAutoCreate()) 1715 this.emptyReason = new CodeableConcept(); // cc 1716 return this.emptyReason; 1717 } 1718 1719 public boolean hasEmptyReason() { 1720 return this.emptyReason != null && !this.emptyReason.isEmpty(); 1721 } 1722 1723 /** 1724 * @param value {@link #emptyReason} (If the section is empty, why the list is empty. An empty section typically has some text explaining the empty reason.) 1725 */ 1726 public SectionComponent setEmptyReason(CodeableConcept value) { 1727 this.emptyReason = value; 1728 return this; 1729 } 1730 1731 /** 1732 * @return {@link #section} (A nested sub-section within this section.) 1733 */ 1734 public List<SectionComponent> getSection() { 1735 if (this.section == null) 1736 this.section = new ArrayList<SectionComponent>(); 1737 return this.section; 1738 } 1739 1740 /** 1741 * @return Returns a reference to <code>this</code> for easy method chaining 1742 */ 1743 public SectionComponent setSection(List<SectionComponent> theSection) { 1744 this.section = theSection; 1745 return this; 1746 } 1747 1748 public boolean hasSection() { 1749 if (this.section == null) 1750 return false; 1751 for (SectionComponent item : this.section) 1752 if (!item.isEmpty()) 1753 return true; 1754 return false; 1755 } 1756 1757 public SectionComponent addSection() { //3 1758 SectionComponent t = new SectionComponent(); 1759 if (this.section == null) 1760 this.section = new ArrayList<SectionComponent>(); 1761 this.section.add(t); 1762 return t; 1763 } 1764 1765 public SectionComponent addSection(SectionComponent t) { //3 1766 if (t == null) 1767 return this; 1768 if (this.section == null) 1769 this.section = new ArrayList<SectionComponent>(); 1770 this.section.add(t); 1771 return this; 1772 } 1773 1774 /** 1775 * @return The first repetition of repeating field {@link #section}, creating it if it does not already exist {3} 1776 */ 1777 public SectionComponent getSectionFirstRep() { 1778 if (getSection().isEmpty()) { 1779 addSection(); 1780 } 1781 return getSection().get(0); 1782 } 1783 1784 protected void listChildren(List<Property> children) { 1785 super.listChildren(children); 1786 children.add(new Property("title", "string", "The label for this particular section. This will be part of the rendered content for the document, and is often used to build a table of contents.", 0, 1, title)); 1787 children.add(new Property("focus", "CodeableConcept", "A code identifying the kind of content contained within the section. This should be consistent with the section title.", 0, 1, focus)); 1788 children.add(new Property("focusReference", "Reference(Any)", "A definitional Resource identifying the kind of content contained within the section. This should be consistent with the section title.", 0, 1, focusReference)); 1789 children.add(new Property("author", "Reference(Person|Device|Group|Organization)", "Identifies who is responsible for the information in this section, not necessarily who typed it in.", 0, java.lang.Integer.MAX_VALUE, author)); 1790 children.add(new Property("text", "Narrative", "A human-readable narrative that contains the attested content of the section, used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is peferred to contain sufficient detail to make it acceptable for a human to just read the narrative.", 0, 1, text)); 1791 children.add(new Property("mode", "code", "How the entry list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted.", 0, 1, mode)); 1792 children.add(new Property("orderedBy", "CodeableConcept", "Specifies the order applied to the items in the section entries.", 0, 1, orderedBy)); 1793 children.add(new Property("entryClassifier", "CodeableConcept", "Specifies any type of classification of the evidence report.", 0, java.lang.Integer.MAX_VALUE, entryClassifier)); 1794 children.add(new Property("entryReference", "Reference(Any)", "A reference to the actual resource from which the narrative in the section is derived.", 0, java.lang.Integer.MAX_VALUE, entryReference)); 1795 children.add(new Property("entryQuantity", "Quantity", "Quantity as content.", 0, java.lang.Integer.MAX_VALUE, entryQuantity)); 1796 children.add(new Property("emptyReason", "CodeableConcept", "If the section is empty, why the list is empty. An empty section typically has some text explaining the empty reason.", 0, 1, emptyReason)); 1797 children.add(new Property("section", "@EvidenceReport.section", "A nested sub-section within this section.", 0, java.lang.Integer.MAX_VALUE, section)); 1798 } 1799 1800 @Override 1801 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1802 switch (_hash) { 1803 case 110371416: /*title*/ return new Property("title", "string", "The label for this particular section. This will be part of the rendered content for the document, and is often used to build a table of contents.", 0, 1, title); 1804 case 97604824: /*focus*/ return new Property("focus", "CodeableConcept", "A code identifying the kind of content contained within the section. This should be consistent with the section title.", 0, 1, focus); 1805 case 1823604051: /*focusReference*/ return new Property("focusReference", "Reference(Any)", "A definitional Resource identifying the kind of content contained within the section. This should be consistent with the section title.", 0, 1, focusReference); 1806 case -1406328437: /*author*/ return new Property("author", "Reference(Person|Device|Group|Organization)", "Identifies who is responsible for the information in this section, not necessarily who typed it in.", 0, java.lang.Integer.MAX_VALUE, author); 1807 case 3556653: /*text*/ return new Property("text", "Narrative", "A human-readable narrative that contains the attested content of the section, used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is peferred to contain sufficient detail to make it acceptable for a human to just read the narrative.", 0, 1, text); 1808 case 3357091: /*mode*/ return new Property("mode", "code", "How the entry list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted.", 0, 1, mode); 1809 case -391079516: /*orderedBy*/ return new Property("orderedBy", "CodeableConcept", "Specifies the order applied to the items in the section entries.", 0, 1, orderedBy); 1810 case -948201421: /*entryClassifier*/ return new Property("entryClassifier", "CodeableConcept", "Specifies any type of classification of the evidence report.", 0, java.lang.Integer.MAX_VALUE, entryClassifier); 1811 case 438810361: /*entryReference*/ return new Property("entryReference", "Reference(Any)", "A reference to the actual resource from which the narrative in the section is derived.", 0, java.lang.Integer.MAX_VALUE, entryReference); 1812 case 1945583389: /*entryQuantity*/ return new Property("entryQuantity", "Quantity", "Quantity as content.", 0, java.lang.Integer.MAX_VALUE, entryQuantity); 1813 case 1140135409: /*emptyReason*/ return new Property("emptyReason", "CodeableConcept", "If the section is empty, why the list is empty. An empty section typically has some text explaining the empty reason.", 0, 1, emptyReason); 1814 case 1970241253: /*section*/ return new Property("section", "@EvidenceReport.section", "A nested sub-section within this section.", 0, java.lang.Integer.MAX_VALUE, section); 1815 default: return super.getNamedProperty(_hash, _name, _checkValid); 1816 } 1817 1818 } 1819 1820 @Override 1821 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1822 switch (hash) { 1823 case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType 1824 case 97604824: /*focus*/ return this.focus == null ? new Base[0] : new Base[] {this.focus}; // CodeableConcept 1825 case 1823604051: /*focusReference*/ return this.focusReference == null ? new Base[0] : new Base[] {this.focusReference}; // Reference 1826 case -1406328437: /*author*/ return this.author == null ? new Base[0] : this.author.toArray(new Base[this.author.size()]); // Reference 1827 case 3556653: /*text*/ return this.text == null ? new Base[0] : new Base[] {this.text}; // Narrative 1828 case 3357091: /*mode*/ return this.mode == null ? new Base[0] : new Base[] {this.mode}; // Enumeration<ListMode> 1829 case -391079516: /*orderedBy*/ return this.orderedBy == null ? new Base[0] : new Base[] {this.orderedBy}; // CodeableConcept 1830 case -948201421: /*entryClassifier*/ return this.entryClassifier == null ? new Base[0] : this.entryClassifier.toArray(new Base[this.entryClassifier.size()]); // CodeableConcept 1831 case 438810361: /*entryReference*/ return this.entryReference == null ? new Base[0] : this.entryReference.toArray(new Base[this.entryReference.size()]); // Reference 1832 case 1945583389: /*entryQuantity*/ return this.entryQuantity == null ? new Base[0] : this.entryQuantity.toArray(new Base[this.entryQuantity.size()]); // Quantity 1833 case 1140135409: /*emptyReason*/ return this.emptyReason == null ? new Base[0] : new Base[] {this.emptyReason}; // CodeableConcept 1834 case 1970241253: /*section*/ return this.section == null ? new Base[0] : this.section.toArray(new Base[this.section.size()]); // SectionComponent 1835 default: return super.getProperty(hash, name, checkValid); 1836 } 1837 1838 } 1839 1840 @Override 1841 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1842 switch (hash) { 1843 case 110371416: // title 1844 this.title = TypeConvertor.castToString(value); // StringType 1845 return value; 1846 case 97604824: // focus 1847 this.focus = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1848 return value; 1849 case 1823604051: // focusReference 1850 this.focusReference = TypeConvertor.castToReference(value); // Reference 1851 return value; 1852 case -1406328437: // author 1853 this.getAuthor().add(TypeConvertor.castToReference(value)); // Reference 1854 return value; 1855 case 3556653: // text 1856 this.text = TypeConvertor.castToNarrative(value); // Narrative 1857 return value; 1858 case 3357091: // mode 1859 value = new ListModeEnumFactory().fromType(TypeConvertor.castToCode(value)); 1860 this.mode = (Enumeration) value; // Enumeration<ListMode> 1861 return value; 1862 case -391079516: // orderedBy 1863 this.orderedBy = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1864 return value; 1865 case -948201421: // entryClassifier 1866 this.getEntryClassifier().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 1867 return value; 1868 case 438810361: // entryReference 1869 this.getEntryReference().add(TypeConvertor.castToReference(value)); // Reference 1870 return value; 1871 case 1945583389: // entryQuantity 1872 this.getEntryQuantity().add(TypeConvertor.castToQuantity(value)); // Quantity 1873 return value; 1874 case 1140135409: // emptyReason 1875 this.emptyReason = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1876 return value; 1877 case 1970241253: // section 1878 this.getSection().add((SectionComponent) value); // SectionComponent 1879 return value; 1880 default: return super.setProperty(hash, name, value); 1881 } 1882 1883 } 1884 1885 @Override 1886 public Base setProperty(String name, Base value) throws FHIRException { 1887 if (name.equals("title")) { 1888 this.title = TypeConvertor.castToString(value); // StringType 1889 } else if (name.equals("focus")) { 1890 this.focus = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1891 } else if (name.equals("focusReference")) { 1892 this.focusReference = TypeConvertor.castToReference(value); // Reference 1893 } else if (name.equals("author")) { 1894 this.getAuthor().add(TypeConvertor.castToReference(value)); 1895 } else if (name.equals("text")) { 1896 this.text = TypeConvertor.castToNarrative(value); // Narrative 1897 } else if (name.equals("mode")) { 1898 value = new ListModeEnumFactory().fromType(TypeConvertor.castToCode(value)); 1899 this.mode = (Enumeration) value; // Enumeration<ListMode> 1900 } else if (name.equals("orderedBy")) { 1901 this.orderedBy = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1902 } else if (name.equals("entryClassifier")) { 1903 this.getEntryClassifier().add(TypeConvertor.castToCodeableConcept(value)); 1904 } else if (name.equals("entryReference")) { 1905 this.getEntryReference().add(TypeConvertor.castToReference(value)); 1906 } else if (name.equals("entryQuantity")) { 1907 this.getEntryQuantity().add(TypeConvertor.castToQuantity(value)); 1908 } else if (name.equals("emptyReason")) { 1909 this.emptyReason = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1910 } else if (name.equals("section")) { 1911 this.getSection().add((SectionComponent) value); 1912 } else 1913 return super.setProperty(name, value); 1914 return value; 1915 } 1916 1917 @Override 1918 public Base makeProperty(int hash, String name) throws FHIRException { 1919 switch (hash) { 1920 case 110371416: return getTitleElement(); 1921 case 97604824: return getFocus(); 1922 case 1823604051: return getFocusReference(); 1923 case -1406328437: return addAuthor(); 1924 case 3556653: return getText(); 1925 case 3357091: return getModeElement(); 1926 case -391079516: return getOrderedBy(); 1927 case -948201421: return addEntryClassifier(); 1928 case 438810361: return addEntryReference(); 1929 case 1945583389: return addEntryQuantity(); 1930 case 1140135409: return getEmptyReason(); 1931 case 1970241253: return addSection(); 1932 default: return super.makeProperty(hash, name); 1933 } 1934 1935 } 1936 1937 @Override 1938 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1939 switch (hash) { 1940 case 110371416: /*title*/ return new String[] {"string"}; 1941 case 97604824: /*focus*/ return new String[] {"CodeableConcept"}; 1942 case 1823604051: /*focusReference*/ return new String[] {"Reference"}; 1943 case -1406328437: /*author*/ return new String[] {"Reference"}; 1944 case 3556653: /*text*/ return new String[] {"Narrative"}; 1945 case 3357091: /*mode*/ return new String[] {"code"}; 1946 case -391079516: /*orderedBy*/ return new String[] {"CodeableConcept"}; 1947 case -948201421: /*entryClassifier*/ return new String[] {"CodeableConcept"}; 1948 case 438810361: /*entryReference*/ return new String[] {"Reference"}; 1949 case 1945583389: /*entryQuantity*/ return new String[] {"Quantity"}; 1950 case 1140135409: /*emptyReason*/ return new String[] {"CodeableConcept"}; 1951 case 1970241253: /*section*/ return new String[] {"@EvidenceReport.section"}; 1952 default: return super.getTypesForProperty(hash, name); 1953 } 1954 1955 } 1956 1957 @Override 1958 public Base addChild(String name) throws FHIRException { 1959 if (name.equals("title")) { 1960 throw new FHIRException("Cannot call addChild on a primitive type EvidenceReport.section.title"); 1961 } 1962 else if (name.equals("focus")) { 1963 this.focus = new CodeableConcept(); 1964 return this.focus; 1965 } 1966 else if (name.equals("focusReference")) { 1967 this.focusReference = new Reference(); 1968 return this.focusReference; 1969 } 1970 else if (name.equals("author")) { 1971 return addAuthor(); 1972 } 1973 else if (name.equals("text")) { 1974 this.text = new Narrative(); 1975 return this.text; 1976 } 1977 else if (name.equals("mode")) { 1978 throw new FHIRException("Cannot call addChild on a primitive type EvidenceReport.section.mode"); 1979 } 1980 else if (name.equals("orderedBy")) { 1981 this.orderedBy = new CodeableConcept(); 1982 return this.orderedBy; 1983 } 1984 else if (name.equals("entryClassifier")) { 1985 return addEntryClassifier(); 1986 } 1987 else if (name.equals("entryReference")) { 1988 return addEntryReference(); 1989 } 1990 else if (name.equals("entryQuantity")) { 1991 return addEntryQuantity(); 1992 } 1993 else if (name.equals("emptyReason")) { 1994 this.emptyReason = new CodeableConcept(); 1995 return this.emptyReason; 1996 } 1997 else if (name.equals("section")) { 1998 return addSection(); 1999 } 2000 else 2001 return super.addChild(name); 2002 } 2003 2004 public SectionComponent copy() { 2005 SectionComponent dst = new SectionComponent(); 2006 copyValues(dst); 2007 return dst; 2008 } 2009 2010 public void copyValues(SectionComponent dst) { 2011 super.copyValues(dst); 2012 dst.title = title == null ? null : title.copy(); 2013 dst.focus = focus == null ? null : focus.copy(); 2014 dst.focusReference = focusReference == null ? null : focusReference.copy(); 2015 if (author != null) { 2016 dst.author = new ArrayList<Reference>(); 2017 for (Reference i : author) 2018 dst.author.add(i.copy()); 2019 }; 2020 dst.text = text == null ? null : text.copy(); 2021 dst.mode = mode == null ? null : mode.copy(); 2022 dst.orderedBy = orderedBy == null ? null : orderedBy.copy(); 2023 if (entryClassifier != null) { 2024 dst.entryClassifier = new ArrayList<CodeableConcept>(); 2025 for (CodeableConcept i : entryClassifier) 2026 dst.entryClassifier.add(i.copy()); 2027 }; 2028 if (entryReference != null) { 2029 dst.entryReference = new ArrayList<Reference>(); 2030 for (Reference i : entryReference) 2031 dst.entryReference.add(i.copy()); 2032 }; 2033 if (entryQuantity != null) { 2034 dst.entryQuantity = new ArrayList<Quantity>(); 2035 for (Quantity i : entryQuantity) 2036 dst.entryQuantity.add(i.copy()); 2037 }; 2038 dst.emptyReason = emptyReason == null ? null : emptyReason.copy(); 2039 if (section != null) { 2040 dst.section = new ArrayList<SectionComponent>(); 2041 for (SectionComponent i : section) 2042 dst.section.add(i.copy()); 2043 }; 2044 } 2045 2046 @Override 2047 public boolean equalsDeep(Base other_) { 2048 if (!super.equalsDeep(other_)) 2049 return false; 2050 if (!(other_ instanceof SectionComponent)) 2051 return false; 2052 SectionComponent o = (SectionComponent) other_; 2053 return compareDeep(title, o.title, true) && compareDeep(focus, o.focus, true) && compareDeep(focusReference, o.focusReference, true) 2054 && compareDeep(author, o.author, true) && compareDeep(text, o.text, true) && compareDeep(mode, o.mode, true) 2055 && compareDeep(orderedBy, o.orderedBy, true) && compareDeep(entryClassifier, o.entryClassifier, true) 2056 && compareDeep(entryReference, o.entryReference, true) && compareDeep(entryQuantity, o.entryQuantity, true) 2057 && compareDeep(emptyReason, o.emptyReason, true) && compareDeep(section, o.section, true); 2058 } 2059 2060 @Override 2061 public boolean equalsShallow(Base other_) { 2062 if (!super.equalsShallow(other_)) 2063 return false; 2064 if (!(other_ instanceof SectionComponent)) 2065 return false; 2066 SectionComponent o = (SectionComponent) other_; 2067 return compareValues(title, o.title, true) && compareValues(mode, o.mode, true); 2068 } 2069 2070 public boolean isEmpty() { 2071 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(title, focus, focusReference 2072 , author, text, mode, orderedBy, entryClassifier, entryReference, entryQuantity 2073 , emptyReason, section); 2074 } 2075 2076 public String fhirType() { 2077 return "EvidenceReport.section"; 2078 2079 } 2080 2081 } 2082 2083 /** 2084 * An absolute URI that is used to identify this EvidenceReport when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this summary is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the summary is stored on different servers. 2085 */ 2086 @Child(name = "url", type = {UriType.class}, order=0, min=0, max=1, modifier=false, summary=true) 2087 @Description(shortDefinition="Canonical identifier for this EvidenceReport, represented as a globally unique URI", formalDefinition="An absolute URI that is used to identify this EvidenceReport when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this summary is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the summary is stored on different servers." ) 2088 protected UriType url; 2089 2090 /** 2091 * The status of this summary. Enables tracking the life-cycle of the content. 2092 */ 2093 @Child(name = "status", type = {CodeType.class}, order=1, min=1, max=1, modifier=true, summary=true) 2094 @Description(shortDefinition="draft | active | retired | unknown", formalDefinition="The status of this summary. Enables tracking the life-cycle of the content." ) 2095 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/publication-status") 2096 protected Enumeration<PublicationStatus> status; 2097 2098 /** 2099 * The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate evidence report instances. 2100 */ 2101 @Child(name = "useContext", type = {UsageContext.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 2102 @Description(shortDefinition="The context that the content is intended to support", formalDefinition="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate evidence report instances." ) 2103 protected List<UsageContext> useContext; 2104 2105 /** 2106 * A formal identifier that is used to identify this EvidenceReport when it is represented in other formats, or referenced in a specification, model, design or an instance. 2107 */ 2108 @Child(name = "identifier", type = {Identifier.class}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 2109 @Description(shortDefinition="Unique identifier for the evidence report", formalDefinition="A formal identifier that is used to identify this EvidenceReport when it is represented in other formats, or referenced in a specification, model, design or an instance." ) 2110 protected List<Identifier> identifier; 2111 2112 /** 2113 * A formal identifier that is used to identify things closely related to this EvidenceReport. 2114 */ 2115 @Child(name = "relatedIdentifier", type = {Identifier.class}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 2116 @Description(shortDefinition="Identifiers for articles that may relate to more than one evidence report", formalDefinition="A formal identifier that is used to identify things closely related to this EvidenceReport." ) 2117 protected List<Identifier> relatedIdentifier; 2118 2119 /** 2120 * Citation Resource or display of suggested citation for this report. 2121 */ 2122 @Child(name = "citeAs", type = {Citation.class, MarkdownType.class}, order=5, min=0, max=1, modifier=false, summary=false) 2123 @Description(shortDefinition="Citation for this report", formalDefinition="Citation Resource or display of suggested citation for this report." ) 2124 protected DataType citeAs; 2125 2126 /** 2127 * Specifies the kind of report, such as grouping of classifiers, search results, or human-compiled expression. 2128 */ 2129 @Child(name = "type", type = {CodeableConcept.class}, order=6, min=0, max=1, modifier=false, summary=false) 2130 @Description(shortDefinition="Kind of report", formalDefinition="Specifies the kind of report, such as grouping of classifiers, search results, or human-compiled expression." ) 2131 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/evidence-report-type") 2132 protected CodeableConcept type; 2133 2134 /** 2135 * Used for footnotes and annotations. 2136 */ 2137 @Child(name = "note", type = {Annotation.class}, order=7, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 2138 @Description(shortDefinition="Used for footnotes and annotations", formalDefinition="Used for footnotes and annotations." ) 2139 protected List<Annotation> note; 2140 2141 /** 2142 * Link, description or reference to artifact associated with the report. 2143 */ 2144 @Child(name = "relatedArtifact", type = {RelatedArtifact.class}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 2145 @Description(shortDefinition="Link, description or reference to artifact associated with the report", formalDefinition="Link, description or reference to artifact associated with the report." ) 2146 protected List<RelatedArtifact> relatedArtifact; 2147 2148 /** 2149 * Specifies the subject or focus of the report. Answers "What is this report about?". 2150 */ 2151 @Child(name = "subject", type = {}, order=9, min=1, max=1, modifier=false, summary=true) 2152 @Description(shortDefinition="Focus of the report", formalDefinition="Specifies the subject or focus of the report. Answers \"What is this report about?\"." ) 2153 protected EvidenceReportSubjectComponent subject; 2154 2155 /** 2156 * The name of the organization or individual that published the evidence report. 2157 */ 2158 @Child(name = "publisher", type = {StringType.class}, order=10, min=0, max=1, modifier=false, summary=true) 2159 @Description(shortDefinition="Name of the publisher (organization or individual)", formalDefinition="The name of the organization or individual that published the evidence report." ) 2160 protected StringType publisher; 2161 2162 /** 2163 * Contact details to assist a user in finding and communicating with the publisher. 2164 */ 2165 @Child(name = "contact", type = {ContactDetail.class}, order=11, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 2166 @Description(shortDefinition="Contact details for the publisher", formalDefinition="Contact details to assist a user in finding and communicating with the publisher." ) 2167 protected List<ContactDetail> contact; 2168 2169 /** 2170 * An individiual, organization, or device primarily involved in the creation and maintenance of the content. 2171 */ 2172 @Child(name = "author", type = {ContactDetail.class}, order=12, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 2173 @Description(shortDefinition="Who authored the content", formalDefinition="An individiual, organization, or device primarily involved in the creation and maintenance of the content." ) 2174 protected List<ContactDetail> author; 2175 2176 /** 2177 * An individiual, organization, or device primarily responsible for internal coherence of the content. 2178 */ 2179 @Child(name = "editor", type = {ContactDetail.class}, order=13, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 2180 @Description(shortDefinition="Who edited the content", formalDefinition="An individiual, organization, or device primarily responsible for internal coherence of the content." ) 2181 protected List<ContactDetail> editor; 2182 2183 /** 2184 * An individiual, organization, or device primarily responsible for review of some aspect of the content. 2185 */ 2186 @Child(name = "reviewer", type = {ContactDetail.class}, order=14, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 2187 @Description(shortDefinition="Who reviewed the content", formalDefinition="An individiual, organization, or device primarily responsible for review of some aspect of the content." ) 2188 protected List<ContactDetail> reviewer; 2189 2190 /** 2191 * An individiual, organization, or device responsible for officially endorsing the content for use in some setting. 2192 */ 2193 @Child(name = "endorser", type = {ContactDetail.class}, order=15, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 2194 @Description(shortDefinition="Who endorsed the content", formalDefinition="An individiual, organization, or device responsible for officially endorsing the content for use in some setting." ) 2195 protected List<ContactDetail> endorser; 2196 2197 /** 2198 * Relationships that this composition has with other compositions or documents that already exist. 2199 */ 2200 @Child(name = "relatesTo", type = {}, order=16, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 2201 @Description(shortDefinition="Relationships to other compositions/documents", formalDefinition="Relationships that this composition has with other compositions or documents that already exist." ) 2202 protected List<EvidenceReportRelatesToComponent> relatesTo; 2203 2204 /** 2205 * The root of the sections that make up the composition. 2206 */ 2207 @Child(name = "section", type = {}, order=17, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 2208 @Description(shortDefinition="Composition is broken into sections", formalDefinition="The root of the sections that make up the composition." ) 2209 protected List<SectionComponent> section; 2210 2211 private static final long serialVersionUID = -1087028792L; 2212 2213 /** 2214 * Constructor 2215 */ 2216 public EvidenceReport() { 2217 super(); 2218 } 2219 2220 /** 2221 * Constructor 2222 */ 2223 public EvidenceReport(PublicationStatus status, EvidenceReportSubjectComponent subject) { 2224 super(); 2225 this.setStatus(status); 2226 this.setSubject(subject); 2227 } 2228 2229 /** 2230 * @return {@link #url} (An absolute URI that is used to identify this EvidenceReport when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this summary is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the summary is stored on different servers.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value 2231 */ 2232 public UriType getUrlElement() { 2233 if (this.url == null) 2234 if (Configuration.errorOnAutoCreate()) 2235 throw new Error("Attempt to auto-create EvidenceReport.url"); 2236 else if (Configuration.doAutoCreate()) 2237 this.url = new UriType(); // bb 2238 return this.url; 2239 } 2240 2241 public boolean hasUrlElement() { 2242 return this.url != null && !this.url.isEmpty(); 2243 } 2244 2245 public boolean hasUrl() { 2246 return this.url != null && !this.url.isEmpty(); 2247 } 2248 2249 /** 2250 * @param value {@link #url} (An absolute URI that is used to identify this EvidenceReport when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this summary is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the summary is stored on different servers.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value 2251 */ 2252 public EvidenceReport setUrlElement(UriType value) { 2253 this.url = value; 2254 return this; 2255 } 2256 2257 /** 2258 * @return An absolute URI that is used to identify this EvidenceReport when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this summary is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the summary is stored on different servers. 2259 */ 2260 public String getUrl() { 2261 return this.url == null ? null : this.url.getValue(); 2262 } 2263 2264 /** 2265 * @param value An absolute URI that is used to identify this EvidenceReport when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this summary is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the summary is stored on different servers. 2266 */ 2267 public EvidenceReport setUrl(String value) { 2268 if (Utilities.noString(value)) 2269 this.url = null; 2270 else { 2271 if (this.url == null) 2272 this.url = new UriType(); 2273 this.url.setValue(value); 2274 } 2275 return this; 2276 } 2277 2278 /** 2279 * @return {@link #status} (The status of this summary. Enables tracking the life-cycle of the content.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 2280 */ 2281 public Enumeration<PublicationStatus> getStatusElement() { 2282 if (this.status == null) 2283 if (Configuration.errorOnAutoCreate()) 2284 throw new Error("Attempt to auto-create EvidenceReport.status"); 2285 else if (Configuration.doAutoCreate()) 2286 this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); // bb 2287 return this.status; 2288 } 2289 2290 public boolean hasStatusElement() { 2291 return this.status != null && !this.status.isEmpty(); 2292 } 2293 2294 public boolean hasStatus() { 2295 return this.status != null && !this.status.isEmpty(); 2296 } 2297 2298 /** 2299 * @param value {@link #status} (The status of this summary. Enables tracking the life-cycle of the content.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 2300 */ 2301 public EvidenceReport setStatusElement(Enumeration<PublicationStatus> value) { 2302 this.status = value; 2303 return this; 2304 } 2305 2306 /** 2307 * @return The status of this summary. Enables tracking the life-cycle of the content. 2308 */ 2309 public PublicationStatus getStatus() { 2310 return this.status == null ? null : this.status.getValue(); 2311 } 2312 2313 /** 2314 * @param value The status of this summary. Enables tracking the life-cycle of the content. 2315 */ 2316 public EvidenceReport setStatus(PublicationStatus value) { 2317 if (this.status == null) 2318 this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); 2319 this.status.setValue(value); 2320 return this; 2321 } 2322 2323 /** 2324 * @return {@link #useContext} (The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate evidence report instances.) 2325 */ 2326 public List<UsageContext> getUseContext() { 2327 if (this.useContext == null) 2328 this.useContext = new ArrayList<UsageContext>(); 2329 return this.useContext; 2330 } 2331 2332 /** 2333 * @return Returns a reference to <code>this</code> for easy method chaining 2334 */ 2335 public EvidenceReport setUseContext(List<UsageContext> theUseContext) { 2336 this.useContext = theUseContext; 2337 return this; 2338 } 2339 2340 public boolean hasUseContext() { 2341 if (this.useContext == null) 2342 return false; 2343 for (UsageContext item : this.useContext) 2344 if (!item.isEmpty()) 2345 return true; 2346 return false; 2347 } 2348 2349 public UsageContext addUseContext() { //3 2350 UsageContext t = new UsageContext(); 2351 if (this.useContext == null) 2352 this.useContext = new ArrayList<UsageContext>(); 2353 this.useContext.add(t); 2354 return t; 2355 } 2356 2357 public EvidenceReport addUseContext(UsageContext t) { //3 2358 if (t == null) 2359 return this; 2360 if (this.useContext == null) 2361 this.useContext = new ArrayList<UsageContext>(); 2362 this.useContext.add(t); 2363 return this; 2364 } 2365 2366 /** 2367 * @return The first repetition of repeating field {@link #useContext}, creating it if it does not already exist {3} 2368 */ 2369 public UsageContext getUseContextFirstRep() { 2370 if (getUseContext().isEmpty()) { 2371 addUseContext(); 2372 } 2373 return getUseContext().get(0); 2374 } 2375 2376 /** 2377 * @return {@link #identifier} (A formal identifier that is used to identify this EvidenceReport when it is represented in other formats, or referenced in a specification, model, design or an instance.) 2378 */ 2379 public List<Identifier> getIdentifier() { 2380 if (this.identifier == null) 2381 this.identifier = new ArrayList<Identifier>(); 2382 return this.identifier; 2383 } 2384 2385 /** 2386 * @return Returns a reference to <code>this</code> for easy method chaining 2387 */ 2388 public EvidenceReport setIdentifier(List<Identifier> theIdentifier) { 2389 this.identifier = theIdentifier; 2390 return this; 2391 } 2392 2393 public boolean hasIdentifier() { 2394 if (this.identifier == null) 2395 return false; 2396 for (Identifier item : this.identifier) 2397 if (!item.isEmpty()) 2398 return true; 2399 return false; 2400 } 2401 2402 public Identifier addIdentifier() { //3 2403 Identifier t = new Identifier(); 2404 if (this.identifier == null) 2405 this.identifier = new ArrayList<Identifier>(); 2406 this.identifier.add(t); 2407 return t; 2408 } 2409 2410 public EvidenceReport addIdentifier(Identifier t) { //3 2411 if (t == null) 2412 return this; 2413 if (this.identifier == null) 2414 this.identifier = new ArrayList<Identifier>(); 2415 this.identifier.add(t); 2416 return this; 2417 } 2418 2419 /** 2420 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3} 2421 */ 2422 public Identifier getIdentifierFirstRep() { 2423 if (getIdentifier().isEmpty()) { 2424 addIdentifier(); 2425 } 2426 return getIdentifier().get(0); 2427 } 2428 2429 /** 2430 * @return {@link #relatedIdentifier} (A formal identifier that is used to identify things closely related to this EvidenceReport.) 2431 */ 2432 public List<Identifier> getRelatedIdentifier() { 2433 if (this.relatedIdentifier == null) 2434 this.relatedIdentifier = new ArrayList<Identifier>(); 2435 return this.relatedIdentifier; 2436 } 2437 2438 /** 2439 * @return Returns a reference to <code>this</code> for easy method chaining 2440 */ 2441 public EvidenceReport setRelatedIdentifier(List<Identifier> theRelatedIdentifier) { 2442 this.relatedIdentifier = theRelatedIdentifier; 2443 return this; 2444 } 2445 2446 public boolean hasRelatedIdentifier() { 2447 if (this.relatedIdentifier == null) 2448 return false; 2449 for (Identifier item : this.relatedIdentifier) 2450 if (!item.isEmpty()) 2451 return true; 2452 return false; 2453 } 2454 2455 public Identifier addRelatedIdentifier() { //3 2456 Identifier t = new Identifier(); 2457 if (this.relatedIdentifier == null) 2458 this.relatedIdentifier = new ArrayList<Identifier>(); 2459 this.relatedIdentifier.add(t); 2460 return t; 2461 } 2462 2463 public EvidenceReport addRelatedIdentifier(Identifier t) { //3 2464 if (t == null) 2465 return this; 2466 if (this.relatedIdentifier == null) 2467 this.relatedIdentifier = new ArrayList<Identifier>(); 2468 this.relatedIdentifier.add(t); 2469 return this; 2470 } 2471 2472 /** 2473 * @return The first repetition of repeating field {@link #relatedIdentifier}, creating it if it does not already exist {3} 2474 */ 2475 public Identifier getRelatedIdentifierFirstRep() { 2476 if (getRelatedIdentifier().isEmpty()) { 2477 addRelatedIdentifier(); 2478 } 2479 return getRelatedIdentifier().get(0); 2480 } 2481 2482 /** 2483 * @return {@link #citeAs} (Citation Resource or display of suggested citation for this report.) 2484 */ 2485 public DataType getCiteAs() { 2486 return this.citeAs; 2487 } 2488 2489 /** 2490 * @return {@link #citeAs} (Citation Resource or display of suggested citation for this report.) 2491 */ 2492 public Reference getCiteAsReference() throws FHIRException { 2493 if (this.citeAs == null) 2494 this.citeAs = new Reference(); 2495 if (!(this.citeAs instanceof Reference)) 2496 throw new FHIRException("Type mismatch: the type Reference was expected, but "+this.citeAs.getClass().getName()+" was encountered"); 2497 return (Reference) this.citeAs; 2498 } 2499 2500 public boolean hasCiteAsReference() { 2501 return this != null && this.citeAs instanceof Reference; 2502 } 2503 2504 /** 2505 * @return {@link #citeAs} (Citation Resource or display of suggested citation for this report.) 2506 */ 2507 public MarkdownType getCiteAsMarkdownType() throws FHIRException { 2508 if (this.citeAs == null) 2509 this.citeAs = new MarkdownType(); 2510 if (!(this.citeAs instanceof MarkdownType)) 2511 throw new FHIRException("Type mismatch: the type MarkdownType was expected, but "+this.citeAs.getClass().getName()+" was encountered"); 2512 return (MarkdownType) this.citeAs; 2513 } 2514 2515 public boolean hasCiteAsMarkdownType() { 2516 return this != null && this.citeAs instanceof MarkdownType; 2517 } 2518 2519 public boolean hasCiteAs() { 2520 return this.citeAs != null && !this.citeAs.isEmpty(); 2521 } 2522 2523 /** 2524 * @param value {@link #citeAs} (Citation Resource or display of suggested citation for this report.) 2525 */ 2526 public EvidenceReport setCiteAs(DataType value) { 2527 if (value != null && !(value instanceof Reference || value instanceof MarkdownType)) 2528 throw new Error("Not the right type for EvidenceReport.citeAs[x]: "+value.fhirType()); 2529 this.citeAs = value; 2530 return this; 2531 } 2532 2533 /** 2534 * @return {@link #type} (Specifies the kind of report, such as grouping of classifiers, search results, or human-compiled expression.) 2535 */ 2536 public CodeableConcept getType() { 2537 if (this.type == null) 2538 if (Configuration.errorOnAutoCreate()) 2539 throw new Error("Attempt to auto-create EvidenceReport.type"); 2540 else if (Configuration.doAutoCreate()) 2541 this.type = new CodeableConcept(); // cc 2542 return this.type; 2543 } 2544 2545 public boolean hasType() { 2546 return this.type != null && !this.type.isEmpty(); 2547 } 2548 2549 /** 2550 * @param value {@link #type} (Specifies the kind of report, such as grouping of classifiers, search results, or human-compiled expression.) 2551 */ 2552 public EvidenceReport setType(CodeableConcept value) { 2553 this.type = value; 2554 return this; 2555 } 2556 2557 /** 2558 * @return {@link #note} (Used for footnotes and annotations.) 2559 */ 2560 public List<Annotation> getNote() { 2561 if (this.note == null) 2562 this.note = new ArrayList<Annotation>(); 2563 return this.note; 2564 } 2565 2566 /** 2567 * @return Returns a reference to <code>this</code> for easy method chaining 2568 */ 2569 public EvidenceReport setNote(List<Annotation> theNote) { 2570 this.note = theNote; 2571 return this; 2572 } 2573 2574 public boolean hasNote() { 2575 if (this.note == null) 2576 return false; 2577 for (Annotation item : this.note) 2578 if (!item.isEmpty()) 2579 return true; 2580 return false; 2581 } 2582 2583 public Annotation addNote() { //3 2584 Annotation t = new Annotation(); 2585 if (this.note == null) 2586 this.note = new ArrayList<Annotation>(); 2587 this.note.add(t); 2588 return t; 2589 } 2590 2591 public EvidenceReport addNote(Annotation t) { //3 2592 if (t == null) 2593 return this; 2594 if (this.note == null) 2595 this.note = new ArrayList<Annotation>(); 2596 this.note.add(t); 2597 return this; 2598 } 2599 2600 /** 2601 * @return The first repetition of repeating field {@link #note}, creating it if it does not already exist {3} 2602 */ 2603 public Annotation getNoteFirstRep() { 2604 if (getNote().isEmpty()) { 2605 addNote(); 2606 } 2607 return getNote().get(0); 2608 } 2609 2610 /** 2611 * @return {@link #relatedArtifact} (Link, description or reference to artifact associated with the report.) 2612 */ 2613 public List<RelatedArtifact> getRelatedArtifact() { 2614 if (this.relatedArtifact == null) 2615 this.relatedArtifact = new ArrayList<RelatedArtifact>(); 2616 return this.relatedArtifact; 2617 } 2618 2619 /** 2620 * @return Returns a reference to <code>this</code> for easy method chaining 2621 */ 2622 public EvidenceReport setRelatedArtifact(List<RelatedArtifact> theRelatedArtifact) { 2623 this.relatedArtifact = theRelatedArtifact; 2624 return this; 2625 } 2626 2627 public boolean hasRelatedArtifact() { 2628 if (this.relatedArtifact == null) 2629 return false; 2630 for (RelatedArtifact item : this.relatedArtifact) 2631 if (!item.isEmpty()) 2632 return true; 2633 return false; 2634 } 2635 2636 public RelatedArtifact addRelatedArtifact() { //3 2637 RelatedArtifact t = new RelatedArtifact(); 2638 if (this.relatedArtifact == null) 2639 this.relatedArtifact = new ArrayList<RelatedArtifact>(); 2640 this.relatedArtifact.add(t); 2641 return t; 2642 } 2643 2644 public EvidenceReport addRelatedArtifact(RelatedArtifact t) { //3 2645 if (t == null) 2646 return this; 2647 if (this.relatedArtifact == null) 2648 this.relatedArtifact = new ArrayList<RelatedArtifact>(); 2649 this.relatedArtifact.add(t); 2650 return this; 2651 } 2652 2653 /** 2654 * @return The first repetition of repeating field {@link #relatedArtifact}, creating it if it does not already exist {3} 2655 */ 2656 public RelatedArtifact getRelatedArtifactFirstRep() { 2657 if (getRelatedArtifact().isEmpty()) { 2658 addRelatedArtifact(); 2659 } 2660 return getRelatedArtifact().get(0); 2661 } 2662 2663 /** 2664 * @return {@link #subject} (Specifies the subject or focus of the report. Answers "What is this report about?".) 2665 */ 2666 public EvidenceReportSubjectComponent getSubject() { 2667 if (this.subject == null) 2668 if (Configuration.errorOnAutoCreate()) 2669 throw new Error("Attempt to auto-create EvidenceReport.subject"); 2670 else if (Configuration.doAutoCreate()) 2671 this.subject = new EvidenceReportSubjectComponent(); // cc 2672 return this.subject; 2673 } 2674 2675 public boolean hasSubject() { 2676 return this.subject != null && !this.subject.isEmpty(); 2677 } 2678 2679 /** 2680 * @param value {@link #subject} (Specifies the subject or focus of the report. Answers "What is this report about?".) 2681 */ 2682 public EvidenceReport setSubject(EvidenceReportSubjectComponent value) { 2683 this.subject = value; 2684 return this; 2685 } 2686 2687 /** 2688 * @return {@link #publisher} (The name of the organization or individual that published the evidence report.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value 2689 */ 2690 public StringType getPublisherElement() { 2691 if (this.publisher == null) 2692 if (Configuration.errorOnAutoCreate()) 2693 throw new Error("Attempt to auto-create EvidenceReport.publisher"); 2694 else if (Configuration.doAutoCreate()) 2695 this.publisher = new StringType(); // bb 2696 return this.publisher; 2697 } 2698 2699 public boolean hasPublisherElement() { 2700 return this.publisher != null && !this.publisher.isEmpty(); 2701 } 2702 2703 public boolean hasPublisher() { 2704 return this.publisher != null && !this.publisher.isEmpty(); 2705 } 2706 2707 /** 2708 * @param value {@link #publisher} (The name of the organization or individual that published the evidence report.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value 2709 */ 2710 public EvidenceReport setPublisherElement(StringType value) { 2711 this.publisher = value; 2712 return this; 2713 } 2714 2715 /** 2716 * @return The name of the organization or individual that published the evidence report. 2717 */ 2718 public String getPublisher() { 2719 return this.publisher == null ? null : this.publisher.getValue(); 2720 } 2721 2722 /** 2723 * @param value The name of the organization or individual that published the evidence report. 2724 */ 2725 public EvidenceReport setPublisher(String value) { 2726 if (Utilities.noString(value)) 2727 this.publisher = null; 2728 else { 2729 if (this.publisher == null) 2730 this.publisher = new StringType(); 2731 this.publisher.setValue(value); 2732 } 2733 return this; 2734 } 2735 2736 /** 2737 * @return {@link #contact} (Contact details to assist a user in finding and communicating with the publisher.) 2738 */ 2739 public List<ContactDetail> getContact() { 2740 if (this.contact == null) 2741 this.contact = new ArrayList<ContactDetail>(); 2742 return this.contact; 2743 } 2744 2745 /** 2746 * @return Returns a reference to <code>this</code> for easy method chaining 2747 */ 2748 public EvidenceReport setContact(List<ContactDetail> theContact) { 2749 this.contact = theContact; 2750 return this; 2751 } 2752 2753 public boolean hasContact() { 2754 if (this.contact == null) 2755 return false; 2756 for (ContactDetail item : this.contact) 2757 if (!item.isEmpty()) 2758 return true; 2759 return false; 2760 } 2761 2762 public ContactDetail addContact() { //3 2763 ContactDetail t = new ContactDetail(); 2764 if (this.contact == null) 2765 this.contact = new ArrayList<ContactDetail>(); 2766 this.contact.add(t); 2767 return t; 2768 } 2769 2770 public EvidenceReport addContact(ContactDetail t) { //3 2771 if (t == null) 2772 return this; 2773 if (this.contact == null) 2774 this.contact = new ArrayList<ContactDetail>(); 2775 this.contact.add(t); 2776 return this; 2777 } 2778 2779 /** 2780 * @return The first repetition of repeating field {@link #contact}, creating it if it does not already exist {3} 2781 */ 2782 public ContactDetail getContactFirstRep() { 2783 if (getContact().isEmpty()) { 2784 addContact(); 2785 } 2786 return getContact().get(0); 2787 } 2788 2789 /** 2790 * @return {@link #author} (An individiual, organization, or device primarily involved in the creation and maintenance of the content.) 2791 */ 2792 public List<ContactDetail> getAuthor() { 2793 if (this.author == null) 2794 this.author = new ArrayList<ContactDetail>(); 2795 return this.author; 2796 } 2797 2798 /** 2799 * @return Returns a reference to <code>this</code> for easy method chaining 2800 */ 2801 public EvidenceReport setAuthor(List<ContactDetail> theAuthor) { 2802 this.author = theAuthor; 2803 return this; 2804 } 2805 2806 public boolean hasAuthor() { 2807 if (this.author == null) 2808 return false; 2809 for (ContactDetail item : this.author) 2810 if (!item.isEmpty()) 2811 return true; 2812 return false; 2813 } 2814 2815 public ContactDetail addAuthor() { //3 2816 ContactDetail t = new ContactDetail(); 2817 if (this.author == null) 2818 this.author = new ArrayList<ContactDetail>(); 2819 this.author.add(t); 2820 return t; 2821 } 2822 2823 public EvidenceReport addAuthor(ContactDetail t) { //3 2824 if (t == null) 2825 return this; 2826 if (this.author == null) 2827 this.author = new ArrayList<ContactDetail>(); 2828 this.author.add(t); 2829 return this; 2830 } 2831 2832 /** 2833 * @return The first repetition of repeating field {@link #author}, creating it if it does not already exist {3} 2834 */ 2835 public ContactDetail getAuthorFirstRep() { 2836 if (getAuthor().isEmpty()) { 2837 addAuthor(); 2838 } 2839 return getAuthor().get(0); 2840 } 2841 2842 /** 2843 * @return {@link #editor} (An individiual, organization, or device primarily responsible for internal coherence of the content.) 2844 */ 2845 public List<ContactDetail> getEditor() { 2846 if (this.editor == null) 2847 this.editor = new ArrayList<ContactDetail>(); 2848 return this.editor; 2849 } 2850 2851 /** 2852 * @return Returns a reference to <code>this</code> for easy method chaining 2853 */ 2854 public EvidenceReport setEditor(List<ContactDetail> theEditor) { 2855 this.editor = theEditor; 2856 return this; 2857 } 2858 2859 public boolean hasEditor() { 2860 if (this.editor == null) 2861 return false; 2862 for (ContactDetail item : this.editor) 2863 if (!item.isEmpty()) 2864 return true; 2865 return false; 2866 } 2867 2868 public ContactDetail addEditor() { //3 2869 ContactDetail t = new ContactDetail(); 2870 if (this.editor == null) 2871 this.editor = new ArrayList<ContactDetail>(); 2872 this.editor.add(t); 2873 return t; 2874 } 2875 2876 public EvidenceReport addEditor(ContactDetail t) { //3 2877 if (t == null) 2878 return this; 2879 if (this.editor == null) 2880 this.editor = new ArrayList<ContactDetail>(); 2881 this.editor.add(t); 2882 return this; 2883 } 2884 2885 /** 2886 * @return The first repetition of repeating field {@link #editor}, creating it if it does not already exist {3} 2887 */ 2888 public ContactDetail getEditorFirstRep() { 2889 if (getEditor().isEmpty()) { 2890 addEditor(); 2891 } 2892 return getEditor().get(0); 2893 } 2894 2895 /** 2896 * @return {@link #reviewer} (An individiual, organization, or device primarily responsible for review of some aspect of the content.) 2897 */ 2898 public List<ContactDetail> getReviewer() { 2899 if (this.reviewer == null) 2900 this.reviewer = new ArrayList<ContactDetail>(); 2901 return this.reviewer; 2902 } 2903 2904 /** 2905 * @return Returns a reference to <code>this</code> for easy method chaining 2906 */ 2907 public EvidenceReport setReviewer(List<ContactDetail> theReviewer) { 2908 this.reviewer = theReviewer; 2909 return this; 2910 } 2911 2912 public boolean hasReviewer() { 2913 if (this.reviewer == null) 2914 return false; 2915 for (ContactDetail item : this.reviewer) 2916 if (!item.isEmpty()) 2917 return true; 2918 return false; 2919 } 2920 2921 public ContactDetail addReviewer() { //3 2922 ContactDetail t = new ContactDetail(); 2923 if (this.reviewer == null) 2924 this.reviewer = new ArrayList<ContactDetail>(); 2925 this.reviewer.add(t); 2926 return t; 2927 } 2928 2929 public EvidenceReport addReviewer(ContactDetail t) { //3 2930 if (t == null) 2931 return this; 2932 if (this.reviewer == null) 2933 this.reviewer = new ArrayList<ContactDetail>(); 2934 this.reviewer.add(t); 2935 return this; 2936 } 2937 2938 /** 2939 * @return The first repetition of repeating field {@link #reviewer}, creating it if it does not already exist {3} 2940 */ 2941 public ContactDetail getReviewerFirstRep() { 2942 if (getReviewer().isEmpty()) { 2943 addReviewer(); 2944 } 2945 return getReviewer().get(0); 2946 } 2947 2948 /** 2949 * @return {@link #endorser} (An individiual, organization, or device responsible for officially endorsing the content for use in some setting.) 2950 */ 2951 public List<ContactDetail> getEndorser() { 2952 if (this.endorser == null) 2953 this.endorser = new ArrayList<ContactDetail>(); 2954 return this.endorser; 2955 } 2956 2957 /** 2958 * @return Returns a reference to <code>this</code> for easy method chaining 2959 */ 2960 public EvidenceReport setEndorser(List<ContactDetail> theEndorser) { 2961 this.endorser = theEndorser; 2962 return this; 2963 } 2964 2965 public boolean hasEndorser() { 2966 if (this.endorser == null) 2967 return false; 2968 for (ContactDetail item : this.endorser) 2969 if (!item.isEmpty()) 2970 return true; 2971 return false; 2972 } 2973 2974 public ContactDetail addEndorser() { //3 2975 ContactDetail t = new ContactDetail(); 2976 if (this.endorser == null) 2977 this.endorser = new ArrayList<ContactDetail>(); 2978 this.endorser.add(t); 2979 return t; 2980 } 2981 2982 public EvidenceReport addEndorser(ContactDetail t) { //3 2983 if (t == null) 2984 return this; 2985 if (this.endorser == null) 2986 this.endorser = new ArrayList<ContactDetail>(); 2987 this.endorser.add(t); 2988 return this; 2989 } 2990 2991 /** 2992 * @return The first repetition of repeating field {@link #endorser}, creating it if it does not already exist {3} 2993 */ 2994 public ContactDetail getEndorserFirstRep() { 2995 if (getEndorser().isEmpty()) { 2996 addEndorser(); 2997 } 2998 return getEndorser().get(0); 2999 } 3000 3001 /** 3002 * @return {@link #relatesTo} (Relationships that this composition has with other compositions or documents that already exist.) 3003 */ 3004 public List<EvidenceReportRelatesToComponent> getRelatesTo() { 3005 if (this.relatesTo == null) 3006 this.relatesTo = new ArrayList<EvidenceReportRelatesToComponent>(); 3007 return this.relatesTo; 3008 } 3009 3010 /** 3011 * @return Returns a reference to <code>this</code> for easy method chaining 3012 */ 3013 public EvidenceReport setRelatesTo(List<EvidenceReportRelatesToComponent> theRelatesTo) { 3014 this.relatesTo = theRelatesTo; 3015 return this; 3016 } 3017 3018 public boolean hasRelatesTo() { 3019 if (this.relatesTo == null) 3020 return false; 3021 for (EvidenceReportRelatesToComponent item : this.relatesTo) 3022 if (!item.isEmpty()) 3023 return true; 3024 return false; 3025 } 3026 3027 public EvidenceReportRelatesToComponent addRelatesTo() { //3 3028 EvidenceReportRelatesToComponent t = new EvidenceReportRelatesToComponent(); 3029 if (this.relatesTo == null) 3030 this.relatesTo = new ArrayList<EvidenceReportRelatesToComponent>(); 3031 this.relatesTo.add(t); 3032 return t; 3033 } 3034 3035 public EvidenceReport addRelatesTo(EvidenceReportRelatesToComponent t) { //3 3036 if (t == null) 3037 return this; 3038 if (this.relatesTo == null) 3039 this.relatesTo = new ArrayList<EvidenceReportRelatesToComponent>(); 3040 this.relatesTo.add(t); 3041 return this; 3042 } 3043 3044 /** 3045 * @return The first repetition of repeating field {@link #relatesTo}, creating it if it does not already exist {3} 3046 */ 3047 public EvidenceReportRelatesToComponent getRelatesToFirstRep() { 3048 if (getRelatesTo().isEmpty()) { 3049 addRelatesTo(); 3050 } 3051 return getRelatesTo().get(0); 3052 } 3053 3054 /** 3055 * @return {@link #section} (The root of the sections that make up the composition.) 3056 */ 3057 public List<SectionComponent> getSection() { 3058 if (this.section == null) 3059 this.section = new ArrayList<SectionComponent>(); 3060 return this.section; 3061 } 3062 3063 /** 3064 * @return Returns a reference to <code>this</code> for easy method chaining 3065 */ 3066 public EvidenceReport setSection(List<SectionComponent> theSection) { 3067 this.section = theSection; 3068 return this; 3069 } 3070 3071 public boolean hasSection() { 3072 if (this.section == null) 3073 return false; 3074 for (SectionComponent item : this.section) 3075 if (!item.isEmpty()) 3076 return true; 3077 return false; 3078 } 3079 3080 public SectionComponent addSection() { //3 3081 SectionComponent t = new SectionComponent(); 3082 if (this.section == null) 3083 this.section = new ArrayList<SectionComponent>(); 3084 this.section.add(t); 3085 return t; 3086 } 3087 3088 public EvidenceReport addSection(SectionComponent t) { //3 3089 if (t == null) 3090 return this; 3091 if (this.section == null) 3092 this.section = new ArrayList<SectionComponent>(); 3093 this.section.add(t); 3094 return this; 3095 } 3096 3097 /** 3098 * @return The first repetition of repeating field {@link #section}, creating it if it does not already exist {3} 3099 */ 3100 public SectionComponent getSectionFirstRep() { 3101 if (getSection().isEmpty()) { 3102 addSection(); 3103 } 3104 return getSection().get(0); 3105 } 3106 3107 protected void listChildren(List<Property> children) { 3108 super.listChildren(children); 3109 children.add(new Property("url", "uri", "An absolute URI that is used to identify this EvidenceReport when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this summary is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the summary is stored on different servers.", 0, 1, url)); 3110 children.add(new Property("status", "code", "The status of this summary. Enables tracking the life-cycle of the content.", 0, 1, status)); 3111 children.add(new Property("useContext", "UsageContext", "The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate evidence report instances.", 0, java.lang.Integer.MAX_VALUE, useContext)); 3112 children.add(new Property("identifier", "Identifier", "A formal identifier that is used to identify this EvidenceReport when it is represented in other formats, or referenced in a specification, model, design or an instance.", 0, java.lang.Integer.MAX_VALUE, identifier)); 3113 children.add(new Property("relatedIdentifier", "Identifier", "A formal identifier that is used to identify things closely related to this EvidenceReport.", 0, java.lang.Integer.MAX_VALUE, relatedIdentifier)); 3114 children.add(new Property("citeAs[x]", "Reference(Citation)|markdown", "Citation Resource or display of suggested citation for this report.", 0, 1, citeAs)); 3115 children.add(new Property("type", "CodeableConcept", "Specifies the kind of report, such as grouping of classifiers, search results, or human-compiled expression.", 0, 1, type)); 3116 children.add(new Property("note", "Annotation", "Used for footnotes and annotations.", 0, java.lang.Integer.MAX_VALUE, note)); 3117 children.add(new Property("relatedArtifact", "RelatedArtifact", "Link, description or reference to artifact associated with the report.", 0, java.lang.Integer.MAX_VALUE, relatedArtifact)); 3118 children.add(new Property("subject", "", "Specifies the subject or focus of the report. Answers \"What is this report about?\".", 0, 1, subject)); 3119 children.add(new Property("publisher", "string", "The name of the organization or individual that published the evidence report.", 0, 1, publisher)); 3120 children.add(new Property("contact", "ContactDetail", "Contact details to assist a user in finding and communicating with the publisher.", 0, java.lang.Integer.MAX_VALUE, contact)); 3121 children.add(new Property("author", "ContactDetail", "An individiual, organization, or device primarily involved in the creation and maintenance of the content.", 0, java.lang.Integer.MAX_VALUE, author)); 3122 children.add(new Property("editor", "ContactDetail", "An individiual, organization, or device primarily responsible for internal coherence of the content.", 0, java.lang.Integer.MAX_VALUE, editor)); 3123 children.add(new Property("reviewer", "ContactDetail", "An individiual, organization, or device primarily responsible for review of some aspect of the content.", 0, java.lang.Integer.MAX_VALUE, reviewer)); 3124 children.add(new Property("endorser", "ContactDetail", "An individiual, organization, or device responsible for officially endorsing the content for use in some setting.", 0, java.lang.Integer.MAX_VALUE, endorser)); 3125 children.add(new Property("relatesTo", "", "Relationships that this composition has with other compositions or documents that already exist.", 0, java.lang.Integer.MAX_VALUE, relatesTo)); 3126 children.add(new Property("section", "", "The root of the sections that make up the composition.", 0, java.lang.Integer.MAX_VALUE, section)); 3127 } 3128 3129 @Override 3130 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 3131 switch (_hash) { 3132 case 116079: /*url*/ return new Property("url", "uri", "An absolute URI that is used to identify this EvidenceReport when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this summary is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the summary is stored on different servers.", 0, 1, url); 3133 case -892481550: /*status*/ return new Property("status", "code", "The status of this summary. Enables tracking the life-cycle of the content.", 0, 1, status); 3134 case -669707736: /*useContext*/ return new Property("useContext", "UsageContext", "The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate evidence report instances.", 0, java.lang.Integer.MAX_VALUE, useContext); 3135 case -1618432855: /*identifier*/ return new Property("identifier", "Identifier", "A formal identifier that is used to identify this EvidenceReport when it is represented in other formats, or referenced in a specification, model, design or an instance.", 0, java.lang.Integer.MAX_VALUE, identifier); 3136 case -1007604940: /*relatedIdentifier*/ return new Property("relatedIdentifier", "Identifier", "A formal identifier that is used to identify things closely related to this EvidenceReport.", 0, java.lang.Integer.MAX_VALUE, relatedIdentifier); 3137 case -1706539017: /*citeAs[x]*/ return new Property("citeAs[x]", "Reference(Citation)|markdown", "Citation Resource or display of suggested citation for this report.", 0, 1, citeAs); 3138 case -1360156695: /*citeAs*/ return new Property("citeAs[x]", "Reference(Citation)|markdown", "Citation Resource or display of suggested citation for this report.", 0, 1, citeAs); 3139 case 1269009762: /*citeAsReference*/ return new Property("citeAs[x]", "Reference(Citation)", "Citation Resource or display of suggested citation for this report.", 0, 1, citeAs); 3140 case 456265720: /*citeAsMarkdown*/ return new Property("citeAs[x]", "markdown", "Citation Resource or display of suggested citation for this report.", 0, 1, citeAs); 3141 case 3575610: /*type*/ return new Property("type", "CodeableConcept", "Specifies the kind of report, such as grouping of classifiers, search results, or human-compiled expression.", 0, 1, type); 3142 case 3387378: /*note*/ return new Property("note", "Annotation", "Used for footnotes and annotations.", 0, java.lang.Integer.MAX_VALUE, note); 3143 case 666807069: /*relatedArtifact*/ return new Property("relatedArtifact", "RelatedArtifact", "Link, description or reference to artifact associated with the report.", 0, java.lang.Integer.MAX_VALUE, relatedArtifact); 3144 case -1867885268: /*subject*/ return new Property("subject", "", "Specifies the subject or focus of the report. Answers \"What is this report about?\".", 0, 1, subject); 3145 case 1447404028: /*publisher*/ return new Property("publisher", "string", "The name of the organization or individual that published the evidence report.", 0, 1, publisher); 3146 case 951526432: /*contact*/ return new Property("contact", "ContactDetail", "Contact details to assist a user in finding and communicating with the publisher.", 0, java.lang.Integer.MAX_VALUE, contact); 3147 case -1406328437: /*author*/ return new Property("author", "ContactDetail", "An individiual, organization, or device primarily involved in the creation and maintenance of the content.", 0, java.lang.Integer.MAX_VALUE, author); 3148 case -1307827859: /*editor*/ return new Property("editor", "ContactDetail", "An individiual, organization, or device primarily responsible for internal coherence of the content.", 0, java.lang.Integer.MAX_VALUE, editor); 3149 case -261190139: /*reviewer*/ return new Property("reviewer", "ContactDetail", "An individiual, organization, or device primarily responsible for review of some aspect of the content.", 0, java.lang.Integer.MAX_VALUE, reviewer); 3150 case 1740277666: /*endorser*/ return new Property("endorser", "ContactDetail", "An individiual, organization, or device responsible for officially endorsing the content for use in some setting.", 0, java.lang.Integer.MAX_VALUE, endorser); 3151 case -7765931: /*relatesTo*/ return new Property("relatesTo", "", "Relationships that this composition has with other compositions or documents that already exist.", 0, java.lang.Integer.MAX_VALUE, relatesTo); 3152 case 1970241253: /*section*/ return new Property("section", "", "The root of the sections that make up the composition.", 0, java.lang.Integer.MAX_VALUE, section); 3153 default: return super.getNamedProperty(_hash, _name, _checkValid); 3154 } 3155 3156 } 3157 3158 @Override 3159 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 3160 switch (hash) { 3161 case 116079: /*url*/ return this.url == null ? new Base[0] : new Base[] {this.url}; // UriType 3162 case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<PublicationStatus> 3163 case -669707736: /*useContext*/ return this.useContext == null ? new Base[0] : this.useContext.toArray(new Base[this.useContext.size()]); // UsageContext 3164 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 3165 case -1007604940: /*relatedIdentifier*/ return this.relatedIdentifier == null ? new Base[0] : this.relatedIdentifier.toArray(new Base[this.relatedIdentifier.size()]); // Identifier 3166 case -1360156695: /*citeAs*/ return this.citeAs == null ? new Base[0] : new Base[] {this.citeAs}; // DataType 3167 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // CodeableConcept 3168 case 3387378: /*note*/ return this.note == null ? new Base[0] : this.note.toArray(new Base[this.note.size()]); // Annotation 3169 case 666807069: /*relatedArtifact*/ return this.relatedArtifact == null ? new Base[0] : this.relatedArtifact.toArray(new Base[this.relatedArtifact.size()]); // RelatedArtifact 3170 case -1867885268: /*subject*/ return this.subject == null ? new Base[0] : new Base[] {this.subject}; // EvidenceReportSubjectComponent 3171 case 1447404028: /*publisher*/ return this.publisher == null ? new Base[0] : new Base[] {this.publisher}; // StringType 3172 case 951526432: /*contact*/ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // ContactDetail 3173 case -1406328437: /*author*/ return this.author == null ? new Base[0] : this.author.toArray(new Base[this.author.size()]); // ContactDetail 3174 case -1307827859: /*editor*/ return this.editor == null ? new Base[0] : this.editor.toArray(new Base[this.editor.size()]); // ContactDetail 3175 case -261190139: /*reviewer*/ return this.reviewer == null ? new Base[0] : this.reviewer.toArray(new Base[this.reviewer.size()]); // ContactDetail 3176 case 1740277666: /*endorser*/ return this.endorser == null ? new Base[0] : this.endorser.toArray(new Base[this.endorser.size()]); // ContactDetail 3177 case -7765931: /*relatesTo*/ return this.relatesTo == null ? new Base[0] : this.relatesTo.toArray(new Base[this.relatesTo.size()]); // EvidenceReportRelatesToComponent 3178 case 1970241253: /*section*/ return this.section == null ? new Base[0] : this.section.toArray(new Base[this.section.size()]); // SectionComponent 3179 default: return super.getProperty(hash, name, checkValid); 3180 } 3181 3182 } 3183 3184 @Override 3185 public Base setProperty(int hash, String name, Base value) throws FHIRException { 3186 switch (hash) { 3187 case 116079: // url 3188 this.url = TypeConvertor.castToUri(value); // UriType 3189 return value; 3190 case -892481550: // status 3191 value = new PublicationStatusEnumFactory().fromType(TypeConvertor.castToCode(value)); 3192 this.status = (Enumeration) value; // Enumeration<PublicationStatus> 3193 return value; 3194 case -669707736: // useContext 3195 this.getUseContext().add(TypeConvertor.castToUsageContext(value)); // UsageContext 3196 return value; 3197 case -1618432855: // identifier 3198 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier 3199 return value; 3200 case -1007604940: // relatedIdentifier 3201 this.getRelatedIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier 3202 return value; 3203 case -1360156695: // citeAs 3204 this.citeAs = TypeConvertor.castToType(value); // DataType 3205 return value; 3206 case 3575610: // type 3207 this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 3208 return value; 3209 case 3387378: // note 3210 this.getNote().add(TypeConvertor.castToAnnotation(value)); // Annotation 3211 return value; 3212 case 666807069: // relatedArtifact 3213 this.getRelatedArtifact().add(TypeConvertor.castToRelatedArtifact(value)); // RelatedArtifact 3214 return value; 3215 case -1867885268: // subject 3216 this.subject = (EvidenceReportSubjectComponent) value; // EvidenceReportSubjectComponent 3217 return value; 3218 case 1447404028: // publisher 3219 this.publisher = TypeConvertor.castToString(value); // StringType 3220 return value; 3221 case 951526432: // contact 3222 this.getContact().add(TypeConvertor.castToContactDetail(value)); // ContactDetail 3223 return value; 3224 case -1406328437: // author 3225 this.getAuthor().add(TypeConvertor.castToContactDetail(value)); // ContactDetail 3226 return value; 3227 case -1307827859: // editor 3228 this.getEditor().add(TypeConvertor.castToContactDetail(value)); // ContactDetail 3229 return value; 3230 case -261190139: // reviewer 3231 this.getReviewer().add(TypeConvertor.castToContactDetail(value)); // ContactDetail 3232 return value; 3233 case 1740277666: // endorser 3234 this.getEndorser().add(TypeConvertor.castToContactDetail(value)); // ContactDetail 3235 return value; 3236 case -7765931: // relatesTo 3237 this.getRelatesTo().add((EvidenceReportRelatesToComponent) value); // EvidenceReportRelatesToComponent 3238 return value; 3239 case 1970241253: // section 3240 this.getSection().add((SectionComponent) value); // SectionComponent 3241 return value; 3242 default: return super.setProperty(hash, name, value); 3243 } 3244 3245 } 3246 3247 @Override 3248 public Base setProperty(String name, Base value) throws FHIRException { 3249 if (name.equals("url")) { 3250 this.url = TypeConvertor.castToUri(value); // UriType 3251 } else if (name.equals("status")) { 3252 value = new PublicationStatusEnumFactory().fromType(TypeConvertor.castToCode(value)); 3253 this.status = (Enumeration) value; // Enumeration<PublicationStatus> 3254 } else if (name.equals("useContext")) { 3255 this.getUseContext().add(TypeConvertor.castToUsageContext(value)); 3256 } else if (name.equals("identifier")) { 3257 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); 3258 } else if (name.equals("relatedIdentifier")) { 3259 this.getRelatedIdentifier().add(TypeConvertor.castToIdentifier(value)); 3260 } else if (name.equals("citeAs[x]")) { 3261 this.citeAs = TypeConvertor.castToType(value); // DataType 3262 } else if (name.equals("type")) { 3263 this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 3264 } else if (name.equals("note")) { 3265 this.getNote().add(TypeConvertor.castToAnnotation(value)); 3266 } else if (name.equals("relatedArtifact")) { 3267 this.getRelatedArtifact().add(TypeConvertor.castToRelatedArtifact(value)); 3268 } else if (name.equals("subject")) { 3269 this.subject = (EvidenceReportSubjectComponent) value; // EvidenceReportSubjectComponent 3270 } else if (name.equals("publisher")) { 3271 this.publisher = TypeConvertor.castToString(value); // StringType 3272 } else if (name.equals("contact")) { 3273 this.getContact().add(TypeConvertor.castToContactDetail(value)); 3274 } else if (name.equals("author")) { 3275 this.getAuthor().add(TypeConvertor.castToContactDetail(value)); 3276 } else if (name.equals("editor")) { 3277 this.getEditor().add(TypeConvertor.castToContactDetail(value)); 3278 } else if (name.equals("reviewer")) { 3279 this.getReviewer().add(TypeConvertor.castToContactDetail(value)); 3280 } else if (name.equals("endorser")) { 3281 this.getEndorser().add(TypeConvertor.castToContactDetail(value)); 3282 } else if (name.equals("relatesTo")) { 3283 this.getRelatesTo().add((EvidenceReportRelatesToComponent) value); 3284 } else if (name.equals("section")) { 3285 this.getSection().add((SectionComponent) value); 3286 } else 3287 return super.setProperty(name, value); 3288 return value; 3289 } 3290 3291 @Override 3292 public Base makeProperty(int hash, String name) throws FHIRException { 3293 switch (hash) { 3294 case 116079: return getUrlElement(); 3295 case -892481550: return getStatusElement(); 3296 case -669707736: return addUseContext(); 3297 case -1618432855: return addIdentifier(); 3298 case -1007604940: return addRelatedIdentifier(); 3299 case -1706539017: return getCiteAs(); 3300 case -1360156695: return getCiteAs(); 3301 case 3575610: return getType(); 3302 case 3387378: return addNote(); 3303 case 666807069: return addRelatedArtifact(); 3304 case -1867885268: return getSubject(); 3305 case 1447404028: return getPublisherElement(); 3306 case 951526432: return addContact(); 3307 case -1406328437: return addAuthor(); 3308 case -1307827859: return addEditor(); 3309 case -261190139: return addReviewer(); 3310 case 1740277666: return addEndorser(); 3311 case -7765931: return addRelatesTo(); 3312 case 1970241253: return addSection(); 3313 default: return super.makeProperty(hash, name); 3314 } 3315 3316 } 3317 3318 @Override 3319 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 3320 switch (hash) { 3321 case 116079: /*url*/ return new String[] {"uri"}; 3322 case -892481550: /*status*/ return new String[] {"code"}; 3323 case -669707736: /*useContext*/ return new String[] {"UsageContext"}; 3324 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 3325 case -1007604940: /*relatedIdentifier*/ return new String[] {"Identifier"}; 3326 case -1360156695: /*citeAs*/ return new String[] {"Reference", "markdown"}; 3327 case 3575610: /*type*/ return new String[] {"CodeableConcept"}; 3328 case 3387378: /*note*/ return new String[] {"Annotation"}; 3329 case 666807069: /*relatedArtifact*/ return new String[] {"RelatedArtifact"}; 3330 case -1867885268: /*subject*/ return new String[] {}; 3331 case 1447404028: /*publisher*/ return new String[] {"string"}; 3332 case 951526432: /*contact*/ return new String[] {"ContactDetail"}; 3333 case -1406328437: /*author*/ return new String[] {"ContactDetail"}; 3334 case -1307827859: /*editor*/ return new String[] {"ContactDetail"}; 3335 case -261190139: /*reviewer*/ return new String[] {"ContactDetail"}; 3336 case 1740277666: /*endorser*/ return new String[] {"ContactDetail"}; 3337 case -7765931: /*relatesTo*/ return new String[] {}; 3338 case 1970241253: /*section*/ return new String[] {}; 3339 default: return super.getTypesForProperty(hash, name); 3340 } 3341 3342 } 3343 3344 @Override 3345 public Base addChild(String name) throws FHIRException { 3346 if (name.equals("url")) { 3347 throw new FHIRException("Cannot call addChild on a primitive type EvidenceReport.url"); 3348 } 3349 else if (name.equals("status")) { 3350 throw new FHIRException("Cannot call addChild on a primitive type EvidenceReport.status"); 3351 } 3352 else if (name.equals("useContext")) { 3353 return addUseContext(); 3354 } 3355 else if (name.equals("identifier")) { 3356 return addIdentifier(); 3357 } 3358 else if (name.equals("relatedIdentifier")) { 3359 return addRelatedIdentifier(); 3360 } 3361 else if (name.equals("citeAsReference")) { 3362 this.citeAs = new Reference(); 3363 return this.citeAs; 3364 } 3365 else if (name.equals("citeAsMarkdown")) { 3366 this.citeAs = new MarkdownType(); 3367 return this.citeAs; 3368 } 3369 else if (name.equals("type")) { 3370 this.type = new CodeableConcept(); 3371 return this.type; 3372 } 3373 else if (name.equals("note")) { 3374 return addNote(); 3375 } 3376 else if (name.equals("relatedArtifact")) { 3377 return addRelatedArtifact(); 3378 } 3379 else if (name.equals("subject")) { 3380 this.subject = new EvidenceReportSubjectComponent(); 3381 return this.subject; 3382 } 3383 else if (name.equals("publisher")) { 3384 throw new FHIRException("Cannot call addChild on a primitive type EvidenceReport.publisher"); 3385 } 3386 else if (name.equals("contact")) { 3387 return addContact(); 3388 } 3389 else if (name.equals("author")) { 3390 return addAuthor(); 3391 } 3392 else if (name.equals("editor")) { 3393 return addEditor(); 3394 } 3395 else if (name.equals("reviewer")) { 3396 return addReviewer(); 3397 } 3398 else if (name.equals("endorser")) { 3399 return addEndorser(); 3400 } 3401 else if (name.equals("relatesTo")) { 3402 return addRelatesTo(); 3403 } 3404 else if (name.equals("section")) { 3405 return addSection(); 3406 } 3407 else 3408 return super.addChild(name); 3409 } 3410 3411 public String fhirType() { 3412 return "EvidenceReport"; 3413 3414 } 3415 3416 public EvidenceReport copy() { 3417 EvidenceReport dst = new EvidenceReport(); 3418 copyValues(dst); 3419 return dst; 3420 } 3421 3422 public void copyValues(EvidenceReport dst) { 3423 super.copyValues(dst); 3424 dst.url = url == null ? null : url.copy(); 3425 dst.status = status == null ? null : status.copy(); 3426 if (useContext != null) { 3427 dst.useContext = new ArrayList<UsageContext>(); 3428 for (UsageContext i : useContext) 3429 dst.useContext.add(i.copy()); 3430 }; 3431 if (identifier != null) { 3432 dst.identifier = new ArrayList<Identifier>(); 3433 for (Identifier i : identifier) 3434 dst.identifier.add(i.copy()); 3435 }; 3436 if (relatedIdentifier != null) { 3437 dst.relatedIdentifier = new ArrayList<Identifier>(); 3438 for (Identifier i : relatedIdentifier) 3439 dst.relatedIdentifier.add(i.copy()); 3440 }; 3441 dst.citeAs = citeAs == null ? null : citeAs.copy(); 3442 dst.type = type == null ? null : type.copy(); 3443 if (note != null) { 3444 dst.note = new ArrayList<Annotation>(); 3445 for (Annotation i : note) 3446 dst.note.add(i.copy()); 3447 }; 3448 if (relatedArtifact != null) { 3449 dst.relatedArtifact = new ArrayList<RelatedArtifact>(); 3450 for (RelatedArtifact i : relatedArtifact) 3451 dst.relatedArtifact.add(i.copy()); 3452 }; 3453 dst.subject = subject == null ? null : subject.copy(); 3454 dst.publisher = publisher == null ? null : publisher.copy(); 3455 if (contact != null) { 3456 dst.contact = new ArrayList<ContactDetail>(); 3457 for (ContactDetail i : contact) 3458 dst.contact.add(i.copy()); 3459 }; 3460 if (author != null) { 3461 dst.author = new ArrayList<ContactDetail>(); 3462 for (ContactDetail i : author) 3463 dst.author.add(i.copy()); 3464 }; 3465 if (editor != null) { 3466 dst.editor = new ArrayList<ContactDetail>(); 3467 for (ContactDetail i : editor) 3468 dst.editor.add(i.copy()); 3469 }; 3470 if (reviewer != null) { 3471 dst.reviewer = new ArrayList<ContactDetail>(); 3472 for (ContactDetail i : reviewer) 3473 dst.reviewer.add(i.copy()); 3474 }; 3475 if (endorser != null) { 3476 dst.endorser = new ArrayList<ContactDetail>(); 3477 for (ContactDetail i : endorser) 3478 dst.endorser.add(i.copy()); 3479 }; 3480 if (relatesTo != null) { 3481 dst.relatesTo = new ArrayList<EvidenceReportRelatesToComponent>(); 3482 for (EvidenceReportRelatesToComponent i : relatesTo) 3483 dst.relatesTo.add(i.copy()); 3484 }; 3485 if (section != null) { 3486 dst.section = new ArrayList<SectionComponent>(); 3487 for (SectionComponent i : section) 3488 dst.section.add(i.copy()); 3489 }; 3490 } 3491 3492 protected EvidenceReport typedCopy() { 3493 return copy(); 3494 } 3495 3496 @Override 3497 public boolean equalsDeep(Base other_) { 3498 if (!super.equalsDeep(other_)) 3499 return false; 3500 if (!(other_ instanceof EvidenceReport)) 3501 return false; 3502 EvidenceReport o = (EvidenceReport) other_; 3503 return compareDeep(url, o.url, true) && compareDeep(status, o.status, true) && compareDeep(useContext, o.useContext, true) 3504 && compareDeep(identifier, o.identifier, true) && compareDeep(relatedIdentifier, o.relatedIdentifier, true) 3505 && compareDeep(citeAs, o.citeAs, true) && compareDeep(type, o.type, true) && compareDeep(note, o.note, true) 3506 && compareDeep(relatedArtifact, o.relatedArtifact, true) && compareDeep(subject, o.subject, true) 3507 && compareDeep(publisher, o.publisher, true) && compareDeep(contact, o.contact, true) && compareDeep(author, o.author, true) 3508 && compareDeep(editor, o.editor, true) && compareDeep(reviewer, o.reviewer, true) && compareDeep(endorser, o.endorser, true) 3509 && compareDeep(relatesTo, o.relatesTo, true) && compareDeep(section, o.section, true); 3510 } 3511 3512 @Override 3513 public boolean equalsShallow(Base other_) { 3514 if (!super.equalsShallow(other_)) 3515 return false; 3516 if (!(other_ instanceof EvidenceReport)) 3517 return false; 3518 EvidenceReport o = (EvidenceReport) other_; 3519 return compareValues(url, o.url, true) && compareValues(status, o.status, true) && compareValues(publisher, o.publisher, true) 3520 ; 3521 } 3522 3523 public boolean isEmpty() { 3524 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(url, status, useContext 3525 , identifier, relatedIdentifier, citeAs, type, note, relatedArtifact, subject 3526 , publisher, contact, author, editor, reviewer, endorser, relatesTo, section 3527 ); 3528 } 3529 3530 @Override 3531 public ResourceType getResourceType() { 3532 return ResourceType.EvidenceReport; 3533 } 3534 3535 /** 3536 * Search parameter: <b>context-quantity</b> 3537 * <p> 3538 * Description: <b>A quantity- or range-valued use context assigned to the evidence report</b><br> 3539 * Type: <b>quantity</b><br> 3540 * Path: <b>(EvidenceReport.useContext.value as Quantity) | (EvidenceReport.useContext.value as Range)</b><br> 3541 * </p> 3542 */ 3543 @SearchParamDefinition(name="context-quantity", path="(EvidenceReport.useContext.value as Quantity) | (EvidenceReport.useContext.value as Range)", description="A quantity- or range-valued use context assigned to the evidence report", type="quantity" ) 3544 public static final String SP_CONTEXT_QUANTITY = "context-quantity"; 3545 /** 3546 * <b>Fluent Client</b> search parameter constant for <b>context-quantity</b> 3547 * <p> 3548 * Description: <b>A quantity- or range-valued use context assigned to the evidence report</b><br> 3549 * Type: <b>quantity</b><br> 3550 * Path: <b>(EvidenceReport.useContext.value as Quantity) | (EvidenceReport.useContext.value as Range)</b><br> 3551 * </p> 3552 */ 3553 public static final ca.uhn.fhir.rest.gclient.QuantityClientParam CONTEXT_QUANTITY = new ca.uhn.fhir.rest.gclient.QuantityClientParam(SP_CONTEXT_QUANTITY); 3554 3555 /** 3556 * Search parameter: <b>context-type-quantity</b> 3557 * <p> 3558 * Description: <b>A use context type and quantity- or range-based value assigned to the evidence report</b><br> 3559 * Type: <b>composite</b><br> 3560 * Path: <b>EvidenceReport.useContext</b><br> 3561 * </p> 3562 */ 3563 @SearchParamDefinition(name="context-type-quantity", path="EvidenceReport.useContext", description="A use context type and quantity- or range-based value assigned to the evidence report", type="composite", compositeOf={"context-type", "context-quantity"} ) 3564 public static final String SP_CONTEXT_TYPE_QUANTITY = "context-type-quantity"; 3565 /** 3566 * <b>Fluent Client</b> search parameter constant for <b>context-type-quantity</b> 3567 * <p> 3568 * Description: <b>A use context type and quantity- or range-based value assigned to the evidence report</b><br> 3569 * Type: <b>composite</b><br> 3570 * Path: <b>EvidenceReport.useContext</b><br> 3571 * </p> 3572 */ 3573 public static final ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.QuantityClientParam> CONTEXT_TYPE_QUANTITY = new ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.QuantityClientParam>(SP_CONTEXT_TYPE_QUANTITY); 3574 3575 /** 3576 * Search parameter: <b>context-type-value</b> 3577 * <p> 3578 * Description: <b>A use context type and value assigned to the evidence report</b><br> 3579 * Type: <b>composite</b><br> 3580 * Path: <b>EvidenceReport.useContext</b><br> 3581 * </p> 3582 */ 3583 @SearchParamDefinition(name="context-type-value", path="EvidenceReport.useContext", description="A use context type and value assigned to the evidence report", type="composite", compositeOf={"context-type", "context"} ) 3584 public static final String SP_CONTEXT_TYPE_VALUE = "context-type-value"; 3585 /** 3586 * <b>Fluent Client</b> search parameter constant for <b>context-type-value</b> 3587 * <p> 3588 * Description: <b>A use context type and value assigned to the evidence report</b><br> 3589 * Type: <b>composite</b><br> 3590 * Path: <b>EvidenceReport.useContext</b><br> 3591 * </p> 3592 */ 3593 public static final ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.TokenClientParam> CONTEXT_TYPE_VALUE = new ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.TokenClientParam>(SP_CONTEXT_TYPE_VALUE); 3594 3595 /** 3596 * Search parameter: <b>context-type</b> 3597 * <p> 3598 * Description: <b>A type of use context assigned to the evidence report</b><br> 3599 * Type: <b>token</b><br> 3600 * Path: <b>EvidenceReport.useContext.code</b><br> 3601 * </p> 3602 */ 3603 @SearchParamDefinition(name="context-type", path="EvidenceReport.useContext.code", description="A type of use context assigned to the evidence report", type="token" ) 3604 public static final String SP_CONTEXT_TYPE = "context-type"; 3605 /** 3606 * <b>Fluent Client</b> search parameter constant for <b>context-type</b> 3607 * <p> 3608 * Description: <b>A type of use context assigned to the evidence report</b><br> 3609 * Type: <b>token</b><br> 3610 * Path: <b>EvidenceReport.useContext.code</b><br> 3611 * </p> 3612 */ 3613 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT_TYPE); 3614 3615 /** 3616 * Search parameter: <b>context</b> 3617 * <p> 3618 * Description: <b>A use context assigned to the evidence report</b><br> 3619 * Type: <b>token</b><br> 3620 * Path: <b>(EvidenceReport.useContext.value as CodeableConcept)</b><br> 3621 * </p> 3622 */ 3623 @SearchParamDefinition(name="context", path="(EvidenceReport.useContext.value as CodeableConcept)", description="A use context assigned to the evidence report", type="token" ) 3624 public static final String SP_CONTEXT = "context"; 3625 /** 3626 * <b>Fluent Client</b> search parameter constant for <b>context</b> 3627 * <p> 3628 * Description: <b>A use context assigned to the evidence report</b><br> 3629 * Type: <b>token</b><br> 3630 * Path: <b>(EvidenceReport.useContext.value as CodeableConcept)</b><br> 3631 * </p> 3632 */ 3633 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT); 3634 3635 /** 3636 * Search parameter: <b>identifier</b> 3637 * <p> 3638 * Description: <b>External identifier for the evidence report</b><br> 3639 * Type: <b>token</b><br> 3640 * Path: <b>EvidenceReport.identifier</b><br> 3641 * </p> 3642 */ 3643 @SearchParamDefinition(name="identifier", path="EvidenceReport.identifier", description="External identifier for the evidence report", type="token" ) 3644 public static final String SP_IDENTIFIER = "identifier"; 3645 /** 3646 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 3647 * <p> 3648 * Description: <b>External identifier for the evidence report</b><br> 3649 * Type: <b>token</b><br> 3650 * Path: <b>EvidenceReport.identifier</b><br> 3651 * </p> 3652 */ 3653 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 3654 3655 /** 3656 * Search parameter: <b>publisher</b> 3657 * <p> 3658 * Description: <b>Name of the publisher of the evidence report</b><br> 3659 * Type: <b>string</b><br> 3660 * Path: <b>EvidenceReport.publisher</b><br> 3661 * </p> 3662 */ 3663 @SearchParamDefinition(name="publisher", path="EvidenceReport.publisher", description="Name of the publisher of the evidence report", type="string" ) 3664 public static final String SP_PUBLISHER = "publisher"; 3665 /** 3666 * <b>Fluent Client</b> search parameter constant for <b>publisher</b> 3667 * <p> 3668 * Description: <b>Name of the publisher of the evidence report</b><br> 3669 * Type: <b>string</b><br> 3670 * Path: <b>EvidenceReport.publisher</b><br> 3671 * </p> 3672 */ 3673 public static final ca.uhn.fhir.rest.gclient.StringClientParam PUBLISHER = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_PUBLISHER); 3674 3675 /** 3676 * Search parameter: <b>status</b> 3677 * <p> 3678 * Description: <b>The current status of the evidence report</b><br> 3679 * Type: <b>token</b><br> 3680 * Path: <b>EvidenceReport.status</b><br> 3681 * </p> 3682 */ 3683 @SearchParamDefinition(name="status", path="EvidenceReport.status", description="The current status of the evidence report", type="token" ) 3684 public static final String SP_STATUS = "status"; 3685 /** 3686 * <b>Fluent Client</b> search parameter constant for <b>status</b> 3687 * <p> 3688 * Description: <b>The current status of the evidence report</b><br> 3689 * Type: <b>token</b><br> 3690 * Path: <b>EvidenceReport.status</b><br> 3691 * </p> 3692 */ 3693 public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS); 3694 3695 /** 3696 * Search parameter: <b>url</b> 3697 * <p> 3698 * Description: <b>The uri that identifies the evidence report</b><br> 3699 * Type: <b>uri</b><br> 3700 * Path: <b>EvidenceReport.url</b><br> 3701 * </p> 3702 */ 3703 @SearchParamDefinition(name="url", path="EvidenceReport.url", description="The uri that identifies the evidence report", type="uri" ) 3704 public static final String SP_URL = "url"; 3705 /** 3706 * <b>Fluent Client</b> search parameter constant for <b>url</b> 3707 * <p> 3708 * Description: <b>The uri that identifies the evidence report</b><br> 3709 * Type: <b>uri</b><br> 3710 * Path: <b>EvidenceReport.url</b><br> 3711 * </p> 3712 */ 3713 public static final ca.uhn.fhir.rest.gclient.UriClientParam URL = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_URL); 3714 3715 3716} 3717