
001package org.hl7.fhir.r5.model; 002 003 004/* 005 Copyright (c) 2011+, HL7, Inc. 006 All rights reserved. 007 008 Redistribution and use in source and binary forms, with or without modification, \ 009 are permitted provided that the following conditions are met: 010 011 * Redistributions of source code must retain the above copyright notice, this \ 012 list of conditions and the following disclaimer. 013 * Redistributions in binary form must reproduce the above copyright notice, \ 014 this list of conditions and the following disclaimer in the documentation \ 015 and/or other materials provided with the distribution. 016 * Neither the name of HL7 nor the names of its contributors may be used to 017 endorse or promote products derived from this software without specific 018 prior written permission. 019 020 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \ 021 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \ 022 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \ 023 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \ 024 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT \ 025 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR \ 026 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, \ 027 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) \ 028 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE \ 029 POSSIBILITY OF SUCH DAMAGE. 030 */ 031 032// Generated on Tue, Dec 28, 2021 07:16+1100 for FHIR v5.0.0-snapshot1 033 034import java.util.ArrayList; 035import java.util.Date; 036import java.util.List; 037import org.hl7.fhir.utilities.Utilities; 038import org.hl7.fhir.r5.model.Enumerations.*; 039import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 040import org.hl7.fhir.exceptions.FHIRException; 041import org.hl7.fhir.instance.model.api.ICompositeType; 042import ca.uhn.fhir.model.api.annotation.ResourceDef; 043import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 044import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 045import ca.uhn.fhir.model.api.annotation.Child; 046import ca.uhn.fhir.model.api.annotation.ChildOrder; 047import ca.uhn.fhir.model.api.annotation.Description; 048import ca.uhn.fhir.model.api.annotation.Block; 049 050/** 051 * Detailed definition of a medicinal product, typically for uses other than direct patient care (e.g. regulatory use, drug catalogs). 052 */ 053@ResourceDef(name="MedicinalProductDefinition", profile="http://hl7.org/fhir/StructureDefinition/MedicinalProductDefinition") 054public class MedicinalProductDefinition extends DomainResource { 055 056 @Block() 057 public static class MedicinalProductDefinitionContactComponent extends BackboneElement implements IBaseBackboneElement { 058 /** 059 * Allows the contact to be classified, for example QPPV, Pharmacovigilance Enquiry Information. 060 */ 061 @Child(name = "type", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=false, summary=true) 062 @Description(shortDefinition="Allows the contact to be classified, for example QPPV, Pharmacovigilance Enquiry Information", formalDefinition="Allows the contact to be classified, for example QPPV, Pharmacovigilance Enquiry Information." ) 063 protected CodeableConcept type; 064 065 /** 066 * A product specific contact, person (in a role), or an organization. 067 */ 068 @Child(name = "contact", type = {Organization.class, PractitionerRole.class}, order=2, min=1, max=1, modifier=false, summary=true) 069 @Description(shortDefinition="A product specific contact, person (in a role), or an organization", formalDefinition="A product specific contact, person (in a role), or an organization." ) 070 protected Reference contact; 071 072 private static final long serialVersionUID = -587616244L; 073 074 /** 075 * Constructor 076 */ 077 public MedicinalProductDefinitionContactComponent() { 078 super(); 079 } 080 081 /** 082 * Constructor 083 */ 084 public MedicinalProductDefinitionContactComponent(Reference contact) { 085 super(); 086 this.setContact(contact); 087 } 088 089 /** 090 * @return {@link #type} (Allows the contact to be classified, for example QPPV, Pharmacovigilance Enquiry Information.) 091 */ 092 public CodeableConcept getType() { 093 if (this.type == null) 094 if (Configuration.errorOnAutoCreate()) 095 throw new Error("Attempt to auto-create MedicinalProductDefinitionContactComponent.type"); 096 else if (Configuration.doAutoCreate()) 097 this.type = new CodeableConcept(); // cc 098 return this.type; 099 } 100 101 public boolean hasType() { 102 return this.type != null && !this.type.isEmpty(); 103 } 104 105 /** 106 * @param value {@link #type} (Allows the contact to be classified, for example QPPV, Pharmacovigilance Enquiry Information.) 107 */ 108 public MedicinalProductDefinitionContactComponent setType(CodeableConcept value) { 109 this.type = value; 110 return this; 111 } 112 113 /** 114 * @return {@link #contact} (A product specific contact, person (in a role), or an organization.) 115 */ 116 public Reference getContact() { 117 if (this.contact == null) 118 if (Configuration.errorOnAutoCreate()) 119 throw new Error("Attempt to auto-create MedicinalProductDefinitionContactComponent.contact"); 120 else if (Configuration.doAutoCreate()) 121 this.contact = new Reference(); // cc 122 return this.contact; 123 } 124 125 public boolean hasContact() { 126 return this.contact != null && !this.contact.isEmpty(); 127 } 128 129 /** 130 * @param value {@link #contact} (A product specific contact, person (in a role), or an organization.) 131 */ 132 public MedicinalProductDefinitionContactComponent setContact(Reference value) { 133 this.contact = value; 134 return this; 135 } 136 137 protected void listChildren(List<Property> children) { 138 super.listChildren(children); 139 children.add(new Property("type", "CodeableConcept", "Allows the contact to be classified, for example QPPV, Pharmacovigilance Enquiry Information.", 0, 1, type)); 140 children.add(new Property("contact", "Reference(Organization|PractitionerRole)", "A product specific contact, person (in a role), or an organization.", 0, 1, contact)); 141 } 142 143 @Override 144 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 145 switch (_hash) { 146 case 3575610: /*type*/ return new Property("type", "CodeableConcept", "Allows the contact to be classified, for example QPPV, Pharmacovigilance Enquiry Information.", 0, 1, type); 147 case 951526432: /*contact*/ return new Property("contact", "Reference(Organization|PractitionerRole)", "A product specific contact, person (in a role), or an organization.", 0, 1, contact); 148 default: return super.getNamedProperty(_hash, _name, _checkValid); 149 } 150 151 } 152 153 @Override 154 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 155 switch (hash) { 156 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // CodeableConcept 157 case 951526432: /*contact*/ return this.contact == null ? new Base[0] : new Base[] {this.contact}; // Reference 158 default: return super.getProperty(hash, name, checkValid); 159 } 160 161 } 162 163 @Override 164 public Base setProperty(int hash, String name, Base value) throws FHIRException { 165 switch (hash) { 166 case 3575610: // type 167 this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 168 return value; 169 case 951526432: // contact 170 this.contact = TypeConvertor.castToReference(value); // Reference 171 return value; 172 default: return super.setProperty(hash, name, value); 173 } 174 175 } 176 177 @Override 178 public Base setProperty(String name, Base value) throws FHIRException { 179 if (name.equals("type")) { 180 this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 181 } else if (name.equals("contact")) { 182 this.contact = TypeConvertor.castToReference(value); // Reference 183 } else 184 return super.setProperty(name, value); 185 return value; 186 } 187 188 @Override 189 public Base makeProperty(int hash, String name) throws FHIRException { 190 switch (hash) { 191 case 3575610: return getType(); 192 case 951526432: return getContact(); 193 default: return super.makeProperty(hash, name); 194 } 195 196 } 197 198 @Override 199 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 200 switch (hash) { 201 case 3575610: /*type*/ return new String[] {"CodeableConcept"}; 202 case 951526432: /*contact*/ return new String[] {"Reference"}; 203 default: return super.getTypesForProperty(hash, name); 204 } 205 206 } 207 208 @Override 209 public Base addChild(String name) throws FHIRException { 210 if (name.equals("type")) { 211 this.type = new CodeableConcept(); 212 return this.type; 213 } 214 else if (name.equals("contact")) { 215 this.contact = new Reference(); 216 return this.contact; 217 } 218 else 219 return super.addChild(name); 220 } 221 222 public MedicinalProductDefinitionContactComponent copy() { 223 MedicinalProductDefinitionContactComponent dst = new MedicinalProductDefinitionContactComponent(); 224 copyValues(dst); 225 return dst; 226 } 227 228 public void copyValues(MedicinalProductDefinitionContactComponent dst) { 229 super.copyValues(dst); 230 dst.type = type == null ? null : type.copy(); 231 dst.contact = contact == null ? null : contact.copy(); 232 } 233 234 @Override 235 public boolean equalsDeep(Base other_) { 236 if (!super.equalsDeep(other_)) 237 return false; 238 if (!(other_ instanceof MedicinalProductDefinitionContactComponent)) 239 return false; 240 MedicinalProductDefinitionContactComponent o = (MedicinalProductDefinitionContactComponent) other_; 241 return compareDeep(type, o.type, true) && compareDeep(contact, o.contact, true); 242 } 243 244 @Override 245 public boolean equalsShallow(Base other_) { 246 if (!super.equalsShallow(other_)) 247 return false; 248 if (!(other_ instanceof MedicinalProductDefinitionContactComponent)) 249 return false; 250 MedicinalProductDefinitionContactComponent o = (MedicinalProductDefinitionContactComponent) other_; 251 return true; 252 } 253 254 public boolean isEmpty() { 255 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(type, contact); 256 } 257 258 public String fhirType() { 259 return "MedicinalProductDefinition.contact"; 260 261 } 262 263 } 264 265 @Block() 266 public static class MedicinalProductDefinitionNameComponent extends BackboneElement implements IBaseBackboneElement { 267 /** 268 * The full product name. 269 */ 270 @Child(name = "productName", type = {StringType.class}, order=1, min=1, max=1, modifier=false, summary=true) 271 @Description(shortDefinition="The full product name", formalDefinition="The full product name." ) 272 protected StringType productName; 273 274 /** 275 * Type of product name, such as rINN, BAN, Proprietary, Non-Proprietary. 276 */ 277 @Child(name = "type", type = {CodeableConcept.class}, order=2, min=0, max=1, modifier=false, summary=true) 278 @Description(shortDefinition="Type of product name, such as rINN, BAN, Proprietary, Non-Proprietary", formalDefinition="Type of product name, such as rINN, BAN, Proprietary, Non-Proprietary." ) 279 protected CodeableConcept type; 280 281 /** 282 * Coding words or phrases of the name. 283 */ 284 @Child(name = "namePart", type = {}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 285 @Description(shortDefinition="Coding words or phrases of the name", formalDefinition="Coding words or phrases of the name." ) 286 protected List<MedicinalProductDefinitionNameNamePartComponent> namePart; 287 288 /** 289 * Country where the name applies. 290 */ 291 @Child(name = "countryLanguage", type = {}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 292 @Description(shortDefinition="Country where the name applies", formalDefinition="Country where the name applies." ) 293 protected List<MedicinalProductDefinitionNameCountryLanguageComponent> countryLanguage; 294 295 private static final long serialVersionUID = 829861294L; 296 297 /** 298 * Constructor 299 */ 300 public MedicinalProductDefinitionNameComponent() { 301 super(); 302 } 303 304 /** 305 * Constructor 306 */ 307 public MedicinalProductDefinitionNameComponent(String productName) { 308 super(); 309 this.setProductName(productName); 310 } 311 312 /** 313 * @return {@link #productName} (The full product name.). This is the underlying object with id, value and extensions. The accessor "getProductName" gives direct access to the value 314 */ 315 public StringType getProductNameElement() { 316 if (this.productName == null) 317 if (Configuration.errorOnAutoCreate()) 318 throw new Error("Attempt to auto-create MedicinalProductDefinitionNameComponent.productName"); 319 else if (Configuration.doAutoCreate()) 320 this.productName = new StringType(); // bb 321 return this.productName; 322 } 323 324 public boolean hasProductNameElement() { 325 return this.productName != null && !this.productName.isEmpty(); 326 } 327 328 public boolean hasProductName() { 329 return this.productName != null && !this.productName.isEmpty(); 330 } 331 332 /** 333 * @param value {@link #productName} (The full product name.). This is the underlying object with id, value and extensions. The accessor "getProductName" gives direct access to the value 334 */ 335 public MedicinalProductDefinitionNameComponent setProductNameElement(StringType value) { 336 this.productName = value; 337 return this; 338 } 339 340 /** 341 * @return The full product name. 342 */ 343 public String getProductName() { 344 return this.productName == null ? null : this.productName.getValue(); 345 } 346 347 /** 348 * @param value The full product name. 349 */ 350 public MedicinalProductDefinitionNameComponent setProductName(String value) { 351 if (this.productName == null) 352 this.productName = new StringType(); 353 this.productName.setValue(value); 354 return this; 355 } 356 357 /** 358 * @return {@link #type} (Type of product name, such as rINN, BAN, Proprietary, Non-Proprietary.) 359 */ 360 public CodeableConcept getType() { 361 if (this.type == null) 362 if (Configuration.errorOnAutoCreate()) 363 throw new Error("Attempt to auto-create MedicinalProductDefinitionNameComponent.type"); 364 else if (Configuration.doAutoCreate()) 365 this.type = new CodeableConcept(); // cc 366 return this.type; 367 } 368 369 public boolean hasType() { 370 return this.type != null && !this.type.isEmpty(); 371 } 372 373 /** 374 * @param value {@link #type} (Type of product name, such as rINN, BAN, Proprietary, Non-Proprietary.) 375 */ 376 public MedicinalProductDefinitionNameComponent setType(CodeableConcept value) { 377 this.type = value; 378 return this; 379 } 380 381 /** 382 * @return {@link #namePart} (Coding words or phrases of the name.) 383 */ 384 public List<MedicinalProductDefinitionNameNamePartComponent> getNamePart() { 385 if (this.namePart == null) 386 this.namePart = new ArrayList<MedicinalProductDefinitionNameNamePartComponent>(); 387 return this.namePart; 388 } 389 390 /** 391 * @return Returns a reference to <code>this</code> for easy method chaining 392 */ 393 public MedicinalProductDefinitionNameComponent setNamePart(List<MedicinalProductDefinitionNameNamePartComponent> theNamePart) { 394 this.namePart = theNamePart; 395 return this; 396 } 397 398 public boolean hasNamePart() { 399 if (this.namePart == null) 400 return false; 401 for (MedicinalProductDefinitionNameNamePartComponent item : this.namePart) 402 if (!item.isEmpty()) 403 return true; 404 return false; 405 } 406 407 public MedicinalProductDefinitionNameNamePartComponent addNamePart() { //3 408 MedicinalProductDefinitionNameNamePartComponent t = new MedicinalProductDefinitionNameNamePartComponent(); 409 if (this.namePart == null) 410 this.namePart = new ArrayList<MedicinalProductDefinitionNameNamePartComponent>(); 411 this.namePart.add(t); 412 return t; 413 } 414 415 public MedicinalProductDefinitionNameComponent addNamePart(MedicinalProductDefinitionNameNamePartComponent t) { //3 416 if (t == null) 417 return this; 418 if (this.namePart == null) 419 this.namePart = new ArrayList<MedicinalProductDefinitionNameNamePartComponent>(); 420 this.namePart.add(t); 421 return this; 422 } 423 424 /** 425 * @return The first repetition of repeating field {@link #namePart}, creating it if it does not already exist {3} 426 */ 427 public MedicinalProductDefinitionNameNamePartComponent getNamePartFirstRep() { 428 if (getNamePart().isEmpty()) { 429 addNamePart(); 430 } 431 return getNamePart().get(0); 432 } 433 434 /** 435 * @return {@link #countryLanguage} (Country where the name applies.) 436 */ 437 public List<MedicinalProductDefinitionNameCountryLanguageComponent> getCountryLanguage() { 438 if (this.countryLanguage == null) 439 this.countryLanguage = new ArrayList<MedicinalProductDefinitionNameCountryLanguageComponent>(); 440 return this.countryLanguage; 441 } 442 443 /** 444 * @return Returns a reference to <code>this</code> for easy method chaining 445 */ 446 public MedicinalProductDefinitionNameComponent setCountryLanguage(List<MedicinalProductDefinitionNameCountryLanguageComponent> theCountryLanguage) { 447 this.countryLanguage = theCountryLanguage; 448 return this; 449 } 450 451 public boolean hasCountryLanguage() { 452 if (this.countryLanguage == null) 453 return false; 454 for (MedicinalProductDefinitionNameCountryLanguageComponent item : this.countryLanguage) 455 if (!item.isEmpty()) 456 return true; 457 return false; 458 } 459 460 public MedicinalProductDefinitionNameCountryLanguageComponent addCountryLanguage() { //3 461 MedicinalProductDefinitionNameCountryLanguageComponent t = new MedicinalProductDefinitionNameCountryLanguageComponent(); 462 if (this.countryLanguage == null) 463 this.countryLanguage = new ArrayList<MedicinalProductDefinitionNameCountryLanguageComponent>(); 464 this.countryLanguage.add(t); 465 return t; 466 } 467 468 public MedicinalProductDefinitionNameComponent addCountryLanguage(MedicinalProductDefinitionNameCountryLanguageComponent t) { //3 469 if (t == null) 470 return this; 471 if (this.countryLanguage == null) 472 this.countryLanguage = new ArrayList<MedicinalProductDefinitionNameCountryLanguageComponent>(); 473 this.countryLanguage.add(t); 474 return this; 475 } 476 477 /** 478 * @return The first repetition of repeating field {@link #countryLanguage}, creating it if it does not already exist {3} 479 */ 480 public MedicinalProductDefinitionNameCountryLanguageComponent getCountryLanguageFirstRep() { 481 if (getCountryLanguage().isEmpty()) { 482 addCountryLanguage(); 483 } 484 return getCountryLanguage().get(0); 485 } 486 487 protected void listChildren(List<Property> children) { 488 super.listChildren(children); 489 children.add(new Property("productName", "string", "The full product name.", 0, 1, productName)); 490 children.add(new Property("type", "CodeableConcept", "Type of product name, such as rINN, BAN, Proprietary, Non-Proprietary.", 0, 1, type)); 491 children.add(new Property("namePart", "", "Coding words or phrases of the name.", 0, java.lang.Integer.MAX_VALUE, namePart)); 492 children.add(new Property("countryLanguage", "", "Country where the name applies.", 0, java.lang.Integer.MAX_VALUE, countryLanguage)); 493 } 494 495 @Override 496 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 497 switch (_hash) { 498 case -1491817446: /*productName*/ return new Property("productName", "string", "The full product name.", 0, 1, productName); 499 case 3575610: /*type*/ return new Property("type", "CodeableConcept", "Type of product name, such as rINN, BAN, Proprietary, Non-Proprietary.", 0, 1, type); 500 case 1840452894: /*namePart*/ return new Property("namePart", "", "Coding words or phrases of the name.", 0, java.lang.Integer.MAX_VALUE, namePart); 501 case -141141746: /*countryLanguage*/ return new Property("countryLanguage", "", "Country where the name applies.", 0, java.lang.Integer.MAX_VALUE, countryLanguage); 502 default: return super.getNamedProperty(_hash, _name, _checkValid); 503 } 504 505 } 506 507 @Override 508 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 509 switch (hash) { 510 case -1491817446: /*productName*/ return this.productName == null ? new Base[0] : new Base[] {this.productName}; // StringType 511 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // CodeableConcept 512 case 1840452894: /*namePart*/ return this.namePart == null ? new Base[0] : this.namePart.toArray(new Base[this.namePart.size()]); // MedicinalProductDefinitionNameNamePartComponent 513 case -141141746: /*countryLanguage*/ return this.countryLanguage == null ? new Base[0] : this.countryLanguage.toArray(new Base[this.countryLanguage.size()]); // MedicinalProductDefinitionNameCountryLanguageComponent 514 default: return super.getProperty(hash, name, checkValid); 515 } 516 517 } 518 519 @Override 520 public Base setProperty(int hash, String name, Base value) throws FHIRException { 521 switch (hash) { 522 case -1491817446: // productName 523 this.productName = TypeConvertor.castToString(value); // StringType 524 return value; 525 case 3575610: // type 526 this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 527 return value; 528 case 1840452894: // namePart 529 this.getNamePart().add((MedicinalProductDefinitionNameNamePartComponent) value); // MedicinalProductDefinitionNameNamePartComponent 530 return value; 531 case -141141746: // countryLanguage 532 this.getCountryLanguage().add((MedicinalProductDefinitionNameCountryLanguageComponent) value); // MedicinalProductDefinitionNameCountryLanguageComponent 533 return value; 534 default: return super.setProperty(hash, name, value); 535 } 536 537 } 538 539 @Override 540 public Base setProperty(String name, Base value) throws FHIRException { 541 if (name.equals("productName")) { 542 this.productName = TypeConvertor.castToString(value); // StringType 543 } else if (name.equals("type")) { 544 this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 545 } else if (name.equals("namePart")) { 546 this.getNamePart().add((MedicinalProductDefinitionNameNamePartComponent) value); 547 } else if (name.equals("countryLanguage")) { 548 this.getCountryLanguage().add((MedicinalProductDefinitionNameCountryLanguageComponent) value); 549 } else 550 return super.setProperty(name, value); 551 return value; 552 } 553 554 @Override 555 public Base makeProperty(int hash, String name) throws FHIRException { 556 switch (hash) { 557 case -1491817446: return getProductNameElement(); 558 case 3575610: return getType(); 559 case 1840452894: return addNamePart(); 560 case -141141746: return addCountryLanguage(); 561 default: return super.makeProperty(hash, name); 562 } 563 564 } 565 566 @Override 567 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 568 switch (hash) { 569 case -1491817446: /*productName*/ return new String[] {"string"}; 570 case 3575610: /*type*/ return new String[] {"CodeableConcept"}; 571 case 1840452894: /*namePart*/ return new String[] {}; 572 case -141141746: /*countryLanguage*/ return new String[] {}; 573 default: return super.getTypesForProperty(hash, name); 574 } 575 576 } 577 578 @Override 579 public Base addChild(String name) throws FHIRException { 580 if (name.equals("productName")) { 581 throw new FHIRException("Cannot call addChild on a primitive type MedicinalProductDefinition.name.productName"); 582 } 583 else if (name.equals("type")) { 584 this.type = new CodeableConcept(); 585 return this.type; 586 } 587 else if (name.equals("namePart")) { 588 return addNamePart(); 589 } 590 else if (name.equals("countryLanguage")) { 591 return addCountryLanguage(); 592 } 593 else 594 return super.addChild(name); 595 } 596 597 public MedicinalProductDefinitionNameComponent copy() { 598 MedicinalProductDefinitionNameComponent dst = new MedicinalProductDefinitionNameComponent(); 599 copyValues(dst); 600 return dst; 601 } 602 603 public void copyValues(MedicinalProductDefinitionNameComponent dst) { 604 super.copyValues(dst); 605 dst.productName = productName == null ? null : productName.copy(); 606 dst.type = type == null ? null : type.copy(); 607 if (namePart != null) { 608 dst.namePart = new ArrayList<MedicinalProductDefinitionNameNamePartComponent>(); 609 for (MedicinalProductDefinitionNameNamePartComponent i : namePart) 610 dst.namePart.add(i.copy()); 611 }; 612 if (countryLanguage != null) { 613 dst.countryLanguage = new ArrayList<MedicinalProductDefinitionNameCountryLanguageComponent>(); 614 for (MedicinalProductDefinitionNameCountryLanguageComponent i : countryLanguage) 615 dst.countryLanguage.add(i.copy()); 616 }; 617 } 618 619 @Override 620 public boolean equalsDeep(Base other_) { 621 if (!super.equalsDeep(other_)) 622 return false; 623 if (!(other_ instanceof MedicinalProductDefinitionNameComponent)) 624 return false; 625 MedicinalProductDefinitionNameComponent o = (MedicinalProductDefinitionNameComponent) other_; 626 return compareDeep(productName, o.productName, true) && compareDeep(type, o.type, true) && compareDeep(namePart, o.namePart, true) 627 && compareDeep(countryLanguage, o.countryLanguage, true); 628 } 629 630 @Override 631 public boolean equalsShallow(Base other_) { 632 if (!super.equalsShallow(other_)) 633 return false; 634 if (!(other_ instanceof MedicinalProductDefinitionNameComponent)) 635 return false; 636 MedicinalProductDefinitionNameComponent o = (MedicinalProductDefinitionNameComponent) other_; 637 return compareValues(productName, o.productName, true); 638 } 639 640 public boolean isEmpty() { 641 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(productName, type, namePart 642 , countryLanguage); 643 } 644 645 public String fhirType() { 646 return "MedicinalProductDefinition.name"; 647 648 } 649 650 } 651 652 @Block() 653 public static class MedicinalProductDefinitionNameNamePartComponent extends BackboneElement implements IBaseBackboneElement { 654 /** 655 * A fragment of a product name. 656 */ 657 @Child(name = "part", type = {StringType.class}, order=1, min=1, max=1, modifier=false, summary=true) 658 @Description(shortDefinition="A fragment of a product name", formalDefinition="A fragment of a product name." ) 659 protected StringType part; 660 661 /** 662 * Identifying type for this part of the name (e.g. strength part). 663 */ 664 @Child(name = "type", type = {CodeableConcept.class}, order=2, min=1, max=1, modifier=false, summary=true) 665 @Description(shortDefinition="Identifying type for this part of the name (e.g. strength part)", formalDefinition="Identifying type for this part of the name (e.g. strength part)." ) 666 protected CodeableConcept type; 667 668 private static final long serialVersionUID = -1359126549L; 669 670 /** 671 * Constructor 672 */ 673 public MedicinalProductDefinitionNameNamePartComponent() { 674 super(); 675 } 676 677 /** 678 * Constructor 679 */ 680 public MedicinalProductDefinitionNameNamePartComponent(String part, CodeableConcept type) { 681 super(); 682 this.setPart(part); 683 this.setType(type); 684 } 685 686 /** 687 * @return {@link #part} (A fragment of a product name.). This is the underlying object with id, value and extensions. The accessor "getPart" gives direct access to the value 688 */ 689 public StringType getPartElement() { 690 if (this.part == null) 691 if (Configuration.errorOnAutoCreate()) 692 throw new Error("Attempt to auto-create MedicinalProductDefinitionNameNamePartComponent.part"); 693 else if (Configuration.doAutoCreate()) 694 this.part = new StringType(); // bb 695 return this.part; 696 } 697 698 public boolean hasPartElement() { 699 return this.part != null && !this.part.isEmpty(); 700 } 701 702 public boolean hasPart() { 703 return this.part != null && !this.part.isEmpty(); 704 } 705 706 /** 707 * @param value {@link #part} (A fragment of a product name.). This is the underlying object with id, value and extensions. The accessor "getPart" gives direct access to the value 708 */ 709 public MedicinalProductDefinitionNameNamePartComponent setPartElement(StringType value) { 710 this.part = value; 711 return this; 712 } 713 714 /** 715 * @return A fragment of a product name. 716 */ 717 public String getPart() { 718 return this.part == null ? null : this.part.getValue(); 719 } 720 721 /** 722 * @param value A fragment of a product name. 723 */ 724 public MedicinalProductDefinitionNameNamePartComponent setPart(String value) { 725 if (this.part == null) 726 this.part = new StringType(); 727 this.part.setValue(value); 728 return this; 729 } 730 731 /** 732 * @return {@link #type} (Identifying type for this part of the name (e.g. strength part).) 733 */ 734 public CodeableConcept getType() { 735 if (this.type == null) 736 if (Configuration.errorOnAutoCreate()) 737 throw new Error("Attempt to auto-create MedicinalProductDefinitionNameNamePartComponent.type"); 738 else if (Configuration.doAutoCreate()) 739 this.type = new CodeableConcept(); // cc 740 return this.type; 741 } 742 743 public boolean hasType() { 744 return this.type != null && !this.type.isEmpty(); 745 } 746 747 /** 748 * @param value {@link #type} (Identifying type for this part of the name (e.g. strength part).) 749 */ 750 public MedicinalProductDefinitionNameNamePartComponent setType(CodeableConcept value) { 751 this.type = value; 752 return this; 753 } 754 755 protected void listChildren(List<Property> children) { 756 super.listChildren(children); 757 children.add(new Property("part", "string", "A fragment of a product name.", 0, 1, part)); 758 children.add(new Property("type", "CodeableConcept", "Identifying type for this part of the name (e.g. strength part).", 0, 1, type)); 759 } 760 761 @Override 762 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 763 switch (_hash) { 764 case 3433459: /*part*/ return new Property("part", "string", "A fragment of a product name.", 0, 1, part); 765 case 3575610: /*type*/ return new Property("type", "CodeableConcept", "Identifying type for this part of the name (e.g. strength part).", 0, 1, type); 766 default: return super.getNamedProperty(_hash, _name, _checkValid); 767 } 768 769 } 770 771 @Override 772 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 773 switch (hash) { 774 case 3433459: /*part*/ return this.part == null ? new Base[0] : new Base[] {this.part}; // StringType 775 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // CodeableConcept 776 default: return super.getProperty(hash, name, checkValid); 777 } 778 779 } 780 781 @Override 782 public Base setProperty(int hash, String name, Base value) throws FHIRException { 783 switch (hash) { 784 case 3433459: // part 785 this.part = TypeConvertor.castToString(value); // StringType 786 return value; 787 case 3575610: // type 788 this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 789 return value; 790 default: return super.setProperty(hash, name, value); 791 } 792 793 } 794 795 @Override 796 public Base setProperty(String name, Base value) throws FHIRException { 797 if (name.equals("part")) { 798 this.part = TypeConvertor.castToString(value); // StringType 799 } else if (name.equals("type")) { 800 this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 801 } else 802 return super.setProperty(name, value); 803 return value; 804 } 805 806 @Override 807 public Base makeProperty(int hash, String name) throws FHIRException { 808 switch (hash) { 809 case 3433459: return getPartElement(); 810 case 3575610: return getType(); 811 default: return super.makeProperty(hash, name); 812 } 813 814 } 815 816 @Override 817 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 818 switch (hash) { 819 case 3433459: /*part*/ return new String[] {"string"}; 820 case 3575610: /*type*/ return new String[] {"CodeableConcept"}; 821 default: return super.getTypesForProperty(hash, name); 822 } 823 824 } 825 826 @Override 827 public Base addChild(String name) throws FHIRException { 828 if (name.equals("part")) { 829 throw new FHIRException("Cannot call addChild on a primitive type MedicinalProductDefinition.name.namePart.part"); 830 } 831 else if (name.equals("type")) { 832 this.type = new CodeableConcept(); 833 return this.type; 834 } 835 else 836 return super.addChild(name); 837 } 838 839 public MedicinalProductDefinitionNameNamePartComponent copy() { 840 MedicinalProductDefinitionNameNamePartComponent dst = new MedicinalProductDefinitionNameNamePartComponent(); 841 copyValues(dst); 842 return dst; 843 } 844 845 public void copyValues(MedicinalProductDefinitionNameNamePartComponent dst) { 846 super.copyValues(dst); 847 dst.part = part == null ? null : part.copy(); 848 dst.type = type == null ? null : type.copy(); 849 } 850 851 @Override 852 public boolean equalsDeep(Base other_) { 853 if (!super.equalsDeep(other_)) 854 return false; 855 if (!(other_ instanceof MedicinalProductDefinitionNameNamePartComponent)) 856 return false; 857 MedicinalProductDefinitionNameNamePartComponent o = (MedicinalProductDefinitionNameNamePartComponent) other_; 858 return compareDeep(part, o.part, true) && compareDeep(type, o.type, true); 859 } 860 861 @Override 862 public boolean equalsShallow(Base other_) { 863 if (!super.equalsShallow(other_)) 864 return false; 865 if (!(other_ instanceof MedicinalProductDefinitionNameNamePartComponent)) 866 return false; 867 MedicinalProductDefinitionNameNamePartComponent o = (MedicinalProductDefinitionNameNamePartComponent) other_; 868 return compareValues(part, o.part, true); 869 } 870 871 public boolean isEmpty() { 872 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(part, type); 873 } 874 875 public String fhirType() { 876 return "MedicinalProductDefinition.name.namePart"; 877 878 } 879 880 } 881 882 @Block() 883 public static class MedicinalProductDefinitionNameCountryLanguageComponent extends BackboneElement implements IBaseBackboneElement { 884 /** 885 * Country code for where this name applies. 886 */ 887 @Child(name = "country", type = {CodeableConcept.class}, order=1, min=1, max=1, modifier=false, summary=true) 888 @Description(shortDefinition="Country code for where this name applies", formalDefinition="Country code for where this name applies." ) 889 protected CodeableConcept country; 890 891 /** 892 * Jurisdiction code for where this name applies. 893 */ 894 @Child(name = "jurisdiction", type = {CodeableConcept.class}, order=2, min=0, max=1, modifier=false, summary=true) 895 @Description(shortDefinition="Jurisdiction code for where this name applies", formalDefinition="Jurisdiction code for where this name applies." ) 896 protected CodeableConcept jurisdiction; 897 898 /** 899 * Language code for this name. 900 */ 901 @Child(name = "language", type = {CodeableConcept.class}, order=3, min=1, max=1, modifier=false, summary=true) 902 @Description(shortDefinition="Language code for this name", formalDefinition="Language code for this name." ) 903 protected CodeableConcept language; 904 905 private static final long serialVersionUID = 1627157564L; 906 907 /** 908 * Constructor 909 */ 910 public MedicinalProductDefinitionNameCountryLanguageComponent() { 911 super(); 912 } 913 914 /** 915 * Constructor 916 */ 917 public MedicinalProductDefinitionNameCountryLanguageComponent(CodeableConcept country, CodeableConcept language) { 918 super(); 919 this.setCountry(country); 920 this.setLanguage(language); 921 } 922 923 /** 924 * @return {@link #country} (Country code for where this name applies.) 925 */ 926 public CodeableConcept getCountry() { 927 if (this.country == null) 928 if (Configuration.errorOnAutoCreate()) 929 throw new Error("Attempt to auto-create MedicinalProductDefinitionNameCountryLanguageComponent.country"); 930 else if (Configuration.doAutoCreate()) 931 this.country = new CodeableConcept(); // cc 932 return this.country; 933 } 934 935 public boolean hasCountry() { 936 return this.country != null && !this.country.isEmpty(); 937 } 938 939 /** 940 * @param value {@link #country} (Country code for where this name applies.) 941 */ 942 public MedicinalProductDefinitionNameCountryLanguageComponent setCountry(CodeableConcept value) { 943 this.country = value; 944 return this; 945 } 946 947 /** 948 * @return {@link #jurisdiction} (Jurisdiction code for where this name applies.) 949 */ 950 public CodeableConcept getJurisdiction() { 951 if (this.jurisdiction == null) 952 if (Configuration.errorOnAutoCreate()) 953 throw new Error("Attempt to auto-create MedicinalProductDefinitionNameCountryLanguageComponent.jurisdiction"); 954 else if (Configuration.doAutoCreate()) 955 this.jurisdiction = new CodeableConcept(); // cc 956 return this.jurisdiction; 957 } 958 959 public boolean hasJurisdiction() { 960 return this.jurisdiction != null && !this.jurisdiction.isEmpty(); 961 } 962 963 /** 964 * @param value {@link #jurisdiction} (Jurisdiction code for where this name applies.) 965 */ 966 public MedicinalProductDefinitionNameCountryLanguageComponent setJurisdiction(CodeableConcept value) { 967 this.jurisdiction = value; 968 return this; 969 } 970 971 /** 972 * @return {@link #language} (Language code for this name.) 973 */ 974 public CodeableConcept getLanguage() { 975 if (this.language == null) 976 if (Configuration.errorOnAutoCreate()) 977 throw new Error("Attempt to auto-create MedicinalProductDefinitionNameCountryLanguageComponent.language"); 978 else if (Configuration.doAutoCreate()) 979 this.language = new CodeableConcept(); // cc 980 return this.language; 981 } 982 983 public boolean hasLanguage() { 984 return this.language != null && !this.language.isEmpty(); 985 } 986 987 /** 988 * @param value {@link #language} (Language code for this name.) 989 */ 990 public MedicinalProductDefinitionNameCountryLanguageComponent setLanguage(CodeableConcept value) { 991 this.language = value; 992 return this; 993 } 994 995 protected void listChildren(List<Property> children) { 996 super.listChildren(children); 997 children.add(new Property("country", "CodeableConcept", "Country code for where this name applies.", 0, 1, country)); 998 children.add(new Property("jurisdiction", "CodeableConcept", "Jurisdiction code for where this name applies.", 0, 1, jurisdiction)); 999 children.add(new Property("language", "CodeableConcept", "Language code for this name.", 0, 1, language)); 1000 } 1001 1002 @Override 1003 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1004 switch (_hash) { 1005 case 957831062: /*country*/ return new Property("country", "CodeableConcept", "Country code for where this name applies.", 0, 1, country); 1006 case -507075711: /*jurisdiction*/ return new Property("jurisdiction", "CodeableConcept", "Jurisdiction code for where this name applies.", 0, 1, jurisdiction); 1007 case -1613589672: /*language*/ return new Property("language", "CodeableConcept", "Language code for this name.", 0, 1, language); 1008 default: return super.getNamedProperty(_hash, _name, _checkValid); 1009 } 1010 1011 } 1012 1013 @Override 1014 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1015 switch (hash) { 1016 case 957831062: /*country*/ return this.country == null ? new Base[0] : new Base[] {this.country}; // CodeableConcept 1017 case -507075711: /*jurisdiction*/ return this.jurisdiction == null ? new Base[0] : new Base[] {this.jurisdiction}; // CodeableConcept 1018 case -1613589672: /*language*/ return this.language == null ? new Base[0] : new Base[] {this.language}; // CodeableConcept 1019 default: return super.getProperty(hash, name, checkValid); 1020 } 1021 1022 } 1023 1024 @Override 1025 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1026 switch (hash) { 1027 case 957831062: // country 1028 this.country = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1029 return value; 1030 case -507075711: // jurisdiction 1031 this.jurisdiction = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1032 return value; 1033 case -1613589672: // language 1034 this.language = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1035 return value; 1036 default: return super.setProperty(hash, name, value); 1037 } 1038 1039 } 1040 1041 @Override 1042 public Base setProperty(String name, Base value) throws FHIRException { 1043 if (name.equals("country")) { 1044 this.country = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1045 } else if (name.equals("jurisdiction")) { 1046 this.jurisdiction = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1047 } else if (name.equals("language")) { 1048 this.language = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1049 } else 1050 return super.setProperty(name, value); 1051 return value; 1052 } 1053 1054 @Override 1055 public Base makeProperty(int hash, String name) throws FHIRException { 1056 switch (hash) { 1057 case 957831062: return getCountry(); 1058 case -507075711: return getJurisdiction(); 1059 case -1613589672: return getLanguage(); 1060 default: return super.makeProperty(hash, name); 1061 } 1062 1063 } 1064 1065 @Override 1066 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1067 switch (hash) { 1068 case 957831062: /*country*/ return new String[] {"CodeableConcept"}; 1069 case -507075711: /*jurisdiction*/ return new String[] {"CodeableConcept"}; 1070 case -1613589672: /*language*/ return new String[] {"CodeableConcept"}; 1071 default: return super.getTypesForProperty(hash, name); 1072 } 1073 1074 } 1075 1076 @Override 1077 public Base addChild(String name) throws FHIRException { 1078 if (name.equals("country")) { 1079 this.country = new CodeableConcept(); 1080 return this.country; 1081 } 1082 else if (name.equals("jurisdiction")) { 1083 this.jurisdiction = new CodeableConcept(); 1084 return this.jurisdiction; 1085 } 1086 else if (name.equals("language")) { 1087 this.language = new CodeableConcept(); 1088 return this.language; 1089 } 1090 else 1091 return super.addChild(name); 1092 } 1093 1094 public MedicinalProductDefinitionNameCountryLanguageComponent copy() { 1095 MedicinalProductDefinitionNameCountryLanguageComponent dst = new MedicinalProductDefinitionNameCountryLanguageComponent(); 1096 copyValues(dst); 1097 return dst; 1098 } 1099 1100 public void copyValues(MedicinalProductDefinitionNameCountryLanguageComponent dst) { 1101 super.copyValues(dst); 1102 dst.country = country == null ? null : country.copy(); 1103 dst.jurisdiction = jurisdiction == null ? null : jurisdiction.copy(); 1104 dst.language = language == null ? null : language.copy(); 1105 } 1106 1107 @Override 1108 public boolean equalsDeep(Base other_) { 1109 if (!super.equalsDeep(other_)) 1110 return false; 1111 if (!(other_ instanceof MedicinalProductDefinitionNameCountryLanguageComponent)) 1112 return false; 1113 MedicinalProductDefinitionNameCountryLanguageComponent o = (MedicinalProductDefinitionNameCountryLanguageComponent) other_; 1114 return compareDeep(country, o.country, true) && compareDeep(jurisdiction, o.jurisdiction, true) 1115 && compareDeep(language, o.language, true); 1116 } 1117 1118 @Override 1119 public boolean equalsShallow(Base other_) { 1120 if (!super.equalsShallow(other_)) 1121 return false; 1122 if (!(other_ instanceof MedicinalProductDefinitionNameCountryLanguageComponent)) 1123 return false; 1124 MedicinalProductDefinitionNameCountryLanguageComponent o = (MedicinalProductDefinitionNameCountryLanguageComponent) other_; 1125 return true; 1126 } 1127 1128 public boolean isEmpty() { 1129 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(country, jurisdiction, language 1130 ); 1131 } 1132 1133 public String fhirType() { 1134 return "MedicinalProductDefinition.name.countryLanguage"; 1135 1136 } 1137 1138 } 1139 1140 @Block() 1141 public static class MedicinalProductDefinitionCrossReferenceComponent extends BackboneElement implements IBaseBackboneElement { 1142 /** 1143 * Reference to another product, e.g. for linking authorised to investigational product. 1144 */ 1145 @Child(name = "product", type = {CodeableReference.class}, order=1, min=1, max=1, modifier=false, summary=true) 1146 @Description(shortDefinition="Reference to another product, e.g. for linking authorised to investigational product", formalDefinition="Reference to another product, e.g. for linking authorised to investigational product." ) 1147 protected CodeableReference product; 1148 1149 /** 1150 * The type of relationship, for instance branded to generic, product to development product (investigational), parallel import version. 1151 */ 1152 @Child(name = "type", type = {CodeableConcept.class}, order=2, min=0, max=1, modifier=false, summary=true) 1153 @Description(shortDefinition="The type of relationship, for instance branded to generic, product to development product (investigational), parallel import version", formalDefinition="The type of relationship, for instance branded to generic, product to development product (investigational), parallel import version." ) 1154 protected CodeableConcept type; 1155 1156 private static final long serialVersionUID = -1746125578L; 1157 1158 /** 1159 * Constructor 1160 */ 1161 public MedicinalProductDefinitionCrossReferenceComponent() { 1162 super(); 1163 } 1164 1165 /** 1166 * Constructor 1167 */ 1168 public MedicinalProductDefinitionCrossReferenceComponent(CodeableReference product) { 1169 super(); 1170 this.setProduct(product); 1171 } 1172 1173 /** 1174 * @return {@link #product} (Reference to another product, e.g. for linking authorised to investigational product.) 1175 */ 1176 public CodeableReference getProduct() { 1177 if (this.product == null) 1178 if (Configuration.errorOnAutoCreate()) 1179 throw new Error("Attempt to auto-create MedicinalProductDefinitionCrossReferenceComponent.product"); 1180 else if (Configuration.doAutoCreate()) 1181 this.product = new CodeableReference(); // cc 1182 return this.product; 1183 } 1184 1185 public boolean hasProduct() { 1186 return this.product != null && !this.product.isEmpty(); 1187 } 1188 1189 /** 1190 * @param value {@link #product} (Reference to another product, e.g. for linking authorised to investigational product.) 1191 */ 1192 public MedicinalProductDefinitionCrossReferenceComponent setProduct(CodeableReference value) { 1193 this.product = value; 1194 return this; 1195 } 1196 1197 /** 1198 * @return {@link #type} (The type of relationship, for instance branded to generic, product to development product (investigational), parallel import version.) 1199 */ 1200 public CodeableConcept getType() { 1201 if (this.type == null) 1202 if (Configuration.errorOnAutoCreate()) 1203 throw new Error("Attempt to auto-create MedicinalProductDefinitionCrossReferenceComponent.type"); 1204 else if (Configuration.doAutoCreate()) 1205 this.type = new CodeableConcept(); // cc 1206 return this.type; 1207 } 1208 1209 public boolean hasType() { 1210 return this.type != null && !this.type.isEmpty(); 1211 } 1212 1213 /** 1214 * @param value {@link #type} (The type of relationship, for instance branded to generic, product to development product (investigational), parallel import version.) 1215 */ 1216 public MedicinalProductDefinitionCrossReferenceComponent setType(CodeableConcept value) { 1217 this.type = value; 1218 return this; 1219 } 1220 1221 protected void listChildren(List<Property> children) { 1222 super.listChildren(children); 1223 children.add(new Property("product", "CodeableReference(MedicinalProductDefinition)", "Reference to another product, e.g. for linking authorised to investigational product.", 0, 1, product)); 1224 children.add(new Property("type", "CodeableConcept", "The type of relationship, for instance branded to generic, product to development product (investigational), parallel import version.", 0, 1, type)); 1225 } 1226 1227 @Override 1228 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1229 switch (_hash) { 1230 case -309474065: /*product*/ return new Property("product", "CodeableReference(MedicinalProductDefinition)", "Reference to another product, e.g. for linking authorised to investigational product.", 0, 1, product); 1231 case 3575610: /*type*/ return new Property("type", "CodeableConcept", "The type of relationship, for instance branded to generic, product to development product (investigational), parallel import version.", 0, 1, type); 1232 default: return super.getNamedProperty(_hash, _name, _checkValid); 1233 } 1234 1235 } 1236 1237 @Override 1238 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1239 switch (hash) { 1240 case -309474065: /*product*/ return this.product == null ? new Base[0] : new Base[] {this.product}; // CodeableReference 1241 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // CodeableConcept 1242 default: return super.getProperty(hash, name, checkValid); 1243 } 1244 1245 } 1246 1247 @Override 1248 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1249 switch (hash) { 1250 case -309474065: // product 1251 this.product = TypeConvertor.castToCodeableReference(value); // CodeableReference 1252 return value; 1253 case 3575610: // type 1254 this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1255 return value; 1256 default: return super.setProperty(hash, name, value); 1257 } 1258 1259 } 1260 1261 @Override 1262 public Base setProperty(String name, Base value) throws FHIRException { 1263 if (name.equals("product")) { 1264 this.product = TypeConvertor.castToCodeableReference(value); // CodeableReference 1265 } else if (name.equals("type")) { 1266 this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1267 } else 1268 return super.setProperty(name, value); 1269 return value; 1270 } 1271 1272 @Override 1273 public Base makeProperty(int hash, String name) throws FHIRException { 1274 switch (hash) { 1275 case -309474065: return getProduct(); 1276 case 3575610: return getType(); 1277 default: return super.makeProperty(hash, name); 1278 } 1279 1280 } 1281 1282 @Override 1283 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1284 switch (hash) { 1285 case -309474065: /*product*/ return new String[] {"CodeableReference"}; 1286 case 3575610: /*type*/ return new String[] {"CodeableConcept"}; 1287 default: return super.getTypesForProperty(hash, name); 1288 } 1289 1290 } 1291 1292 @Override 1293 public Base addChild(String name) throws FHIRException { 1294 if (name.equals("product")) { 1295 this.product = new CodeableReference(); 1296 return this.product; 1297 } 1298 else if (name.equals("type")) { 1299 this.type = new CodeableConcept(); 1300 return this.type; 1301 } 1302 else 1303 return super.addChild(name); 1304 } 1305 1306 public MedicinalProductDefinitionCrossReferenceComponent copy() { 1307 MedicinalProductDefinitionCrossReferenceComponent dst = new MedicinalProductDefinitionCrossReferenceComponent(); 1308 copyValues(dst); 1309 return dst; 1310 } 1311 1312 public void copyValues(MedicinalProductDefinitionCrossReferenceComponent dst) { 1313 super.copyValues(dst); 1314 dst.product = product == null ? null : product.copy(); 1315 dst.type = type == null ? null : type.copy(); 1316 } 1317 1318 @Override 1319 public boolean equalsDeep(Base other_) { 1320 if (!super.equalsDeep(other_)) 1321 return false; 1322 if (!(other_ instanceof MedicinalProductDefinitionCrossReferenceComponent)) 1323 return false; 1324 MedicinalProductDefinitionCrossReferenceComponent o = (MedicinalProductDefinitionCrossReferenceComponent) other_; 1325 return compareDeep(product, o.product, true) && compareDeep(type, o.type, true); 1326 } 1327 1328 @Override 1329 public boolean equalsShallow(Base other_) { 1330 if (!super.equalsShallow(other_)) 1331 return false; 1332 if (!(other_ instanceof MedicinalProductDefinitionCrossReferenceComponent)) 1333 return false; 1334 MedicinalProductDefinitionCrossReferenceComponent o = (MedicinalProductDefinitionCrossReferenceComponent) other_; 1335 return true; 1336 } 1337 1338 public boolean isEmpty() { 1339 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(product, type); 1340 } 1341 1342 public String fhirType() { 1343 return "MedicinalProductDefinition.crossReference"; 1344 1345 } 1346 1347 } 1348 1349 @Block() 1350 public static class MedicinalProductDefinitionOperationComponent extends BackboneElement implements IBaseBackboneElement { 1351 /** 1352 * The type of manufacturing operation e.g. manufacturing itself, re-packaging. For the authorization of this, a RegulatedAuthorization would point to the same plan or activity referenced here. 1353 */ 1354 @Child(name = "type", type = {CodeableReference.class}, order=1, min=0, max=1, modifier=false, summary=true) 1355 @Description(shortDefinition="The type of manufacturing operation e.g. manufacturing itself, re-packaging. For the authorization of this, a RegulatedAuthorization would point to the same plan or activity referenced here", formalDefinition="The type of manufacturing operation e.g. manufacturing itself, re-packaging. For the authorization of this, a RegulatedAuthorization would point to the same plan or activity referenced here." ) 1356 protected CodeableReference type; 1357 1358 /** 1359 * Date range of applicability. 1360 */ 1361 @Child(name = "effectiveDate", type = {Period.class}, order=2, min=0, max=1, modifier=false, summary=true) 1362 @Description(shortDefinition="Date range of applicability", formalDefinition="Date range of applicability." ) 1363 protected Period effectiveDate; 1364 1365 /** 1366 * The organization or establishment responsible for (or associated with) the particular process or step, examples include the manufacturer, importer, agent. 1367 */ 1368 @Child(name = "organization", type = {Organization.class}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 1369 @Description(shortDefinition="The organization or establishment responsible for (or associated with) the particular process or step, examples include the manufacturer, importer, agent", formalDefinition="The organization or establishment responsible for (or associated with) the particular process or step, examples include the manufacturer, importer, agent." ) 1370 protected List<Reference> organization; 1371 1372 /** 1373 * Specifies whether this particular business or manufacturing process is considered proprietary or confidential. 1374 */ 1375 @Child(name = "confidentialityIndicator", type = {CodeableConcept.class}, order=4, min=0, max=1, modifier=false, summary=true) 1376 @Description(shortDefinition="Specifies whether this particular business or manufacturing process is considered proprietary or confidential", formalDefinition="Specifies whether this particular business or manufacturing process is considered proprietary or confidential." ) 1377 protected CodeableConcept confidentialityIndicator; 1378 1379 private static final long serialVersionUID = 1036054906L; 1380 1381 /** 1382 * Constructor 1383 */ 1384 public MedicinalProductDefinitionOperationComponent() { 1385 super(); 1386 } 1387 1388 /** 1389 * @return {@link #type} (The type of manufacturing operation e.g. manufacturing itself, re-packaging. For the authorization of this, a RegulatedAuthorization would point to the same plan or activity referenced here.) 1390 */ 1391 public CodeableReference getType() { 1392 if (this.type == null) 1393 if (Configuration.errorOnAutoCreate()) 1394 throw new Error("Attempt to auto-create MedicinalProductDefinitionOperationComponent.type"); 1395 else if (Configuration.doAutoCreate()) 1396 this.type = new CodeableReference(); // cc 1397 return this.type; 1398 } 1399 1400 public boolean hasType() { 1401 return this.type != null && !this.type.isEmpty(); 1402 } 1403 1404 /** 1405 * @param value {@link #type} (The type of manufacturing operation e.g. manufacturing itself, re-packaging. For the authorization of this, a RegulatedAuthorization would point to the same plan or activity referenced here.) 1406 */ 1407 public MedicinalProductDefinitionOperationComponent setType(CodeableReference value) { 1408 this.type = value; 1409 return this; 1410 } 1411 1412 /** 1413 * @return {@link #effectiveDate} (Date range of applicability.) 1414 */ 1415 public Period getEffectiveDate() { 1416 if (this.effectiveDate == null) 1417 if (Configuration.errorOnAutoCreate()) 1418 throw new Error("Attempt to auto-create MedicinalProductDefinitionOperationComponent.effectiveDate"); 1419 else if (Configuration.doAutoCreate()) 1420 this.effectiveDate = new Period(); // cc 1421 return this.effectiveDate; 1422 } 1423 1424 public boolean hasEffectiveDate() { 1425 return this.effectiveDate != null && !this.effectiveDate.isEmpty(); 1426 } 1427 1428 /** 1429 * @param value {@link #effectiveDate} (Date range of applicability.) 1430 */ 1431 public MedicinalProductDefinitionOperationComponent setEffectiveDate(Period value) { 1432 this.effectiveDate = value; 1433 return this; 1434 } 1435 1436 /** 1437 * @return {@link #organization} (The organization or establishment responsible for (or associated with) the particular process or step, examples include the manufacturer, importer, agent.) 1438 */ 1439 public List<Reference> getOrganization() { 1440 if (this.organization == null) 1441 this.organization = new ArrayList<Reference>(); 1442 return this.organization; 1443 } 1444 1445 /** 1446 * @return Returns a reference to <code>this</code> for easy method chaining 1447 */ 1448 public MedicinalProductDefinitionOperationComponent setOrganization(List<Reference> theOrganization) { 1449 this.organization = theOrganization; 1450 return this; 1451 } 1452 1453 public boolean hasOrganization() { 1454 if (this.organization == null) 1455 return false; 1456 for (Reference item : this.organization) 1457 if (!item.isEmpty()) 1458 return true; 1459 return false; 1460 } 1461 1462 public Reference addOrganization() { //3 1463 Reference t = new Reference(); 1464 if (this.organization == null) 1465 this.organization = new ArrayList<Reference>(); 1466 this.organization.add(t); 1467 return t; 1468 } 1469 1470 public MedicinalProductDefinitionOperationComponent addOrganization(Reference t) { //3 1471 if (t == null) 1472 return this; 1473 if (this.organization == null) 1474 this.organization = new ArrayList<Reference>(); 1475 this.organization.add(t); 1476 return this; 1477 } 1478 1479 /** 1480 * @return The first repetition of repeating field {@link #organization}, creating it if it does not already exist {3} 1481 */ 1482 public Reference getOrganizationFirstRep() { 1483 if (getOrganization().isEmpty()) { 1484 addOrganization(); 1485 } 1486 return getOrganization().get(0); 1487 } 1488 1489 /** 1490 * @return {@link #confidentialityIndicator} (Specifies whether this particular business or manufacturing process is considered proprietary or confidential.) 1491 */ 1492 public CodeableConcept getConfidentialityIndicator() { 1493 if (this.confidentialityIndicator == null) 1494 if (Configuration.errorOnAutoCreate()) 1495 throw new Error("Attempt to auto-create MedicinalProductDefinitionOperationComponent.confidentialityIndicator"); 1496 else if (Configuration.doAutoCreate()) 1497 this.confidentialityIndicator = new CodeableConcept(); // cc 1498 return this.confidentialityIndicator; 1499 } 1500 1501 public boolean hasConfidentialityIndicator() { 1502 return this.confidentialityIndicator != null && !this.confidentialityIndicator.isEmpty(); 1503 } 1504 1505 /** 1506 * @param value {@link #confidentialityIndicator} (Specifies whether this particular business or manufacturing process is considered proprietary or confidential.) 1507 */ 1508 public MedicinalProductDefinitionOperationComponent setConfidentialityIndicator(CodeableConcept value) { 1509 this.confidentialityIndicator = value; 1510 return this; 1511 } 1512 1513 protected void listChildren(List<Property> children) { 1514 super.listChildren(children); 1515 children.add(new Property("type", "CodeableReference(ActivityDefinition|PlanDefinition)", "The type of manufacturing operation e.g. manufacturing itself, re-packaging. For the authorization of this, a RegulatedAuthorization would point to the same plan or activity referenced here.", 0, 1, type)); 1516 children.add(new Property("effectiveDate", "Period", "Date range of applicability.", 0, 1, effectiveDate)); 1517 children.add(new Property("organization", "Reference(Organization)", "The organization or establishment responsible for (or associated with) the particular process or step, examples include the manufacturer, importer, agent.", 0, java.lang.Integer.MAX_VALUE, organization)); 1518 children.add(new Property("confidentialityIndicator", "CodeableConcept", "Specifies whether this particular business or manufacturing process is considered proprietary or confidential.", 0, 1, confidentialityIndicator)); 1519 } 1520 1521 @Override 1522 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1523 switch (_hash) { 1524 case 3575610: /*type*/ return new Property("type", "CodeableReference(ActivityDefinition|PlanDefinition)", "The type of manufacturing operation e.g. manufacturing itself, re-packaging. For the authorization of this, a RegulatedAuthorization would point to the same plan or activity referenced here.", 0, 1, type); 1525 case -930389515: /*effectiveDate*/ return new Property("effectiveDate", "Period", "Date range of applicability.", 0, 1, effectiveDate); 1526 case 1178922291: /*organization*/ return new Property("organization", "Reference(Organization)", "The organization or establishment responsible for (or associated with) the particular process or step, examples include the manufacturer, importer, agent.", 0, java.lang.Integer.MAX_VALUE, organization); 1527 case -1449404791: /*confidentialityIndicator*/ return new Property("confidentialityIndicator", "CodeableConcept", "Specifies whether this particular business or manufacturing process is considered proprietary or confidential.", 0, 1, confidentialityIndicator); 1528 default: return super.getNamedProperty(_hash, _name, _checkValid); 1529 } 1530 1531 } 1532 1533 @Override 1534 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1535 switch (hash) { 1536 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // CodeableReference 1537 case -930389515: /*effectiveDate*/ return this.effectiveDate == null ? new Base[0] : new Base[] {this.effectiveDate}; // Period 1538 case 1178922291: /*organization*/ return this.organization == null ? new Base[0] : this.organization.toArray(new Base[this.organization.size()]); // Reference 1539 case -1449404791: /*confidentialityIndicator*/ return this.confidentialityIndicator == null ? new Base[0] : new Base[] {this.confidentialityIndicator}; // CodeableConcept 1540 default: return super.getProperty(hash, name, checkValid); 1541 } 1542 1543 } 1544 1545 @Override 1546 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1547 switch (hash) { 1548 case 3575610: // type 1549 this.type = TypeConvertor.castToCodeableReference(value); // CodeableReference 1550 return value; 1551 case -930389515: // effectiveDate 1552 this.effectiveDate = TypeConvertor.castToPeriod(value); // Period 1553 return value; 1554 case 1178922291: // organization 1555 this.getOrganization().add(TypeConvertor.castToReference(value)); // Reference 1556 return value; 1557 case -1449404791: // confidentialityIndicator 1558 this.confidentialityIndicator = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1559 return value; 1560 default: return super.setProperty(hash, name, value); 1561 } 1562 1563 } 1564 1565 @Override 1566 public Base setProperty(String name, Base value) throws FHIRException { 1567 if (name.equals("type")) { 1568 this.type = TypeConvertor.castToCodeableReference(value); // CodeableReference 1569 } else if (name.equals("effectiveDate")) { 1570 this.effectiveDate = TypeConvertor.castToPeriod(value); // Period 1571 } else if (name.equals("organization")) { 1572 this.getOrganization().add(TypeConvertor.castToReference(value)); 1573 } else if (name.equals("confidentialityIndicator")) { 1574 this.confidentialityIndicator = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1575 } else 1576 return super.setProperty(name, value); 1577 return value; 1578 } 1579 1580 @Override 1581 public Base makeProperty(int hash, String name) throws FHIRException { 1582 switch (hash) { 1583 case 3575610: return getType(); 1584 case -930389515: return getEffectiveDate(); 1585 case 1178922291: return addOrganization(); 1586 case -1449404791: return getConfidentialityIndicator(); 1587 default: return super.makeProperty(hash, name); 1588 } 1589 1590 } 1591 1592 @Override 1593 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1594 switch (hash) { 1595 case 3575610: /*type*/ return new String[] {"CodeableReference"}; 1596 case -930389515: /*effectiveDate*/ return new String[] {"Period"}; 1597 case 1178922291: /*organization*/ return new String[] {"Reference"}; 1598 case -1449404791: /*confidentialityIndicator*/ return new String[] {"CodeableConcept"}; 1599 default: return super.getTypesForProperty(hash, name); 1600 } 1601 1602 } 1603 1604 @Override 1605 public Base addChild(String name) throws FHIRException { 1606 if (name.equals("type")) { 1607 this.type = new CodeableReference(); 1608 return this.type; 1609 } 1610 else if (name.equals("effectiveDate")) { 1611 this.effectiveDate = new Period(); 1612 return this.effectiveDate; 1613 } 1614 else if (name.equals("organization")) { 1615 return addOrganization(); 1616 } 1617 else if (name.equals("confidentialityIndicator")) { 1618 this.confidentialityIndicator = new CodeableConcept(); 1619 return this.confidentialityIndicator; 1620 } 1621 else 1622 return super.addChild(name); 1623 } 1624 1625 public MedicinalProductDefinitionOperationComponent copy() { 1626 MedicinalProductDefinitionOperationComponent dst = new MedicinalProductDefinitionOperationComponent(); 1627 copyValues(dst); 1628 return dst; 1629 } 1630 1631 public void copyValues(MedicinalProductDefinitionOperationComponent dst) { 1632 super.copyValues(dst); 1633 dst.type = type == null ? null : type.copy(); 1634 dst.effectiveDate = effectiveDate == null ? null : effectiveDate.copy(); 1635 if (organization != null) { 1636 dst.organization = new ArrayList<Reference>(); 1637 for (Reference i : organization) 1638 dst.organization.add(i.copy()); 1639 }; 1640 dst.confidentialityIndicator = confidentialityIndicator == null ? null : confidentialityIndicator.copy(); 1641 } 1642 1643 @Override 1644 public boolean equalsDeep(Base other_) { 1645 if (!super.equalsDeep(other_)) 1646 return false; 1647 if (!(other_ instanceof MedicinalProductDefinitionOperationComponent)) 1648 return false; 1649 MedicinalProductDefinitionOperationComponent o = (MedicinalProductDefinitionOperationComponent) other_; 1650 return compareDeep(type, o.type, true) && compareDeep(effectiveDate, o.effectiveDate, true) && compareDeep(organization, o.organization, true) 1651 && compareDeep(confidentialityIndicator, o.confidentialityIndicator, true); 1652 } 1653 1654 @Override 1655 public boolean equalsShallow(Base other_) { 1656 if (!super.equalsShallow(other_)) 1657 return false; 1658 if (!(other_ instanceof MedicinalProductDefinitionOperationComponent)) 1659 return false; 1660 MedicinalProductDefinitionOperationComponent o = (MedicinalProductDefinitionOperationComponent) other_; 1661 return true; 1662 } 1663 1664 public boolean isEmpty() { 1665 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(type, effectiveDate, organization 1666 , confidentialityIndicator); 1667 } 1668 1669 public String fhirType() { 1670 return "MedicinalProductDefinition.operation"; 1671 1672 } 1673 1674 } 1675 1676 @Block() 1677 public static class MedicinalProductDefinitionCharacteristicComponent extends BackboneElement implements IBaseBackboneElement { 1678 /** 1679 * A code expressing the type of characteristic. 1680 */ 1681 @Child(name = "type", type = {CodeableConcept.class}, order=1, min=1, max=1, modifier=false, summary=true) 1682 @Description(shortDefinition="A code expressing the type of characteristic", formalDefinition="A code expressing the type of characteristic." ) 1683 protected CodeableConcept type; 1684 1685 /** 1686 * A value for the characteristic. 1687 */ 1688 @Child(name = "value", type = {CodeableConcept.class, Quantity.class, DateType.class, BooleanType.class, Attachment.class}, order=2, min=0, max=1, modifier=false, summary=true) 1689 @Description(shortDefinition="A value for the characteristic", formalDefinition="A value for the characteristic." ) 1690 protected DataType value; 1691 1692 private static final long serialVersionUID = -1659186716L; 1693 1694 /** 1695 * Constructor 1696 */ 1697 public MedicinalProductDefinitionCharacteristicComponent() { 1698 super(); 1699 } 1700 1701 /** 1702 * Constructor 1703 */ 1704 public MedicinalProductDefinitionCharacteristicComponent(CodeableConcept type) { 1705 super(); 1706 this.setType(type); 1707 } 1708 1709 /** 1710 * @return {@link #type} (A code expressing the type of characteristic.) 1711 */ 1712 public CodeableConcept getType() { 1713 if (this.type == null) 1714 if (Configuration.errorOnAutoCreate()) 1715 throw new Error("Attempt to auto-create MedicinalProductDefinitionCharacteristicComponent.type"); 1716 else if (Configuration.doAutoCreate()) 1717 this.type = new CodeableConcept(); // cc 1718 return this.type; 1719 } 1720 1721 public boolean hasType() { 1722 return this.type != null && !this.type.isEmpty(); 1723 } 1724 1725 /** 1726 * @param value {@link #type} (A code expressing the type of characteristic.) 1727 */ 1728 public MedicinalProductDefinitionCharacteristicComponent setType(CodeableConcept value) { 1729 this.type = value; 1730 return this; 1731 } 1732 1733 /** 1734 * @return {@link #value} (A value for the characteristic.) 1735 */ 1736 public DataType getValue() { 1737 return this.value; 1738 } 1739 1740 /** 1741 * @return {@link #value} (A value for the characteristic.) 1742 */ 1743 public CodeableConcept getValueCodeableConcept() throws FHIRException { 1744 if (this.value == null) 1745 this.value = new CodeableConcept(); 1746 if (!(this.value instanceof CodeableConcept)) 1747 throw new FHIRException("Type mismatch: the type CodeableConcept was expected, but "+this.value.getClass().getName()+" was encountered"); 1748 return (CodeableConcept) this.value; 1749 } 1750 1751 public boolean hasValueCodeableConcept() { 1752 return this != null && this.value instanceof CodeableConcept; 1753 } 1754 1755 /** 1756 * @return {@link #value} (A value for the characteristic.) 1757 */ 1758 public Quantity getValueQuantity() throws FHIRException { 1759 if (this.value == null) 1760 this.value = new Quantity(); 1761 if (!(this.value instanceof Quantity)) 1762 throw new FHIRException("Type mismatch: the type Quantity was expected, but "+this.value.getClass().getName()+" was encountered"); 1763 return (Quantity) this.value; 1764 } 1765 1766 public boolean hasValueQuantity() { 1767 return this != null && this.value instanceof Quantity; 1768 } 1769 1770 /** 1771 * @return {@link #value} (A value for the characteristic.) 1772 */ 1773 public DateType getValueDateType() throws FHIRException { 1774 if (this.value == null) 1775 this.value = new DateType(); 1776 if (!(this.value instanceof DateType)) 1777 throw new FHIRException("Type mismatch: the type DateType was expected, but "+this.value.getClass().getName()+" was encountered"); 1778 return (DateType) this.value; 1779 } 1780 1781 public boolean hasValueDateType() { 1782 return this != null && this.value instanceof DateType; 1783 } 1784 1785 /** 1786 * @return {@link #value} (A value for the characteristic.) 1787 */ 1788 public BooleanType getValueBooleanType() throws FHIRException { 1789 if (this.value == null) 1790 this.value = new BooleanType(); 1791 if (!(this.value instanceof BooleanType)) 1792 throw new FHIRException("Type mismatch: the type BooleanType was expected, but "+this.value.getClass().getName()+" was encountered"); 1793 return (BooleanType) this.value; 1794 } 1795 1796 public boolean hasValueBooleanType() { 1797 return this != null && this.value instanceof BooleanType; 1798 } 1799 1800 /** 1801 * @return {@link #value} (A value for the characteristic.) 1802 */ 1803 public Attachment getValueAttachment() throws FHIRException { 1804 if (this.value == null) 1805 this.value = new Attachment(); 1806 if (!(this.value instanceof Attachment)) 1807 throw new FHIRException("Type mismatch: the type Attachment was expected, but "+this.value.getClass().getName()+" was encountered"); 1808 return (Attachment) this.value; 1809 } 1810 1811 public boolean hasValueAttachment() { 1812 return this != null && this.value instanceof Attachment; 1813 } 1814 1815 public boolean hasValue() { 1816 return this.value != null && !this.value.isEmpty(); 1817 } 1818 1819 /** 1820 * @param value {@link #value} (A value for the characteristic.) 1821 */ 1822 public MedicinalProductDefinitionCharacteristicComponent setValue(DataType value) { 1823 if (value != null && !(value instanceof CodeableConcept || value instanceof Quantity || value instanceof DateType || value instanceof BooleanType || value instanceof Attachment)) 1824 throw new Error("Not the right type for MedicinalProductDefinition.characteristic.value[x]: "+value.fhirType()); 1825 this.value = value; 1826 return this; 1827 } 1828 1829 protected void listChildren(List<Property> children) { 1830 super.listChildren(children); 1831 children.add(new Property("type", "CodeableConcept", "A code expressing the type of characteristic.", 0, 1, type)); 1832 children.add(new Property("value[x]", "CodeableConcept|Quantity|date|boolean|Attachment", "A value for the characteristic.", 0, 1, value)); 1833 } 1834 1835 @Override 1836 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1837 switch (_hash) { 1838 case 3575610: /*type*/ return new Property("type", "CodeableConcept", "A code expressing the type of characteristic.", 0, 1, type); 1839 case -1410166417: /*value[x]*/ return new Property("value[x]", "CodeableConcept|Quantity|date|boolean|Attachment", "A value for the characteristic.", 0, 1, value); 1840 case 111972721: /*value*/ return new Property("value[x]", "CodeableConcept|Quantity|date|boolean|Attachment", "A value for the characteristic.", 0, 1, value); 1841 case 924902896: /*valueCodeableConcept*/ return new Property("value[x]", "CodeableConcept", "A value for the characteristic.", 0, 1, value); 1842 case -2029823716: /*valueQuantity*/ return new Property("value[x]", "Quantity", "A value for the characteristic.", 0, 1, value); 1843 case -766192449: /*valueDate*/ return new Property("value[x]", "date", "A value for the characteristic.", 0, 1, value); 1844 case 733421943: /*valueBoolean*/ return new Property("value[x]", "boolean", "A value for the characteristic.", 0, 1, value); 1845 case -475566732: /*valueAttachment*/ return new Property("value[x]", "Attachment", "A value for the characteristic.", 0, 1, value); 1846 default: return super.getNamedProperty(_hash, _name, _checkValid); 1847 } 1848 1849 } 1850 1851 @Override 1852 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1853 switch (hash) { 1854 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // CodeableConcept 1855 case 111972721: /*value*/ return this.value == null ? new Base[0] : new Base[] {this.value}; // DataType 1856 default: return super.getProperty(hash, name, checkValid); 1857 } 1858 1859 } 1860 1861 @Override 1862 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1863 switch (hash) { 1864 case 3575610: // type 1865 this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1866 return value; 1867 case 111972721: // value 1868 this.value = TypeConvertor.castToType(value); // DataType 1869 return value; 1870 default: return super.setProperty(hash, name, value); 1871 } 1872 1873 } 1874 1875 @Override 1876 public Base setProperty(String name, Base value) throws FHIRException { 1877 if (name.equals("type")) { 1878 this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1879 } else if (name.equals("value[x]")) { 1880 this.value = TypeConvertor.castToType(value); // DataType 1881 } else 1882 return super.setProperty(name, value); 1883 return value; 1884 } 1885 1886 @Override 1887 public Base makeProperty(int hash, String name) throws FHIRException { 1888 switch (hash) { 1889 case 3575610: return getType(); 1890 case -1410166417: return getValue(); 1891 case 111972721: return getValue(); 1892 default: return super.makeProperty(hash, name); 1893 } 1894 1895 } 1896 1897 @Override 1898 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1899 switch (hash) { 1900 case 3575610: /*type*/ return new String[] {"CodeableConcept"}; 1901 case 111972721: /*value*/ return new String[] {"CodeableConcept", "Quantity", "date", "boolean", "Attachment"}; 1902 default: return super.getTypesForProperty(hash, name); 1903 } 1904 1905 } 1906 1907 @Override 1908 public Base addChild(String name) throws FHIRException { 1909 if (name.equals("type")) { 1910 this.type = new CodeableConcept(); 1911 return this.type; 1912 } 1913 else if (name.equals("valueCodeableConcept")) { 1914 this.value = new CodeableConcept(); 1915 return this.value; 1916 } 1917 else if (name.equals("valueQuantity")) { 1918 this.value = new Quantity(); 1919 return this.value; 1920 } 1921 else if (name.equals("valueDate")) { 1922 this.value = new DateType(); 1923 return this.value; 1924 } 1925 else if (name.equals("valueBoolean")) { 1926 this.value = new BooleanType(); 1927 return this.value; 1928 } 1929 else if (name.equals("valueAttachment")) { 1930 this.value = new Attachment(); 1931 return this.value; 1932 } 1933 else 1934 return super.addChild(name); 1935 } 1936 1937 public MedicinalProductDefinitionCharacteristicComponent copy() { 1938 MedicinalProductDefinitionCharacteristicComponent dst = new MedicinalProductDefinitionCharacteristicComponent(); 1939 copyValues(dst); 1940 return dst; 1941 } 1942 1943 public void copyValues(MedicinalProductDefinitionCharacteristicComponent dst) { 1944 super.copyValues(dst); 1945 dst.type = type == null ? null : type.copy(); 1946 dst.value = value == null ? null : value.copy(); 1947 } 1948 1949 @Override 1950 public boolean equalsDeep(Base other_) { 1951 if (!super.equalsDeep(other_)) 1952 return false; 1953 if (!(other_ instanceof MedicinalProductDefinitionCharacteristicComponent)) 1954 return false; 1955 MedicinalProductDefinitionCharacteristicComponent o = (MedicinalProductDefinitionCharacteristicComponent) other_; 1956 return compareDeep(type, o.type, true) && compareDeep(value, o.value, true); 1957 } 1958 1959 @Override 1960 public boolean equalsShallow(Base other_) { 1961 if (!super.equalsShallow(other_)) 1962 return false; 1963 if (!(other_ instanceof MedicinalProductDefinitionCharacteristicComponent)) 1964 return false; 1965 MedicinalProductDefinitionCharacteristicComponent o = (MedicinalProductDefinitionCharacteristicComponent) other_; 1966 return true; 1967 } 1968 1969 public boolean isEmpty() { 1970 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(type, value); 1971 } 1972 1973 public String fhirType() { 1974 return "MedicinalProductDefinition.characteristic"; 1975 1976 } 1977 1978 } 1979 1980 /** 1981 * Business identifier for this product. Could be an MPID. 1982 */ 1983 @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 1984 @Description(shortDefinition="Business identifier for this product. Could be an MPID", formalDefinition="Business identifier for this product. Could be an MPID." ) 1985 protected List<Identifier> identifier; 1986 1987 /** 1988 * Regulatory type, e.g. Investigational or Authorized. 1989 */ 1990 @Child(name = "type", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=false, summary=true) 1991 @Description(shortDefinition="Regulatory type, e.g. Investigational or Authorized", formalDefinition="Regulatory type, e.g. Investigational or Authorized." ) 1992 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/medicinal-product-type") 1993 protected CodeableConcept type; 1994 1995 /** 1996 * If this medicine applies to human or veterinary uses. 1997 */ 1998 @Child(name = "domain", type = {CodeableConcept.class}, order=2, min=0, max=1, modifier=false, summary=true) 1999 @Description(shortDefinition="If this medicine applies to human or veterinary uses", formalDefinition="If this medicine applies to human or veterinary uses." ) 2000 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/medicinal-product-domain") 2001 protected CodeableConcept domain; 2002 2003 /** 2004 * A business identifier relating to a specific version of the product, this is commonly used to support revisions to an existing product. 2005 */ 2006 @Child(name = "version", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=true) 2007 @Description(shortDefinition="A business identifier relating to a specific version of the product, this is commonly used to support revisions to an existing product", formalDefinition="A business identifier relating to a specific version of the product, this is commonly used to support revisions to an existing product." ) 2008 protected StringType version; 2009 2010 /** 2011 * The status within the lifecycle of this product record. A high-level status, this is not intended to duplicate details carried elsewhere such as legal status, or authorization status. 2012 */ 2013 @Child(name = "status", type = {CodeableConcept.class}, order=4, min=0, max=1, modifier=true, summary=true) 2014 @Description(shortDefinition="The status within the lifecycle of this product record. A high-level status, this is not intended to duplicate details carried elsewhere such as legal status, or authorization status", formalDefinition="The status within the lifecycle of this product record. A high-level status, this is not intended to duplicate details carried elsewhere such as legal status, or authorization status." ) 2015 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/publication-status") 2016 protected CodeableConcept status; 2017 2018 /** 2019 * The date at which the given status became applicable. 2020 */ 2021 @Child(name = "statusDate", type = {DateTimeType.class}, order=5, min=0, max=1, modifier=false, summary=true) 2022 @Description(shortDefinition="The date at which the given status became applicable", formalDefinition="The date at which the given status became applicable." ) 2023 protected DateTimeType statusDate; 2024 2025 /** 2026 * General description of this product. 2027 */ 2028 @Child(name = "description", type = {MarkdownType.class}, order=6, min=0, max=1, modifier=false, summary=true) 2029 @Description(shortDefinition="General description of this product", formalDefinition="General description of this product." ) 2030 protected MarkdownType description; 2031 2032 /** 2033 * The dose form for a single part product, or combined form of a multiple part product. 2034 */ 2035 @Child(name = "combinedPharmaceuticalDoseForm", type = {CodeableConcept.class}, order=7, min=0, max=1, modifier=false, summary=true) 2036 @Description(shortDefinition="The dose form for a single part product, or combined form of a multiple part product", formalDefinition="The dose form for a single part product, or combined form of a multiple part product." ) 2037 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/combined-dose-form") 2038 protected CodeableConcept combinedPharmaceuticalDoseForm; 2039 2040 /** 2041 * The path by which the product is taken into or makes contact with the body. In some regions this is referred to as the licenced or approved route. See also AdministrableProductDefinition resource. 2042 */ 2043 @Child(name = "route", type = {CodeableConcept.class}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 2044 @Description(shortDefinition="The path by which the product is taken into or makes contact with the body. In some regions this is referred to as the licenced or approved route. See also AdministrableProductDefinition resource", formalDefinition="The path by which the product is taken into or makes contact with the body. In some regions this is referred to as the licenced or approved route. See also AdministrableProductDefinition resource." ) 2045 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/route-codes") 2046 protected List<CodeableConcept> route; 2047 2048 /** 2049 * Description of indication(s) for this product, used when structured indications are not required. In cases where structured indications are required, they are captured using the ClinicalUseDefinition resource. An indication is a medical situation for which using the product is appropriate. 2050 */ 2051 @Child(name = "indication", type = {MarkdownType.class}, order=9, min=0, max=1, modifier=false, summary=true) 2052 @Description(shortDefinition="Description of indication(s) for this product, used when structured indications are not required. In cases where structured indications are required, they are captured using the ClinicalUseDefinition resource. An indication is a medical situation for which using the product is appropriate", formalDefinition="Description of indication(s) for this product, used when structured indications are not required. In cases where structured indications are required, they are captured using the ClinicalUseDefinition resource. An indication is a medical situation for which using the product is appropriate." ) 2053 protected MarkdownType indication; 2054 2055 /** 2056 * The legal status of supply of the medicinal product as classified by the regulator. 2057 */ 2058 @Child(name = "legalStatusOfSupply", type = {CodeableConcept.class}, order=10, min=0, max=1, modifier=false, summary=true) 2059 @Description(shortDefinition="The legal status of supply of the medicinal product as classified by the regulator", formalDefinition="The legal status of supply of the medicinal product as classified by the regulator." ) 2060 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/legal-status-of-supply") 2061 protected CodeableConcept legalStatusOfSupply; 2062 2063 /** 2064 * Whether the Medicinal Product is subject to additional monitoring for regulatory reasons. 2065 */ 2066 @Child(name = "additionalMonitoringIndicator", type = {CodeableConcept.class}, order=11, min=0, max=1, modifier=false, summary=true) 2067 @Description(shortDefinition="Whether the Medicinal Product is subject to additional monitoring for regulatory reasons", formalDefinition="Whether the Medicinal Product is subject to additional monitoring for regulatory reasons." ) 2068 protected CodeableConcept additionalMonitoringIndicator; 2069 2070 /** 2071 * Whether the Medicinal Product is subject to special measures for regulatory reasons. 2072 */ 2073 @Child(name = "specialMeasures", type = {CodeableConcept.class}, order=12, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 2074 @Description(shortDefinition="Whether the Medicinal Product is subject to special measures for regulatory reasons", formalDefinition="Whether the Medicinal Product is subject to special measures for regulatory reasons." ) 2075 protected List<CodeableConcept> specialMeasures; 2076 2077 /** 2078 * If authorised for use in children. 2079 */ 2080 @Child(name = "pediatricUseIndicator", type = {CodeableConcept.class}, order=13, min=0, max=1, modifier=false, summary=true) 2081 @Description(shortDefinition="If authorised for use in children", formalDefinition="If authorised for use in children." ) 2082 protected CodeableConcept pediatricUseIndicator; 2083 2084 /** 2085 * Allows the product to be classified by various systems. 2086 */ 2087 @Child(name = "classification", type = {CodeableConcept.class}, order=14, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 2088 @Description(shortDefinition="Allows the product to be classified by various systems", formalDefinition="Allows the product to be classified by various systems." ) 2089 protected List<CodeableConcept> classification; 2090 2091 /** 2092 * Marketing status of the medicinal product, in contrast to marketing authorization. 2093 */ 2094 @Child(name = "marketingStatus", type = {MarketingStatus.class}, order=15, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 2095 @Description(shortDefinition="Marketing status of the medicinal product, in contrast to marketing authorization", formalDefinition="Marketing status of the medicinal product, in contrast to marketing authorization." ) 2096 protected List<MarketingStatus> marketingStatus; 2097 2098 /** 2099 * Package representation for the product. See also the PackagedProductDefinition resource. 2100 */ 2101 @Child(name = "packagedMedicinalProduct", type = {CodeableConcept.class}, order=16, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 2102 @Description(shortDefinition="Package representation for the product", formalDefinition="Package representation for the product. See also the PackagedProductDefinition resource." ) 2103 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/medicinal-product-package-type") 2104 protected List<CodeableConcept> packagedMedicinalProduct; 2105 2106 /** 2107 * The ingredients of this medicinal product - when not detailed in other resources. This is only needed if the ingredients are not specified by incoming references from the Ingredient resource, or indirectly via incoming AdministrableProductDefinition, PackagedProductDefinition or ManufacturedItemDefinition references. In cases where those levels of detail are not used, the ingredients may be specified directly here as codes. 2108 */ 2109 @Child(name = "ingredient", type = {CodeableConcept.class}, order=17, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 2110 @Description(shortDefinition="The ingredients of this medicinal product - when not detailed in other resources. This is only needed if the ingredients are not specified by incoming references from the Ingredient resource, or indirectly via incoming AdministrableProductDefinition, PackagedProductDefinition or ManufacturedItemDefinition references. In cases where those levels of detail are not used, the ingredients may be specified directly here as codes", formalDefinition="The ingredients of this medicinal product - when not detailed in other resources. This is only needed if the ingredients are not specified by incoming references from the Ingredient resource, or indirectly via incoming AdministrableProductDefinition, PackagedProductDefinition or ManufacturedItemDefinition references. In cases where those levels of detail are not used, the ingredients may be specified directly here as codes." ) 2111 protected List<CodeableConcept> ingredient; 2112 2113 /** 2114 * Any component of the drug product which is not the chemical entity defined as the drug substance or an excipient in the drug product. This includes process-related impurities and contaminants, product-related impurities including degradation products. 2115 */ 2116 @Child(name = "impurity", type = {CodeableReference.class}, order=18, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 2117 @Description(shortDefinition="Any component of the drug product which is not the chemical entity defined as the drug substance or an excipient in the drug product. This includes process-related impurities and contaminants, product-related impurities including degradation products", formalDefinition="Any component of the drug product which is not the chemical entity defined as the drug substance or an excipient in the drug product. This includes process-related impurities and contaminants, product-related impurities including degradation products." ) 2118 protected List<CodeableReference> impurity; 2119 2120 /** 2121 * Additional information or supporting documentation about the medicinal product. 2122 */ 2123 @Child(name = "attachedDocument", type = {DocumentReference.class}, order=19, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 2124 @Description(shortDefinition="Additional information or supporting documentation about the medicinal product", formalDefinition="Additional information or supporting documentation about the medicinal product." ) 2125 protected List<Reference> attachedDocument; 2126 2127 /** 2128 * A master file for the medicinal product (e.g. Pharmacovigilance System Master File). Drug master files (DMFs) are documents submitted to regulatory agencies to provide confidential detailed information about facilities, processes or articles used in the manufacturing, processing, packaging and storing of drug products. 2129 */ 2130 @Child(name = "masterFile", type = {DocumentReference.class}, order=20, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 2131 @Description(shortDefinition="A master file for the medicinal product (e.g. Pharmacovigilance System Master File)", formalDefinition="A master file for the medicinal product (e.g. Pharmacovigilance System Master File). Drug master files (DMFs) are documents submitted to regulatory agencies to provide confidential detailed information about facilities, processes or articles used in the manufacturing, processing, packaging and storing of drug products." ) 2132 protected List<Reference> masterFile; 2133 2134 /** 2135 * A product specific contact, person (in a role), or an organization. 2136 */ 2137 @Child(name = "contact", type = {}, order=21, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 2138 @Description(shortDefinition="A product specific contact, person (in a role), or an organization", formalDefinition="A product specific contact, person (in a role), or an organization." ) 2139 protected List<MedicinalProductDefinitionContactComponent> contact; 2140 2141 /** 2142 * Clinical trials or studies that this product is involved in. 2143 */ 2144 @Child(name = "clinicalTrial", type = {ResearchStudy.class}, order=22, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 2145 @Description(shortDefinition="Clinical trials or studies that this product is involved in", formalDefinition="Clinical trials or studies that this product is involved in." ) 2146 protected List<Reference> clinicalTrial; 2147 2148 /** 2149 * A code that this product is known by, usually within some formal terminology. Products (types of medications) tend to be known by identifiers during development and within regulatory process. However when they are prescribed they tend to be identified by codes. The same product may be have multiple codes, applied to it by multiple organizations. 2150 */ 2151 @Child(name = "code", type = {Coding.class}, order=23, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 2152 @Description(shortDefinition="A code that this product is known by, within some formal terminology", formalDefinition="A code that this product is known by, usually within some formal terminology. Products (types of medications) tend to be known by identifiers during development and within regulatory process. However when they are prescribed they tend to be identified by codes. The same product may be have multiple codes, applied to it by multiple organizations." ) 2153 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/medication-codes") 2154 protected List<Coding> code; 2155 2156 /** 2157 * The product's name, including full name and possibly coded parts. 2158 */ 2159 @Child(name = "name", type = {}, order=24, min=1, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 2160 @Description(shortDefinition="The product's name, including full name and possibly coded parts", formalDefinition="The product's name, including full name and possibly coded parts." ) 2161 protected List<MedicinalProductDefinitionNameComponent> name; 2162 2163 /** 2164 * Reference to another product, e.g. for linking authorised to investigational product. 2165 */ 2166 @Child(name = "crossReference", type = {}, order=25, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 2167 @Description(shortDefinition="Reference to another product, e.g. for linking authorised to investigational product", formalDefinition="Reference to another product, e.g. for linking authorised to investigational product." ) 2168 protected List<MedicinalProductDefinitionCrossReferenceComponent> crossReference; 2169 2170 /** 2171 * A manufacturing or administrative process or step associated with (or performed on) the medicinal product. 2172 */ 2173 @Child(name = "operation", type = {}, order=26, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 2174 @Description(shortDefinition="A manufacturing or administrative process or step associated with (or performed on) the medicinal product", formalDefinition="A manufacturing or administrative process or step associated with (or performed on) the medicinal product." ) 2175 protected List<MedicinalProductDefinitionOperationComponent> operation; 2176 2177 /** 2178 * Allows the key product features to be recorded, such as "sugar free", "modified release", "parallel import". 2179 */ 2180 @Child(name = "characteristic", type = {}, order=27, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 2181 @Description(shortDefinition="Allows the key product features to be recorded, such as \"sugar free\", \"modified release\", \"parallel import\"", formalDefinition="Allows the key product features to be recorded, such as \"sugar free\", \"modified release\", \"parallel import\"." ) 2182 protected List<MedicinalProductDefinitionCharacteristicComponent> characteristic; 2183 2184 private static final long serialVersionUID = -2099569280L; 2185 2186 /** 2187 * Constructor 2188 */ 2189 public MedicinalProductDefinition() { 2190 super(); 2191 } 2192 2193 /** 2194 * Constructor 2195 */ 2196 public MedicinalProductDefinition(MedicinalProductDefinitionNameComponent name) { 2197 super(); 2198 this.addName(name); 2199 } 2200 2201 /** 2202 * @return {@link #identifier} (Business identifier for this product. Could be an MPID.) 2203 */ 2204 public List<Identifier> getIdentifier() { 2205 if (this.identifier == null) 2206 this.identifier = new ArrayList<Identifier>(); 2207 return this.identifier; 2208 } 2209 2210 /** 2211 * @return Returns a reference to <code>this</code> for easy method chaining 2212 */ 2213 public MedicinalProductDefinition setIdentifier(List<Identifier> theIdentifier) { 2214 this.identifier = theIdentifier; 2215 return this; 2216 } 2217 2218 public boolean hasIdentifier() { 2219 if (this.identifier == null) 2220 return false; 2221 for (Identifier item : this.identifier) 2222 if (!item.isEmpty()) 2223 return true; 2224 return false; 2225 } 2226 2227 public Identifier addIdentifier() { //3 2228 Identifier t = new Identifier(); 2229 if (this.identifier == null) 2230 this.identifier = new ArrayList<Identifier>(); 2231 this.identifier.add(t); 2232 return t; 2233 } 2234 2235 public MedicinalProductDefinition addIdentifier(Identifier t) { //3 2236 if (t == null) 2237 return this; 2238 if (this.identifier == null) 2239 this.identifier = new ArrayList<Identifier>(); 2240 this.identifier.add(t); 2241 return this; 2242 } 2243 2244 /** 2245 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3} 2246 */ 2247 public Identifier getIdentifierFirstRep() { 2248 if (getIdentifier().isEmpty()) { 2249 addIdentifier(); 2250 } 2251 return getIdentifier().get(0); 2252 } 2253 2254 /** 2255 * @return {@link #type} (Regulatory type, e.g. Investigational or Authorized.) 2256 */ 2257 public CodeableConcept getType() { 2258 if (this.type == null) 2259 if (Configuration.errorOnAutoCreate()) 2260 throw new Error("Attempt to auto-create MedicinalProductDefinition.type"); 2261 else if (Configuration.doAutoCreate()) 2262 this.type = new CodeableConcept(); // cc 2263 return this.type; 2264 } 2265 2266 public boolean hasType() { 2267 return this.type != null && !this.type.isEmpty(); 2268 } 2269 2270 /** 2271 * @param value {@link #type} (Regulatory type, e.g. Investigational or Authorized.) 2272 */ 2273 public MedicinalProductDefinition setType(CodeableConcept value) { 2274 this.type = value; 2275 return this; 2276 } 2277 2278 /** 2279 * @return {@link #domain} (If this medicine applies to human or veterinary uses.) 2280 */ 2281 public CodeableConcept getDomain() { 2282 if (this.domain == null) 2283 if (Configuration.errorOnAutoCreate()) 2284 throw new Error("Attempt to auto-create MedicinalProductDefinition.domain"); 2285 else if (Configuration.doAutoCreate()) 2286 this.domain = new CodeableConcept(); // cc 2287 return this.domain; 2288 } 2289 2290 public boolean hasDomain() { 2291 return this.domain != null && !this.domain.isEmpty(); 2292 } 2293 2294 /** 2295 * @param value {@link #domain} (If this medicine applies to human or veterinary uses.) 2296 */ 2297 public MedicinalProductDefinition setDomain(CodeableConcept value) { 2298 this.domain = value; 2299 return this; 2300 } 2301 2302 /** 2303 * @return {@link #version} (A business identifier relating to a specific version of the product, this is commonly used to support revisions to an existing product.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value 2304 */ 2305 public StringType getVersionElement() { 2306 if (this.version == null) 2307 if (Configuration.errorOnAutoCreate()) 2308 throw new Error("Attempt to auto-create MedicinalProductDefinition.version"); 2309 else if (Configuration.doAutoCreate()) 2310 this.version = new StringType(); // bb 2311 return this.version; 2312 } 2313 2314 public boolean hasVersionElement() { 2315 return this.version != null && !this.version.isEmpty(); 2316 } 2317 2318 public boolean hasVersion() { 2319 return this.version != null && !this.version.isEmpty(); 2320 } 2321 2322 /** 2323 * @param value {@link #version} (A business identifier relating to a specific version of the product, this is commonly used to support revisions to an existing product.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value 2324 */ 2325 public MedicinalProductDefinition setVersionElement(StringType value) { 2326 this.version = value; 2327 return this; 2328 } 2329 2330 /** 2331 * @return A business identifier relating to a specific version of the product, this is commonly used to support revisions to an existing product. 2332 */ 2333 public String getVersion() { 2334 return this.version == null ? null : this.version.getValue(); 2335 } 2336 2337 /** 2338 * @param value A business identifier relating to a specific version of the product, this is commonly used to support revisions to an existing product. 2339 */ 2340 public MedicinalProductDefinition setVersion(String value) { 2341 if (Utilities.noString(value)) 2342 this.version = null; 2343 else { 2344 if (this.version == null) 2345 this.version = new StringType(); 2346 this.version.setValue(value); 2347 } 2348 return this; 2349 } 2350 2351 /** 2352 * @return {@link #status} (The status within the lifecycle of this product record. A high-level status, this is not intended to duplicate details carried elsewhere such as legal status, or authorization status.) 2353 */ 2354 public CodeableConcept getStatus() { 2355 if (this.status == null) 2356 if (Configuration.errorOnAutoCreate()) 2357 throw new Error("Attempt to auto-create MedicinalProductDefinition.status"); 2358 else if (Configuration.doAutoCreate()) 2359 this.status = new CodeableConcept(); // cc 2360 return this.status; 2361 } 2362 2363 public boolean hasStatus() { 2364 return this.status != null && !this.status.isEmpty(); 2365 } 2366 2367 /** 2368 * @param value {@link #status} (The status within the lifecycle of this product record. A high-level status, this is not intended to duplicate details carried elsewhere such as legal status, or authorization status.) 2369 */ 2370 public MedicinalProductDefinition setStatus(CodeableConcept value) { 2371 this.status = value; 2372 return this; 2373 } 2374 2375 /** 2376 * @return {@link #statusDate} (The date at which the given status became applicable.). This is the underlying object with id, value and extensions. The accessor "getStatusDate" gives direct access to the value 2377 */ 2378 public DateTimeType getStatusDateElement() { 2379 if (this.statusDate == null) 2380 if (Configuration.errorOnAutoCreate()) 2381 throw new Error("Attempt to auto-create MedicinalProductDefinition.statusDate"); 2382 else if (Configuration.doAutoCreate()) 2383 this.statusDate = new DateTimeType(); // bb 2384 return this.statusDate; 2385 } 2386 2387 public boolean hasStatusDateElement() { 2388 return this.statusDate != null && !this.statusDate.isEmpty(); 2389 } 2390 2391 public boolean hasStatusDate() { 2392 return this.statusDate != null && !this.statusDate.isEmpty(); 2393 } 2394 2395 /** 2396 * @param value {@link #statusDate} (The date at which the given status became applicable.). This is the underlying object with id, value and extensions. The accessor "getStatusDate" gives direct access to the value 2397 */ 2398 public MedicinalProductDefinition setStatusDateElement(DateTimeType value) { 2399 this.statusDate = value; 2400 return this; 2401 } 2402 2403 /** 2404 * @return The date at which the given status became applicable. 2405 */ 2406 public Date getStatusDate() { 2407 return this.statusDate == null ? null : this.statusDate.getValue(); 2408 } 2409 2410 /** 2411 * @param value The date at which the given status became applicable. 2412 */ 2413 public MedicinalProductDefinition setStatusDate(Date value) { 2414 if (value == null) 2415 this.statusDate = null; 2416 else { 2417 if (this.statusDate == null) 2418 this.statusDate = new DateTimeType(); 2419 this.statusDate.setValue(value); 2420 } 2421 return this; 2422 } 2423 2424 /** 2425 * @return {@link #description} (General description of this product.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 2426 */ 2427 public MarkdownType getDescriptionElement() { 2428 if (this.description == null) 2429 if (Configuration.errorOnAutoCreate()) 2430 throw new Error("Attempt to auto-create MedicinalProductDefinition.description"); 2431 else if (Configuration.doAutoCreate()) 2432 this.description = new MarkdownType(); // bb 2433 return this.description; 2434 } 2435 2436 public boolean hasDescriptionElement() { 2437 return this.description != null && !this.description.isEmpty(); 2438 } 2439 2440 public boolean hasDescription() { 2441 return this.description != null && !this.description.isEmpty(); 2442 } 2443 2444 /** 2445 * @param value {@link #description} (General description of this product.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 2446 */ 2447 public MedicinalProductDefinition setDescriptionElement(MarkdownType value) { 2448 this.description = value; 2449 return this; 2450 } 2451 2452 /** 2453 * @return General description of this product. 2454 */ 2455 public String getDescription() { 2456 return this.description == null ? null : this.description.getValue(); 2457 } 2458 2459 /** 2460 * @param value General description of this product. 2461 */ 2462 public MedicinalProductDefinition setDescription(String value) { 2463 if (value == null) 2464 this.description = null; 2465 else { 2466 if (this.description == null) 2467 this.description = new MarkdownType(); 2468 this.description.setValue(value); 2469 } 2470 return this; 2471 } 2472 2473 /** 2474 * @return {@link #combinedPharmaceuticalDoseForm} (The dose form for a single part product, or combined form of a multiple part product.) 2475 */ 2476 public CodeableConcept getCombinedPharmaceuticalDoseForm() { 2477 if (this.combinedPharmaceuticalDoseForm == null) 2478 if (Configuration.errorOnAutoCreate()) 2479 throw new Error("Attempt to auto-create MedicinalProductDefinition.combinedPharmaceuticalDoseForm"); 2480 else if (Configuration.doAutoCreate()) 2481 this.combinedPharmaceuticalDoseForm = new CodeableConcept(); // cc 2482 return this.combinedPharmaceuticalDoseForm; 2483 } 2484 2485 public boolean hasCombinedPharmaceuticalDoseForm() { 2486 return this.combinedPharmaceuticalDoseForm != null && !this.combinedPharmaceuticalDoseForm.isEmpty(); 2487 } 2488 2489 /** 2490 * @param value {@link #combinedPharmaceuticalDoseForm} (The dose form for a single part product, or combined form of a multiple part product.) 2491 */ 2492 public MedicinalProductDefinition setCombinedPharmaceuticalDoseForm(CodeableConcept value) { 2493 this.combinedPharmaceuticalDoseForm = value; 2494 return this; 2495 } 2496 2497 /** 2498 * @return {@link #route} (The path by which the product is taken into or makes contact with the body. In some regions this is referred to as the licenced or approved route. See also AdministrableProductDefinition resource.) 2499 */ 2500 public List<CodeableConcept> getRoute() { 2501 if (this.route == null) 2502 this.route = new ArrayList<CodeableConcept>(); 2503 return this.route; 2504 } 2505 2506 /** 2507 * @return Returns a reference to <code>this</code> for easy method chaining 2508 */ 2509 public MedicinalProductDefinition setRoute(List<CodeableConcept> theRoute) { 2510 this.route = theRoute; 2511 return this; 2512 } 2513 2514 public boolean hasRoute() { 2515 if (this.route == null) 2516 return false; 2517 for (CodeableConcept item : this.route) 2518 if (!item.isEmpty()) 2519 return true; 2520 return false; 2521 } 2522 2523 public CodeableConcept addRoute() { //3 2524 CodeableConcept t = new CodeableConcept(); 2525 if (this.route == null) 2526 this.route = new ArrayList<CodeableConcept>(); 2527 this.route.add(t); 2528 return t; 2529 } 2530 2531 public MedicinalProductDefinition addRoute(CodeableConcept t) { //3 2532 if (t == null) 2533 return this; 2534 if (this.route == null) 2535 this.route = new ArrayList<CodeableConcept>(); 2536 this.route.add(t); 2537 return this; 2538 } 2539 2540 /** 2541 * @return The first repetition of repeating field {@link #route}, creating it if it does not already exist {3} 2542 */ 2543 public CodeableConcept getRouteFirstRep() { 2544 if (getRoute().isEmpty()) { 2545 addRoute(); 2546 } 2547 return getRoute().get(0); 2548 } 2549 2550 /** 2551 * @return {@link #indication} (Description of indication(s) for this product, used when structured indications are not required. In cases where structured indications are required, they are captured using the ClinicalUseDefinition resource. An indication is a medical situation for which using the product is appropriate.). This is the underlying object with id, value and extensions. The accessor "getIndication" gives direct access to the value 2552 */ 2553 public MarkdownType getIndicationElement() { 2554 if (this.indication == null) 2555 if (Configuration.errorOnAutoCreate()) 2556 throw new Error("Attempt to auto-create MedicinalProductDefinition.indication"); 2557 else if (Configuration.doAutoCreate()) 2558 this.indication = new MarkdownType(); // bb 2559 return this.indication; 2560 } 2561 2562 public boolean hasIndicationElement() { 2563 return this.indication != null && !this.indication.isEmpty(); 2564 } 2565 2566 public boolean hasIndication() { 2567 return this.indication != null && !this.indication.isEmpty(); 2568 } 2569 2570 /** 2571 * @param value {@link #indication} (Description of indication(s) for this product, used when structured indications are not required. In cases where structured indications are required, they are captured using the ClinicalUseDefinition resource. An indication is a medical situation for which using the product is appropriate.). This is the underlying object with id, value and extensions. The accessor "getIndication" gives direct access to the value 2572 */ 2573 public MedicinalProductDefinition setIndicationElement(MarkdownType value) { 2574 this.indication = value; 2575 return this; 2576 } 2577 2578 /** 2579 * @return Description of indication(s) for this product, used when structured indications are not required. In cases where structured indications are required, they are captured using the ClinicalUseDefinition resource. An indication is a medical situation for which using the product is appropriate. 2580 */ 2581 public String getIndication() { 2582 return this.indication == null ? null : this.indication.getValue(); 2583 } 2584 2585 /** 2586 * @param value Description of indication(s) for this product, used when structured indications are not required. In cases where structured indications are required, they are captured using the ClinicalUseDefinition resource. An indication is a medical situation for which using the product is appropriate. 2587 */ 2588 public MedicinalProductDefinition setIndication(String value) { 2589 if (value == null) 2590 this.indication = null; 2591 else { 2592 if (this.indication == null) 2593 this.indication = new MarkdownType(); 2594 this.indication.setValue(value); 2595 } 2596 return this; 2597 } 2598 2599 /** 2600 * @return {@link #legalStatusOfSupply} (The legal status of supply of the medicinal product as classified by the regulator.) 2601 */ 2602 public CodeableConcept getLegalStatusOfSupply() { 2603 if (this.legalStatusOfSupply == null) 2604 if (Configuration.errorOnAutoCreate()) 2605 throw new Error("Attempt to auto-create MedicinalProductDefinition.legalStatusOfSupply"); 2606 else if (Configuration.doAutoCreate()) 2607 this.legalStatusOfSupply = new CodeableConcept(); // cc 2608 return this.legalStatusOfSupply; 2609 } 2610 2611 public boolean hasLegalStatusOfSupply() { 2612 return this.legalStatusOfSupply != null && !this.legalStatusOfSupply.isEmpty(); 2613 } 2614 2615 /** 2616 * @param value {@link #legalStatusOfSupply} (The legal status of supply of the medicinal product as classified by the regulator.) 2617 */ 2618 public MedicinalProductDefinition setLegalStatusOfSupply(CodeableConcept value) { 2619 this.legalStatusOfSupply = value; 2620 return this; 2621 } 2622 2623 /** 2624 * @return {@link #additionalMonitoringIndicator} (Whether the Medicinal Product is subject to additional monitoring for regulatory reasons.) 2625 */ 2626 public CodeableConcept getAdditionalMonitoringIndicator() { 2627 if (this.additionalMonitoringIndicator == null) 2628 if (Configuration.errorOnAutoCreate()) 2629 throw new Error("Attempt to auto-create MedicinalProductDefinition.additionalMonitoringIndicator"); 2630 else if (Configuration.doAutoCreate()) 2631 this.additionalMonitoringIndicator = new CodeableConcept(); // cc 2632 return this.additionalMonitoringIndicator; 2633 } 2634 2635 public boolean hasAdditionalMonitoringIndicator() { 2636 return this.additionalMonitoringIndicator != null && !this.additionalMonitoringIndicator.isEmpty(); 2637 } 2638 2639 /** 2640 * @param value {@link #additionalMonitoringIndicator} (Whether the Medicinal Product is subject to additional monitoring for regulatory reasons.) 2641 */ 2642 public MedicinalProductDefinition setAdditionalMonitoringIndicator(CodeableConcept value) { 2643 this.additionalMonitoringIndicator = value; 2644 return this; 2645 } 2646 2647 /** 2648 * @return {@link #specialMeasures} (Whether the Medicinal Product is subject to special measures for regulatory reasons.) 2649 */ 2650 public List<CodeableConcept> getSpecialMeasures() { 2651 if (this.specialMeasures == null) 2652 this.specialMeasures = new ArrayList<CodeableConcept>(); 2653 return this.specialMeasures; 2654 } 2655 2656 /** 2657 * @return Returns a reference to <code>this</code> for easy method chaining 2658 */ 2659 public MedicinalProductDefinition setSpecialMeasures(List<CodeableConcept> theSpecialMeasures) { 2660 this.specialMeasures = theSpecialMeasures; 2661 return this; 2662 } 2663 2664 public boolean hasSpecialMeasures() { 2665 if (this.specialMeasures == null) 2666 return false; 2667 for (CodeableConcept item : this.specialMeasures) 2668 if (!item.isEmpty()) 2669 return true; 2670 return false; 2671 } 2672 2673 public CodeableConcept addSpecialMeasures() { //3 2674 CodeableConcept t = new CodeableConcept(); 2675 if (this.specialMeasures == null) 2676 this.specialMeasures = new ArrayList<CodeableConcept>(); 2677 this.specialMeasures.add(t); 2678 return t; 2679 } 2680 2681 public MedicinalProductDefinition addSpecialMeasures(CodeableConcept t) { //3 2682 if (t == null) 2683 return this; 2684 if (this.specialMeasures == null) 2685 this.specialMeasures = new ArrayList<CodeableConcept>(); 2686 this.specialMeasures.add(t); 2687 return this; 2688 } 2689 2690 /** 2691 * @return The first repetition of repeating field {@link #specialMeasures}, creating it if it does not already exist {3} 2692 */ 2693 public CodeableConcept getSpecialMeasuresFirstRep() { 2694 if (getSpecialMeasures().isEmpty()) { 2695 addSpecialMeasures(); 2696 } 2697 return getSpecialMeasures().get(0); 2698 } 2699 2700 /** 2701 * @return {@link #pediatricUseIndicator} (If authorised for use in children.) 2702 */ 2703 public CodeableConcept getPediatricUseIndicator() { 2704 if (this.pediatricUseIndicator == null) 2705 if (Configuration.errorOnAutoCreate()) 2706 throw new Error("Attempt to auto-create MedicinalProductDefinition.pediatricUseIndicator"); 2707 else if (Configuration.doAutoCreate()) 2708 this.pediatricUseIndicator = new CodeableConcept(); // cc 2709 return this.pediatricUseIndicator; 2710 } 2711 2712 public boolean hasPediatricUseIndicator() { 2713 return this.pediatricUseIndicator != null && !this.pediatricUseIndicator.isEmpty(); 2714 } 2715 2716 /** 2717 * @param value {@link #pediatricUseIndicator} (If authorised for use in children.) 2718 */ 2719 public MedicinalProductDefinition setPediatricUseIndicator(CodeableConcept value) { 2720 this.pediatricUseIndicator = value; 2721 return this; 2722 } 2723 2724 /** 2725 * @return {@link #classification} (Allows the product to be classified by various systems.) 2726 */ 2727 public List<CodeableConcept> getClassification() { 2728 if (this.classification == null) 2729 this.classification = new ArrayList<CodeableConcept>(); 2730 return this.classification; 2731 } 2732 2733 /** 2734 * @return Returns a reference to <code>this</code> for easy method chaining 2735 */ 2736 public MedicinalProductDefinition setClassification(List<CodeableConcept> theClassification) { 2737 this.classification = theClassification; 2738 return this; 2739 } 2740 2741 public boolean hasClassification() { 2742 if (this.classification == null) 2743 return false; 2744 for (CodeableConcept item : this.classification) 2745 if (!item.isEmpty()) 2746 return true; 2747 return false; 2748 } 2749 2750 public CodeableConcept addClassification() { //3 2751 CodeableConcept t = new CodeableConcept(); 2752 if (this.classification == null) 2753 this.classification = new ArrayList<CodeableConcept>(); 2754 this.classification.add(t); 2755 return t; 2756 } 2757 2758 public MedicinalProductDefinition addClassification(CodeableConcept t) { //3 2759 if (t == null) 2760 return this; 2761 if (this.classification == null) 2762 this.classification = new ArrayList<CodeableConcept>(); 2763 this.classification.add(t); 2764 return this; 2765 } 2766 2767 /** 2768 * @return The first repetition of repeating field {@link #classification}, creating it if it does not already exist {3} 2769 */ 2770 public CodeableConcept getClassificationFirstRep() { 2771 if (getClassification().isEmpty()) { 2772 addClassification(); 2773 } 2774 return getClassification().get(0); 2775 } 2776 2777 /** 2778 * @return {@link #marketingStatus} (Marketing status of the medicinal product, in contrast to marketing authorization.) 2779 */ 2780 public List<MarketingStatus> getMarketingStatus() { 2781 if (this.marketingStatus == null) 2782 this.marketingStatus = new ArrayList<MarketingStatus>(); 2783 return this.marketingStatus; 2784 } 2785 2786 /** 2787 * @return Returns a reference to <code>this</code> for easy method chaining 2788 */ 2789 public MedicinalProductDefinition setMarketingStatus(List<MarketingStatus> theMarketingStatus) { 2790 this.marketingStatus = theMarketingStatus; 2791 return this; 2792 } 2793 2794 public boolean hasMarketingStatus() { 2795 if (this.marketingStatus == null) 2796 return false; 2797 for (MarketingStatus item : this.marketingStatus) 2798 if (!item.isEmpty()) 2799 return true; 2800 return false; 2801 } 2802 2803 public MarketingStatus addMarketingStatus() { //3 2804 MarketingStatus t = new MarketingStatus(); 2805 if (this.marketingStatus == null) 2806 this.marketingStatus = new ArrayList<MarketingStatus>(); 2807 this.marketingStatus.add(t); 2808 return t; 2809 } 2810 2811 public MedicinalProductDefinition addMarketingStatus(MarketingStatus t) { //3 2812 if (t == null) 2813 return this; 2814 if (this.marketingStatus == null) 2815 this.marketingStatus = new ArrayList<MarketingStatus>(); 2816 this.marketingStatus.add(t); 2817 return this; 2818 } 2819 2820 /** 2821 * @return The first repetition of repeating field {@link #marketingStatus}, creating it if it does not already exist {3} 2822 */ 2823 public MarketingStatus getMarketingStatusFirstRep() { 2824 if (getMarketingStatus().isEmpty()) { 2825 addMarketingStatus(); 2826 } 2827 return getMarketingStatus().get(0); 2828 } 2829 2830 /** 2831 * @return {@link #packagedMedicinalProduct} (Package representation for the product. See also the PackagedProductDefinition resource.) 2832 */ 2833 public List<CodeableConcept> getPackagedMedicinalProduct() { 2834 if (this.packagedMedicinalProduct == null) 2835 this.packagedMedicinalProduct = new ArrayList<CodeableConcept>(); 2836 return this.packagedMedicinalProduct; 2837 } 2838 2839 /** 2840 * @return Returns a reference to <code>this</code> for easy method chaining 2841 */ 2842 public MedicinalProductDefinition setPackagedMedicinalProduct(List<CodeableConcept> thePackagedMedicinalProduct) { 2843 this.packagedMedicinalProduct = thePackagedMedicinalProduct; 2844 return this; 2845 } 2846 2847 public boolean hasPackagedMedicinalProduct() { 2848 if (this.packagedMedicinalProduct == null) 2849 return false; 2850 for (CodeableConcept item : this.packagedMedicinalProduct) 2851 if (!item.isEmpty()) 2852 return true; 2853 return false; 2854 } 2855 2856 public CodeableConcept addPackagedMedicinalProduct() { //3 2857 CodeableConcept t = new CodeableConcept(); 2858 if (this.packagedMedicinalProduct == null) 2859 this.packagedMedicinalProduct = new ArrayList<CodeableConcept>(); 2860 this.packagedMedicinalProduct.add(t); 2861 return t; 2862 } 2863 2864 public MedicinalProductDefinition addPackagedMedicinalProduct(CodeableConcept t) { //3 2865 if (t == null) 2866 return this; 2867 if (this.packagedMedicinalProduct == null) 2868 this.packagedMedicinalProduct = new ArrayList<CodeableConcept>(); 2869 this.packagedMedicinalProduct.add(t); 2870 return this; 2871 } 2872 2873 /** 2874 * @return The first repetition of repeating field {@link #packagedMedicinalProduct}, creating it if it does not already exist {3} 2875 */ 2876 public CodeableConcept getPackagedMedicinalProductFirstRep() { 2877 if (getPackagedMedicinalProduct().isEmpty()) { 2878 addPackagedMedicinalProduct(); 2879 } 2880 return getPackagedMedicinalProduct().get(0); 2881 } 2882 2883 /** 2884 * @return {@link #ingredient} (The ingredients of this medicinal product - when not detailed in other resources. This is only needed if the ingredients are not specified by incoming references from the Ingredient resource, or indirectly via incoming AdministrableProductDefinition, PackagedProductDefinition or ManufacturedItemDefinition references. In cases where those levels of detail are not used, the ingredients may be specified directly here as codes.) 2885 */ 2886 public List<CodeableConcept> getIngredient() { 2887 if (this.ingredient == null) 2888 this.ingredient = new ArrayList<CodeableConcept>(); 2889 return this.ingredient; 2890 } 2891 2892 /** 2893 * @return Returns a reference to <code>this</code> for easy method chaining 2894 */ 2895 public MedicinalProductDefinition setIngredient(List<CodeableConcept> theIngredient) { 2896 this.ingredient = theIngredient; 2897 return this; 2898 } 2899 2900 public boolean hasIngredient() { 2901 if (this.ingredient == null) 2902 return false; 2903 for (CodeableConcept item : this.ingredient) 2904 if (!item.isEmpty()) 2905 return true; 2906 return false; 2907 } 2908 2909 public CodeableConcept addIngredient() { //3 2910 CodeableConcept t = new CodeableConcept(); 2911 if (this.ingredient == null) 2912 this.ingredient = new ArrayList<CodeableConcept>(); 2913 this.ingredient.add(t); 2914 return t; 2915 } 2916 2917 public MedicinalProductDefinition addIngredient(CodeableConcept t) { //3 2918 if (t == null) 2919 return this; 2920 if (this.ingredient == null) 2921 this.ingredient = new ArrayList<CodeableConcept>(); 2922 this.ingredient.add(t); 2923 return this; 2924 } 2925 2926 /** 2927 * @return The first repetition of repeating field {@link #ingredient}, creating it if it does not already exist {3} 2928 */ 2929 public CodeableConcept getIngredientFirstRep() { 2930 if (getIngredient().isEmpty()) { 2931 addIngredient(); 2932 } 2933 return getIngredient().get(0); 2934 } 2935 2936 /** 2937 * @return {@link #impurity} (Any component of the drug product which is not the chemical entity defined as the drug substance or an excipient in the drug product. This includes process-related impurities and contaminants, product-related impurities including degradation products.) 2938 */ 2939 public List<CodeableReference> getImpurity() { 2940 if (this.impurity == null) 2941 this.impurity = new ArrayList<CodeableReference>(); 2942 return this.impurity; 2943 } 2944 2945 /** 2946 * @return Returns a reference to <code>this</code> for easy method chaining 2947 */ 2948 public MedicinalProductDefinition setImpurity(List<CodeableReference> theImpurity) { 2949 this.impurity = theImpurity; 2950 return this; 2951 } 2952 2953 public boolean hasImpurity() { 2954 if (this.impurity == null) 2955 return false; 2956 for (CodeableReference item : this.impurity) 2957 if (!item.isEmpty()) 2958 return true; 2959 return false; 2960 } 2961 2962 public CodeableReference addImpurity() { //3 2963 CodeableReference t = new CodeableReference(); 2964 if (this.impurity == null) 2965 this.impurity = new ArrayList<CodeableReference>(); 2966 this.impurity.add(t); 2967 return t; 2968 } 2969 2970 public MedicinalProductDefinition addImpurity(CodeableReference t) { //3 2971 if (t == null) 2972 return this; 2973 if (this.impurity == null) 2974 this.impurity = new ArrayList<CodeableReference>(); 2975 this.impurity.add(t); 2976 return this; 2977 } 2978 2979 /** 2980 * @return The first repetition of repeating field {@link #impurity}, creating it if it does not already exist {3} 2981 */ 2982 public CodeableReference getImpurityFirstRep() { 2983 if (getImpurity().isEmpty()) { 2984 addImpurity(); 2985 } 2986 return getImpurity().get(0); 2987 } 2988 2989 /** 2990 * @return {@link #attachedDocument} (Additional information or supporting documentation about the medicinal product.) 2991 */ 2992 public List<Reference> getAttachedDocument() { 2993 if (this.attachedDocument == null) 2994 this.attachedDocument = new ArrayList<Reference>(); 2995 return this.attachedDocument; 2996 } 2997 2998 /** 2999 * @return Returns a reference to <code>this</code> for easy method chaining 3000 */ 3001 public MedicinalProductDefinition setAttachedDocument(List<Reference> theAttachedDocument) { 3002 this.attachedDocument = theAttachedDocument; 3003 return this; 3004 } 3005 3006 public boolean hasAttachedDocument() { 3007 if (this.attachedDocument == null) 3008 return false; 3009 for (Reference item : this.attachedDocument) 3010 if (!item.isEmpty()) 3011 return true; 3012 return false; 3013 } 3014 3015 public Reference addAttachedDocument() { //3 3016 Reference t = new Reference(); 3017 if (this.attachedDocument == null) 3018 this.attachedDocument = new ArrayList<Reference>(); 3019 this.attachedDocument.add(t); 3020 return t; 3021 } 3022 3023 public MedicinalProductDefinition addAttachedDocument(Reference t) { //3 3024 if (t == null) 3025 return this; 3026 if (this.attachedDocument == null) 3027 this.attachedDocument = new ArrayList<Reference>(); 3028 this.attachedDocument.add(t); 3029 return this; 3030 } 3031 3032 /** 3033 * @return The first repetition of repeating field {@link #attachedDocument}, creating it if it does not already exist {3} 3034 */ 3035 public Reference getAttachedDocumentFirstRep() { 3036 if (getAttachedDocument().isEmpty()) { 3037 addAttachedDocument(); 3038 } 3039 return getAttachedDocument().get(0); 3040 } 3041 3042 /** 3043 * @return {@link #masterFile} (A master file for the medicinal product (e.g. Pharmacovigilance System Master File). Drug master files (DMFs) are documents submitted to regulatory agencies to provide confidential detailed information about facilities, processes or articles used in the manufacturing, processing, packaging and storing of drug products.) 3044 */ 3045 public List<Reference> getMasterFile() { 3046 if (this.masterFile == null) 3047 this.masterFile = new ArrayList<Reference>(); 3048 return this.masterFile; 3049 } 3050 3051 /** 3052 * @return Returns a reference to <code>this</code> for easy method chaining 3053 */ 3054 public MedicinalProductDefinition setMasterFile(List<Reference> theMasterFile) { 3055 this.masterFile = theMasterFile; 3056 return this; 3057 } 3058 3059 public boolean hasMasterFile() { 3060 if (this.masterFile == null) 3061 return false; 3062 for (Reference item : this.masterFile) 3063 if (!item.isEmpty()) 3064 return true; 3065 return false; 3066 } 3067 3068 public Reference addMasterFile() { //3 3069 Reference t = new Reference(); 3070 if (this.masterFile == null) 3071 this.masterFile = new ArrayList<Reference>(); 3072 this.masterFile.add(t); 3073 return t; 3074 } 3075 3076 public MedicinalProductDefinition addMasterFile(Reference t) { //3 3077 if (t == null) 3078 return this; 3079 if (this.masterFile == null) 3080 this.masterFile = new ArrayList<Reference>(); 3081 this.masterFile.add(t); 3082 return this; 3083 } 3084 3085 /** 3086 * @return The first repetition of repeating field {@link #masterFile}, creating it if it does not already exist {3} 3087 */ 3088 public Reference getMasterFileFirstRep() { 3089 if (getMasterFile().isEmpty()) { 3090 addMasterFile(); 3091 } 3092 return getMasterFile().get(0); 3093 } 3094 3095 /** 3096 * @return {@link #contact} (A product specific contact, person (in a role), or an organization.) 3097 */ 3098 public List<MedicinalProductDefinitionContactComponent> getContact() { 3099 if (this.contact == null) 3100 this.contact = new ArrayList<MedicinalProductDefinitionContactComponent>(); 3101 return this.contact; 3102 } 3103 3104 /** 3105 * @return Returns a reference to <code>this</code> for easy method chaining 3106 */ 3107 public MedicinalProductDefinition setContact(List<MedicinalProductDefinitionContactComponent> theContact) { 3108 this.contact = theContact; 3109 return this; 3110 } 3111 3112 public boolean hasContact() { 3113 if (this.contact == null) 3114 return false; 3115 for (MedicinalProductDefinitionContactComponent item : this.contact) 3116 if (!item.isEmpty()) 3117 return true; 3118 return false; 3119 } 3120 3121 public MedicinalProductDefinitionContactComponent addContact() { //3 3122 MedicinalProductDefinitionContactComponent t = new MedicinalProductDefinitionContactComponent(); 3123 if (this.contact == null) 3124 this.contact = new ArrayList<MedicinalProductDefinitionContactComponent>(); 3125 this.contact.add(t); 3126 return t; 3127 } 3128 3129 public MedicinalProductDefinition addContact(MedicinalProductDefinitionContactComponent t) { //3 3130 if (t == null) 3131 return this; 3132 if (this.contact == null) 3133 this.contact = new ArrayList<MedicinalProductDefinitionContactComponent>(); 3134 this.contact.add(t); 3135 return this; 3136 } 3137 3138 /** 3139 * @return The first repetition of repeating field {@link #contact}, creating it if it does not already exist {3} 3140 */ 3141 public MedicinalProductDefinitionContactComponent getContactFirstRep() { 3142 if (getContact().isEmpty()) { 3143 addContact(); 3144 } 3145 return getContact().get(0); 3146 } 3147 3148 /** 3149 * @return {@link #clinicalTrial} (Clinical trials or studies that this product is involved in.) 3150 */ 3151 public List<Reference> getClinicalTrial() { 3152 if (this.clinicalTrial == null) 3153 this.clinicalTrial = new ArrayList<Reference>(); 3154 return this.clinicalTrial; 3155 } 3156 3157 /** 3158 * @return Returns a reference to <code>this</code> for easy method chaining 3159 */ 3160 public MedicinalProductDefinition setClinicalTrial(List<Reference> theClinicalTrial) { 3161 this.clinicalTrial = theClinicalTrial; 3162 return this; 3163 } 3164 3165 public boolean hasClinicalTrial() { 3166 if (this.clinicalTrial == null) 3167 return false; 3168 for (Reference item : this.clinicalTrial) 3169 if (!item.isEmpty()) 3170 return true; 3171 return false; 3172 } 3173 3174 public Reference addClinicalTrial() { //3 3175 Reference t = new Reference(); 3176 if (this.clinicalTrial == null) 3177 this.clinicalTrial = new ArrayList<Reference>(); 3178 this.clinicalTrial.add(t); 3179 return t; 3180 } 3181 3182 public MedicinalProductDefinition addClinicalTrial(Reference t) { //3 3183 if (t == null) 3184 return this; 3185 if (this.clinicalTrial == null) 3186 this.clinicalTrial = new ArrayList<Reference>(); 3187 this.clinicalTrial.add(t); 3188 return this; 3189 } 3190 3191 /** 3192 * @return The first repetition of repeating field {@link #clinicalTrial}, creating it if it does not already exist {3} 3193 */ 3194 public Reference getClinicalTrialFirstRep() { 3195 if (getClinicalTrial().isEmpty()) { 3196 addClinicalTrial(); 3197 } 3198 return getClinicalTrial().get(0); 3199 } 3200 3201 /** 3202 * @return {@link #code} (A code that this product is known by, usually within some formal terminology. Products (types of medications) tend to be known by identifiers during development and within regulatory process. However when they are prescribed they tend to be identified by codes. The same product may be have multiple codes, applied to it by multiple organizations.) 3203 */ 3204 public List<Coding> getCode() { 3205 if (this.code == null) 3206 this.code = new ArrayList<Coding>(); 3207 return this.code; 3208 } 3209 3210 /** 3211 * @return Returns a reference to <code>this</code> for easy method chaining 3212 */ 3213 public MedicinalProductDefinition setCode(List<Coding> theCode) { 3214 this.code = theCode; 3215 return this; 3216 } 3217 3218 public boolean hasCode() { 3219 if (this.code == null) 3220 return false; 3221 for (Coding item : this.code) 3222 if (!item.isEmpty()) 3223 return true; 3224 return false; 3225 } 3226 3227 public Coding addCode() { //3 3228 Coding t = new Coding(); 3229 if (this.code == null) 3230 this.code = new ArrayList<Coding>(); 3231 this.code.add(t); 3232 return t; 3233 } 3234 3235 public MedicinalProductDefinition addCode(Coding t) { //3 3236 if (t == null) 3237 return this; 3238 if (this.code == null) 3239 this.code = new ArrayList<Coding>(); 3240 this.code.add(t); 3241 return this; 3242 } 3243 3244 /** 3245 * @return The first repetition of repeating field {@link #code}, creating it if it does not already exist {3} 3246 */ 3247 public Coding getCodeFirstRep() { 3248 if (getCode().isEmpty()) { 3249 addCode(); 3250 } 3251 return getCode().get(0); 3252 } 3253 3254 /** 3255 * @return {@link #name} (The product's name, including full name and possibly coded parts.) 3256 */ 3257 public List<MedicinalProductDefinitionNameComponent> getName() { 3258 if (this.name == null) 3259 this.name = new ArrayList<MedicinalProductDefinitionNameComponent>(); 3260 return this.name; 3261 } 3262 3263 /** 3264 * @return Returns a reference to <code>this</code> for easy method chaining 3265 */ 3266 public MedicinalProductDefinition setName(List<MedicinalProductDefinitionNameComponent> theName) { 3267 this.name = theName; 3268 return this; 3269 } 3270 3271 public boolean hasName() { 3272 if (this.name == null) 3273 return false; 3274 for (MedicinalProductDefinitionNameComponent item : this.name) 3275 if (!item.isEmpty()) 3276 return true; 3277 return false; 3278 } 3279 3280 public MedicinalProductDefinitionNameComponent addName() { //3 3281 MedicinalProductDefinitionNameComponent t = new MedicinalProductDefinitionNameComponent(); 3282 if (this.name == null) 3283 this.name = new ArrayList<MedicinalProductDefinitionNameComponent>(); 3284 this.name.add(t); 3285 return t; 3286 } 3287 3288 public MedicinalProductDefinition addName(MedicinalProductDefinitionNameComponent t) { //3 3289 if (t == null) 3290 return this; 3291 if (this.name == null) 3292 this.name = new ArrayList<MedicinalProductDefinitionNameComponent>(); 3293 this.name.add(t); 3294 return this; 3295 } 3296 3297 /** 3298 * @return The first repetition of repeating field {@link #name}, creating it if it does not already exist {3} 3299 */ 3300 public MedicinalProductDefinitionNameComponent getNameFirstRep() { 3301 if (getName().isEmpty()) { 3302 addName(); 3303 } 3304 return getName().get(0); 3305 } 3306 3307 /** 3308 * @return {@link #crossReference} (Reference to another product, e.g. for linking authorised to investigational product.) 3309 */ 3310 public List<MedicinalProductDefinitionCrossReferenceComponent> getCrossReference() { 3311 if (this.crossReference == null) 3312 this.crossReference = new ArrayList<MedicinalProductDefinitionCrossReferenceComponent>(); 3313 return this.crossReference; 3314 } 3315 3316 /** 3317 * @return Returns a reference to <code>this</code> for easy method chaining 3318 */ 3319 public MedicinalProductDefinition setCrossReference(List<MedicinalProductDefinitionCrossReferenceComponent> theCrossReference) { 3320 this.crossReference = theCrossReference; 3321 return this; 3322 } 3323 3324 public boolean hasCrossReference() { 3325 if (this.crossReference == null) 3326 return false; 3327 for (MedicinalProductDefinitionCrossReferenceComponent item : this.crossReference) 3328 if (!item.isEmpty()) 3329 return true; 3330 return false; 3331 } 3332 3333 public MedicinalProductDefinitionCrossReferenceComponent addCrossReference() { //3 3334 MedicinalProductDefinitionCrossReferenceComponent t = new MedicinalProductDefinitionCrossReferenceComponent(); 3335 if (this.crossReference == null) 3336 this.crossReference = new ArrayList<MedicinalProductDefinitionCrossReferenceComponent>(); 3337 this.crossReference.add(t); 3338 return t; 3339 } 3340 3341 public MedicinalProductDefinition addCrossReference(MedicinalProductDefinitionCrossReferenceComponent t) { //3 3342 if (t == null) 3343 return this; 3344 if (this.crossReference == null) 3345 this.crossReference = new ArrayList<MedicinalProductDefinitionCrossReferenceComponent>(); 3346 this.crossReference.add(t); 3347 return this; 3348 } 3349 3350 /** 3351 * @return The first repetition of repeating field {@link #crossReference}, creating it if it does not already exist {3} 3352 */ 3353 public MedicinalProductDefinitionCrossReferenceComponent getCrossReferenceFirstRep() { 3354 if (getCrossReference().isEmpty()) { 3355 addCrossReference(); 3356 } 3357 return getCrossReference().get(0); 3358 } 3359 3360 /** 3361 * @return {@link #operation} (A manufacturing or administrative process or step associated with (or performed on) the medicinal product.) 3362 */ 3363 public List<MedicinalProductDefinitionOperationComponent> getOperation() { 3364 if (this.operation == null) 3365 this.operation = new ArrayList<MedicinalProductDefinitionOperationComponent>(); 3366 return this.operation; 3367 } 3368 3369 /** 3370 * @return Returns a reference to <code>this</code> for easy method chaining 3371 */ 3372 public MedicinalProductDefinition setOperation(List<MedicinalProductDefinitionOperationComponent> theOperation) { 3373 this.operation = theOperation; 3374 return this; 3375 } 3376 3377 public boolean hasOperation() { 3378 if (this.operation == null) 3379 return false; 3380 for (MedicinalProductDefinitionOperationComponent item : this.operation) 3381 if (!item.isEmpty()) 3382 return true; 3383 return false; 3384 } 3385 3386 public MedicinalProductDefinitionOperationComponent addOperation() { //3 3387 MedicinalProductDefinitionOperationComponent t = new MedicinalProductDefinitionOperationComponent(); 3388 if (this.operation == null) 3389 this.operation = new ArrayList<MedicinalProductDefinitionOperationComponent>(); 3390 this.operation.add(t); 3391 return t; 3392 } 3393 3394 public MedicinalProductDefinition addOperation(MedicinalProductDefinitionOperationComponent t) { //3 3395 if (t == null) 3396 return this; 3397 if (this.operation == null) 3398 this.operation = new ArrayList<MedicinalProductDefinitionOperationComponent>(); 3399 this.operation.add(t); 3400 return this; 3401 } 3402 3403 /** 3404 * @return The first repetition of repeating field {@link #operation}, creating it if it does not already exist {3} 3405 */ 3406 public MedicinalProductDefinitionOperationComponent getOperationFirstRep() { 3407 if (getOperation().isEmpty()) { 3408 addOperation(); 3409 } 3410 return getOperation().get(0); 3411 } 3412 3413 /** 3414 * @return {@link #characteristic} (Allows the key product features to be recorded, such as "sugar free", "modified release", "parallel import".) 3415 */ 3416 public List<MedicinalProductDefinitionCharacteristicComponent> getCharacteristic() { 3417 if (this.characteristic == null) 3418 this.characteristic = new ArrayList<MedicinalProductDefinitionCharacteristicComponent>(); 3419 return this.characteristic; 3420 } 3421 3422 /** 3423 * @return Returns a reference to <code>this</code> for easy method chaining 3424 */ 3425 public MedicinalProductDefinition setCharacteristic(List<MedicinalProductDefinitionCharacteristicComponent> theCharacteristic) { 3426 this.characteristic = theCharacteristic; 3427 return this; 3428 } 3429 3430 public boolean hasCharacteristic() { 3431 if (this.characteristic == null) 3432 return false; 3433 for (MedicinalProductDefinitionCharacteristicComponent item : this.characteristic) 3434 if (!item.isEmpty()) 3435 return true; 3436 return false; 3437 } 3438 3439 public MedicinalProductDefinitionCharacteristicComponent addCharacteristic() { //3 3440 MedicinalProductDefinitionCharacteristicComponent t = new MedicinalProductDefinitionCharacteristicComponent(); 3441 if (this.characteristic == null) 3442 this.characteristic = new ArrayList<MedicinalProductDefinitionCharacteristicComponent>(); 3443 this.characteristic.add(t); 3444 return t; 3445 } 3446 3447 public MedicinalProductDefinition addCharacteristic(MedicinalProductDefinitionCharacteristicComponent t) { //3 3448 if (t == null) 3449 return this; 3450 if (this.characteristic == null) 3451 this.characteristic = new ArrayList<MedicinalProductDefinitionCharacteristicComponent>(); 3452 this.characteristic.add(t); 3453 return this; 3454 } 3455 3456 /** 3457 * @return The first repetition of repeating field {@link #characteristic}, creating it if it does not already exist {3} 3458 */ 3459 public MedicinalProductDefinitionCharacteristicComponent getCharacteristicFirstRep() { 3460 if (getCharacteristic().isEmpty()) { 3461 addCharacteristic(); 3462 } 3463 return getCharacteristic().get(0); 3464 } 3465 3466 protected void listChildren(List<Property> children) { 3467 super.listChildren(children); 3468 children.add(new Property("identifier", "Identifier", "Business identifier for this product. Could be an MPID.", 0, java.lang.Integer.MAX_VALUE, identifier)); 3469 children.add(new Property("type", "CodeableConcept", "Regulatory type, e.g. Investigational or Authorized.", 0, 1, type)); 3470 children.add(new Property("domain", "CodeableConcept", "If this medicine applies to human or veterinary uses.", 0, 1, domain)); 3471 children.add(new Property("version", "string", "A business identifier relating to a specific version of the product, this is commonly used to support revisions to an existing product.", 0, 1, version)); 3472 children.add(new Property("status", "CodeableConcept", "The status within the lifecycle of this product record. A high-level status, this is not intended to duplicate details carried elsewhere such as legal status, or authorization status.", 0, 1, status)); 3473 children.add(new Property("statusDate", "dateTime", "The date at which the given status became applicable.", 0, 1, statusDate)); 3474 children.add(new Property("description", "markdown", "General description of this product.", 0, 1, description)); 3475 children.add(new Property("combinedPharmaceuticalDoseForm", "CodeableConcept", "The dose form for a single part product, or combined form of a multiple part product.", 0, 1, combinedPharmaceuticalDoseForm)); 3476 children.add(new Property("route", "CodeableConcept", "The path by which the product is taken into or makes contact with the body. In some regions this is referred to as the licenced or approved route. See also AdministrableProductDefinition resource.", 0, java.lang.Integer.MAX_VALUE, route)); 3477 children.add(new Property("indication", "markdown", "Description of indication(s) for this product, used when structured indications are not required. In cases where structured indications are required, they are captured using the ClinicalUseDefinition resource. An indication is a medical situation for which using the product is appropriate.", 0, 1, indication)); 3478 children.add(new Property("legalStatusOfSupply", "CodeableConcept", "The legal status of supply of the medicinal product as classified by the regulator.", 0, 1, legalStatusOfSupply)); 3479 children.add(new Property("additionalMonitoringIndicator", "CodeableConcept", "Whether the Medicinal Product is subject to additional monitoring for regulatory reasons.", 0, 1, additionalMonitoringIndicator)); 3480 children.add(new Property("specialMeasures", "CodeableConcept", "Whether the Medicinal Product is subject to special measures for regulatory reasons.", 0, java.lang.Integer.MAX_VALUE, specialMeasures)); 3481 children.add(new Property("pediatricUseIndicator", "CodeableConcept", "If authorised for use in children.", 0, 1, pediatricUseIndicator)); 3482 children.add(new Property("classification", "CodeableConcept", "Allows the product to be classified by various systems.", 0, java.lang.Integer.MAX_VALUE, classification)); 3483 children.add(new Property("marketingStatus", "MarketingStatus", "Marketing status of the medicinal product, in contrast to marketing authorization.", 0, java.lang.Integer.MAX_VALUE, marketingStatus)); 3484 children.add(new Property("packagedMedicinalProduct", "CodeableConcept", "Package representation for the product. See also the PackagedProductDefinition resource.", 0, java.lang.Integer.MAX_VALUE, packagedMedicinalProduct)); 3485 children.add(new Property("ingredient", "CodeableConcept", "The ingredients of this medicinal product - when not detailed in other resources. This is only needed if the ingredients are not specified by incoming references from the Ingredient resource, or indirectly via incoming AdministrableProductDefinition, PackagedProductDefinition or ManufacturedItemDefinition references. In cases where those levels of detail are not used, the ingredients may be specified directly here as codes.", 0, java.lang.Integer.MAX_VALUE, ingredient)); 3486 children.add(new Property("impurity", "CodeableReference(SubstanceDefinition)", "Any component of the drug product which is not the chemical entity defined as the drug substance or an excipient in the drug product. This includes process-related impurities and contaminants, product-related impurities including degradation products.", 0, java.lang.Integer.MAX_VALUE, impurity)); 3487 children.add(new Property("attachedDocument", "Reference(DocumentReference)", "Additional information or supporting documentation about the medicinal product.", 0, java.lang.Integer.MAX_VALUE, attachedDocument)); 3488 children.add(new Property("masterFile", "Reference(DocumentReference)", "A master file for the medicinal product (e.g. Pharmacovigilance System Master File). Drug master files (DMFs) are documents submitted to regulatory agencies to provide confidential detailed information about facilities, processes or articles used in the manufacturing, processing, packaging and storing of drug products.", 0, java.lang.Integer.MAX_VALUE, masterFile)); 3489 children.add(new Property("contact", "", "A product specific contact, person (in a role), or an organization.", 0, java.lang.Integer.MAX_VALUE, contact)); 3490 children.add(new Property("clinicalTrial", "Reference(ResearchStudy)", "Clinical trials or studies that this product is involved in.", 0, java.lang.Integer.MAX_VALUE, clinicalTrial)); 3491 children.add(new Property("code", "Coding", "A code that this product is known by, usually within some formal terminology. Products (types of medications) tend to be known by identifiers during development and within regulatory process. However when they are prescribed they tend to be identified by codes. The same product may be have multiple codes, applied to it by multiple organizations.", 0, java.lang.Integer.MAX_VALUE, code)); 3492 children.add(new Property("name", "", "The product's name, including full name and possibly coded parts.", 0, java.lang.Integer.MAX_VALUE, name)); 3493 children.add(new Property("crossReference", "", "Reference to another product, e.g. for linking authorised to investigational product.", 0, java.lang.Integer.MAX_VALUE, crossReference)); 3494 children.add(new Property("operation", "", "A manufacturing or administrative process or step associated with (or performed on) the medicinal product.", 0, java.lang.Integer.MAX_VALUE, operation)); 3495 children.add(new Property("characteristic", "", "Allows the key product features to be recorded, such as \"sugar free\", \"modified release\", \"parallel import\".", 0, java.lang.Integer.MAX_VALUE, characteristic)); 3496 } 3497 3498 @Override 3499 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 3500 switch (_hash) { 3501 case -1618432855: /*identifier*/ return new Property("identifier", "Identifier", "Business identifier for this product. Could be an MPID.", 0, java.lang.Integer.MAX_VALUE, identifier); 3502 case 3575610: /*type*/ return new Property("type", "CodeableConcept", "Regulatory type, e.g. Investigational or Authorized.", 0, 1, type); 3503 case -1326197564: /*domain*/ return new Property("domain", "CodeableConcept", "If this medicine applies to human or veterinary uses.", 0, 1, domain); 3504 case 351608024: /*version*/ return new Property("version", "string", "A business identifier relating to a specific version of the product, this is commonly used to support revisions to an existing product.", 0, 1, version); 3505 case -892481550: /*status*/ return new Property("status", "CodeableConcept", "The status within the lifecycle of this product record. A high-level status, this is not intended to duplicate details carried elsewhere such as legal status, or authorization status.", 0, 1, status); 3506 case 247524032: /*statusDate*/ return new Property("statusDate", "dateTime", "The date at which the given status became applicable.", 0, 1, statusDate); 3507 case -1724546052: /*description*/ return new Property("description", "markdown", "General description of this product.", 0, 1, description); 3508 case -1992898487: /*combinedPharmaceuticalDoseForm*/ return new Property("combinedPharmaceuticalDoseForm", "CodeableConcept", "The dose form for a single part product, or combined form of a multiple part product.", 0, 1, combinedPharmaceuticalDoseForm); 3509 case 108704329: /*route*/ return new Property("route", "CodeableConcept", "The path by which the product is taken into or makes contact with the body. In some regions this is referred to as the licenced or approved route. See also AdministrableProductDefinition resource.", 0, java.lang.Integer.MAX_VALUE, route); 3510 case -597168804: /*indication*/ return new Property("indication", "markdown", "Description of indication(s) for this product, used when structured indications are not required. In cases where structured indications are required, they are captured using the ClinicalUseDefinition resource. An indication is a medical situation for which using the product is appropriate.", 0, 1, indication); 3511 case -844874031: /*legalStatusOfSupply*/ return new Property("legalStatusOfSupply", "CodeableConcept", "The legal status of supply of the medicinal product as classified by the regulator.", 0, 1, legalStatusOfSupply); 3512 case 1935999744: /*additionalMonitoringIndicator*/ return new Property("additionalMonitoringIndicator", "CodeableConcept", "Whether the Medicinal Product is subject to additional monitoring for regulatory reasons.", 0, 1, additionalMonitoringIndicator); 3513 case 975102638: /*specialMeasures*/ return new Property("specialMeasures", "CodeableConcept", "Whether the Medicinal Product is subject to special measures for regulatory reasons.", 0, java.lang.Integer.MAX_VALUE, specialMeasures); 3514 case -1515533081: /*pediatricUseIndicator*/ return new Property("pediatricUseIndicator", "CodeableConcept", "If authorised for use in children.", 0, 1, pediatricUseIndicator); 3515 case 382350310: /*classification*/ return new Property("classification", "CodeableConcept", "Allows the product to be classified by various systems.", 0, java.lang.Integer.MAX_VALUE, classification); 3516 case 70767032: /*marketingStatus*/ return new Property("marketingStatus", "MarketingStatus", "Marketing status of the medicinal product, in contrast to marketing authorization.", 0, java.lang.Integer.MAX_VALUE, marketingStatus); 3517 case -361025513: /*packagedMedicinalProduct*/ return new Property("packagedMedicinalProduct", "CodeableConcept", "Package representation for the product. See also the PackagedProductDefinition resource.", 0, java.lang.Integer.MAX_VALUE, packagedMedicinalProduct); 3518 case -206409263: /*ingredient*/ return new Property("ingredient", "CodeableConcept", "The ingredients of this medicinal product - when not detailed in other resources. This is only needed if the ingredients are not specified by incoming references from the Ingredient resource, or indirectly via incoming AdministrableProductDefinition, PackagedProductDefinition or ManufacturedItemDefinition references. In cases where those levels of detail are not used, the ingredients may be specified directly here as codes.", 0, java.lang.Integer.MAX_VALUE, ingredient); 3519 case -416837467: /*impurity*/ return new Property("impurity", "CodeableReference(SubstanceDefinition)", "Any component of the drug product which is not the chemical entity defined as the drug substance or an excipient in the drug product. This includes process-related impurities and contaminants, product-related impurities including degradation products.", 0, java.lang.Integer.MAX_VALUE, impurity); 3520 case -513945889: /*attachedDocument*/ return new Property("attachedDocument", "Reference(DocumentReference)", "Additional information or supporting documentation about the medicinal product.", 0, java.lang.Integer.MAX_VALUE, attachedDocument); 3521 case -2039573762: /*masterFile*/ return new Property("masterFile", "Reference(DocumentReference)", "A master file for the medicinal product (e.g. Pharmacovigilance System Master File). Drug master files (DMFs) are documents submitted to regulatory agencies to provide confidential detailed information about facilities, processes or articles used in the manufacturing, processing, packaging and storing of drug products.", 0, java.lang.Integer.MAX_VALUE, masterFile); 3522 case 951526432: /*contact*/ return new Property("contact", "", "A product specific contact, person (in a role), or an organization.", 0, java.lang.Integer.MAX_VALUE, contact); 3523 case 1232866243: /*clinicalTrial*/ return new Property("clinicalTrial", "Reference(ResearchStudy)", "Clinical trials or studies that this product is involved in.", 0, java.lang.Integer.MAX_VALUE, clinicalTrial); 3524 case 3059181: /*code*/ return new Property("code", "Coding", "A code that this product is known by, usually within some formal terminology. Products (types of medications) tend to be known by identifiers during development and within regulatory process. However when they are prescribed they tend to be identified by codes. The same product may be have multiple codes, applied to it by multiple organizations.", 0, java.lang.Integer.MAX_VALUE, code); 3525 case 3373707: /*name*/ return new Property("name", "", "The product's name, including full name and possibly coded parts.", 0, java.lang.Integer.MAX_VALUE, name); 3526 case -986968341: /*crossReference*/ return new Property("crossReference", "", "Reference to another product, e.g. for linking authorised to investigational product.", 0, java.lang.Integer.MAX_VALUE, crossReference); 3527 case 1662702951: /*operation*/ return new Property("operation", "", "A manufacturing or administrative process or step associated with (or performed on) the medicinal product.", 0, java.lang.Integer.MAX_VALUE, operation); 3528 case 366313883: /*characteristic*/ return new Property("characteristic", "", "Allows the key product features to be recorded, such as \"sugar free\", \"modified release\", \"parallel import\".", 0, java.lang.Integer.MAX_VALUE, characteristic); 3529 default: return super.getNamedProperty(_hash, _name, _checkValid); 3530 } 3531 3532 } 3533 3534 @Override 3535 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 3536 switch (hash) { 3537 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 3538 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // CodeableConcept 3539 case -1326197564: /*domain*/ return this.domain == null ? new Base[0] : new Base[] {this.domain}; // CodeableConcept 3540 case 351608024: /*version*/ return this.version == null ? new Base[0] : new Base[] {this.version}; // StringType 3541 case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // CodeableConcept 3542 case 247524032: /*statusDate*/ return this.statusDate == null ? new Base[0] : new Base[] {this.statusDate}; // DateTimeType 3543 case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType 3544 case -1992898487: /*combinedPharmaceuticalDoseForm*/ return this.combinedPharmaceuticalDoseForm == null ? new Base[0] : new Base[] {this.combinedPharmaceuticalDoseForm}; // CodeableConcept 3545 case 108704329: /*route*/ return this.route == null ? new Base[0] : this.route.toArray(new Base[this.route.size()]); // CodeableConcept 3546 case -597168804: /*indication*/ return this.indication == null ? new Base[0] : new Base[] {this.indication}; // MarkdownType 3547 case -844874031: /*legalStatusOfSupply*/ return this.legalStatusOfSupply == null ? new Base[0] : new Base[] {this.legalStatusOfSupply}; // CodeableConcept 3548 case 1935999744: /*additionalMonitoringIndicator*/ return this.additionalMonitoringIndicator == null ? new Base[0] : new Base[] {this.additionalMonitoringIndicator}; // CodeableConcept 3549 case 975102638: /*specialMeasures*/ return this.specialMeasures == null ? new Base[0] : this.specialMeasures.toArray(new Base[this.specialMeasures.size()]); // CodeableConcept 3550 case -1515533081: /*pediatricUseIndicator*/ return this.pediatricUseIndicator == null ? new Base[0] : new Base[] {this.pediatricUseIndicator}; // CodeableConcept 3551 case 382350310: /*classification*/ return this.classification == null ? new Base[0] : this.classification.toArray(new Base[this.classification.size()]); // CodeableConcept 3552 case 70767032: /*marketingStatus*/ return this.marketingStatus == null ? new Base[0] : this.marketingStatus.toArray(new Base[this.marketingStatus.size()]); // MarketingStatus 3553 case -361025513: /*packagedMedicinalProduct*/ return this.packagedMedicinalProduct == null ? new Base[0] : this.packagedMedicinalProduct.toArray(new Base[this.packagedMedicinalProduct.size()]); // CodeableConcept 3554 case -206409263: /*ingredient*/ return this.ingredient == null ? new Base[0] : this.ingredient.toArray(new Base[this.ingredient.size()]); // CodeableConcept 3555 case -416837467: /*impurity*/ return this.impurity == null ? new Base[0] : this.impurity.toArray(new Base[this.impurity.size()]); // CodeableReference 3556 case -513945889: /*attachedDocument*/ return this.attachedDocument == null ? new Base[0] : this.attachedDocument.toArray(new Base[this.attachedDocument.size()]); // Reference 3557 case -2039573762: /*masterFile*/ return this.masterFile == null ? new Base[0] : this.masterFile.toArray(new Base[this.masterFile.size()]); // Reference 3558 case 951526432: /*contact*/ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // MedicinalProductDefinitionContactComponent 3559 case 1232866243: /*clinicalTrial*/ return this.clinicalTrial == null ? new Base[0] : this.clinicalTrial.toArray(new Base[this.clinicalTrial.size()]); // Reference 3560 case 3059181: /*code*/ return this.code == null ? new Base[0] : this.code.toArray(new Base[this.code.size()]); // Coding 3561 case 3373707: /*name*/ return this.name == null ? new Base[0] : this.name.toArray(new Base[this.name.size()]); // MedicinalProductDefinitionNameComponent 3562 case -986968341: /*crossReference*/ return this.crossReference == null ? new Base[0] : this.crossReference.toArray(new Base[this.crossReference.size()]); // MedicinalProductDefinitionCrossReferenceComponent 3563 case 1662702951: /*operation*/ return this.operation == null ? new Base[0] : this.operation.toArray(new Base[this.operation.size()]); // MedicinalProductDefinitionOperationComponent 3564 case 366313883: /*characteristic*/ return this.characteristic == null ? new Base[0] : this.characteristic.toArray(new Base[this.characteristic.size()]); // MedicinalProductDefinitionCharacteristicComponent 3565 default: return super.getProperty(hash, name, checkValid); 3566 } 3567 3568 } 3569 3570 @Override 3571 public Base setProperty(int hash, String name, Base value) throws FHIRException { 3572 switch (hash) { 3573 case -1618432855: // identifier 3574 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier 3575 return value; 3576 case 3575610: // type 3577 this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 3578 return value; 3579 case -1326197564: // domain 3580 this.domain = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 3581 return value; 3582 case 351608024: // version 3583 this.version = TypeConvertor.castToString(value); // StringType 3584 return value; 3585 case -892481550: // status 3586 this.status = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 3587 return value; 3588 case 247524032: // statusDate 3589 this.statusDate = TypeConvertor.castToDateTime(value); // DateTimeType 3590 return value; 3591 case -1724546052: // description 3592 this.description = TypeConvertor.castToMarkdown(value); // MarkdownType 3593 return value; 3594 case -1992898487: // combinedPharmaceuticalDoseForm 3595 this.combinedPharmaceuticalDoseForm = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 3596 return value; 3597 case 108704329: // route 3598 this.getRoute().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 3599 return value; 3600 case -597168804: // indication 3601 this.indication = TypeConvertor.castToMarkdown(value); // MarkdownType 3602 return value; 3603 case -844874031: // legalStatusOfSupply 3604 this.legalStatusOfSupply = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 3605 return value; 3606 case 1935999744: // additionalMonitoringIndicator 3607 this.additionalMonitoringIndicator = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 3608 return value; 3609 case 975102638: // specialMeasures 3610 this.getSpecialMeasures().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 3611 return value; 3612 case -1515533081: // pediatricUseIndicator 3613 this.pediatricUseIndicator = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 3614 return value; 3615 case 382350310: // classification 3616 this.getClassification().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 3617 return value; 3618 case 70767032: // marketingStatus 3619 this.getMarketingStatus().add(TypeConvertor.castToMarketingStatus(value)); // MarketingStatus 3620 return value; 3621 case -361025513: // packagedMedicinalProduct 3622 this.getPackagedMedicinalProduct().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 3623 return value; 3624 case -206409263: // ingredient 3625 this.getIngredient().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 3626 return value; 3627 case -416837467: // impurity 3628 this.getImpurity().add(TypeConvertor.castToCodeableReference(value)); // CodeableReference 3629 return value; 3630 case -513945889: // attachedDocument 3631 this.getAttachedDocument().add(TypeConvertor.castToReference(value)); // Reference 3632 return value; 3633 case -2039573762: // masterFile 3634 this.getMasterFile().add(TypeConvertor.castToReference(value)); // Reference 3635 return value; 3636 case 951526432: // contact 3637 this.getContact().add((MedicinalProductDefinitionContactComponent) value); // MedicinalProductDefinitionContactComponent 3638 return value; 3639 case 1232866243: // clinicalTrial 3640 this.getClinicalTrial().add(TypeConvertor.castToReference(value)); // Reference 3641 return value; 3642 case 3059181: // code 3643 this.getCode().add(TypeConvertor.castToCoding(value)); // Coding 3644 return value; 3645 case 3373707: // name 3646 this.getName().add((MedicinalProductDefinitionNameComponent) value); // MedicinalProductDefinitionNameComponent 3647 return value; 3648 case -986968341: // crossReference 3649 this.getCrossReference().add((MedicinalProductDefinitionCrossReferenceComponent) value); // MedicinalProductDefinitionCrossReferenceComponent 3650 return value; 3651 case 1662702951: // operation 3652 this.getOperation().add((MedicinalProductDefinitionOperationComponent) value); // MedicinalProductDefinitionOperationComponent 3653 return value; 3654 case 366313883: // characteristic 3655 this.getCharacteristic().add((MedicinalProductDefinitionCharacteristicComponent) value); // MedicinalProductDefinitionCharacteristicComponent 3656 return value; 3657 default: return super.setProperty(hash, name, value); 3658 } 3659 3660 } 3661 3662 @Override 3663 public Base setProperty(String name, Base value) throws FHIRException { 3664 if (name.equals("identifier")) { 3665 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); 3666 } else if (name.equals("type")) { 3667 this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 3668 } else if (name.equals("domain")) { 3669 this.domain = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 3670 } else if (name.equals("version")) { 3671 this.version = TypeConvertor.castToString(value); // StringType 3672 } else if (name.equals("status")) { 3673 this.status = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 3674 } else if (name.equals("statusDate")) { 3675 this.statusDate = TypeConvertor.castToDateTime(value); // DateTimeType 3676 } else if (name.equals("description")) { 3677 this.description = TypeConvertor.castToMarkdown(value); // MarkdownType 3678 } else if (name.equals("combinedPharmaceuticalDoseForm")) { 3679 this.combinedPharmaceuticalDoseForm = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 3680 } else if (name.equals("route")) { 3681 this.getRoute().add(TypeConvertor.castToCodeableConcept(value)); 3682 } else if (name.equals("indication")) { 3683 this.indication = TypeConvertor.castToMarkdown(value); // MarkdownType 3684 } else if (name.equals("legalStatusOfSupply")) { 3685 this.legalStatusOfSupply = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 3686 } else if (name.equals("additionalMonitoringIndicator")) { 3687 this.additionalMonitoringIndicator = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 3688 } else if (name.equals("specialMeasures")) { 3689 this.getSpecialMeasures().add(TypeConvertor.castToCodeableConcept(value)); 3690 } else if (name.equals("pediatricUseIndicator")) { 3691 this.pediatricUseIndicator = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 3692 } else if (name.equals("classification")) { 3693 this.getClassification().add(TypeConvertor.castToCodeableConcept(value)); 3694 } else if (name.equals("marketingStatus")) { 3695 this.getMarketingStatus().add(TypeConvertor.castToMarketingStatus(value)); 3696 } else if (name.equals("packagedMedicinalProduct")) { 3697 this.getPackagedMedicinalProduct().add(TypeConvertor.castToCodeableConcept(value)); 3698 } else if (name.equals("ingredient")) { 3699 this.getIngredient().add(TypeConvertor.castToCodeableConcept(value)); 3700 } else if (name.equals("impurity")) { 3701 this.getImpurity().add(TypeConvertor.castToCodeableReference(value)); 3702 } else if (name.equals("attachedDocument")) { 3703 this.getAttachedDocument().add(TypeConvertor.castToReference(value)); 3704 } else if (name.equals("masterFile")) { 3705 this.getMasterFile().add(TypeConvertor.castToReference(value)); 3706 } else if (name.equals("contact")) { 3707 this.getContact().add((MedicinalProductDefinitionContactComponent) value); 3708 } else if (name.equals("clinicalTrial")) { 3709 this.getClinicalTrial().add(TypeConvertor.castToReference(value)); 3710 } else if (name.equals("code")) { 3711 this.getCode().add(TypeConvertor.castToCoding(value)); 3712 } else if (name.equals("name")) { 3713 this.getName().add((MedicinalProductDefinitionNameComponent) value); 3714 } else if (name.equals("crossReference")) { 3715 this.getCrossReference().add((MedicinalProductDefinitionCrossReferenceComponent) value); 3716 } else if (name.equals("operation")) { 3717 this.getOperation().add((MedicinalProductDefinitionOperationComponent) value); 3718 } else if (name.equals("characteristic")) { 3719 this.getCharacteristic().add((MedicinalProductDefinitionCharacteristicComponent) value); 3720 } else 3721 return super.setProperty(name, value); 3722 return value; 3723 } 3724 3725 @Override 3726 public Base makeProperty(int hash, String name) throws FHIRException { 3727 switch (hash) { 3728 case -1618432855: return addIdentifier(); 3729 case 3575610: return getType(); 3730 case -1326197564: return getDomain(); 3731 case 351608024: return getVersionElement(); 3732 case -892481550: return getStatus(); 3733 case 247524032: return getStatusDateElement(); 3734 case -1724546052: return getDescriptionElement(); 3735 case -1992898487: return getCombinedPharmaceuticalDoseForm(); 3736 case 108704329: return addRoute(); 3737 case -597168804: return getIndicationElement(); 3738 case -844874031: return getLegalStatusOfSupply(); 3739 case 1935999744: return getAdditionalMonitoringIndicator(); 3740 case 975102638: return addSpecialMeasures(); 3741 case -1515533081: return getPediatricUseIndicator(); 3742 case 382350310: return addClassification(); 3743 case 70767032: return addMarketingStatus(); 3744 case -361025513: return addPackagedMedicinalProduct(); 3745 case -206409263: return addIngredient(); 3746 case -416837467: return addImpurity(); 3747 case -513945889: return addAttachedDocument(); 3748 case -2039573762: return addMasterFile(); 3749 case 951526432: return addContact(); 3750 case 1232866243: return addClinicalTrial(); 3751 case 3059181: return addCode(); 3752 case 3373707: return addName(); 3753 case -986968341: return addCrossReference(); 3754 case 1662702951: return addOperation(); 3755 case 366313883: return addCharacteristic(); 3756 default: return super.makeProperty(hash, name); 3757 } 3758 3759 } 3760 3761 @Override 3762 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 3763 switch (hash) { 3764 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 3765 case 3575610: /*type*/ return new String[] {"CodeableConcept"}; 3766 case -1326197564: /*domain*/ return new String[] {"CodeableConcept"}; 3767 case 351608024: /*version*/ return new String[] {"string"}; 3768 case -892481550: /*status*/ return new String[] {"CodeableConcept"}; 3769 case 247524032: /*statusDate*/ return new String[] {"dateTime"}; 3770 case -1724546052: /*description*/ return new String[] {"markdown"}; 3771 case -1992898487: /*combinedPharmaceuticalDoseForm*/ return new String[] {"CodeableConcept"}; 3772 case 108704329: /*route*/ return new String[] {"CodeableConcept"}; 3773 case -597168804: /*indication*/ return new String[] {"markdown"}; 3774 case -844874031: /*legalStatusOfSupply*/ return new String[] {"CodeableConcept"}; 3775 case 1935999744: /*additionalMonitoringIndicator*/ return new String[] {"CodeableConcept"}; 3776 case 975102638: /*specialMeasures*/ return new String[] {"CodeableConcept"}; 3777 case -1515533081: /*pediatricUseIndicator*/ return new String[] {"CodeableConcept"}; 3778 case 382350310: /*classification*/ return new String[] {"CodeableConcept"}; 3779 case 70767032: /*marketingStatus*/ return new String[] {"MarketingStatus"}; 3780 case -361025513: /*packagedMedicinalProduct*/ return new String[] {"CodeableConcept"}; 3781 case -206409263: /*ingredient*/ return new String[] {"CodeableConcept"}; 3782 case -416837467: /*impurity*/ return new String[] {"CodeableReference"}; 3783 case -513945889: /*attachedDocument*/ return new String[] {"Reference"}; 3784 case -2039573762: /*masterFile*/ return new String[] {"Reference"}; 3785 case 951526432: /*contact*/ return new String[] {}; 3786 case 1232866243: /*clinicalTrial*/ return new String[] {"Reference"}; 3787 case 3059181: /*code*/ return new String[] {"Coding"}; 3788 case 3373707: /*name*/ return new String[] {}; 3789 case -986968341: /*crossReference*/ return new String[] {}; 3790 case 1662702951: /*operation*/ return new String[] {}; 3791 case 366313883: /*characteristic*/ return new String[] {}; 3792 default: return super.getTypesForProperty(hash, name); 3793 } 3794 3795 } 3796 3797 @Override 3798 public Base addChild(String name) throws FHIRException { 3799 if (name.equals("identifier")) { 3800 return addIdentifier(); 3801 } 3802 else if (name.equals("type")) { 3803 this.type = new CodeableConcept(); 3804 return this.type; 3805 } 3806 else if (name.equals("domain")) { 3807 this.domain = new CodeableConcept(); 3808 return this.domain; 3809 } 3810 else if (name.equals("version")) { 3811 throw new FHIRException("Cannot call addChild on a primitive type MedicinalProductDefinition.version"); 3812 } 3813 else if (name.equals("status")) { 3814 this.status = new CodeableConcept(); 3815 return this.status; 3816 } 3817 else if (name.equals("statusDate")) { 3818 throw new FHIRException("Cannot call addChild on a primitive type MedicinalProductDefinition.statusDate"); 3819 } 3820 else if (name.equals("description")) { 3821 throw new FHIRException("Cannot call addChild on a primitive type MedicinalProductDefinition.description"); 3822 } 3823 else if (name.equals("combinedPharmaceuticalDoseForm")) { 3824 this.combinedPharmaceuticalDoseForm = new CodeableConcept(); 3825 return this.combinedPharmaceuticalDoseForm; 3826 } 3827 else if (name.equals("route")) { 3828 return addRoute(); 3829 } 3830 else if (name.equals("indication")) { 3831 throw new FHIRException("Cannot call addChild on a primitive type MedicinalProductDefinition.indication"); 3832 } 3833 else if (name.equals("legalStatusOfSupply")) { 3834 this.legalStatusOfSupply = new CodeableConcept(); 3835 return this.legalStatusOfSupply; 3836 } 3837 else if (name.equals("additionalMonitoringIndicator")) { 3838 this.additionalMonitoringIndicator = new CodeableConcept(); 3839 return this.additionalMonitoringIndicator; 3840 } 3841 else if (name.equals("specialMeasures")) { 3842 return addSpecialMeasures(); 3843 } 3844 else if (name.equals("pediatricUseIndicator")) { 3845 this.pediatricUseIndicator = new CodeableConcept(); 3846 return this.pediatricUseIndicator; 3847 } 3848 else if (name.equals("classification")) { 3849 return addClassification(); 3850 } 3851 else if (name.equals("marketingStatus")) { 3852 return addMarketingStatus(); 3853 } 3854 else if (name.equals("packagedMedicinalProduct")) { 3855 return addPackagedMedicinalProduct(); 3856 } 3857 else if (name.equals("ingredient")) { 3858 return addIngredient(); 3859 } 3860 else if (name.equals("impurity")) { 3861 return addImpurity(); 3862 } 3863 else if (name.equals("attachedDocument")) { 3864 return addAttachedDocument(); 3865 } 3866 else if (name.equals("masterFile")) { 3867 return addMasterFile(); 3868 } 3869 else if (name.equals("contact")) { 3870 return addContact(); 3871 } 3872 else if (name.equals("clinicalTrial")) { 3873 return addClinicalTrial(); 3874 } 3875 else if (name.equals("code")) { 3876 return addCode(); 3877 } 3878 else if (name.equals("name")) { 3879 return addName(); 3880 } 3881 else if (name.equals("crossReference")) { 3882 return addCrossReference(); 3883 } 3884 else if (name.equals("operation")) { 3885 return addOperation(); 3886 } 3887 else if (name.equals("characteristic")) { 3888 return addCharacteristic(); 3889 } 3890 else 3891 return super.addChild(name); 3892 } 3893 3894 public String fhirType() { 3895 return "MedicinalProductDefinition"; 3896 3897 } 3898 3899 public MedicinalProductDefinition copy() { 3900 MedicinalProductDefinition dst = new MedicinalProductDefinition(); 3901 copyValues(dst); 3902 return dst; 3903 } 3904 3905 public void copyValues(MedicinalProductDefinition dst) { 3906 super.copyValues(dst); 3907 if (identifier != null) { 3908 dst.identifier = new ArrayList<Identifier>(); 3909 for (Identifier i : identifier) 3910 dst.identifier.add(i.copy()); 3911 }; 3912 dst.type = type == null ? null : type.copy(); 3913 dst.domain = domain == null ? null : domain.copy(); 3914 dst.version = version == null ? null : version.copy(); 3915 dst.status = status == null ? null : status.copy(); 3916 dst.statusDate = statusDate == null ? null : statusDate.copy(); 3917 dst.description = description == null ? null : description.copy(); 3918 dst.combinedPharmaceuticalDoseForm = combinedPharmaceuticalDoseForm == null ? null : combinedPharmaceuticalDoseForm.copy(); 3919 if (route != null) { 3920 dst.route = new ArrayList<CodeableConcept>(); 3921 for (CodeableConcept i : route) 3922 dst.route.add(i.copy()); 3923 }; 3924 dst.indication = indication == null ? null : indication.copy(); 3925 dst.legalStatusOfSupply = legalStatusOfSupply == null ? null : legalStatusOfSupply.copy(); 3926 dst.additionalMonitoringIndicator = additionalMonitoringIndicator == null ? null : additionalMonitoringIndicator.copy(); 3927 if (specialMeasures != null) { 3928 dst.specialMeasures = new ArrayList<CodeableConcept>(); 3929 for (CodeableConcept i : specialMeasures) 3930 dst.specialMeasures.add(i.copy()); 3931 }; 3932 dst.pediatricUseIndicator = pediatricUseIndicator == null ? null : pediatricUseIndicator.copy(); 3933 if (classification != null) { 3934 dst.classification = new ArrayList<CodeableConcept>(); 3935 for (CodeableConcept i : classification) 3936 dst.classification.add(i.copy()); 3937 }; 3938 if (marketingStatus != null) { 3939 dst.marketingStatus = new ArrayList<MarketingStatus>(); 3940 for (MarketingStatus i : marketingStatus) 3941 dst.marketingStatus.add(i.copy()); 3942 }; 3943 if (packagedMedicinalProduct != null) { 3944 dst.packagedMedicinalProduct = new ArrayList<CodeableConcept>(); 3945 for (CodeableConcept i : packagedMedicinalProduct) 3946 dst.packagedMedicinalProduct.add(i.copy()); 3947 }; 3948 if (ingredient != null) { 3949 dst.ingredient = new ArrayList<CodeableConcept>(); 3950 for (CodeableConcept i : ingredient) 3951 dst.ingredient.add(i.copy()); 3952 }; 3953 if (impurity != null) { 3954 dst.impurity = new ArrayList<CodeableReference>(); 3955 for (CodeableReference i : impurity) 3956 dst.impurity.add(i.copy()); 3957 }; 3958 if (attachedDocument != null) { 3959 dst.attachedDocument = new ArrayList<Reference>(); 3960 for (Reference i : attachedDocument) 3961 dst.attachedDocument.add(i.copy()); 3962 }; 3963 if (masterFile != null) { 3964 dst.masterFile = new ArrayList<Reference>(); 3965 for (Reference i : masterFile) 3966 dst.masterFile.add(i.copy()); 3967 }; 3968 if (contact != null) { 3969 dst.contact = new ArrayList<MedicinalProductDefinitionContactComponent>(); 3970 for (MedicinalProductDefinitionContactComponent i : contact) 3971 dst.contact.add(i.copy()); 3972 }; 3973 if (clinicalTrial != null) { 3974 dst.clinicalTrial = new ArrayList<Reference>(); 3975 for (Reference i : clinicalTrial) 3976 dst.clinicalTrial.add(i.copy()); 3977 }; 3978 if (code != null) { 3979 dst.code = new ArrayList<Coding>(); 3980 for (Coding i : code) 3981 dst.code.add(i.copy()); 3982 }; 3983 if (name != null) { 3984 dst.name = new ArrayList<MedicinalProductDefinitionNameComponent>(); 3985 for (MedicinalProductDefinitionNameComponent i : name) 3986 dst.name.add(i.copy()); 3987 }; 3988 if (crossReference != null) { 3989 dst.crossReference = new ArrayList<MedicinalProductDefinitionCrossReferenceComponent>(); 3990 for (MedicinalProductDefinitionCrossReferenceComponent i : crossReference) 3991 dst.crossReference.add(i.copy()); 3992 }; 3993 if (operation != null) { 3994 dst.operation = new ArrayList<MedicinalProductDefinitionOperationComponent>(); 3995 for (MedicinalProductDefinitionOperationComponent i : operation) 3996 dst.operation.add(i.copy()); 3997 }; 3998 if (characteristic != null) { 3999 dst.characteristic = new ArrayList<MedicinalProductDefinitionCharacteristicComponent>(); 4000 for (MedicinalProductDefinitionCharacteristicComponent i : characteristic) 4001 dst.characteristic.add(i.copy()); 4002 }; 4003 } 4004 4005 protected MedicinalProductDefinition typedCopy() { 4006 return copy(); 4007 } 4008 4009 @Override 4010 public boolean equalsDeep(Base other_) { 4011 if (!super.equalsDeep(other_)) 4012 return false; 4013 if (!(other_ instanceof MedicinalProductDefinition)) 4014 return false; 4015 MedicinalProductDefinition o = (MedicinalProductDefinition) other_; 4016 return compareDeep(identifier, o.identifier, true) && compareDeep(type, o.type, true) && compareDeep(domain, o.domain, true) 4017 && compareDeep(version, o.version, true) && compareDeep(status, o.status, true) && compareDeep(statusDate, o.statusDate, true) 4018 && compareDeep(description, o.description, true) && compareDeep(combinedPharmaceuticalDoseForm, o.combinedPharmaceuticalDoseForm, true) 4019 && compareDeep(route, o.route, true) && compareDeep(indication, o.indication, true) && compareDeep(legalStatusOfSupply, o.legalStatusOfSupply, true) 4020 && compareDeep(additionalMonitoringIndicator, o.additionalMonitoringIndicator, true) && compareDeep(specialMeasures, o.specialMeasures, true) 4021 && compareDeep(pediatricUseIndicator, o.pediatricUseIndicator, true) && compareDeep(classification, o.classification, true) 4022 && compareDeep(marketingStatus, o.marketingStatus, true) && compareDeep(packagedMedicinalProduct, o.packagedMedicinalProduct, true) 4023 && compareDeep(ingredient, o.ingredient, true) && compareDeep(impurity, o.impurity, true) && compareDeep(attachedDocument, o.attachedDocument, true) 4024 && compareDeep(masterFile, o.masterFile, true) && compareDeep(contact, o.contact, true) && compareDeep(clinicalTrial, o.clinicalTrial, true) 4025 && compareDeep(code, o.code, true) && compareDeep(name, o.name, true) && compareDeep(crossReference, o.crossReference, true) 4026 && compareDeep(operation, o.operation, true) && compareDeep(characteristic, o.characteristic, true) 4027 ; 4028 } 4029 4030 @Override 4031 public boolean equalsShallow(Base other_) { 4032 if (!super.equalsShallow(other_)) 4033 return false; 4034 if (!(other_ instanceof MedicinalProductDefinition)) 4035 return false; 4036 MedicinalProductDefinition o = (MedicinalProductDefinition) other_; 4037 return compareValues(version, o.version, true) && compareValues(statusDate, o.statusDate, true) && compareValues(description, o.description, true) 4038 && compareValues(indication, o.indication, true); 4039 } 4040 4041 public boolean isEmpty() { 4042 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, type, domain 4043 , version, status, statusDate, description, combinedPharmaceuticalDoseForm, route 4044 , indication, legalStatusOfSupply, additionalMonitoringIndicator, specialMeasures, pediatricUseIndicator 4045 , classification, marketingStatus, packagedMedicinalProduct, ingredient, impurity 4046 , attachedDocument, masterFile, contact, clinicalTrial, code, name, crossReference 4047 , operation, characteristic); 4048 } 4049 4050 @Override 4051 public ResourceType getResourceType() { 4052 return ResourceType.MedicinalProductDefinition; 4053 } 4054 4055 /** 4056 * Search parameter: <b>characteristic-type</b> 4057 * <p> 4058 * Description: <b>A category for the characteristic</b><br> 4059 * Type: <b>token</b><br> 4060 * Path: <b>MedicinalProductDefinition.characteristic.type</b><br> 4061 * </p> 4062 */ 4063 @SearchParamDefinition(name="characteristic-type", path="MedicinalProductDefinition.characteristic.type", description="A category for the characteristic", type="token" ) 4064 public static final String SP_CHARACTERISTIC_TYPE = "characteristic-type"; 4065 /** 4066 * <b>Fluent Client</b> search parameter constant for <b>characteristic-type</b> 4067 * <p> 4068 * Description: <b>A category for the characteristic</b><br> 4069 * Type: <b>token</b><br> 4070 * Path: <b>MedicinalProductDefinition.characteristic.type</b><br> 4071 * </p> 4072 */ 4073 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CHARACTERISTIC_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CHARACTERISTIC_TYPE); 4074 4075 /** 4076 * Search parameter: <b>characteristic</b> 4077 * <p> 4078 * Description: <b>Allows the key product features to be recorded, such as "sugar free", "modified release", "parallel import"</b><br> 4079 * Type: <b>token</b><br> 4080 * Path: <b>MedicinalProductDefinition.characteristic.value</b><br> 4081 * </p> 4082 */ 4083 @SearchParamDefinition(name="characteristic", path="MedicinalProductDefinition.characteristic.value", description="Allows the key product features to be recorded, such as \"sugar free\", \"modified release\", \"parallel import\"", type="token" ) 4084 public static final String SP_CHARACTERISTIC = "characteristic"; 4085 /** 4086 * <b>Fluent Client</b> search parameter constant for <b>characteristic</b> 4087 * <p> 4088 * Description: <b>Allows the key product features to be recorded, such as "sugar free", "modified release", "parallel import"</b><br> 4089 * Type: <b>token</b><br> 4090 * Path: <b>MedicinalProductDefinition.characteristic.value</b><br> 4091 * </p> 4092 */ 4093 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CHARACTERISTIC = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CHARACTERISTIC); 4094 4095 /** 4096 * Search parameter: <b>contact</b> 4097 * <p> 4098 * Description: <b>A product specific contact, person (in a role), or an organization</b><br> 4099 * Type: <b>reference</b><br> 4100 * Path: <b>MedicinalProductDefinition.contact.contact</b><br> 4101 * </p> 4102 */ 4103 @SearchParamDefinition(name="contact", path="MedicinalProductDefinition.contact.contact", description="A product specific contact, person (in a role), or an organization", type="reference", target={Organization.class, PractitionerRole.class } ) 4104 public static final String SP_CONTACT = "contact"; 4105 /** 4106 * <b>Fluent Client</b> search parameter constant for <b>contact</b> 4107 * <p> 4108 * Description: <b>A product specific contact, person (in a role), or an organization</b><br> 4109 * Type: <b>reference</b><br> 4110 * Path: <b>MedicinalProductDefinition.contact.contact</b><br> 4111 * </p> 4112 */ 4113 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam CONTACT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_CONTACT); 4114 4115/** 4116 * Constant for fluent queries to be used to add include statements. Specifies 4117 * the path value of "<b>MedicinalProductDefinition:contact</b>". 4118 */ 4119 public static final ca.uhn.fhir.model.api.Include INCLUDE_CONTACT = new ca.uhn.fhir.model.api.Include("MedicinalProductDefinition:contact").toLocked(); 4120 4121 /** 4122 * Search parameter: <b>domain</b> 4123 * <p> 4124 * Description: <b>If this medicine applies to human or veterinary uses</b><br> 4125 * Type: <b>token</b><br> 4126 * Path: <b>MedicinalProductDefinition.domain</b><br> 4127 * </p> 4128 */ 4129 @SearchParamDefinition(name="domain", path="MedicinalProductDefinition.domain", description="If this medicine applies to human or veterinary uses", type="token" ) 4130 public static final String SP_DOMAIN = "domain"; 4131 /** 4132 * <b>Fluent Client</b> search parameter constant for <b>domain</b> 4133 * <p> 4134 * Description: <b>If this medicine applies to human or veterinary uses</b><br> 4135 * Type: <b>token</b><br> 4136 * Path: <b>MedicinalProductDefinition.domain</b><br> 4137 * </p> 4138 */ 4139 public static final ca.uhn.fhir.rest.gclient.TokenClientParam DOMAIN = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_DOMAIN); 4140 4141 /** 4142 * Search parameter: <b>identifier</b> 4143 * <p> 4144 * Description: <b>Business identifier for this product. Could be an MPID</b><br> 4145 * Type: <b>token</b><br> 4146 * Path: <b>MedicinalProductDefinition.identifier</b><br> 4147 * </p> 4148 */ 4149 @SearchParamDefinition(name="identifier", path="MedicinalProductDefinition.identifier", description="Business identifier for this product. Could be an MPID", type="token" ) 4150 public static final String SP_IDENTIFIER = "identifier"; 4151 /** 4152 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 4153 * <p> 4154 * Description: <b>Business identifier for this product. Could be an MPID</b><br> 4155 * Type: <b>token</b><br> 4156 * Path: <b>MedicinalProductDefinition.identifier</b><br> 4157 * </p> 4158 */ 4159 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 4160 4161 /** 4162 * Search parameter: <b>ingredient</b> 4163 * <p> 4164 * Description: <b>An ingredient of this product</b><br> 4165 * Type: <b>token</b><br> 4166 * Path: <b>MedicinalProductDefinition.ingredient</b><br> 4167 * </p> 4168 */ 4169 @SearchParamDefinition(name="ingredient", path="MedicinalProductDefinition.ingredient", description="An ingredient of this product", type="token" ) 4170 public static final String SP_INGREDIENT = "ingredient"; 4171 /** 4172 * <b>Fluent Client</b> search parameter constant for <b>ingredient</b> 4173 * <p> 4174 * Description: <b>An ingredient of this product</b><br> 4175 * Type: <b>token</b><br> 4176 * Path: <b>MedicinalProductDefinition.ingredient</b><br> 4177 * </p> 4178 */ 4179 public static final ca.uhn.fhir.rest.gclient.TokenClientParam INGREDIENT = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_INGREDIENT); 4180 4181 /** 4182 * Search parameter: <b>master-file</b> 4183 * <p> 4184 * Description: <b>A master file for to the medicinal product (e.g. Pharmacovigilance System Master File)</b><br> 4185 * Type: <b>reference</b><br> 4186 * Path: <b>MedicinalProductDefinition.masterFile</b><br> 4187 * </p> 4188 */ 4189 @SearchParamDefinition(name="master-file", path="MedicinalProductDefinition.masterFile", description="A master file for to the medicinal product (e.g. Pharmacovigilance System Master File)", type="reference", target={DocumentReference.class } ) 4190 public static final String SP_MASTER_FILE = "master-file"; 4191 /** 4192 * <b>Fluent Client</b> search parameter constant for <b>master-file</b> 4193 * <p> 4194 * Description: <b>A master file for to the medicinal product (e.g. Pharmacovigilance System Master File)</b><br> 4195 * Type: <b>reference</b><br> 4196 * Path: <b>MedicinalProductDefinition.masterFile</b><br> 4197 * </p> 4198 */ 4199 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam MASTER_FILE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_MASTER_FILE); 4200 4201/** 4202 * Constant for fluent queries to be used to add include statements. Specifies 4203 * the path value of "<b>MedicinalProductDefinition:master-file</b>". 4204 */ 4205 public static final ca.uhn.fhir.model.api.Include INCLUDE_MASTER_FILE = new ca.uhn.fhir.model.api.Include("MedicinalProductDefinition:master-file").toLocked(); 4206 4207 /** 4208 * Search parameter: <b>name-language</b> 4209 * <p> 4210 * Description: <b>Language code for this name</b><br> 4211 * Type: <b>token</b><br> 4212 * Path: <b>MedicinalProductDefinition.name.countryLanguage.language</b><br> 4213 * </p> 4214 */ 4215 @SearchParamDefinition(name="name-language", path="MedicinalProductDefinition.name.countryLanguage.language", description="Language code for this name", type="token" ) 4216 public static final String SP_NAME_LANGUAGE = "name-language"; 4217 /** 4218 * <b>Fluent Client</b> search parameter constant for <b>name-language</b> 4219 * <p> 4220 * Description: <b>Language code for this name</b><br> 4221 * Type: <b>token</b><br> 4222 * Path: <b>MedicinalProductDefinition.name.countryLanguage.language</b><br> 4223 * </p> 4224 */ 4225 public static final ca.uhn.fhir.rest.gclient.TokenClientParam NAME_LANGUAGE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_NAME_LANGUAGE); 4226 4227 /** 4228 * Search parameter: <b>name</b> 4229 * <p> 4230 * Description: <b>The full product name</b><br> 4231 * Type: <b>string</b><br> 4232 * Path: <b>MedicinalProductDefinition.name.productName</b><br> 4233 * </p> 4234 */ 4235 @SearchParamDefinition(name="name", path="MedicinalProductDefinition.name.productName", description="The full product name", type="string" ) 4236 public static final String SP_NAME = "name"; 4237 /** 4238 * <b>Fluent Client</b> search parameter constant for <b>name</b> 4239 * <p> 4240 * Description: <b>The full product name</b><br> 4241 * Type: <b>string</b><br> 4242 * Path: <b>MedicinalProductDefinition.name.productName</b><br> 4243 * </p> 4244 */ 4245 public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_NAME); 4246 4247 /** 4248 * Search parameter: <b>product-classification</b> 4249 * <p> 4250 * Description: <b>Allows the product to be classified by various systems</b><br> 4251 * Type: <b>token</b><br> 4252 * Path: <b>MedicinalProductDefinition.classification</b><br> 4253 * </p> 4254 */ 4255 @SearchParamDefinition(name="product-classification", path="MedicinalProductDefinition.classification", description="Allows the product to be classified by various systems", type="token" ) 4256 public static final String SP_PRODUCT_CLASSIFICATION = "product-classification"; 4257 /** 4258 * <b>Fluent Client</b> search parameter constant for <b>product-classification</b> 4259 * <p> 4260 * Description: <b>Allows the product to be classified by various systems</b><br> 4261 * Type: <b>token</b><br> 4262 * Path: <b>MedicinalProductDefinition.classification</b><br> 4263 * </p> 4264 */ 4265 public static final ca.uhn.fhir.rest.gclient.TokenClientParam PRODUCT_CLASSIFICATION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_PRODUCT_CLASSIFICATION); 4266 4267 /** 4268 * Search parameter: <b>status</b> 4269 * <p> 4270 * Description: <b>The status within the lifecycle of this product record. A high-level status, this is not intended to duplicate details carried elsewhere such as legal status, or authorization status</b><br> 4271 * Type: <b>token</b><br> 4272 * Path: <b>MedicinalProductDefinition.status</b><br> 4273 * </p> 4274 */ 4275 @SearchParamDefinition(name="status", path="MedicinalProductDefinition.status", description="The status within the lifecycle of this product record. A high-level status, this is not intended to duplicate details carried elsewhere such as legal status, or authorization status", type="token" ) 4276 public static final String SP_STATUS = "status"; 4277 /** 4278 * <b>Fluent Client</b> search parameter constant for <b>status</b> 4279 * <p> 4280 * Description: <b>The status within the lifecycle of this product record. A high-level status, this is not intended to duplicate details carried elsewhere such as legal status, or authorization status</b><br> 4281 * Type: <b>token</b><br> 4282 * Path: <b>MedicinalProductDefinition.status</b><br> 4283 * </p> 4284 */ 4285 public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS); 4286 4287 /** 4288 * Search parameter: <b>type</b> 4289 * <p> 4290 * Description: <b>Regulatory type, e.g. Investigational or Authorized</b><br> 4291 * Type: <b>token</b><br> 4292 * Path: <b>MedicinalProductDefinition.type</b><br> 4293 * </p> 4294 */ 4295 @SearchParamDefinition(name="type", path="MedicinalProductDefinition.type", description="Regulatory type, e.g. Investigational or Authorized", type="token" ) 4296 public static final String SP_TYPE = "type"; 4297 /** 4298 * <b>Fluent Client</b> search parameter constant for <b>type</b> 4299 * <p> 4300 * Description: <b>Regulatory type, e.g. Investigational or Authorized</b><br> 4301 * Type: <b>token</b><br> 4302 * Path: <b>MedicinalProductDefinition.type</b><br> 4303 * </p> 4304 */ 4305 public static final ca.uhn.fhir.rest.gclient.TokenClientParam TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TYPE); 4306 4307 4308} 4309