001package org.hl7.fhir.r4.model; 002 003/* 004 Copyright (c) 2011+, HL7, Inc. 005 All rights reserved. 006 007 Redistribution and use in source and binary forms, with or without modification, 008 are permitted provided that the following conditions are met: 009 010 * Redistributions of source code must retain the above copyright notice, this 011 list of conditions and the following disclaimer. 012 * Redistributions in binary form must reproduce the above copyright notice, 013 this list of conditions and the following disclaimer in the documentation 014 and/or other materials provided with the distribution. 015 * Neither the name of HL7 nor the names of its contributors may be used to 016 endorse or promote products derived from this software without specific 017 prior written permission. 018 019 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 020 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 021 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 022 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 023 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 024 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 025 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 026 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 027 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 028 POSSIBILITY OF SUCH DAMAGE. 029 030*/ 031 032// Generated on Sun, May 6, 2018 17:51-0400 for FHIR v3.4.0 033 034import java.util.*; 035 036import java.math.*; 037import org.hl7.fhir.utilities.Utilities; 038import ca.uhn.fhir.model.api.annotation.ResourceDef; 039import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 040import ca.uhn.fhir.model.api.annotation.Child; 041import ca.uhn.fhir.model.api.annotation.ChildOrder; 042import ca.uhn.fhir.model.api.annotation.Description; 043import ca.uhn.fhir.model.api.annotation.Block; 044import org.hl7.fhir.instance.model.api.*; 045import org.hl7.fhir.exceptions.FHIRException; 046/** 047 * A material substance originating from a biological entity intended to be transplanted or infused 048into another (possibly the same) biological entity. 049 */ 050@ResourceDef(name="BiologicallyDerivedProduct", profile="http://hl7.org/fhir/Profile/BiologicallyDerivedProduct") 051public class BiologicallyDerivedProduct extends DomainResource { 052 053 public enum BiologicallyDerivedProductCategory { 054 /** 055 * A collection of tissues joined in a structural unit to serve a common function. 056 */ 057 ORGAN, 058 /** 059 * An ensemble of similar cells and their extracellular matrix from the same origin that together carry out a specific function. 060 */ 061 TISSUE, 062 /** 063 * Body fluid 064 */ 065 FLUID, 066 /** 067 * Collection of cells 068 */ 069 CELLS, 070 /** 071 * Biological agent of unspecified type 072 */ 073 BIOLOGICALAGENT, 074 /** 075 * added to help the parsers with the generic types 076 */ 077 NULL; 078 public static BiologicallyDerivedProductCategory fromCode(String codeString) throws FHIRException { 079 if (codeString == null || "".equals(codeString)) 080 return null; 081 if ("organ".equals(codeString)) 082 return ORGAN; 083 if ("tissue".equals(codeString)) 084 return TISSUE; 085 if ("fluid".equals(codeString)) 086 return FLUID; 087 if ("cells".equals(codeString)) 088 return CELLS; 089 if ("biologicalAgent".equals(codeString)) 090 return BIOLOGICALAGENT; 091 if (Configuration.isAcceptInvalidEnums()) 092 return null; 093 else 094 throw new FHIRException("Unknown BiologicallyDerivedProductCategory code '"+codeString+"'"); 095 } 096 public String toCode() { 097 switch (this) { 098 case ORGAN: return "organ"; 099 case TISSUE: return "tissue"; 100 case FLUID: return "fluid"; 101 case CELLS: return "cells"; 102 case BIOLOGICALAGENT: return "biologicalAgent"; 103 default: return "?"; 104 } 105 } 106 public String getSystem() { 107 switch (this) { 108 case ORGAN: return "http://hl7.org/fhir/product-category"; 109 case TISSUE: return "http://hl7.org/fhir/product-category"; 110 case FLUID: return "http://hl7.org/fhir/product-category"; 111 case CELLS: return "http://hl7.org/fhir/product-category"; 112 case BIOLOGICALAGENT: return "http://hl7.org/fhir/product-category"; 113 default: return "?"; 114 } 115 } 116 public String getDefinition() { 117 switch (this) { 118 case ORGAN: return "A collection of tissues joined in a structural unit to serve a common function."; 119 case TISSUE: return "An ensemble of similar cells and their extracellular matrix from the same origin that together carry out a specific function."; 120 case FLUID: return "Body fluid"; 121 case CELLS: return "Collection of cells"; 122 case BIOLOGICALAGENT: return "Biological agent of unspecified type"; 123 default: return "?"; 124 } 125 } 126 public String getDisplay() { 127 switch (this) { 128 case ORGAN: return "Organ"; 129 case TISSUE: return "Tissue"; 130 case FLUID: return "Fluid"; 131 case CELLS: return "Cells"; 132 case BIOLOGICALAGENT: return "BiologicalAgent"; 133 default: return "?"; 134 } 135 } 136 } 137 138 public static class BiologicallyDerivedProductCategoryEnumFactory implements EnumFactory<BiologicallyDerivedProductCategory> { 139 public BiologicallyDerivedProductCategory fromCode(String codeString) throws IllegalArgumentException { 140 if (codeString == null || "".equals(codeString)) 141 if (codeString == null || "".equals(codeString)) 142 return null; 143 if ("organ".equals(codeString)) 144 return BiologicallyDerivedProductCategory.ORGAN; 145 if ("tissue".equals(codeString)) 146 return BiologicallyDerivedProductCategory.TISSUE; 147 if ("fluid".equals(codeString)) 148 return BiologicallyDerivedProductCategory.FLUID; 149 if ("cells".equals(codeString)) 150 return BiologicallyDerivedProductCategory.CELLS; 151 if ("biologicalAgent".equals(codeString)) 152 return BiologicallyDerivedProductCategory.BIOLOGICALAGENT; 153 throw new IllegalArgumentException("Unknown BiologicallyDerivedProductCategory code '"+codeString+"'"); 154 } 155 public Enumeration<BiologicallyDerivedProductCategory> fromType(Base code) throws FHIRException { 156 if (code == null) 157 return null; 158 if (code.isEmpty()) 159 return new Enumeration<BiologicallyDerivedProductCategory>(this); 160 String codeString = ((PrimitiveType) code).asStringValue(); 161 if (codeString == null || "".equals(codeString)) 162 return null; 163 if ("organ".equals(codeString)) 164 return new Enumeration<BiologicallyDerivedProductCategory>(this, BiologicallyDerivedProductCategory.ORGAN); 165 if ("tissue".equals(codeString)) 166 return new Enumeration<BiologicallyDerivedProductCategory>(this, BiologicallyDerivedProductCategory.TISSUE); 167 if ("fluid".equals(codeString)) 168 return new Enumeration<BiologicallyDerivedProductCategory>(this, BiologicallyDerivedProductCategory.FLUID); 169 if ("cells".equals(codeString)) 170 return new Enumeration<BiologicallyDerivedProductCategory>(this, BiologicallyDerivedProductCategory.CELLS); 171 if ("biologicalAgent".equals(codeString)) 172 return new Enumeration<BiologicallyDerivedProductCategory>(this, BiologicallyDerivedProductCategory.BIOLOGICALAGENT); 173 throw new FHIRException("Unknown BiologicallyDerivedProductCategory code '"+codeString+"'"); 174 } 175 public String toCode(BiologicallyDerivedProductCategory code) { 176 if (code == BiologicallyDerivedProductCategory.ORGAN) 177 return "organ"; 178 if (code == BiologicallyDerivedProductCategory.TISSUE) 179 return "tissue"; 180 if (code == BiologicallyDerivedProductCategory.FLUID) 181 return "fluid"; 182 if (code == BiologicallyDerivedProductCategory.CELLS) 183 return "cells"; 184 if (code == BiologicallyDerivedProductCategory.BIOLOGICALAGENT) 185 return "biologicalAgent"; 186 return "?"; 187 } 188 public String toSystem(BiologicallyDerivedProductCategory code) { 189 return code.getSystem(); 190 } 191 } 192 193 public enum BiologicallyDerivedProductStatus { 194 /** 195 * Product is currently available for use. 196 */ 197 AVAILABLE, 198 /** 199 * Product is not currently available for use. 200 */ 201 UNAVAILABLE, 202 /** 203 * added to help the parsers with the generic types 204 */ 205 NULL; 206 public static BiologicallyDerivedProductStatus fromCode(String codeString) throws FHIRException { 207 if (codeString == null || "".equals(codeString)) 208 return null; 209 if ("available".equals(codeString)) 210 return AVAILABLE; 211 if ("unavailable".equals(codeString)) 212 return UNAVAILABLE; 213 if (Configuration.isAcceptInvalidEnums()) 214 return null; 215 else 216 throw new FHIRException("Unknown BiologicallyDerivedProductStatus code '"+codeString+"'"); 217 } 218 public String toCode() { 219 switch (this) { 220 case AVAILABLE: return "available"; 221 case UNAVAILABLE: return "unavailable"; 222 default: return "?"; 223 } 224 } 225 public String getSystem() { 226 switch (this) { 227 case AVAILABLE: return "http://hl7.org/fhir/product-status"; 228 case UNAVAILABLE: return "http://hl7.org/fhir/product-status"; 229 default: return "?"; 230 } 231 } 232 public String getDefinition() { 233 switch (this) { 234 case AVAILABLE: return "Product is currently available for use."; 235 case UNAVAILABLE: return "Product is not currently available for use."; 236 default: return "?"; 237 } 238 } 239 public String getDisplay() { 240 switch (this) { 241 case AVAILABLE: return "Available"; 242 case UNAVAILABLE: return "Unavailable"; 243 default: return "?"; 244 } 245 } 246 } 247 248 public static class BiologicallyDerivedProductStatusEnumFactory implements EnumFactory<BiologicallyDerivedProductStatus> { 249 public BiologicallyDerivedProductStatus fromCode(String codeString) throws IllegalArgumentException { 250 if (codeString == null || "".equals(codeString)) 251 if (codeString == null || "".equals(codeString)) 252 return null; 253 if ("available".equals(codeString)) 254 return BiologicallyDerivedProductStatus.AVAILABLE; 255 if ("unavailable".equals(codeString)) 256 return BiologicallyDerivedProductStatus.UNAVAILABLE; 257 throw new IllegalArgumentException("Unknown BiologicallyDerivedProductStatus code '"+codeString+"'"); 258 } 259 public Enumeration<BiologicallyDerivedProductStatus> fromType(Base code) throws FHIRException { 260 if (code == null) 261 return null; 262 if (code.isEmpty()) 263 return new Enumeration<BiologicallyDerivedProductStatus>(this); 264 String codeString = ((PrimitiveType) code).asStringValue(); 265 if (codeString == null || "".equals(codeString)) 266 return null; 267 if ("available".equals(codeString)) 268 return new Enumeration<BiologicallyDerivedProductStatus>(this, BiologicallyDerivedProductStatus.AVAILABLE); 269 if ("unavailable".equals(codeString)) 270 return new Enumeration<BiologicallyDerivedProductStatus>(this, BiologicallyDerivedProductStatus.UNAVAILABLE); 271 throw new FHIRException("Unknown BiologicallyDerivedProductStatus code '"+codeString+"'"); 272 } 273 public String toCode(BiologicallyDerivedProductStatus code) { 274 if (code == BiologicallyDerivedProductStatus.AVAILABLE) 275 return "available"; 276 if (code == BiologicallyDerivedProductStatus.UNAVAILABLE) 277 return "unavailable"; 278 return "?"; 279 } 280 public String toSystem(BiologicallyDerivedProductStatus code) { 281 return code.getSystem(); 282 } 283 } 284 285 public enum BiologicallyDerivedProductStorageScale { 286 /** 287 * Fahrenheit temperature scale 288 */ 289 FARENHEIT, 290 /** 291 * Celsius or centigrade temperature scale 292 */ 293 CELSIUS, 294 /** 295 * Kelvin absolute thermodynamic temperature scale 296 */ 297 KELVIN, 298 /** 299 * added to help the parsers with the generic types 300 */ 301 NULL; 302 public static BiologicallyDerivedProductStorageScale fromCode(String codeString) throws FHIRException { 303 if (codeString == null || "".equals(codeString)) 304 return null; 305 if ("farenheit".equals(codeString)) 306 return FARENHEIT; 307 if ("celsius".equals(codeString)) 308 return CELSIUS; 309 if ("kelvin".equals(codeString)) 310 return KELVIN; 311 if (Configuration.isAcceptInvalidEnums()) 312 return null; 313 else 314 throw new FHIRException("Unknown BiologicallyDerivedProductStorageScale code '"+codeString+"'"); 315 } 316 public String toCode() { 317 switch (this) { 318 case FARENHEIT: return "farenheit"; 319 case CELSIUS: return "celsius"; 320 case KELVIN: return "kelvin"; 321 default: return "?"; 322 } 323 } 324 public String getSystem() { 325 switch (this) { 326 case FARENHEIT: return "http://hl7.org/fhir/product-storage-scale"; 327 case CELSIUS: return "http://hl7.org/fhir/product-storage-scale"; 328 case KELVIN: return "http://hl7.org/fhir/product-storage-scale"; 329 default: return "?"; 330 } 331 } 332 public String getDefinition() { 333 switch (this) { 334 case FARENHEIT: return "Fahrenheit temperature scale"; 335 case CELSIUS: return "Celsius or centigrade temperature scale"; 336 case KELVIN: return "Kelvin absolute thermodynamic temperature scale"; 337 default: return "?"; 338 } 339 } 340 public String getDisplay() { 341 switch (this) { 342 case FARENHEIT: return "Fahrenheit"; 343 case CELSIUS: return "Celsius"; 344 case KELVIN: return "Kelvin"; 345 default: return "?"; 346 } 347 } 348 } 349 350 public static class BiologicallyDerivedProductStorageScaleEnumFactory implements EnumFactory<BiologicallyDerivedProductStorageScale> { 351 public BiologicallyDerivedProductStorageScale fromCode(String codeString) throws IllegalArgumentException { 352 if (codeString == null || "".equals(codeString)) 353 if (codeString == null || "".equals(codeString)) 354 return null; 355 if ("farenheit".equals(codeString)) 356 return BiologicallyDerivedProductStorageScale.FARENHEIT; 357 if ("celsius".equals(codeString)) 358 return BiologicallyDerivedProductStorageScale.CELSIUS; 359 if ("kelvin".equals(codeString)) 360 return BiologicallyDerivedProductStorageScale.KELVIN; 361 throw new IllegalArgumentException("Unknown BiologicallyDerivedProductStorageScale code '"+codeString+"'"); 362 } 363 public Enumeration<BiologicallyDerivedProductStorageScale> fromType(Base code) throws FHIRException { 364 if (code == null) 365 return null; 366 if (code.isEmpty()) 367 return new Enumeration<BiologicallyDerivedProductStorageScale>(this); 368 String codeString = ((PrimitiveType) code).asStringValue(); 369 if (codeString == null || "".equals(codeString)) 370 return null; 371 if ("farenheit".equals(codeString)) 372 return new Enumeration<BiologicallyDerivedProductStorageScale>(this, BiologicallyDerivedProductStorageScale.FARENHEIT); 373 if ("celsius".equals(codeString)) 374 return new Enumeration<BiologicallyDerivedProductStorageScale>(this, BiologicallyDerivedProductStorageScale.CELSIUS); 375 if ("kelvin".equals(codeString)) 376 return new Enumeration<BiologicallyDerivedProductStorageScale>(this, BiologicallyDerivedProductStorageScale.KELVIN); 377 throw new FHIRException("Unknown BiologicallyDerivedProductStorageScale code '"+codeString+"'"); 378 } 379 public String toCode(BiologicallyDerivedProductStorageScale code) { 380 if (code == BiologicallyDerivedProductStorageScale.FARENHEIT) 381 return "farenheit"; 382 if (code == BiologicallyDerivedProductStorageScale.CELSIUS) 383 return "celsius"; 384 if (code == BiologicallyDerivedProductStorageScale.KELVIN) 385 return "kelvin"; 386 return "?"; 387 } 388 public String toSystem(BiologicallyDerivedProductStorageScale code) { 389 return code.getSystem(); 390 } 391 } 392 393 @Block() 394 public static class BiologicallyDerivedProductCollectionComponent extends BackboneElement implements IBaseBackboneElement { 395 /** 396 * HealthCare Professional performing collection. 397 */ 398 @Child(name = "collector", type = {Practitioner.class, PractitionerRole.class, Patient.class, RelatedPerson.class}, order=1, min=0, max=1, modifier=false, summary=false) 399 @Description(shortDefinition="HealthCare Professional performing collection", formalDefinition="HealthCare Professional performing collection." ) 400 protected Reference collector; 401 402 /** 403 * The actual object that is the target of the reference (HealthCare Professional performing collection.) 404 */ 405 protected Resource collectorTarget; 406 407 /** 408 * Person or entity providing product. 409 */ 410 @Child(name = "source", type = {Patient.class, Organization.class}, order=2, min=0, max=1, modifier=false, summary=false) 411 @Description(shortDefinition="Person or entity providing product", formalDefinition="Person or entity providing product." ) 412 protected Reference source; 413 414 /** 415 * The actual object that is the target of the reference (Person or entity providing product.) 416 */ 417 protected Resource sourceTarget; 418 419 /** 420 * Time of product collection. 421 */ 422 @Child(name = "collected", type = {DateTimeType.class, Period.class}, order=3, min=0, max=1, modifier=false, summary=false) 423 @Description(shortDefinition="Time of product collection", formalDefinition="Time of product collection." ) 424 protected Type collected; 425 426 private static final long serialVersionUID = 892130089L; 427 428 /** 429 * Constructor 430 */ 431 public BiologicallyDerivedProductCollectionComponent() { 432 super(); 433 } 434 435 /** 436 * @return {@link #collector} (HealthCare Professional performing collection.) 437 */ 438 public Reference getCollector() { 439 if (this.collector == null) 440 if (Configuration.errorOnAutoCreate()) 441 throw new Error("Attempt to auto-create BiologicallyDerivedProductCollectionComponent.collector"); 442 else if (Configuration.doAutoCreate()) 443 this.collector = new Reference(); // cc 444 return this.collector; 445 } 446 447 public boolean hasCollector() { 448 return this.collector != null && !this.collector.isEmpty(); 449 } 450 451 /** 452 * @param value {@link #collector} (HealthCare Professional performing collection.) 453 */ 454 public BiologicallyDerivedProductCollectionComponent setCollector(Reference value) { 455 this.collector = value; 456 return this; 457 } 458 459 /** 460 * @return {@link #collector} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (HealthCare Professional performing collection.) 461 */ 462 public Resource getCollectorTarget() { 463 return this.collectorTarget; 464 } 465 466 /** 467 * @param value {@link #collector} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (HealthCare Professional performing collection.) 468 */ 469 public BiologicallyDerivedProductCollectionComponent setCollectorTarget(Resource value) { 470 this.collectorTarget = value; 471 return this; 472 } 473 474 /** 475 * @return {@link #source} (Person or entity providing product.) 476 */ 477 public Reference getSource() { 478 if (this.source == null) 479 if (Configuration.errorOnAutoCreate()) 480 throw new Error("Attempt to auto-create BiologicallyDerivedProductCollectionComponent.source"); 481 else if (Configuration.doAutoCreate()) 482 this.source = new Reference(); // cc 483 return this.source; 484 } 485 486 public boolean hasSource() { 487 return this.source != null && !this.source.isEmpty(); 488 } 489 490 /** 491 * @param value {@link #source} (Person or entity providing product.) 492 */ 493 public BiologicallyDerivedProductCollectionComponent setSource(Reference value) { 494 this.source = value; 495 return this; 496 } 497 498 /** 499 * @return {@link #source} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Person or entity providing product.) 500 */ 501 public Resource getSourceTarget() { 502 return this.sourceTarget; 503 } 504 505 /** 506 * @param value {@link #source} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Person or entity providing product.) 507 */ 508 public BiologicallyDerivedProductCollectionComponent setSourceTarget(Resource value) { 509 this.sourceTarget = value; 510 return this; 511 } 512 513 /** 514 * @return {@link #collected} (Time of product collection.) 515 */ 516 public Type getCollected() { 517 return this.collected; 518 } 519 520 /** 521 * @return {@link #collected} (Time of product collection.) 522 */ 523 public DateTimeType getCollectedDateTimeType() throws FHIRException { 524 if (this.collected == null) 525 return null; 526 if (!(this.collected instanceof DateTimeType)) 527 throw new FHIRException("Type mismatch: the type DateTimeType was expected, but "+this.collected.getClass().getName()+" was encountered"); 528 return (DateTimeType) this.collected; 529 } 530 531 public boolean hasCollectedDateTimeType() { 532 return this != null && this.collected instanceof DateTimeType; 533 } 534 535 /** 536 * @return {@link #collected} (Time of product collection.) 537 */ 538 public Period getCollectedPeriod() throws FHIRException { 539 if (this.collected == null) 540 return null; 541 if (!(this.collected instanceof Period)) 542 throw new FHIRException("Type mismatch: the type Period was expected, but "+this.collected.getClass().getName()+" was encountered"); 543 return (Period) this.collected; 544 } 545 546 public boolean hasCollectedPeriod() { 547 return this != null && this.collected instanceof Period; 548 } 549 550 public boolean hasCollected() { 551 return this.collected != null && !this.collected.isEmpty(); 552 } 553 554 /** 555 * @param value {@link #collected} (Time of product collection.) 556 */ 557 public BiologicallyDerivedProductCollectionComponent setCollected(Type value) { 558 if (value != null && !(value instanceof DateTimeType || value instanceof Period)) 559 throw new Error("Not the right type for BiologicallyDerivedProduct.collection.collected[x]: "+value.fhirType()); 560 this.collected = value; 561 return this; 562 } 563 564 protected void listChildren(List<Property> children) { 565 super.listChildren(children); 566 children.add(new Property("collector", "Reference(Practitioner|PractitionerRole|Patient|RelatedPerson)", "HealthCare Professional performing collection.", 0, 1, collector)); 567 children.add(new Property("source", "Reference(Patient|Organization)", "Person or entity providing product.", 0, 1, source)); 568 children.add(new Property("collected[x]", "dateTime|Period", "Time of product collection.", 0, 1, collected)); 569 } 570 571 @Override 572 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 573 switch (_hash) { 574 case 1883491469: /*collector*/ return new Property("collector", "Reference(Practitioner|PractitionerRole|Patient|RelatedPerson)", "HealthCare Professional performing collection.", 0, 1, collector); 575 case -896505829: /*source*/ return new Property("source", "Reference(Patient|Organization)", "Person or entity providing product.", 0, 1, source); 576 case 1632037015: /*collected[x]*/ return new Property("collected[x]", "dateTime|Period", "Time of product collection.", 0, 1, collected); 577 case 1883491145: /*collected*/ return new Property("collected[x]", "dateTime|Period", "Time of product collection.", 0, 1, collected); 578 case 2005009924: /*collectedDateTime*/ return new Property("collected[x]", "dateTime|Period", "Time of product collection.", 0, 1, collected); 579 case 653185642: /*collectedPeriod*/ return new Property("collected[x]", "dateTime|Period", "Time of product collection.", 0, 1, collected); 580 default: return super.getNamedProperty(_hash, _name, _checkValid); 581 } 582 583 } 584 585 @Override 586 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 587 switch (hash) { 588 case 1883491469: /*collector*/ return this.collector == null ? new Base[0] : new Base[] {this.collector}; // Reference 589 case -896505829: /*source*/ return this.source == null ? new Base[0] : new Base[] {this.source}; // Reference 590 case 1883491145: /*collected*/ return this.collected == null ? new Base[0] : new Base[] {this.collected}; // Type 591 default: return super.getProperty(hash, name, checkValid); 592 } 593 594 } 595 596 @Override 597 public Base setProperty(int hash, String name, Base value) throws FHIRException { 598 switch (hash) { 599 case 1883491469: // collector 600 this.collector = castToReference(value); // Reference 601 return value; 602 case -896505829: // source 603 this.source = castToReference(value); // Reference 604 return value; 605 case 1883491145: // collected 606 this.collected = castToType(value); // Type 607 return value; 608 default: return super.setProperty(hash, name, value); 609 } 610 611 } 612 613 @Override 614 public Base setProperty(String name, Base value) throws FHIRException { 615 if (name.equals("collector")) { 616 this.collector = castToReference(value); // Reference 617 } else if (name.equals("source")) { 618 this.source = castToReference(value); // Reference 619 } else if (name.equals("collected[x]")) { 620 this.collected = castToType(value); // Type 621 } else 622 return super.setProperty(name, value); 623 return value; 624 } 625 626 @Override 627 public Base makeProperty(int hash, String name) throws FHIRException { 628 switch (hash) { 629 case 1883491469: return getCollector(); 630 case -896505829: return getSource(); 631 case 1632037015: return getCollected(); 632 case 1883491145: return getCollected(); 633 default: return super.makeProperty(hash, name); 634 } 635 636 } 637 638 @Override 639 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 640 switch (hash) { 641 case 1883491469: /*collector*/ return new String[] {"Reference"}; 642 case -896505829: /*source*/ return new String[] {"Reference"}; 643 case 1883491145: /*collected*/ return new String[] {"dateTime", "Period"}; 644 default: return super.getTypesForProperty(hash, name); 645 } 646 647 } 648 649 @Override 650 public Base addChild(String name) throws FHIRException { 651 if (name.equals("collector")) { 652 this.collector = new Reference(); 653 return this.collector; 654 } 655 else if (name.equals("source")) { 656 this.source = new Reference(); 657 return this.source; 658 } 659 else if (name.equals("collectedDateTime")) { 660 this.collected = new DateTimeType(); 661 return this.collected; 662 } 663 else if (name.equals("collectedPeriod")) { 664 this.collected = new Period(); 665 return this.collected; 666 } 667 else 668 return super.addChild(name); 669 } 670 671 public BiologicallyDerivedProductCollectionComponent copy() { 672 BiologicallyDerivedProductCollectionComponent dst = new BiologicallyDerivedProductCollectionComponent(); 673 copyValues(dst); 674 dst.collector = collector == null ? null : collector.copy(); 675 dst.source = source == null ? null : source.copy(); 676 dst.collected = collected == null ? null : collected.copy(); 677 return dst; 678 } 679 680 @Override 681 public boolean equalsDeep(Base other_) { 682 if (!super.equalsDeep(other_)) 683 return false; 684 if (!(other_ instanceof BiologicallyDerivedProductCollectionComponent)) 685 return false; 686 BiologicallyDerivedProductCollectionComponent o = (BiologicallyDerivedProductCollectionComponent) other_; 687 return compareDeep(collector, o.collector, true) && compareDeep(source, o.source, true) && compareDeep(collected, o.collected, true) 688 ; 689 } 690 691 @Override 692 public boolean equalsShallow(Base other_) { 693 if (!super.equalsShallow(other_)) 694 return false; 695 if (!(other_ instanceof BiologicallyDerivedProductCollectionComponent)) 696 return false; 697 BiologicallyDerivedProductCollectionComponent o = (BiologicallyDerivedProductCollectionComponent) other_; 698 return true; 699 } 700 701 public boolean isEmpty() { 702 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(collector, source, collected 703 ); 704 } 705 706 public String fhirType() { 707 return "BiologicallyDerivedProduct.collection"; 708 709 } 710 711 } 712 713 @Block() 714 public static class BiologicallyDerivedProductProcessingComponent extends BackboneElement implements IBaseBackboneElement { 715 /** 716 * Description of of processing. 717 */ 718 @Child(name = "description", type = {StringType.class}, order=1, min=0, max=1, modifier=false, summary=false) 719 @Description(shortDefinition="Description of of processing", formalDefinition="Description of of processing." ) 720 protected StringType description; 721 722 /** 723 * Procesing code. 724 */ 725 @Child(name = "procedure", type = {CodeableConcept.class}, order=2, min=0, max=1, modifier=false, summary=false) 726 @Description(shortDefinition="Procesing code", formalDefinition="Procesing code." ) 727 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/procedure-code") 728 protected CodeableConcept procedure; 729 730 /** 731 * Substance added during processing. 732 */ 733 @Child(name = "additive", type = {Substance.class}, order=3, min=0, max=1, modifier=false, summary=false) 734 @Description(shortDefinition="Substance added during processing", formalDefinition="Substance added during processing." ) 735 protected Reference additive; 736 737 /** 738 * The actual object that is the target of the reference (Substance added during processing.) 739 */ 740 protected Substance additiveTarget; 741 742 /** 743 * Time of processing. 744 */ 745 @Child(name = "time", type = {DateTimeType.class, Period.class}, order=4, min=0, max=1, modifier=false, summary=false) 746 @Description(shortDefinition="Time of processing", formalDefinition="Time of processing." ) 747 protected Type time; 748 749 private static final long serialVersionUID = -1007041216L; 750 751 /** 752 * Constructor 753 */ 754 public BiologicallyDerivedProductProcessingComponent() { 755 super(); 756 } 757 758 /** 759 * @return {@link #description} (Description of of processing.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 760 */ 761 public StringType getDescriptionElement() { 762 if (this.description == null) 763 if (Configuration.errorOnAutoCreate()) 764 throw new Error("Attempt to auto-create BiologicallyDerivedProductProcessingComponent.description"); 765 else if (Configuration.doAutoCreate()) 766 this.description = new StringType(); // bb 767 return this.description; 768 } 769 770 public boolean hasDescriptionElement() { 771 return this.description != null && !this.description.isEmpty(); 772 } 773 774 public boolean hasDescription() { 775 return this.description != null && !this.description.isEmpty(); 776 } 777 778 /** 779 * @param value {@link #description} (Description of of processing.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 780 */ 781 public BiologicallyDerivedProductProcessingComponent setDescriptionElement(StringType value) { 782 this.description = value; 783 return this; 784 } 785 786 /** 787 * @return Description of of processing. 788 */ 789 public String getDescription() { 790 return this.description == null ? null : this.description.getValue(); 791 } 792 793 /** 794 * @param value Description of of processing. 795 */ 796 public BiologicallyDerivedProductProcessingComponent setDescription(String value) { 797 if (Utilities.noString(value)) 798 this.description = null; 799 else { 800 if (this.description == null) 801 this.description = new StringType(); 802 this.description.setValue(value); 803 } 804 return this; 805 } 806 807 /** 808 * @return {@link #procedure} (Procesing code.) 809 */ 810 public CodeableConcept getProcedure() { 811 if (this.procedure == null) 812 if (Configuration.errorOnAutoCreate()) 813 throw new Error("Attempt to auto-create BiologicallyDerivedProductProcessingComponent.procedure"); 814 else if (Configuration.doAutoCreate()) 815 this.procedure = new CodeableConcept(); // cc 816 return this.procedure; 817 } 818 819 public boolean hasProcedure() { 820 return this.procedure != null && !this.procedure.isEmpty(); 821 } 822 823 /** 824 * @param value {@link #procedure} (Procesing code.) 825 */ 826 public BiologicallyDerivedProductProcessingComponent setProcedure(CodeableConcept value) { 827 this.procedure = value; 828 return this; 829 } 830 831 /** 832 * @return {@link #additive} (Substance added during processing.) 833 */ 834 public Reference getAdditive() { 835 if (this.additive == null) 836 if (Configuration.errorOnAutoCreate()) 837 throw new Error("Attempt to auto-create BiologicallyDerivedProductProcessingComponent.additive"); 838 else if (Configuration.doAutoCreate()) 839 this.additive = new Reference(); // cc 840 return this.additive; 841 } 842 843 public boolean hasAdditive() { 844 return this.additive != null && !this.additive.isEmpty(); 845 } 846 847 /** 848 * @param value {@link #additive} (Substance added during processing.) 849 */ 850 public BiologicallyDerivedProductProcessingComponent setAdditive(Reference value) { 851 this.additive = value; 852 return this; 853 } 854 855 /** 856 * @return {@link #additive} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Substance added during processing.) 857 */ 858 public Substance getAdditiveTarget() { 859 if (this.additiveTarget == null) 860 if (Configuration.errorOnAutoCreate()) 861 throw new Error("Attempt to auto-create BiologicallyDerivedProductProcessingComponent.additive"); 862 else if (Configuration.doAutoCreate()) 863 this.additiveTarget = new Substance(); // aa 864 return this.additiveTarget; 865 } 866 867 /** 868 * @param value {@link #additive} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Substance added during processing.) 869 */ 870 public BiologicallyDerivedProductProcessingComponent setAdditiveTarget(Substance value) { 871 this.additiveTarget = value; 872 return this; 873 } 874 875 /** 876 * @return {@link #time} (Time of processing.) 877 */ 878 public Type getTime() { 879 return this.time; 880 } 881 882 /** 883 * @return {@link #time} (Time of processing.) 884 */ 885 public DateTimeType getTimeDateTimeType() throws FHIRException { 886 if (this.time == null) 887 return null; 888 if (!(this.time instanceof DateTimeType)) 889 throw new FHIRException("Type mismatch: the type DateTimeType was expected, but "+this.time.getClass().getName()+" was encountered"); 890 return (DateTimeType) this.time; 891 } 892 893 public boolean hasTimeDateTimeType() { 894 return this != null && this.time instanceof DateTimeType; 895 } 896 897 /** 898 * @return {@link #time} (Time of processing.) 899 */ 900 public Period getTimePeriod() throws FHIRException { 901 if (this.time == null) 902 return null; 903 if (!(this.time instanceof Period)) 904 throw new FHIRException("Type mismatch: the type Period was expected, but "+this.time.getClass().getName()+" was encountered"); 905 return (Period) this.time; 906 } 907 908 public boolean hasTimePeriod() { 909 return this != null && this.time instanceof Period; 910 } 911 912 public boolean hasTime() { 913 return this.time != null && !this.time.isEmpty(); 914 } 915 916 /** 917 * @param value {@link #time} (Time of processing.) 918 */ 919 public BiologicallyDerivedProductProcessingComponent setTime(Type value) { 920 if (value != null && !(value instanceof DateTimeType || value instanceof Period)) 921 throw new Error("Not the right type for BiologicallyDerivedProduct.processing.time[x]: "+value.fhirType()); 922 this.time = value; 923 return this; 924 } 925 926 protected void listChildren(List<Property> children) { 927 super.listChildren(children); 928 children.add(new Property("description", "string", "Description of of processing.", 0, 1, description)); 929 children.add(new Property("procedure", "CodeableConcept", "Procesing code.", 0, 1, procedure)); 930 children.add(new Property("additive", "Reference(Substance)", "Substance added during processing.", 0, 1, additive)); 931 children.add(new Property("time[x]", "dateTime|Period", "Time of processing.", 0, 1, time)); 932 } 933 934 @Override 935 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 936 switch (_hash) { 937 case -1724546052: /*description*/ return new Property("description", "string", "Description of of processing.", 0, 1, description); 938 case -1095204141: /*procedure*/ return new Property("procedure", "CodeableConcept", "Procesing code.", 0, 1, procedure); 939 case -1226589236: /*additive*/ return new Property("additive", "Reference(Substance)", "Substance added during processing.", 0, 1, additive); 940 case -1313930605: /*time[x]*/ return new Property("time[x]", "dateTime|Period", "Time of processing.", 0, 1, time); 941 case 3560141: /*time*/ return new Property("time[x]", "dateTime|Period", "Time of processing.", 0, 1, time); 942 case 2135345544: /*timeDateTime*/ return new Property("time[x]", "dateTime|Period", "Time of processing.", 0, 1, time); 943 case 693544686: /*timePeriod*/ return new Property("time[x]", "dateTime|Period", "Time of processing.", 0, 1, time); 944 default: return super.getNamedProperty(_hash, _name, _checkValid); 945 } 946 947 } 948 949 @Override 950 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 951 switch (hash) { 952 case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // StringType 953 case -1095204141: /*procedure*/ return this.procedure == null ? new Base[0] : new Base[] {this.procedure}; // CodeableConcept 954 case -1226589236: /*additive*/ return this.additive == null ? new Base[0] : new Base[] {this.additive}; // Reference 955 case 3560141: /*time*/ return this.time == null ? new Base[0] : new Base[] {this.time}; // Type 956 default: return super.getProperty(hash, name, checkValid); 957 } 958 959 } 960 961 @Override 962 public Base setProperty(int hash, String name, Base value) throws FHIRException { 963 switch (hash) { 964 case -1724546052: // description 965 this.description = castToString(value); // StringType 966 return value; 967 case -1095204141: // procedure 968 this.procedure = castToCodeableConcept(value); // CodeableConcept 969 return value; 970 case -1226589236: // additive 971 this.additive = castToReference(value); // Reference 972 return value; 973 case 3560141: // time 974 this.time = castToType(value); // Type 975 return value; 976 default: return super.setProperty(hash, name, value); 977 } 978 979 } 980 981 @Override 982 public Base setProperty(String name, Base value) throws FHIRException { 983 if (name.equals("description")) { 984 this.description = castToString(value); // StringType 985 } else if (name.equals("procedure")) { 986 this.procedure = castToCodeableConcept(value); // CodeableConcept 987 } else if (name.equals("additive")) { 988 this.additive = castToReference(value); // Reference 989 } else if (name.equals("time[x]")) { 990 this.time = castToType(value); // Type 991 } else 992 return super.setProperty(name, value); 993 return value; 994 } 995 996 @Override 997 public Base makeProperty(int hash, String name) throws FHIRException { 998 switch (hash) { 999 case -1724546052: return getDescriptionElement(); 1000 case -1095204141: return getProcedure(); 1001 case -1226589236: return getAdditive(); 1002 case -1313930605: return getTime(); 1003 case 3560141: return getTime(); 1004 default: return super.makeProperty(hash, name); 1005 } 1006 1007 } 1008 1009 @Override 1010 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1011 switch (hash) { 1012 case -1724546052: /*description*/ return new String[] {"string"}; 1013 case -1095204141: /*procedure*/ return new String[] {"CodeableConcept"}; 1014 case -1226589236: /*additive*/ return new String[] {"Reference"}; 1015 case 3560141: /*time*/ return new String[] {"dateTime", "Period"}; 1016 default: return super.getTypesForProperty(hash, name); 1017 } 1018 1019 } 1020 1021 @Override 1022 public Base addChild(String name) throws FHIRException { 1023 if (name.equals("description")) { 1024 throw new FHIRException("Cannot call addChild on a primitive type BiologicallyDerivedProduct.description"); 1025 } 1026 else if (name.equals("procedure")) { 1027 this.procedure = new CodeableConcept(); 1028 return this.procedure; 1029 } 1030 else if (name.equals("additive")) { 1031 this.additive = new Reference(); 1032 return this.additive; 1033 } 1034 else if (name.equals("timeDateTime")) { 1035 this.time = new DateTimeType(); 1036 return this.time; 1037 } 1038 else if (name.equals("timePeriod")) { 1039 this.time = new Period(); 1040 return this.time; 1041 } 1042 else 1043 return super.addChild(name); 1044 } 1045 1046 public BiologicallyDerivedProductProcessingComponent copy() { 1047 BiologicallyDerivedProductProcessingComponent dst = new BiologicallyDerivedProductProcessingComponent(); 1048 copyValues(dst); 1049 dst.description = description == null ? null : description.copy(); 1050 dst.procedure = procedure == null ? null : procedure.copy(); 1051 dst.additive = additive == null ? null : additive.copy(); 1052 dst.time = time == null ? null : time.copy(); 1053 return dst; 1054 } 1055 1056 @Override 1057 public boolean equalsDeep(Base other_) { 1058 if (!super.equalsDeep(other_)) 1059 return false; 1060 if (!(other_ instanceof BiologicallyDerivedProductProcessingComponent)) 1061 return false; 1062 BiologicallyDerivedProductProcessingComponent o = (BiologicallyDerivedProductProcessingComponent) other_; 1063 return compareDeep(description, o.description, true) && compareDeep(procedure, o.procedure, true) 1064 && compareDeep(additive, o.additive, true) && compareDeep(time, o.time, true); 1065 } 1066 1067 @Override 1068 public boolean equalsShallow(Base other_) { 1069 if (!super.equalsShallow(other_)) 1070 return false; 1071 if (!(other_ instanceof BiologicallyDerivedProductProcessingComponent)) 1072 return false; 1073 BiologicallyDerivedProductProcessingComponent o = (BiologicallyDerivedProductProcessingComponent) other_; 1074 return compareValues(description, o.description, true); 1075 } 1076 1077 public boolean isEmpty() { 1078 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(description, procedure, additive 1079 , time); 1080 } 1081 1082 public String fhirType() { 1083 return "BiologicallyDerivedProduct.processing"; 1084 1085 } 1086 1087 } 1088 1089 @Block() 1090 public static class BiologicallyDerivedProductManipulationComponent extends BackboneElement implements IBaseBackboneElement { 1091 /** 1092 * Description of manipulation. 1093 */ 1094 @Child(name = "description", type = {StringType.class}, order=1, min=0, max=1, modifier=false, summary=false) 1095 @Description(shortDefinition="Description of manipulation", formalDefinition="Description of manipulation." ) 1096 protected StringType description; 1097 1098 /** 1099 * Time of manipulation. 1100 */ 1101 @Child(name = "time", type = {DateTimeType.class, Period.class}, order=2, min=0, max=1, modifier=false, summary=false) 1102 @Description(shortDefinition="Time of manipulation", formalDefinition="Time of manipulation." ) 1103 protected Type time; 1104 1105 private static final long serialVersionUID = 717201078L; 1106 1107 /** 1108 * Constructor 1109 */ 1110 public BiologicallyDerivedProductManipulationComponent() { 1111 super(); 1112 } 1113 1114 /** 1115 * @return {@link #description} (Description of manipulation.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 1116 */ 1117 public StringType getDescriptionElement() { 1118 if (this.description == null) 1119 if (Configuration.errorOnAutoCreate()) 1120 throw new Error("Attempt to auto-create BiologicallyDerivedProductManipulationComponent.description"); 1121 else if (Configuration.doAutoCreate()) 1122 this.description = new StringType(); // bb 1123 return this.description; 1124 } 1125 1126 public boolean hasDescriptionElement() { 1127 return this.description != null && !this.description.isEmpty(); 1128 } 1129 1130 public boolean hasDescription() { 1131 return this.description != null && !this.description.isEmpty(); 1132 } 1133 1134 /** 1135 * @param value {@link #description} (Description of manipulation.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 1136 */ 1137 public BiologicallyDerivedProductManipulationComponent setDescriptionElement(StringType value) { 1138 this.description = value; 1139 return this; 1140 } 1141 1142 /** 1143 * @return Description of manipulation. 1144 */ 1145 public String getDescription() { 1146 return this.description == null ? null : this.description.getValue(); 1147 } 1148 1149 /** 1150 * @param value Description of manipulation. 1151 */ 1152 public BiologicallyDerivedProductManipulationComponent setDescription(String value) { 1153 if (Utilities.noString(value)) 1154 this.description = null; 1155 else { 1156 if (this.description == null) 1157 this.description = new StringType(); 1158 this.description.setValue(value); 1159 } 1160 return this; 1161 } 1162 1163 /** 1164 * @return {@link #time} (Time of manipulation.) 1165 */ 1166 public Type getTime() { 1167 return this.time; 1168 } 1169 1170 /** 1171 * @return {@link #time} (Time of manipulation.) 1172 */ 1173 public DateTimeType getTimeDateTimeType() throws FHIRException { 1174 if (this.time == null) 1175 return null; 1176 if (!(this.time instanceof DateTimeType)) 1177 throw new FHIRException("Type mismatch: the type DateTimeType was expected, but "+this.time.getClass().getName()+" was encountered"); 1178 return (DateTimeType) this.time; 1179 } 1180 1181 public boolean hasTimeDateTimeType() { 1182 return this != null && this.time instanceof DateTimeType; 1183 } 1184 1185 /** 1186 * @return {@link #time} (Time of manipulation.) 1187 */ 1188 public Period getTimePeriod() throws FHIRException { 1189 if (this.time == null) 1190 return null; 1191 if (!(this.time instanceof Period)) 1192 throw new FHIRException("Type mismatch: the type Period was expected, but "+this.time.getClass().getName()+" was encountered"); 1193 return (Period) this.time; 1194 } 1195 1196 public boolean hasTimePeriod() { 1197 return this != null && this.time instanceof Period; 1198 } 1199 1200 public boolean hasTime() { 1201 return this.time != null && !this.time.isEmpty(); 1202 } 1203 1204 /** 1205 * @param value {@link #time} (Time of manipulation.) 1206 */ 1207 public BiologicallyDerivedProductManipulationComponent setTime(Type value) { 1208 if (value != null && !(value instanceof DateTimeType || value instanceof Period)) 1209 throw new Error("Not the right type for BiologicallyDerivedProduct.manipulation.time[x]: "+value.fhirType()); 1210 this.time = value; 1211 return this; 1212 } 1213 1214 protected void listChildren(List<Property> children) { 1215 super.listChildren(children); 1216 children.add(new Property("description", "string", "Description of manipulation.", 0, 1, description)); 1217 children.add(new Property("time[x]", "dateTime|Period", "Time of manipulation.", 0, 1, time)); 1218 } 1219 1220 @Override 1221 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1222 switch (_hash) { 1223 case -1724546052: /*description*/ return new Property("description", "string", "Description of manipulation.", 0, 1, description); 1224 case -1313930605: /*time[x]*/ return new Property("time[x]", "dateTime|Period", "Time of manipulation.", 0, 1, time); 1225 case 3560141: /*time*/ return new Property("time[x]", "dateTime|Period", "Time of manipulation.", 0, 1, time); 1226 case 2135345544: /*timeDateTime*/ return new Property("time[x]", "dateTime|Period", "Time of manipulation.", 0, 1, time); 1227 case 693544686: /*timePeriod*/ return new Property("time[x]", "dateTime|Period", "Time of manipulation.", 0, 1, time); 1228 default: return super.getNamedProperty(_hash, _name, _checkValid); 1229 } 1230 1231 } 1232 1233 @Override 1234 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1235 switch (hash) { 1236 case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // StringType 1237 case 3560141: /*time*/ return this.time == null ? new Base[0] : new Base[] {this.time}; // Type 1238 default: return super.getProperty(hash, name, checkValid); 1239 } 1240 1241 } 1242 1243 @Override 1244 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1245 switch (hash) { 1246 case -1724546052: // description 1247 this.description = castToString(value); // StringType 1248 return value; 1249 case 3560141: // time 1250 this.time = castToType(value); // Type 1251 return value; 1252 default: return super.setProperty(hash, name, value); 1253 } 1254 1255 } 1256 1257 @Override 1258 public Base setProperty(String name, Base value) throws FHIRException { 1259 if (name.equals("description")) { 1260 this.description = castToString(value); // StringType 1261 } else if (name.equals("time[x]")) { 1262 this.time = castToType(value); // Type 1263 } else 1264 return super.setProperty(name, value); 1265 return value; 1266 } 1267 1268 @Override 1269 public Base makeProperty(int hash, String name) throws FHIRException { 1270 switch (hash) { 1271 case -1724546052: return getDescriptionElement(); 1272 case -1313930605: return getTime(); 1273 case 3560141: return getTime(); 1274 default: return super.makeProperty(hash, name); 1275 } 1276 1277 } 1278 1279 @Override 1280 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1281 switch (hash) { 1282 case -1724546052: /*description*/ return new String[] {"string"}; 1283 case 3560141: /*time*/ return new String[] {"dateTime", "Period"}; 1284 default: return super.getTypesForProperty(hash, name); 1285 } 1286 1287 } 1288 1289 @Override 1290 public Base addChild(String name) throws FHIRException { 1291 if (name.equals("description")) { 1292 throw new FHIRException("Cannot call addChild on a primitive type BiologicallyDerivedProduct.description"); 1293 } 1294 else if (name.equals("timeDateTime")) { 1295 this.time = new DateTimeType(); 1296 return this.time; 1297 } 1298 else if (name.equals("timePeriod")) { 1299 this.time = new Period(); 1300 return this.time; 1301 } 1302 else 1303 return super.addChild(name); 1304 } 1305 1306 public BiologicallyDerivedProductManipulationComponent copy() { 1307 BiologicallyDerivedProductManipulationComponent dst = new BiologicallyDerivedProductManipulationComponent(); 1308 copyValues(dst); 1309 dst.description = description == null ? null : description.copy(); 1310 dst.time = time == null ? null : time.copy(); 1311 return dst; 1312 } 1313 1314 @Override 1315 public boolean equalsDeep(Base other_) { 1316 if (!super.equalsDeep(other_)) 1317 return false; 1318 if (!(other_ instanceof BiologicallyDerivedProductManipulationComponent)) 1319 return false; 1320 BiologicallyDerivedProductManipulationComponent o = (BiologicallyDerivedProductManipulationComponent) other_; 1321 return compareDeep(description, o.description, true) && compareDeep(time, o.time, true); 1322 } 1323 1324 @Override 1325 public boolean equalsShallow(Base other_) { 1326 if (!super.equalsShallow(other_)) 1327 return false; 1328 if (!(other_ instanceof BiologicallyDerivedProductManipulationComponent)) 1329 return false; 1330 BiologicallyDerivedProductManipulationComponent o = (BiologicallyDerivedProductManipulationComponent) other_; 1331 return compareValues(description, o.description, true); 1332 } 1333 1334 public boolean isEmpty() { 1335 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(description, time); 1336 } 1337 1338 public String fhirType() { 1339 return "BiologicallyDerivedProduct.manipulation"; 1340 1341 } 1342 1343 } 1344 1345 @Block() 1346 public static class BiologicallyDerivedProductStorageComponent extends BackboneElement implements IBaseBackboneElement { 1347 /** 1348 * Description of storage. 1349 */ 1350 @Child(name = "description", type = {StringType.class}, order=1, min=0, max=1, modifier=false, summary=false) 1351 @Description(shortDefinition="Description of storage", formalDefinition="Description of storage." ) 1352 protected StringType description; 1353 1354 /** 1355 * Storage temperature. 1356 */ 1357 @Child(name = "temperature", type = {DecimalType.class}, order=2, min=0, max=1, modifier=false, summary=false) 1358 @Description(shortDefinition="Storage temperature", formalDefinition="Storage temperature." ) 1359 protected DecimalType temperature; 1360 1361 /** 1362 * Temperature scale used. 1363 */ 1364 @Child(name = "scale", type = {CodeType.class}, order=3, min=0, max=1, modifier=false, summary=false) 1365 @Description(shortDefinition="farenheit | celsius | kelvin", formalDefinition="Temperature scale used." ) 1366 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/product-storage-scale") 1367 protected Enumeration<BiologicallyDerivedProductStorageScale> scale; 1368 1369 /** 1370 * Storage timeperiod. 1371 */ 1372 @Child(name = "duration", type = {Period.class}, order=4, min=0, max=1, modifier=false, summary=false) 1373 @Description(shortDefinition="Storage timeperiod", formalDefinition="Storage timeperiod." ) 1374 protected Period duration; 1375 1376 private static final long serialVersionUID = 1509141319L; 1377 1378 /** 1379 * Constructor 1380 */ 1381 public BiologicallyDerivedProductStorageComponent() { 1382 super(); 1383 } 1384 1385 /** 1386 * @return {@link #description} (Description of storage.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 1387 */ 1388 public StringType getDescriptionElement() { 1389 if (this.description == null) 1390 if (Configuration.errorOnAutoCreate()) 1391 throw new Error("Attempt to auto-create BiologicallyDerivedProductStorageComponent.description"); 1392 else if (Configuration.doAutoCreate()) 1393 this.description = new StringType(); // bb 1394 return this.description; 1395 } 1396 1397 public boolean hasDescriptionElement() { 1398 return this.description != null && !this.description.isEmpty(); 1399 } 1400 1401 public boolean hasDescription() { 1402 return this.description != null && !this.description.isEmpty(); 1403 } 1404 1405 /** 1406 * @param value {@link #description} (Description of storage.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 1407 */ 1408 public BiologicallyDerivedProductStorageComponent setDescriptionElement(StringType value) { 1409 this.description = value; 1410 return this; 1411 } 1412 1413 /** 1414 * @return Description of storage. 1415 */ 1416 public String getDescription() { 1417 return this.description == null ? null : this.description.getValue(); 1418 } 1419 1420 /** 1421 * @param value Description of storage. 1422 */ 1423 public BiologicallyDerivedProductStorageComponent setDescription(String value) { 1424 if (Utilities.noString(value)) 1425 this.description = null; 1426 else { 1427 if (this.description == null) 1428 this.description = new StringType(); 1429 this.description.setValue(value); 1430 } 1431 return this; 1432 } 1433 1434 /** 1435 * @return {@link #temperature} (Storage temperature.). This is the underlying object with id, value and extensions. The accessor "getTemperature" gives direct access to the value 1436 */ 1437 public DecimalType getTemperatureElement() { 1438 if (this.temperature == null) 1439 if (Configuration.errorOnAutoCreate()) 1440 throw new Error("Attempt to auto-create BiologicallyDerivedProductStorageComponent.temperature"); 1441 else if (Configuration.doAutoCreate()) 1442 this.temperature = new DecimalType(); // bb 1443 return this.temperature; 1444 } 1445 1446 public boolean hasTemperatureElement() { 1447 return this.temperature != null && !this.temperature.isEmpty(); 1448 } 1449 1450 public boolean hasTemperature() { 1451 return this.temperature != null && !this.temperature.isEmpty(); 1452 } 1453 1454 /** 1455 * @param value {@link #temperature} (Storage temperature.). This is the underlying object with id, value and extensions. The accessor "getTemperature" gives direct access to the value 1456 */ 1457 public BiologicallyDerivedProductStorageComponent setTemperatureElement(DecimalType value) { 1458 this.temperature = value; 1459 return this; 1460 } 1461 1462 /** 1463 * @return Storage temperature. 1464 */ 1465 public BigDecimal getTemperature() { 1466 return this.temperature == null ? null : this.temperature.getValue(); 1467 } 1468 1469 /** 1470 * @param value Storage temperature. 1471 */ 1472 public BiologicallyDerivedProductStorageComponent setTemperature(BigDecimal value) { 1473 if (value == null) 1474 this.temperature = null; 1475 else { 1476 if (this.temperature == null) 1477 this.temperature = new DecimalType(); 1478 this.temperature.setValue(value); 1479 } 1480 return this; 1481 } 1482 1483 /** 1484 * @param value Storage temperature. 1485 */ 1486 public BiologicallyDerivedProductStorageComponent setTemperature(long value) { 1487 this.temperature = new DecimalType(); 1488 this.temperature.setValue(value); 1489 return this; 1490 } 1491 1492 /** 1493 * @param value Storage temperature. 1494 */ 1495 public BiologicallyDerivedProductStorageComponent setTemperature(double value) { 1496 this.temperature = new DecimalType(); 1497 this.temperature.setValue(value); 1498 return this; 1499 } 1500 1501 /** 1502 * @return {@link #scale} (Temperature scale used.). This is the underlying object with id, value and extensions. The accessor "getScale" gives direct access to the value 1503 */ 1504 public Enumeration<BiologicallyDerivedProductStorageScale> getScaleElement() { 1505 if (this.scale == null) 1506 if (Configuration.errorOnAutoCreate()) 1507 throw new Error("Attempt to auto-create BiologicallyDerivedProductStorageComponent.scale"); 1508 else if (Configuration.doAutoCreate()) 1509 this.scale = new Enumeration<BiologicallyDerivedProductStorageScale>(new BiologicallyDerivedProductStorageScaleEnumFactory()); // bb 1510 return this.scale; 1511 } 1512 1513 public boolean hasScaleElement() { 1514 return this.scale != null && !this.scale.isEmpty(); 1515 } 1516 1517 public boolean hasScale() { 1518 return this.scale != null && !this.scale.isEmpty(); 1519 } 1520 1521 /** 1522 * @param value {@link #scale} (Temperature scale used.). This is the underlying object with id, value and extensions. The accessor "getScale" gives direct access to the value 1523 */ 1524 public BiologicallyDerivedProductStorageComponent setScaleElement(Enumeration<BiologicallyDerivedProductStorageScale> value) { 1525 this.scale = value; 1526 return this; 1527 } 1528 1529 /** 1530 * @return Temperature scale used. 1531 */ 1532 public BiologicallyDerivedProductStorageScale getScale() { 1533 return this.scale == null ? null : this.scale.getValue(); 1534 } 1535 1536 /** 1537 * @param value Temperature scale used. 1538 */ 1539 public BiologicallyDerivedProductStorageComponent setScale(BiologicallyDerivedProductStorageScale value) { 1540 if (value == null) 1541 this.scale = null; 1542 else { 1543 if (this.scale == null) 1544 this.scale = new Enumeration<BiologicallyDerivedProductStorageScale>(new BiologicallyDerivedProductStorageScaleEnumFactory()); 1545 this.scale.setValue(value); 1546 } 1547 return this; 1548 } 1549 1550 /** 1551 * @return {@link #duration} (Storage timeperiod.) 1552 */ 1553 public Period getDuration() { 1554 if (this.duration == null) 1555 if (Configuration.errorOnAutoCreate()) 1556 throw new Error("Attempt to auto-create BiologicallyDerivedProductStorageComponent.duration"); 1557 else if (Configuration.doAutoCreate()) 1558 this.duration = new Period(); // cc 1559 return this.duration; 1560 } 1561 1562 public boolean hasDuration() { 1563 return this.duration != null && !this.duration.isEmpty(); 1564 } 1565 1566 /** 1567 * @param value {@link #duration} (Storage timeperiod.) 1568 */ 1569 public BiologicallyDerivedProductStorageComponent setDuration(Period value) { 1570 this.duration = value; 1571 return this; 1572 } 1573 1574 protected void listChildren(List<Property> children) { 1575 super.listChildren(children); 1576 children.add(new Property("description", "string", "Description of storage.", 0, 1, description)); 1577 children.add(new Property("temperature", "decimal", "Storage temperature.", 0, 1, temperature)); 1578 children.add(new Property("scale", "code", "Temperature scale used.", 0, 1, scale)); 1579 children.add(new Property("duration", "Period", "Storage timeperiod.", 0, 1, duration)); 1580 } 1581 1582 @Override 1583 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1584 switch (_hash) { 1585 case -1724546052: /*description*/ return new Property("description", "string", "Description of storage.", 0, 1, description); 1586 case 321701236: /*temperature*/ return new Property("temperature", "decimal", "Storage temperature.", 0, 1, temperature); 1587 case 109250890: /*scale*/ return new Property("scale", "code", "Temperature scale used.", 0, 1, scale); 1588 case -1992012396: /*duration*/ return new Property("duration", "Period", "Storage timeperiod.", 0, 1, duration); 1589 default: return super.getNamedProperty(_hash, _name, _checkValid); 1590 } 1591 1592 } 1593 1594 @Override 1595 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1596 switch (hash) { 1597 case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // StringType 1598 case 321701236: /*temperature*/ return this.temperature == null ? new Base[0] : new Base[] {this.temperature}; // DecimalType 1599 case 109250890: /*scale*/ return this.scale == null ? new Base[0] : new Base[] {this.scale}; // Enumeration<BiologicallyDerivedProductStorageScale> 1600 case -1992012396: /*duration*/ return this.duration == null ? new Base[0] : new Base[] {this.duration}; // Period 1601 default: return super.getProperty(hash, name, checkValid); 1602 } 1603 1604 } 1605 1606 @Override 1607 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1608 switch (hash) { 1609 case -1724546052: // description 1610 this.description = castToString(value); // StringType 1611 return value; 1612 case 321701236: // temperature 1613 this.temperature = castToDecimal(value); // DecimalType 1614 return value; 1615 case 109250890: // scale 1616 value = new BiologicallyDerivedProductStorageScaleEnumFactory().fromType(castToCode(value)); 1617 this.scale = (Enumeration) value; // Enumeration<BiologicallyDerivedProductStorageScale> 1618 return value; 1619 case -1992012396: // duration 1620 this.duration = castToPeriod(value); // Period 1621 return value; 1622 default: return super.setProperty(hash, name, value); 1623 } 1624 1625 } 1626 1627 @Override 1628 public Base setProperty(String name, Base value) throws FHIRException { 1629 if (name.equals("description")) { 1630 this.description = castToString(value); // StringType 1631 } else if (name.equals("temperature")) { 1632 this.temperature = castToDecimal(value); // DecimalType 1633 } else if (name.equals("scale")) { 1634 value = new BiologicallyDerivedProductStorageScaleEnumFactory().fromType(castToCode(value)); 1635 this.scale = (Enumeration) value; // Enumeration<BiologicallyDerivedProductStorageScale> 1636 } else if (name.equals("duration")) { 1637 this.duration = castToPeriod(value); // Period 1638 } else 1639 return super.setProperty(name, value); 1640 return value; 1641 } 1642 1643 @Override 1644 public Base makeProperty(int hash, String name) throws FHIRException { 1645 switch (hash) { 1646 case -1724546052: return getDescriptionElement(); 1647 case 321701236: return getTemperatureElement(); 1648 case 109250890: return getScaleElement(); 1649 case -1992012396: return getDuration(); 1650 default: return super.makeProperty(hash, name); 1651 } 1652 1653 } 1654 1655 @Override 1656 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1657 switch (hash) { 1658 case -1724546052: /*description*/ return new String[] {"string"}; 1659 case 321701236: /*temperature*/ return new String[] {"decimal"}; 1660 case 109250890: /*scale*/ return new String[] {"code"}; 1661 case -1992012396: /*duration*/ return new String[] {"Period"}; 1662 default: return super.getTypesForProperty(hash, name); 1663 } 1664 1665 } 1666 1667 @Override 1668 public Base addChild(String name) throws FHIRException { 1669 if (name.equals("description")) { 1670 throw new FHIRException("Cannot call addChild on a primitive type BiologicallyDerivedProduct.description"); 1671 } 1672 else if (name.equals("temperature")) { 1673 throw new FHIRException("Cannot call addChild on a primitive type BiologicallyDerivedProduct.temperature"); 1674 } 1675 else if (name.equals("scale")) { 1676 throw new FHIRException("Cannot call addChild on a primitive type BiologicallyDerivedProduct.scale"); 1677 } 1678 else if (name.equals("duration")) { 1679 this.duration = new Period(); 1680 return this.duration; 1681 } 1682 else 1683 return super.addChild(name); 1684 } 1685 1686 public BiologicallyDerivedProductStorageComponent copy() { 1687 BiologicallyDerivedProductStorageComponent dst = new BiologicallyDerivedProductStorageComponent(); 1688 copyValues(dst); 1689 dst.description = description == null ? null : description.copy(); 1690 dst.temperature = temperature == null ? null : temperature.copy(); 1691 dst.scale = scale == null ? null : scale.copy(); 1692 dst.duration = duration == null ? null : duration.copy(); 1693 return dst; 1694 } 1695 1696 @Override 1697 public boolean equalsDeep(Base other_) { 1698 if (!super.equalsDeep(other_)) 1699 return false; 1700 if (!(other_ instanceof BiologicallyDerivedProductStorageComponent)) 1701 return false; 1702 BiologicallyDerivedProductStorageComponent o = (BiologicallyDerivedProductStorageComponent) other_; 1703 return compareDeep(description, o.description, true) && compareDeep(temperature, o.temperature, true) 1704 && compareDeep(scale, o.scale, true) && compareDeep(duration, o.duration, true); 1705 } 1706 1707 @Override 1708 public boolean equalsShallow(Base other_) { 1709 if (!super.equalsShallow(other_)) 1710 return false; 1711 if (!(other_ instanceof BiologicallyDerivedProductStorageComponent)) 1712 return false; 1713 BiologicallyDerivedProductStorageComponent o = (BiologicallyDerivedProductStorageComponent) other_; 1714 return compareValues(description, o.description, true) && compareValues(temperature, o.temperature, true) 1715 && compareValues(scale, o.scale, true); 1716 } 1717 1718 public boolean isEmpty() { 1719 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(description, temperature, scale 1720 , duration); 1721 } 1722 1723 public String fhirType() { 1724 return "BiologicallyDerivedProduct.storage"; 1725 1726 } 1727 1728 } 1729 1730 /** 1731 * This records identifiers associated with this biologically derived product instance that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation). 1732 */ 1733 @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 1734 @Description(shortDefinition="External ids for this item", formalDefinition="This records identifiers associated with this biologically derived product instance that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation)." ) 1735 protected List<Identifier> identifier; 1736 1737 /** 1738 * Broad category of this product. 1739 */ 1740 @Child(name = "productCategory", type = {CodeType.class}, order=1, min=0, max=1, modifier=false, summary=false) 1741 @Description(shortDefinition="organ | tissue | fluid | cells | biologicalAgent", formalDefinition="Broad category of this product." ) 1742 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/product-category") 1743 protected Enumeration<BiologicallyDerivedProductCategory> productCategory; 1744 1745 /** 1746 * A code that identifies the kind of this biologically derived product (SNOMED Ctcode). 1747 */ 1748 @Child(name = "productCode", type = {CodeableConcept.class}, order=2, min=0, max=1, modifier=false, summary=false) 1749 @Description(shortDefinition="What this biologically derived product is", formalDefinition="A code that identifies the kind of this biologically derived product (SNOMED Ctcode)." ) 1750 protected CodeableConcept productCode; 1751 1752 /** 1753 * Whether the product is currently available. 1754 */ 1755 @Child(name = "status", type = {CodeType.class}, order=3, min=0, max=1, modifier=false, summary=false) 1756 @Description(shortDefinition="available | unavailable", formalDefinition="Whether the product is currently available." ) 1757 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/product-status") 1758 protected Enumeration<BiologicallyDerivedProductStatus> status; 1759 1760 /** 1761 * Procedure request to obtain this biologically derived product. 1762 */ 1763 @Child(name = "request", type = {ServiceRequest.class}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1764 @Description(shortDefinition="Procedure request", formalDefinition="Procedure request to obtain this biologically derived product." ) 1765 protected List<Reference> request; 1766 /** 1767 * The actual objects that are the target of the reference (Procedure request to obtain this biologically derived product.) 1768 */ 1769 protected List<ServiceRequest> requestTarget; 1770 1771 1772 /** 1773 * Number of discrete units within this product. 1774 */ 1775 @Child(name = "quantity", type = {IntegerType.class}, order=5, min=0, max=1, modifier=false, summary=false) 1776 @Description(shortDefinition="The amount of this biologically derived product", formalDefinition="Number of discrete units within this product." ) 1777 protected IntegerType quantity; 1778 1779 /** 1780 * Parent product (if any). 1781 */ 1782 @Child(name = "parent", type = {Reference.class}, order=6, min=0, max=1, modifier=false, summary=false) 1783 @Description(shortDefinition="BiologicallyDerivedProduct parent", formalDefinition="Parent product (if any)." ) 1784 protected Reference parent; 1785 1786 /** 1787 * The actual object that is the target of the reference (Parent product (if any).) 1788 */ 1789 protected Resource parentTarget; 1790 1791 /** 1792 * How this product was collected. 1793 */ 1794 @Child(name = "collection", type = {}, order=7, min=0, max=1, modifier=false, summary=false) 1795 @Description(shortDefinition="How this product was collected", formalDefinition="How this product was collected." ) 1796 protected BiologicallyDerivedProductCollectionComponent collection; 1797 1798 /** 1799 * Any processing of the product during collection. 1800 */ 1801 @Child(name = "processing", type = {}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1802 @Description(shortDefinition="Any processing of the product during collection", formalDefinition="Any processing of the product during collection." ) 1803 protected List<BiologicallyDerivedProductProcessingComponent> processing; 1804 1805 /** 1806 * Any manipulation of product post-collection. 1807 */ 1808 @Child(name = "manipulation", type = {}, order=9, min=0, max=1, modifier=false, summary=false) 1809 @Description(shortDefinition="Any manipulation of product post-collection", formalDefinition="Any manipulation of product post-collection." ) 1810 protected BiologicallyDerivedProductManipulationComponent manipulation; 1811 1812 /** 1813 * Product storage. 1814 */ 1815 @Child(name = "storage", type = {}, order=10, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1816 @Description(shortDefinition="Product storage", formalDefinition="Product storage." ) 1817 protected List<BiologicallyDerivedProductStorageComponent> storage; 1818 1819 private static final long serialVersionUID = 1638250261L; 1820 1821 /** 1822 * Constructor 1823 */ 1824 public BiologicallyDerivedProduct() { 1825 super(); 1826 } 1827 1828 /** 1829 * @return {@link #identifier} (This records identifiers associated with this biologically derived product instance that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).) 1830 */ 1831 public List<Identifier> getIdentifier() { 1832 if (this.identifier == null) 1833 this.identifier = new ArrayList<Identifier>(); 1834 return this.identifier; 1835 } 1836 1837 /** 1838 * @return Returns a reference to <code>this</code> for easy method chaining 1839 */ 1840 public BiologicallyDerivedProduct setIdentifier(List<Identifier> theIdentifier) { 1841 this.identifier = theIdentifier; 1842 return this; 1843 } 1844 1845 public boolean hasIdentifier() { 1846 if (this.identifier == null) 1847 return false; 1848 for (Identifier item : this.identifier) 1849 if (!item.isEmpty()) 1850 return true; 1851 return false; 1852 } 1853 1854 public Identifier addIdentifier() { //3 1855 Identifier t = new Identifier(); 1856 if (this.identifier == null) 1857 this.identifier = new ArrayList<Identifier>(); 1858 this.identifier.add(t); 1859 return t; 1860 } 1861 1862 public BiologicallyDerivedProduct addIdentifier(Identifier t) { //3 1863 if (t == null) 1864 return this; 1865 if (this.identifier == null) 1866 this.identifier = new ArrayList<Identifier>(); 1867 this.identifier.add(t); 1868 return this; 1869 } 1870 1871 /** 1872 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist 1873 */ 1874 public Identifier getIdentifierFirstRep() { 1875 if (getIdentifier().isEmpty()) { 1876 addIdentifier(); 1877 } 1878 return getIdentifier().get(0); 1879 } 1880 1881 /** 1882 * @return {@link #productCategory} (Broad category of this product.). This is the underlying object with id, value and extensions. The accessor "getProductCategory" gives direct access to the value 1883 */ 1884 public Enumeration<BiologicallyDerivedProductCategory> getProductCategoryElement() { 1885 if (this.productCategory == null) 1886 if (Configuration.errorOnAutoCreate()) 1887 throw new Error("Attempt to auto-create BiologicallyDerivedProduct.productCategory"); 1888 else if (Configuration.doAutoCreate()) 1889 this.productCategory = new Enumeration<BiologicallyDerivedProductCategory>(new BiologicallyDerivedProductCategoryEnumFactory()); // bb 1890 return this.productCategory; 1891 } 1892 1893 public boolean hasProductCategoryElement() { 1894 return this.productCategory != null && !this.productCategory.isEmpty(); 1895 } 1896 1897 public boolean hasProductCategory() { 1898 return this.productCategory != null && !this.productCategory.isEmpty(); 1899 } 1900 1901 /** 1902 * @param value {@link #productCategory} (Broad category of this product.). This is the underlying object with id, value and extensions. The accessor "getProductCategory" gives direct access to the value 1903 */ 1904 public BiologicallyDerivedProduct setProductCategoryElement(Enumeration<BiologicallyDerivedProductCategory> value) { 1905 this.productCategory = value; 1906 return this; 1907 } 1908 1909 /** 1910 * @return Broad category of this product. 1911 */ 1912 public BiologicallyDerivedProductCategory getProductCategory() { 1913 return this.productCategory == null ? null : this.productCategory.getValue(); 1914 } 1915 1916 /** 1917 * @param value Broad category of this product. 1918 */ 1919 public BiologicallyDerivedProduct setProductCategory(BiologicallyDerivedProductCategory value) { 1920 if (value == null) 1921 this.productCategory = null; 1922 else { 1923 if (this.productCategory == null) 1924 this.productCategory = new Enumeration<BiologicallyDerivedProductCategory>(new BiologicallyDerivedProductCategoryEnumFactory()); 1925 this.productCategory.setValue(value); 1926 } 1927 return this; 1928 } 1929 1930 /** 1931 * @return {@link #productCode} (A code that identifies the kind of this biologically derived product (SNOMED Ctcode).) 1932 */ 1933 public CodeableConcept getProductCode() { 1934 if (this.productCode == null) 1935 if (Configuration.errorOnAutoCreate()) 1936 throw new Error("Attempt to auto-create BiologicallyDerivedProduct.productCode"); 1937 else if (Configuration.doAutoCreate()) 1938 this.productCode = new CodeableConcept(); // cc 1939 return this.productCode; 1940 } 1941 1942 public boolean hasProductCode() { 1943 return this.productCode != null && !this.productCode.isEmpty(); 1944 } 1945 1946 /** 1947 * @param value {@link #productCode} (A code that identifies the kind of this biologically derived product (SNOMED Ctcode).) 1948 */ 1949 public BiologicallyDerivedProduct setProductCode(CodeableConcept value) { 1950 this.productCode = value; 1951 return this; 1952 } 1953 1954 /** 1955 * @return {@link #status} (Whether the product is currently available.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 1956 */ 1957 public Enumeration<BiologicallyDerivedProductStatus> getStatusElement() { 1958 if (this.status == null) 1959 if (Configuration.errorOnAutoCreate()) 1960 throw new Error("Attempt to auto-create BiologicallyDerivedProduct.status"); 1961 else if (Configuration.doAutoCreate()) 1962 this.status = new Enumeration<BiologicallyDerivedProductStatus>(new BiologicallyDerivedProductStatusEnumFactory()); // bb 1963 return this.status; 1964 } 1965 1966 public boolean hasStatusElement() { 1967 return this.status != null && !this.status.isEmpty(); 1968 } 1969 1970 public boolean hasStatus() { 1971 return this.status != null && !this.status.isEmpty(); 1972 } 1973 1974 /** 1975 * @param value {@link #status} (Whether the product is currently available.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 1976 */ 1977 public BiologicallyDerivedProduct setStatusElement(Enumeration<BiologicallyDerivedProductStatus> value) { 1978 this.status = value; 1979 return this; 1980 } 1981 1982 /** 1983 * @return Whether the product is currently available. 1984 */ 1985 public BiologicallyDerivedProductStatus getStatus() { 1986 return this.status == null ? null : this.status.getValue(); 1987 } 1988 1989 /** 1990 * @param value Whether the product is currently available. 1991 */ 1992 public BiologicallyDerivedProduct setStatus(BiologicallyDerivedProductStatus value) { 1993 if (value == null) 1994 this.status = null; 1995 else { 1996 if (this.status == null) 1997 this.status = new Enumeration<BiologicallyDerivedProductStatus>(new BiologicallyDerivedProductStatusEnumFactory()); 1998 this.status.setValue(value); 1999 } 2000 return this; 2001 } 2002 2003 /** 2004 * @return {@link #request} (Procedure request to obtain this biologically derived product.) 2005 */ 2006 public List<Reference> getRequest() { 2007 if (this.request == null) 2008 this.request = new ArrayList<Reference>(); 2009 return this.request; 2010 } 2011 2012 /** 2013 * @return Returns a reference to <code>this</code> for easy method chaining 2014 */ 2015 public BiologicallyDerivedProduct setRequest(List<Reference> theRequest) { 2016 this.request = theRequest; 2017 return this; 2018 } 2019 2020 public boolean hasRequest() { 2021 if (this.request == null) 2022 return false; 2023 for (Reference item : this.request) 2024 if (!item.isEmpty()) 2025 return true; 2026 return false; 2027 } 2028 2029 public Reference addRequest() { //3 2030 Reference t = new Reference(); 2031 if (this.request == null) 2032 this.request = new ArrayList<Reference>(); 2033 this.request.add(t); 2034 return t; 2035 } 2036 2037 public BiologicallyDerivedProduct addRequest(Reference t) { //3 2038 if (t == null) 2039 return this; 2040 if (this.request == null) 2041 this.request = new ArrayList<Reference>(); 2042 this.request.add(t); 2043 return this; 2044 } 2045 2046 /** 2047 * @return The first repetition of repeating field {@link #request}, creating it if it does not already exist 2048 */ 2049 public Reference getRequestFirstRep() { 2050 if (getRequest().isEmpty()) { 2051 addRequest(); 2052 } 2053 return getRequest().get(0); 2054 } 2055 2056 /** 2057 * @deprecated Use Reference#setResource(IBaseResource) instead 2058 */ 2059 @Deprecated 2060 public List<ServiceRequest> getRequestTarget() { 2061 if (this.requestTarget == null) 2062 this.requestTarget = new ArrayList<ServiceRequest>(); 2063 return this.requestTarget; 2064 } 2065 2066 /** 2067 * @deprecated Use Reference#setResource(IBaseResource) instead 2068 */ 2069 @Deprecated 2070 public ServiceRequest addRequestTarget() { 2071 ServiceRequest r = new ServiceRequest(); 2072 if (this.requestTarget == null) 2073 this.requestTarget = new ArrayList<ServiceRequest>(); 2074 this.requestTarget.add(r); 2075 return r; 2076 } 2077 2078 /** 2079 * @return {@link #quantity} (Number of discrete units within this product.). This is the underlying object with id, value and extensions. The accessor "getQuantity" gives direct access to the value 2080 */ 2081 public IntegerType getQuantityElement() { 2082 if (this.quantity == null) 2083 if (Configuration.errorOnAutoCreate()) 2084 throw new Error("Attempt to auto-create BiologicallyDerivedProduct.quantity"); 2085 else if (Configuration.doAutoCreate()) 2086 this.quantity = new IntegerType(); // bb 2087 return this.quantity; 2088 } 2089 2090 public boolean hasQuantityElement() { 2091 return this.quantity != null && !this.quantity.isEmpty(); 2092 } 2093 2094 public boolean hasQuantity() { 2095 return this.quantity != null && !this.quantity.isEmpty(); 2096 } 2097 2098 /** 2099 * @param value {@link #quantity} (Number of discrete units within this product.). This is the underlying object with id, value and extensions. The accessor "getQuantity" gives direct access to the value 2100 */ 2101 public BiologicallyDerivedProduct setQuantityElement(IntegerType value) { 2102 this.quantity = value; 2103 return this; 2104 } 2105 2106 /** 2107 * @return Number of discrete units within this product. 2108 */ 2109 public int getQuantity() { 2110 return this.quantity == null || this.quantity.isEmpty() ? 0 : this.quantity.getValue(); 2111 } 2112 2113 /** 2114 * @param value Number of discrete units within this product. 2115 */ 2116 public BiologicallyDerivedProduct setQuantity(int value) { 2117 if (this.quantity == null) 2118 this.quantity = new IntegerType(); 2119 this.quantity.setValue(value); 2120 return this; 2121 } 2122 2123 /** 2124 * @return {@link #parent} (Parent product (if any).) 2125 */ 2126 public Reference getParent() { 2127 if (this.parent == null) 2128 if (Configuration.errorOnAutoCreate()) 2129 throw new Error("Attempt to auto-create BiologicallyDerivedProduct.parent"); 2130 else if (Configuration.doAutoCreate()) 2131 this.parent = new Reference(); // cc 2132 return this.parent; 2133 } 2134 2135 public boolean hasParent() { 2136 return this.parent != null && !this.parent.isEmpty(); 2137 } 2138 2139 /** 2140 * @param value {@link #parent} (Parent product (if any).) 2141 */ 2142 public BiologicallyDerivedProduct setParent(Reference value) { 2143 this.parent = value; 2144 return this; 2145 } 2146 2147 /** 2148 * @return {@link #parent} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Parent product (if any).) 2149 */ 2150 public Resource getParentTarget() { 2151 return this.parentTarget; 2152 } 2153 2154 /** 2155 * @param value {@link #parent} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Parent product (if any).) 2156 */ 2157 public BiologicallyDerivedProduct setParentTarget(Resource value) { 2158 this.parentTarget = value; 2159 return this; 2160 } 2161 2162 /** 2163 * @return {@link #collection} (How this product was collected.) 2164 */ 2165 public BiologicallyDerivedProductCollectionComponent getCollection() { 2166 if (this.collection == null) 2167 if (Configuration.errorOnAutoCreate()) 2168 throw new Error("Attempt to auto-create BiologicallyDerivedProduct.collection"); 2169 else if (Configuration.doAutoCreate()) 2170 this.collection = new BiologicallyDerivedProductCollectionComponent(); // cc 2171 return this.collection; 2172 } 2173 2174 public boolean hasCollection() { 2175 return this.collection != null && !this.collection.isEmpty(); 2176 } 2177 2178 /** 2179 * @param value {@link #collection} (How this product was collected.) 2180 */ 2181 public BiologicallyDerivedProduct setCollection(BiologicallyDerivedProductCollectionComponent value) { 2182 this.collection = value; 2183 return this; 2184 } 2185 2186 /** 2187 * @return {@link #processing} (Any processing of the product during collection.) 2188 */ 2189 public List<BiologicallyDerivedProductProcessingComponent> getProcessing() { 2190 if (this.processing == null) 2191 this.processing = new ArrayList<BiologicallyDerivedProductProcessingComponent>(); 2192 return this.processing; 2193 } 2194 2195 /** 2196 * @return Returns a reference to <code>this</code> for easy method chaining 2197 */ 2198 public BiologicallyDerivedProduct setProcessing(List<BiologicallyDerivedProductProcessingComponent> theProcessing) { 2199 this.processing = theProcessing; 2200 return this; 2201 } 2202 2203 public boolean hasProcessing() { 2204 if (this.processing == null) 2205 return false; 2206 for (BiologicallyDerivedProductProcessingComponent item : this.processing) 2207 if (!item.isEmpty()) 2208 return true; 2209 return false; 2210 } 2211 2212 public BiologicallyDerivedProductProcessingComponent addProcessing() { //3 2213 BiologicallyDerivedProductProcessingComponent t = new BiologicallyDerivedProductProcessingComponent(); 2214 if (this.processing == null) 2215 this.processing = new ArrayList<BiologicallyDerivedProductProcessingComponent>(); 2216 this.processing.add(t); 2217 return t; 2218 } 2219 2220 public BiologicallyDerivedProduct addProcessing(BiologicallyDerivedProductProcessingComponent t) { //3 2221 if (t == null) 2222 return this; 2223 if (this.processing == null) 2224 this.processing = new ArrayList<BiologicallyDerivedProductProcessingComponent>(); 2225 this.processing.add(t); 2226 return this; 2227 } 2228 2229 /** 2230 * @return The first repetition of repeating field {@link #processing}, creating it if it does not already exist 2231 */ 2232 public BiologicallyDerivedProductProcessingComponent getProcessingFirstRep() { 2233 if (getProcessing().isEmpty()) { 2234 addProcessing(); 2235 } 2236 return getProcessing().get(0); 2237 } 2238 2239 /** 2240 * @return {@link #manipulation} (Any manipulation of product post-collection.) 2241 */ 2242 public BiologicallyDerivedProductManipulationComponent getManipulation() { 2243 if (this.manipulation == null) 2244 if (Configuration.errorOnAutoCreate()) 2245 throw new Error("Attempt to auto-create BiologicallyDerivedProduct.manipulation"); 2246 else if (Configuration.doAutoCreate()) 2247 this.manipulation = new BiologicallyDerivedProductManipulationComponent(); // cc 2248 return this.manipulation; 2249 } 2250 2251 public boolean hasManipulation() { 2252 return this.manipulation != null && !this.manipulation.isEmpty(); 2253 } 2254 2255 /** 2256 * @param value {@link #manipulation} (Any manipulation of product post-collection.) 2257 */ 2258 public BiologicallyDerivedProduct setManipulation(BiologicallyDerivedProductManipulationComponent value) { 2259 this.manipulation = value; 2260 return this; 2261 } 2262 2263 /** 2264 * @return {@link #storage} (Product storage.) 2265 */ 2266 public List<BiologicallyDerivedProductStorageComponent> getStorage() { 2267 if (this.storage == null) 2268 this.storage = new ArrayList<BiologicallyDerivedProductStorageComponent>(); 2269 return this.storage; 2270 } 2271 2272 /** 2273 * @return Returns a reference to <code>this</code> for easy method chaining 2274 */ 2275 public BiologicallyDerivedProduct setStorage(List<BiologicallyDerivedProductStorageComponent> theStorage) { 2276 this.storage = theStorage; 2277 return this; 2278 } 2279 2280 public boolean hasStorage() { 2281 if (this.storage == null) 2282 return false; 2283 for (BiologicallyDerivedProductStorageComponent item : this.storage) 2284 if (!item.isEmpty()) 2285 return true; 2286 return false; 2287 } 2288 2289 public BiologicallyDerivedProductStorageComponent addStorage() { //3 2290 BiologicallyDerivedProductStorageComponent t = new BiologicallyDerivedProductStorageComponent(); 2291 if (this.storage == null) 2292 this.storage = new ArrayList<BiologicallyDerivedProductStorageComponent>(); 2293 this.storage.add(t); 2294 return t; 2295 } 2296 2297 public BiologicallyDerivedProduct addStorage(BiologicallyDerivedProductStorageComponent t) { //3 2298 if (t == null) 2299 return this; 2300 if (this.storage == null) 2301 this.storage = new ArrayList<BiologicallyDerivedProductStorageComponent>(); 2302 this.storage.add(t); 2303 return this; 2304 } 2305 2306 /** 2307 * @return The first repetition of repeating field {@link #storage}, creating it if it does not already exist 2308 */ 2309 public BiologicallyDerivedProductStorageComponent getStorageFirstRep() { 2310 if (getStorage().isEmpty()) { 2311 addStorage(); 2312 } 2313 return getStorage().get(0); 2314 } 2315 2316 protected void listChildren(List<Property> children) { 2317 super.listChildren(children); 2318 children.add(new Property("identifier", "Identifier", "This records identifiers associated with this biologically derived product instance that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).", 0, java.lang.Integer.MAX_VALUE, identifier)); 2319 children.add(new Property("productCategory", "code", "Broad category of this product.", 0, 1, productCategory)); 2320 children.add(new Property("productCode", "CodeableConcept", "A code that identifies the kind of this biologically derived product (SNOMED Ctcode).", 0, 1, productCode)); 2321 children.add(new Property("status", "code", "Whether the product is currently available.", 0, 1, status)); 2322 children.add(new Property("request", "Reference(ServiceRequest)", "Procedure request to obtain this biologically derived product.", 0, java.lang.Integer.MAX_VALUE, request)); 2323 children.add(new Property("quantity", "integer", "Number of discrete units within this product.", 0, 1, quantity)); 2324 children.add(new Property("parent", "Reference(Any)", "Parent product (if any).", 0, 1, parent)); 2325 children.add(new Property("collection", "", "How this product was collected.", 0, 1, collection)); 2326 children.add(new Property("processing", "", "Any processing of the product during collection.", 0, java.lang.Integer.MAX_VALUE, processing)); 2327 children.add(new Property("manipulation", "", "Any manipulation of product post-collection.", 0, 1, manipulation)); 2328 children.add(new Property("storage", "", "Product storage.", 0, java.lang.Integer.MAX_VALUE, storage)); 2329 } 2330 2331 @Override 2332 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 2333 switch (_hash) { 2334 case -1618432855: /*identifier*/ return new Property("identifier", "Identifier", "This records identifiers associated with this biologically derived product instance that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).", 0, java.lang.Integer.MAX_VALUE, identifier); 2335 case 197299981: /*productCategory*/ return new Property("productCategory", "code", "Broad category of this product.", 0, 1, productCategory); 2336 case -1492131972: /*productCode*/ return new Property("productCode", "CodeableConcept", "A code that identifies the kind of this biologically derived product (SNOMED Ctcode).", 0, 1, productCode); 2337 case -892481550: /*status*/ return new Property("status", "code", "Whether the product is currently available.", 0, 1, status); 2338 case 1095692943: /*request*/ return new Property("request", "Reference(ServiceRequest)", "Procedure request to obtain this biologically derived product.", 0, java.lang.Integer.MAX_VALUE, request); 2339 case -1285004149: /*quantity*/ return new Property("quantity", "integer", "Number of discrete units within this product.", 0, 1, quantity); 2340 case -995424086: /*parent*/ return new Property("parent", "Reference(Any)", "Parent product (if any).", 0, 1, parent); 2341 case -1741312354: /*collection*/ return new Property("collection", "", "How this product was collected.", 0, 1, collection); 2342 case 422194963: /*processing*/ return new Property("processing", "", "Any processing of the product during collection.", 0, java.lang.Integer.MAX_VALUE, processing); 2343 case -696214627: /*manipulation*/ return new Property("manipulation", "", "Any manipulation of product post-collection.", 0, 1, manipulation); 2344 case -1884274053: /*storage*/ return new Property("storage", "", "Product storage.", 0, java.lang.Integer.MAX_VALUE, storage); 2345 default: return super.getNamedProperty(_hash, _name, _checkValid); 2346 } 2347 2348 } 2349 2350 @Override 2351 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2352 switch (hash) { 2353 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 2354 case 197299981: /*productCategory*/ return this.productCategory == null ? new Base[0] : new Base[] {this.productCategory}; // Enumeration<BiologicallyDerivedProductCategory> 2355 case -1492131972: /*productCode*/ return this.productCode == null ? new Base[0] : new Base[] {this.productCode}; // CodeableConcept 2356 case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<BiologicallyDerivedProductStatus> 2357 case 1095692943: /*request*/ return this.request == null ? new Base[0] : this.request.toArray(new Base[this.request.size()]); // Reference 2358 case -1285004149: /*quantity*/ return this.quantity == null ? new Base[0] : new Base[] {this.quantity}; // IntegerType 2359 case -995424086: /*parent*/ return this.parent == null ? new Base[0] : new Base[] {this.parent}; // Reference 2360 case -1741312354: /*collection*/ return this.collection == null ? new Base[0] : new Base[] {this.collection}; // BiologicallyDerivedProductCollectionComponent 2361 case 422194963: /*processing*/ return this.processing == null ? new Base[0] : this.processing.toArray(new Base[this.processing.size()]); // BiologicallyDerivedProductProcessingComponent 2362 case -696214627: /*manipulation*/ return this.manipulation == null ? new Base[0] : new Base[] {this.manipulation}; // BiologicallyDerivedProductManipulationComponent 2363 case -1884274053: /*storage*/ return this.storage == null ? new Base[0] : this.storage.toArray(new Base[this.storage.size()]); // BiologicallyDerivedProductStorageComponent 2364 default: return super.getProperty(hash, name, checkValid); 2365 } 2366 2367 } 2368 2369 @Override 2370 public Base setProperty(int hash, String name, Base value) throws FHIRException { 2371 switch (hash) { 2372 case -1618432855: // identifier 2373 this.getIdentifier().add(castToIdentifier(value)); // Identifier 2374 return value; 2375 case 197299981: // productCategory 2376 value = new BiologicallyDerivedProductCategoryEnumFactory().fromType(castToCode(value)); 2377 this.productCategory = (Enumeration) value; // Enumeration<BiologicallyDerivedProductCategory> 2378 return value; 2379 case -1492131972: // productCode 2380 this.productCode = castToCodeableConcept(value); // CodeableConcept 2381 return value; 2382 case -892481550: // status 2383 value = new BiologicallyDerivedProductStatusEnumFactory().fromType(castToCode(value)); 2384 this.status = (Enumeration) value; // Enumeration<BiologicallyDerivedProductStatus> 2385 return value; 2386 case 1095692943: // request 2387 this.getRequest().add(castToReference(value)); // Reference 2388 return value; 2389 case -1285004149: // quantity 2390 this.quantity = castToInteger(value); // IntegerType 2391 return value; 2392 case -995424086: // parent 2393 this.parent = castToReference(value); // Reference 2394 return value; 2395 case -1741312354: // collection 2396 this.collection = (BiologicallyDerivedProductCollectionComponent) value; // BiologicallyDerivedProductCollectionComponent 2397 return value; 2398 case 422194963: // processing 2399 this.getProcessing().add((BiologicallyDerivedProductProcessingComponent) value); // BiologicallyDerivedProductProcessingComponent 2400 return value; 2401 case -696214627: // manipulation 2402 this.manipulation = (BiologicallyDerivedProductManipulationComponent) value; // BiologicallyDerivedProductManipulationComponent 2403 return value; 2404 case -1884274053: // storage 2405 this.getStorage().add((BiologicallyDerivedProductStorageComponent) value); // BiologicallyDerivedProductStorageComponent 2406 return value; 2407 default: return super.setProperty(hash, name, value); 2408 } 2409 2410 } 2411 2412 @Override 2413 public Base setProperty(String name, Base value) throws FHIRException { 2414 if (name.equals("identifier")) { 2415 this.getIdentifier().add(castToIdentifier(value)); 2416 } else if (name.equals("productCategory")) { 2417 value = new BiologicallyDerivedProductCategoryEnumFactory().fromType(castToCode(value)); 2418 this.productCategory = (Enumeration) value; // Enumeration<BiologicallyDerivedProductCategory> 2419 } else if (name.equals("productCode")) { 2420 this.productCode = castToCodeableConcept(value); // CodeableConcept 2421 } else if (name.equals("status")) { 2422 value = new BiologicallyDerivedProductStatusEnumFactory().fromType(castToCode(value)); 2423 this.status = (Enumeration) value; // Enumeration<BiologicallyDerivedProductStatus> 2424 } else if (name.equals("request")) { 2425 this.getRequest().add(castToReference(value)); 2426 } else if (name.equals("quantity")) { 2427 this.quantity = castToInteger(value); // IntegerType 2428 } else if (name.equals("parent")) { 2429 this.parent = castToReference(value); // Reference 2430 } else if (name.equals("collection")) { 2431 this.collection = (BiologicallyDerivedProductCollectionComponent) value; // BiologicallyDerivedProductCollectionComponent 2432 } else if (name.equals("processing")) { 2433 this.getProcessing().add((BiologicallyDerivedProductProcessingComponent) value); 2434 } else if (name.equals("manipulation")) { 2435 this.manipulation = (BiologicallyDerivedProductManipulationComponent) value; // BiologicallyDerivedProductManipulationComponent 2436 } else if (name.equals("storage")) { 2437 this.getStorage().add((BiologicallyDerivedProductStorageComponent) value); 2438 } else 2439 return super.setProperty(name, value); 2440 return value; 2441 } 2442 2443 @Override 2444 public Base makeProperty(int hash, String name) throws FHIRException { 2445 switch (hash) { 2446 case -1618432855: return addIdentifier(); 2447 case 197299981: return getProductCategoryElement(); 2448 case -1492131972: return getProductCode(); 2449 case -892481550: return getStatusElement(); 2450 case 1095692943: return addRequest(); 2451 case -1285004149: return getQuantityElement(); 2452 case -995424086: return getParent(); 2453 case -1741312354: return getCollection(); 2454 case 422194963: return addProcessing(); 2455 case -696214627: return getManipulation(); 2456 case -1884274053: return addStorage(); 2457 default: return super.makeProperty(hash, name); 2458 } 2459 2460 } 2461 2462 @Override 2463 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2464 switch (hash) { 2465 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 2466 case 197299981: /*productCategory*/ return new String[] {"code"}; 2467 case -1492131972: /*productCode*/ return new String[] {"CodeableConcept"}; 2468 case -892481550: /*status*/ return new String[] {"code"}; 2469 case 1095692943: /*request*/ return new String[] {"Reference"}; 2470 case -1285004149: /*quantity*/ return new String[] {"integer"}; 2471 case -995424086: /*parent*/ return new String[] {"Reference"}; 2472 case -1741312354: /*collection*/ return new String[] {}; 2473 case 422194963: /*processing*/ return new String[] {}; 2474 case -696214627: /*manipulation*/ return new String[] {}; 2475 case -1884274053: /*storage*/ return new String[] {}; 2476 default: return super.getTypesForProperty(hash, name); 2477 } 2478 2479 } 2480 2481 @Override 2482 public Base addChild(String name) throws FHIRException { 2483 if (name.equals("identifier")) { 2484 return addIdentifier(); 2485 } 2486 else if (name.equals("productCategory")) { 2487 throw new FHIRException("Cannot call addChild on a primitive type BiologicallyDerivedProduct.productCategory"); 2488 } 2489 else if (name.equals("productCode")) { 2490 this.productCode = new CodeableConcept(); 2491 return this.productCode; 2492 } 2493 else if (name.equals("status")) { 2494 throw new FHIRException("Cannot call addChild on a primitive type BiologicallyDerivedProduct.status"); 2495 } 2496 else if (name.equals("request")) { 2497 return addRequest(); 2498 } 2499 else if (name.equals("quantity")) { 2500 throw new FHIRException("Cannot call addChild on a primitive type BiologicallyDerivedProduct.quantity"); 2501 } 2502 else if (name.equals("parent")) { 2503 this.parent = new Reference(); 2504 return this.parent; 2505 } 2506 else if (name.equals("collection")) { 2507 this.collection = new BiologicallyDerivedProductCollectionComponent(); 2508 return this.collection; 2509 } 2510 else if (name.equals("processing")) { 2511 return addProcessing(); 2512 } 2513 else if (name.equals("manipulation")) { 2514 this.manipulation = new BiologicallyDerivedProductManipulationComponent(); 2515 return this.manipulation; 2516 } 2517 else if (name.equals("storage")) { 2518 return addStorage(); 2519 } 2520 else 2521 return super.addChild(name); 2522 } 2523 2524 public String fhirType() { 2525 return "BiologicallyDerivedProduct"; 2526 2527 } 2528 2529 public BiologicallyDerivedProduct copy() { 2530 BiologicallyDerivedProduct dst = new BiologicallyDerivedProduct(); 2531 copyValues(dst); 2532 if (identifier != null) { 2533 dst.identifier = new ArrayList<Identifier>(); 2534 for (Identifier i : identifier) 2535 dst.identifier.add(i.copy()); 2536 }; 2537 dst.productCategory = productCategory == null ? null : productCategory.copy(); 2538 dst.productCode = productCode == null ? null : productCode.copy(); 2539 dst.status = status == null ? null : status.copy(); 2540 if (request != null) { 2541 dst.request = new ArrayList<Reference>(); 2542 for (Reference i : request) 2543 dst.request.add(i.copy()); 2544 }; 2545 dst.quantity = quantity == null ? null : quantity.copy(); 2546 dst.parent = parent == null ? null : parent.copy(); 2547 dst.collection = collection == null ? null : collection.copy(); 2548 if (processing != null) { 2549 dst.processing = new ArrayList<BiologicallyDerivedProductProcessingComponent>(); 2550 for (BiologicallyDerivedProductProcessingComponent i : processing) 2551 dst.processing.add(i.copy()); 2552 }; 2553 dst.manipulation = manipulation == null ? null : manipulation.copy(); 2554 if (storage != null) { 2555 dst.storage = new ArrayList<BiologicallyDerivedProductStorageComponent>(); 2556 for (BiologicallyDerivedProductStorageComponent i : storage) 2557 dst.storage.add(i.copy()); 2558 }; 2559 return dst; 2560 } 2561 2562 protected BiologicallyDerivedProduct typedCopy() { 2563 return copy(); 2564 } 2565 2566 @Override 2567 public boolean equalsDeep(Base other_) { 2568 if (!super.equalsDeep(other_)) 2569 return false; 2570 if (!(other_ instanceof BiologicallyDerivedProduct)) 2571 return false; 2572 BiologicallyDerivedProduct o = (BiologicallyDerivedProduct) other_; 2573 return compareDeep(identifier, o.identifier, true) && compareDeep(productCategory, o.productCategory, true) 2574 && compareDeep(productCode, o.productCode, true) && compareDeep(status, o.status, true) && compareDeep(request, o.request, true) 2575 && compareDeep(quantity, o.quantity, true) && compareDeep(parent, o.parent, true) && compareDeep(collection, o.collection, true) 2576 && compareDeep(processing, o.processing, true) && compareDeep(manipulation, o.manipulation, true) 2577 && compareDeep(storage, o.storage, true); 2578 } 2579 2580 @Override 2581 public boolean equalsShallow(Base other_) { 2582 if (!super.equalsShallow(other_)) 2583 return false; 2584 if (!(other_ instanceof BiologicallyDerivedProduct)) 2585 return false; 2586 BiologicallyDerivedProduct o = (BiologicallyDerivedProduct) other_; 2587 return compareValues(productCategory, o.productCategory, true) && compareValues(status, o.status, true) 2588 && compareValues(quantity, o.quantity, true); 2589 } 2590 2591 public boolean isEmpty() { 2592 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, productCategory 2593 , productCode, status, request, quantity, parent, collection, processing, manipulation 2594 , storage); 2595 } 2596 2597 @Override 2598 public ResourceType getResourceType() { 2599 return ResourceType.BiologicallyDerivedProduct; 2600 } 2601 2602 2603} 2604