001package org.hl7.fhir.r4b.model; 002 003 004/* 005 Copyright (c) 2011+, HL7, Inc. 006 All rights reserved. 007 008 Redistribution and use in source and binary forms, with or without modification, \ 009 are permitted provided that the following conditions are met: 010 011 * Redistributions of source code must retain the above copyright notice, this \ 012 list of conditions and the following disclaimer. 013 * Redistributions in binary form must reproduce the above copyright notice, \ 014 this list of conditions and the following disclaimer in the documentation \ 015 and/or other materials provided with the distribution. 016 * Neither the name of HL7 nor the names of its contributors may be used to 017 endorse or promote products derived from this software without specific 018 prior written permission. 019 020 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \ 021 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \ 022 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \ 023 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \ 024 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT \ 025 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR \ 026 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, \ 027 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) \ 028 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE \ 029 POSSIBILITY OF SUCH DAMAGE. 030 */ 031 032// Generated on Fri, Dec 31, 2021 05:58+1100 for FHIR v4.3.0-snapshot1 033 034import java.util.ArrayList; 035import java.util.Date; 036import java.util.List; 037import org.hl7.fhir.utilities.Utilities; 038import org.hl7.fhir.r4b.model.Enumerations.*; 039import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 040import org.hl7.fhir.exceptions.FHIRException; 041import org.hl7.fhir.instance.model.api.ICompositeType; 042import ca.uhn.fhir.model.api.annotation.ResourceDef; 043import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 044import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 045import ca.uhn.fhir.model.api.annotation.Child; 046import ca.uhn.fhir.model.api.annotation.ChildOrder; 047import ca.uhn.fhir.model.api.annotation.Description; 048import ca.uhn.fhir.model.api.annotation.Block; 049 050/** 051 * The characteristics, operational status and capabilities of a medical-related component of a medical device. 052 */ 053@ResourceDef(name="DeviceDefinition", profile="http://hl7.org/fhir/StructureDefinition/DeviceDefinition") 054public class DeviceDefinition extends DomainResource { 055 056 @Block() 057 public static class DeviceDefinitionUdiDeviceIdentifierComponent extends BackboneElement implements IBaseBackboneElement { 058 /** 059 * The identifier that is to be associated with every Device that references this DeviceDefintiion for the issuer and jurisdication porvided in the DeviceDefinition.udiDeviceIdentifier. 060 */ 061 @Child(name = "deviceIdentifier", type = {StringType.class}, order=1, min=1, max=1, modifier=false, summary=false) 062 @Description(shortDefinition="The identifier that is to be associated with every Device that references this DeviceDefintiion for the issuer and jurisdication porvided in the DeviceDefinition.udiDeviceIdentifier", formalDefinition="The identifier that is to be associated with every Device that references this DeviceDefintiion for the issuer and jurisdication porvided in the DeviceDefinition.udiDeviceIdentifier." ) 063 protected StringType deviceIdentifier; 064 065 /** 066 * The organization that assigns the identifier algorithm. 067 */ 068 @Child(name = "issuer", type = {UriType.class}, order=2, min=1, max=1, modifier=false, summary=false) 069 @Description(shortDefinition="The organization that assigns the identifier algorithm", formalDefinition="The organization that assigns the identifier algorithm." ) 070 protected UriType issuer; 071 072 /** 073 * The jurisdiction to which the deviceIdentifier applies. 074 */ 075 @Child(name = "jurisdiction", type = {UriType.class}, order=3, min=1, max=1, modifier=false, summary=false) 076 @Description(shortDefinition="The jurisdiction to which the deviceIdentifier applies", formalDefinition="The jurisdiction to which the deviceIdentifier applies." ) 077 protected UriType jurisdiction; 078 079 private static final long serialVersionUID = -1577319218L; 080 081 /** 082 * Constructor 083 */ 084 public DeviceDefinitionUdiDeviceIdentifierComponent() { 085 super(); 086 } 087 088 /** 089 * Constructor 090 */ 091 public DeviceDefinitionUdiDeviceIdentifierComponent(String deviceIdentifier, String issuer, String jurisdiction) { 092 super(); 093 this.setDeviceIdentifier(deviceIdentifier); 094 this.setIssuer(issuer); 095 this.setJurisdiction(jurisdiction); 096 } 097 098 /** 099 * @return {@link #deviceIdentifier} (The identifier that is to be associated with every Device that references this DeviceDefintiion for the issuer and jurisdication porvided in the DeviceDefinition.udiDeviceIdentifier.). This is the underlying object with id, value and extensions. The accessor "getDeviceIdentifier" gives direct access to the value 100 */ 101 public StringType getDeviceIdentifierElement() { 102 if (this.deviceIdentifier == null) 103 if (Configuration.errorOnAutoCreate()) 104 throw new Error("Attempt to auto-create DeviceDefinitionUdiDeviceIdentifierComponent.deviceIdentifier"); 105 else if (Configuration.doAutoCreate()) 106 this.deviceIdentifier = new StringType(); // bb 107 return this.deviceIdentifier; 108 } 109 110 public boolean hasDeviceIdentifierElement() { 111 return this.deviceIdentifier != null && !this.deviceIdentifier.isEmpty(); 112 } 113 114 public boolean hasDeviceIdentifier() { 115 return this.deviceIdentifier != null && !this.deviceIdentifier.isEmpty(); 116 } 117 118 /** 119 * @param value {@link #deviceIdentifier} (The identifier that is to be associated with every Device that references this DeviceDefintiion for the issuer and jurisdication porvided in the DeviceDefinition.udiDeviceIdentifier.). This is the underlying object with id, value and extensions. The accessor "getDeviceIdentifier" gives direct access to the value 120 */ 121 public DeviceDefinitionUdiDeviceIdentifierComponent setDeviceIdentifierElement(StringType value) { 122 this.deviceIdentifier = value; 123 return this; 124 } 125 126 /** 127 * @return The identifier that is to be associated with every Device that references this DeviceDefintiion for the issuer and jurisdication porvided in the DeviceDefinition.udiDeviceIdentifier. 128 */ 129 public String getDeviceIdentifier() { 130 return this.deviceIdentifier == null ? null : this.deviceIdentifier.getValue(); 131 } 132 133 /** 134 * @param value The identifier that is to be associated with every Device that references this DeviceDefintiion for the issuer and jurisdication porvided in the DeviceDefinition.udiDeviceIdentifier. 135 */ 136 public DeviceDefinitionUdiDeviceIdentifierComponent setDeviceIdentifier(String value) { 137 if (this.deviceIdentifier == null) 138 this.deviceIdentifier = new StringType(); 139 this.deviceIdentifier.setValue(value); 140 return this; 141 } 142 143 /** 144 * @return {@link #issuer} (The organization that assigns the identifier algorithm.). This is the underlying object with id, value and extensions. The accessor "getIssuer" gives direct access to the value 145 */ 146 public UriType getIssuerElement() { 147 if (this.issuer == null) 148 if (Configuration.errorOnAutoCreate()) 149 throw new Error("Attempt to auto-create DeviceDefinitionUdiDeviceIdentifierComponent.issuer"); 150 else if (Configuration.doAutoCreate()) 151 this.issuer = new UriType(); // bb 152 return this.issuer; 153 } 154 155 public boolean hasIssuerElement() { 156 return this.issuer != null && !this.issuer.isEmpty(); 157 } 158 159 public boolean hasIssuer() { 160 return this.issuer != null && !this.issuer.isEmpty(); 161 } 162 163 /** 164 * @param value {@link #issuer} (The organization that assigns the identifier algorithm.). This is the underlying object with id, value and extensions. The accessor "getIssuer" gives direct access to the value 165 */ 166 public DeviceDefinitionUdiDeviceIdentifierComponent setIssuerElement(UriType value) { 167 this.issuer = value; 168 return this; 169 } 170 171 /** 172 * @return The organization that assigns the identifier algorithm. 173 */ 174 public String getIssuer() { 175 return this.issuer == null ? null : this.issuer.getValue(); 176 } 177 178 /** 179 * @param value The organization that assigns the identifier algorithm. 180 */ 181 public DeviceDefinitionUdiDeviceIdentifierComponent setIssuer(String value) { 182 if (this.issuer == null) 183 this.issuer = new UriType(); 184 this.issuer.setValue(value); 185 return this; 186 } 187 188 /** 189 * @return {@link #jurisdiction} (The jurisdiction to which the deviceIdentifier applies.). This is the underlying object with id, value and extensions. The accessor "getJurisdiction" gives direct access to the value 190 */ 191 public UriType getJurisdictionElement() { 192 if (this.jurisdiction == null) 193 if (Configuration.errorOnAutoCreate()) 194 throw new Error("Attempt to auto-create DeviceDefinitionUdiDeviceIdentifierComponent.jurisdiction"); 195 else if (Configuration.doAutoCreate()) 196 this.jurisdiction = new UriType(); // bb 197 return this.jurisdiction; 198 } 199 200 public boolean hasJurisdictionElement() { 201 return this.jurisdiction != null && !this.jurisdiction.isEmpty(); 202 } 203 204 public boolean hasJurisdiction() { 205 return this.jurisdiction != null && !this.jurisdiction.isEmpty(); 206 } 207 208 /** 209 * @param value {@link #jurisdiction} (The jurisdiction to which the deviceIdentifier applies.). This is the underlying object with id, value and extensions. The accessor "getJurisdiction" gives direct access to the value 210 */ 211 public DeviceDefinitionUdiDeviceIdentifierComponent setJurisdictionElement(UriType value) { 212 this.jurisdiction = value; 213 return this; 214 } 215 216 /** 217 * @return The jurisdiction to which the deviceIdentifier applies. 218 */ 219 public String getJurisdiction() { 220 return this.jurisdiction == null ? null : this.jurisdiction.getValue(); 221 } 222 223 /** 224 * @param value The jurisdiction to which the deviceIdentifier applies. 225 */ 226 public DeviceDefinitionUdiDeviceIdentifierComponent setJurisdiction(String value) { 227 if (this.jurisdiction == null) 228 this.jurisdiction = new UriType(); 229 this.jurisdiction.setValue(value); 230 return this; 231 } 232 233 protected void listChildren(List<Property> children) { 234 super.listChildren(children); 235 children.add(new Property("deviceIdentifier", "string", "The identifier that is to be associated with every Device that references this DeviceDefintiion for the issuer and jurisdication porvided in the DeviceDefinition.udiDeviceIdentifier.", 0, 1, deviceIdentifier)); 236 children.add(new Property("issuer", "uri", "The organization that assigns the identifier algorithm.", 0, 1, issuer)); 237 children.add(new Property("jurisdiction", "uri", "The jurisdiction to which the deviceIdentifier applies.", 0, 1, jurisdiction)); 238 } 239 240 @Override 241 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 242 switch (_hash) { 243 case 1322005407: /*deviceIdentifier*/ return new Property("deviceIdentifier", "string", "The identifier that is to be associated with every Device that references this DeviceDefintiion for the issuer and jurisdication porvided in the DeviceDefinition.udiDeviceIdentifier.", 0, 1, deviceIdentifier); 244 case -1179159879: /*issuer*/ return new Property("issuer", "uri", "The organization that assigns the identifier algorithm.", 0, 1, issuer); 245 case -507075711: /*jurisdiction*/ return new Property("jurisdiction", "uri", "The jurisdiction to which the deviceIdentifier applies.", 0, 1, jurisdiction); 246 default: return super.getNamedProperty(_hash, _name, _checkValid); 247 } 248 249 } 250 251 @Override 252 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 253 switch (hash) { 254 case 1322005407: /*deviceIdentifier*/ return this.deviceIdentifier == null ? new Base[0] : new Base[] {this.deviceIdentifier}; // StringType 255 case -1179159879: /*issuer*/ return this.issuer == null ? new Base[0] : new Base[] {this.issuer}; // UriType 256 case -507075711: /*jurisdiction*/ return this.jurisdiction == null ? new Base[0] : new Base[] {this.jurisdiction}; // UriType 257 default: return super.getProperty(hash, name, checkValid); 258 } 259 260 } 261 262 @Override 263 public Base setProperty(int hash, String name, Base value) throws FHIRException { 264 switch (hash) { 265 case 1322005407: // deviceIdentifier 266 this.deviceIdentifier = TypeConvertor.castToString(value); // StringType 267 return value; 268 case -1179159879: // issuer 269 this.issuer = TypeConvertor.castToUri(value); // UriType 270 return value; 271 case -507075711: // jurisdiction 272 this.jurisdiction = TypeConvertor.castToUri(value); // UriType 273 return value; 274 default: return super.setProperty(hash, name, value); 275 } 276 277 } 278 279 @Override 280 public Base setProperty(String name, Base value) throws FHIRException { 281 if (name.equals("deviceIdentifier")) { 282 this.deviceIdentifier = TypeConvertor.castToString(value); // StringType 283 } else if (name.equals("issuer")) { 284 this.issuer = TypeConvertor.castToUri(value); // UriType 285 } else if (name.equals("jurisdiction")) { 286 this.jurisdiction = TypeConvertor.castToUri(value); // UriType 287 } else 288 return super.setProperty(name, value); 289 return value; 290 } 291 292 @Override 293 public Base makeProperty(int hash, String name) throws FHIRException { 294 switch (hash) { 295 case 1322005407: return getDeviceIdentifierElement(); 296 case -1179159879: return getIssuerElement(); 297 case -507075711: return getJurisdictionElement(); 298 default: return super.makeProperty(hash, name); 299 } 300 301 } 302 303 @Override 304 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 305 switch (hash) { 306 case 1322005407: /*deviceIdentifier*/ return new String[] {"string"}; 307 case -1179159879: /*issuer*/ return new String[] {"uri"}; 308 case -507075711: /*jurisdiction*/ return new String[] {"uri"}; 309 default: return super.getTypesForProperty(hash, name); 310 } 311 312 } 313 314 @Override 315 public Base addChild(String name) throws FHIRException { 316 if (name.equals("deviceIdentifier")) { 317 throw new FHIRException("Cannot call addChild on a primitive type DeviceDefinition.udiDeviceIdentifier.deviceIdentifier"); 318 } 319 else if (name.equals("issuer")) { 320 throw new FHIRException("Cannot call addChild on a primitive type DeviceDefinition.udiDeviceIdentifier.issuer"); 321 } 322 else if (name.equals("jurisdiction")) { 323 throw new FHIRException("Cannot call addChild on a primitive type DeviceDefinition.udiDeviceIdentifier.jurisdiction"); 324 } 325 else 326 return super.addChild(name); 327 } 328 329 public DeviceDefinitionUdiDeviceIdentifierComponent copy() { 330 DeviceDefinitionUdiDeviceIdentifierComponent dst = new DeviceDefinitionUdiDeviceIdentifierComponent(); 331 copyValues(dst); 332 return dst; 333 } 334 335 public void copyValues(DeviceDefinitionUdiDeviceIdentifierComponent dst) { 336 super.copyValues(dst); 337 dst.deviceIdentifier = deviceIdentifier == null ? null : deviceIdentifier.copy(); 338 dst.issuer = issuer == null ? null : issuer.copy(); 339 dst.jurisdiction = jurisdiction == null ? null : jurisdiction.copy(); 340 } 341 342 @Override 343 public boolean equalsDeep(Base other_) { 344 if (!super.equalsDeep(other_)) 345 return false; 346 if (!(other_ instanceof DeviceDefinitionUdiDeviceIdentifierComponent)) 347 return false; 348 DeviceDefinitionUdiDeviceIdentifierComponent o = (DeviceDefinitionUdiDeviceIdentifierComponent) other_; 349 return compareDeep(deviceIdentifier, o.deviceIdentifier, true) && compareDeep(issuer, o.issuer, true) 350 && compareDeep(jurisdiction, o.jurisdiction, true); 351 } 352 353 @Override 354 public boolean equalsShallow(Base other_) { 355 if (!super.equalsShallow(other_)) 356 return false; 357 if (!(other_ instanceof DeviceDefinitionUdiDeviceIdentifierComponent)) 358 return false; 359 DeviceDefinitionUdiDeviceIdentifierComponent o = (DeviceDefinitionUdiDeviceIdentifierComponent) other_; 360 return compareValues(deviceIdentifier, o.deviceIdentifier, true) && compareValues(issuer, o.issuer, true) 361 && compareValues(jurisdiction, o.jurisdiction, true); 362 } 363 364 public boolean isEmpty() { 365 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(deviceIdentifier, issuer, jurisdiction 366 ); 367 } 368 369 public String fhirType() { 370 return "DeviceDefinition.udiDeviceIdentifier"; 371 372 } 373 374 } 375 376 @Block() 377 public static class DeviceDefinitionDeviceNameComponent extends BackboneElement implements IBaseBackboneElement { 378 /** 379 * The name of the device. 380 */ 381 @Child(name = "name", type = {StringType.class}, order=1, min=1, max=1, modifier=false, summary=false) 382 @Description(shortDefinition="The name of the device", formalDefinition="The name of the device." ) 383 protected StringType name; 384 385 /** 386 * The type of deviceName. 387UDILabelName | UserFriendlyName | PatientReportedName | ManufactureDeviceName | ModelName. 388 */ 389 @Child(name = "type", type = {CodeType.class}, order=2, min=1, max=1, modifier=false, summary=false) 390 @Description(shortDefinition="udi-label-name | user-friendly-name | patient-reported-name | manufacturer-name | model-name | other", formalDefinition="The type of deviceName.\nUDILabelName | UserFriendlyName | PatientReportedName | ManufactureDeviceName | ModelName." ) 391 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/device-nametype") 392 protected Enumeration<DeviceNameType> type; 393 394 private static final long serialVersionUID = 918983440L; 395 396 /** 397 * Constructor 398 */ 399 public DeviceDefinitionDeviceNameComponent() { 400 super(); 401 } 402 403 /** 404 * Constructor 405 */ 406 public DeviceDefinitionDeviceNameComponent(String name, DeviceNameType type) { 407 super(); 408 this.setName(name); 409 this.setType(type); 410 } 411 412 /** 413 * @return {@link #name} (The name of the device.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value 414 */ 415 public StringType getNameElement() { 416 if (this.name == null) 417 if (Configuration.errorOnAutoCreate()) 418 throw new Error("Attempt to auto-create DeviceDefinitionDeviceNameComponent.name"); 419 else if (Configuration.doAutoCreate()) 420 this.name = new StringType(); // bb 421 return this.name; 422 } 423 424 public boolean hasNameElement() { 425 return this.name != null && !this.name.isEmpty(); 426 } 427 428 public boolean hasName() { 429 return this.name != null && !this.name.isEmpty(); 430 } 431 432 /** 433 * @param value {@link #name} (The name of the device.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value 434 */ 435 public DeviceDefinitionDeviceNameComponent setNameElement(StringType value) { 436 this.name = value; 437 return this; 438 } 439 440 /** 441 * @return The name of the device. 442 */ 443 public String getName() { 444 return this.name == null ? null : this.name.getValue(); 445 } 446 447 /** 448 * @param value The name of the device. 449 */ 450 public DeviceDefinitionDeviceNameComponent setName(String value) { 451 if (this.name == null) 452 this.name = new StringType(); 453 this.name.setValue(value); 454 return this; 455 } 456 457 /** 458 * @return {@link #type} (The type of deviceName. 459UDILabelName | UserFriendlyName | PatientReportedName | ManufactureDeviceName | ModelName.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value 460 */ 461 public Enumeration<DeviceNameType> getTypeElement() { 462 if (this.type == null) 463 if (Configuration.errorOnAutoCreate()) 464 throw new Error("Attempt to auto-create DeviceDefinitionDeviceNameComponent.type"); 465 else if (Configuration.doAutoCreate()) 466 this.type = new Enumeration<DeviceNameType>(new DeviceNameTypeEnumFactory()); // bb 467 return this.type; 468 } 469 470 public boolean hasTypeElement() { 471 return this.type != null && !this.type.isEmpty(); 472 } 473 474 public boolean hasType() { 475 return this.type != null && !this.type.isEmpty(); 476 } 477 478 /** 479 * @param value {@link #type} (The type of deviceName. 480UDILabelName | UserFriendlyName | PatientReportedName | ManufactureDeviceName | ModelName.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value 481 */ 482 public DeviceDefinitionDeviceNameComponent setTypeElement(Enumeration<DeviceNameType> value) { 483 this.type = value; 484 return this; 485 } 486 487 /** 488 * @return The type of deviceName. 489UDILabelName | UserFriendlyName | PatientReportedName | ManufactureDeviceName | ModelName. 490 */ 491 public DeviceNameType getType() { 492 return this.type == null ? null : this.type.getValue(); 493 } 494 495 /** 496 * @param value The type of deviceName. 497UDILabelName | UserFriendlyName | PatientReportedName | ManufactureDeviceName | ModelName. 498 */ 499 public DeviceDefinitionDeviceNameComponent setType(DeviceNameType value) { 500 if (this.type == null) 501 this.type = new Enumeration<DeviceNameType>(new DeviceNameTypeEnumFactory()); 502 this.type.setValue(value); 503 return this; 504 } 505 506 protected void listChildren(List<Property> children) { 507 super.listChildren(children); 508 children.add(new Property("name", "string", "The name of the device.", 0, 1, name)); 509 children.add(new Property("type", "code", "The type of deviceName.\nUDILabelName | UserFriendlyName | PatientReportedName | ManufactureDeviceName | ModelName.", 0, 1, type)); 510 } 511 512 @Override 513 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 514 switch (_hash) { 515 case 3373707: /*name*/ return new Property("name", "string", "The name of the device.", 0, 1, name); 516 case 3575610: /*type*/ return new Property("type", "code", "The type of deviceName.\nUDILabelName | UserFriendlyName | PatientReportedName | ManufactureDeviceName | ModelName.", 0, 1, type); 517 default: return super.getNamedProperty(_hash, _name, _checkValid); 518 } 519 520 } 521 522 @Override 523 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 524 switch (hash) { 525 case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType 526 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // Enumeration<DeviceNameType> 527 default: return super.getProperty(hash, name, checkValid); 528 } 529 530 } 531 532 @Override 533 public Base setProperty(int hash, String name, Base value) throws FHIRException { 534 switch (hash) { 535 case 3373707: // name 536 this.name = TypeConvertor.castToString(value); // StringType 537 return value; 538 case 3575610: // type 539 value = new DeviceNameTypeEnumFactory().fromType(TypeConvertor.castToCode(value)); 540 this.type = (Enumeration) value; // Enumeration<DeviceNameType> 541 return value; 542 default: return super.setProperty(hash, name, value); 543 } 544 545 } 546 547 @Override 548 public Base setProperty(String name, Base value) throws FHIRException { 549 if (name.equals("name")) { 550 this.name = TypeConvertor.castToString(value); // StringType 551 } else if (name.equals("type")) { 552 value = new DeviceNameTypeEnumFactory().fromType(TypeConvertor.castToCode(value)); 553 this.type = (Enumeration) value; // Enumeration<DeviceNameType> 554 } else 555 return super.setProperty(name, value); 556 return value; 557 } 558 559 @Override 560 public Base makeProperty(int hash, String name) throws FHIRException { 561 switch (hash) { 562 case 3373707: return getNameElement(); 563 case 3575610: return getTypeElement(); 564 default: return super.makeProperty(hash, name); 565 } 566 567 } 568 569 @Override 570 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 571 switch (hash) { 572 case 3373707: /*name*/ return new String[] {"string"}; 573 case 3575610: /*type*/ return new String[] {"code"}; 574 default: return super.getTypesForProperty(hash, name); 575 } 576 577 } 578 579 @Override 580 public Base addChild(String name) throws FHIRException { 581 if (name.equals("name")) { 582 throw new FHIRException("Cannot call addChild on a primitive type DeviceDefinition.deviceName.name"); 583 } 584 else if (name.equals("type")) { 585 throw new FHIRException("Cannot call addChild on a primitive type DeviceDefinition.deviceName.type"); 586 } 587 else 588 return super.addChild(name); 589 } 590 591 public DeviceDefinitionDeviceNameComponent copy() { 592 DeviceDefinitionDeviceNameComponent dst = new DeviceDefinitionDeviceNameComponent(); 593 copyValues(dst); 594 return dst; 595 } 596 597 public void copyValues(DeviceDefinitionDeviceNameComponent dst) { 598 super.copyValues(dst); 599 dst.name = name == null ? null : name.copy(); 600 dst.type = type == null ? null : type.copy(); 601 } 602 603 @Override 604 public boolean equalsDeep(Base other_) { 605 if (!super.equalsDeep(other_)) 606 return false; 607 if (!(other_ instanceof DeviceDefinitionDeviceNameComponent)) 608 return false; 609 DeviceDefinitionDeviceNameComponent o = (DeviceDefinitionDeviceNameComponent) other_; 610 return compareDeep(name, o.name, true) && compareDeep(type, o.type, true); 611 } 612 613 @Override 614 public boolean equalsShallow(Base other_) { 615 if (!super.equalsShallow(other_)) 616 return false; 617 if (!(other_ instanceof DeviceDefinitionDeviceNameComponent)) 618 return false; 619 DeviceDefinitionDeviceNameComponent o = (DeviceDefinitionDeviceNameComponent) other_; 620 return compareValues(name, o.name, true) && compareValues(type, o.type, true); 621 } 622 623 public boolean isEmpty() { 624 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(name, type); 625 } 626 627 public String fhirType() { 628 return "DeviceDefinition.deviceName"; 629 630 } 631 632 } 633 634 @Block() 635 public static class DeviceDefinitionSpecializationComponent extends BackboneElement implements IBaseBackboneElement { 636 /** 637 * The standard that is used to operate and communicate. 638 */ 639 @Child(name = "systemType", type = {StringType.class}, order=1, min=1, max=1, modifier=false, summary=false) 640 @Description(shortDefinition="The standard that is used to operate and communicate", formalDefinition="The standard that is used to operate and communicate." ) 641 protected StringType systemType; 642 643 /** 644 * The version of the standard that is used to operate and communicate. 645 */ 646 @Child(name = "version", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=false) 647 @Description(shortDefinition="The version of the standard that is used to operate and communicate", formalDefinition="The version of the standard that is used to operate and communicate." ) 648 protected StringType version; 649 650 private static final long serialVersionUID = -249304393L; 651 652 /** 653 * Constructor 654 */ 655 public DeviceDefinitionSpecializationComponent() { 656 super(); 657 } 658 659 /** 660 * Constructor 661 */ 662 public DeviceDefinitionSpecializationComponent(String systemType) { 663 super(); 664 this.setSystemType(systemType); 665 } 666 667 /** 668 * @return {@link #systemType} (The standard that is used to operate and communicate.). This is the underlying object with id, value and extensions. The accessor "getSystemType" gives direct access to the value 669 */ 670 public StringType getSystemTypeElement() { 671 if (this.systemType == null) 672 if (Configuration.errorOnAutoCreate()) 673 throw new Error("Attempt to auto-create DeviceDefinitionSpecializationComponent.systemType"); 674 else if (Configuration.doAutoCreate()) 675 this.systemType = new StringType(); // bb 676 return this.systemType; 677 } 678 679 public boolean hasSystemTypeElement() { 680 return this.systemType != null && !this.systemType.isEmpty(); 681 } 682 683 public boolean hasSystemType() { 684 return this.systemType != null && !this.systemType.isEmpty(); 685 } 686 687 /** 688 * @param value {@link #systemType} (The standard that is used to operate and communicate.). This is the underlying object with id, value and extensions. The accessor "getSystemType" gives direct access to the value 689 */ 690 public DeviceDefinitionSpecializationComponent setSystemTypeElement(StringType value) { 691 this.systemType = value; 692 return this; 693 } 694 695 /** 696 * @return The standard that is used to operate and communicate. 697 */ 698 public String getSystemType() { 699 return this.systemType == null ? null : this.systemType.getValue(); 700 } 701 702 /** 703 * @param value The standard that is used to operate and communicate. 704 */ 705 public DeviceDefinitionSpecializationComponent setSystemType(String value) { 706 if (this.systemType == null) 707 this.systemType = new StringType(); 708 this.systemType.setValue(value); 709 return this; 710 } 711 712 /** 713 * @return {@link #version} (The version of the standard that is used to operate and communicate.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value 714 */ 715 public StringType getVersionElement() { 716 if (this.version == null) 717 if (Configuration.errorOnAutoCreate()) 718 throw new Error("Attempt to auto-create DeviceDefinitionSpecializationComponent.version"); 719 else if (Configuration.doAutoCreate()) 720 this.version = new StringType(); // bb 721 return this.version; 722 } 723 724 public boolean hasVersionElement() { 725 return this.version != null && !this.version.isEmpty(); 726 } 727 728 public boolean hasVersion() { 729 return this.version != null && !this.version.isEmpty(); 730 } 731 732 /** 733 * @param value {@link #version} (The version of the standard that is used to operate and communicate.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value 734 */ 735 public DeviceDefinitionSpecializationComponent setVersionElement(StringType value) { 736 this.version = value; 737 return this; 738 } 739 740 /** 741 * @return The version of the standard that is used to operate and communicate. 742 */ 743 public String getVersion() { 744 return this.version == null ? null : this.version.getValue(); 745 } 746 747 /** 748 * @param value The version of the standard that is used to operate and communicate. 749 */ 750 public DeviceDefinitionSpecializationComponent setVersion(String value) { 751 if (Utilities.noString(value)) 752 this.version = null; 753 else { 754 if (this.version == null) 755 this.version = new StringType(); 756 this.version.setValue(value); 757 } 758 return this; 759 } 760 761 protected void listChildren(List<Property> children) { 762 super.listChildren(children); 763 children.add(new Property("systemType", "string", "The standard that is used to operate and communicate.", 0, 1, systemType)); 764 children.add(new Property("version", "string", "The version of the standard that is used to operate and communicate.", 0, 1, version)); 765 } 766 767 @Override 768 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 769 switch (_hash) { 770 case 642893321: /*systemType*/ return new Property("systemType", "string", "The standard that is used to operate and communicate.", 0, 1, systemType); 771 case 351608024: /*version*/ return new Property("version", "string", "The version of the standard that is used to operate and communicate.", 0, 1, version); 772 default: return super.getNamedProperty(_hash, _name, _checkValid); 773 } 774 775 } 776 777 @Override 778 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 779 switch (hash) { 780 case 642893321: /*systemType*/ return this.systemType == null ? new Base[0] : new Base[] {this.systemType}; // StringType 781 case 351608024: /*version*/ return this.version == null ? new Base[0] : new Base[] {this.version}; // StringType 782 default: return super.getProperty(hash, name, checkValid); 783 } 784 785 } 786 787 @Override 788 public Base setProperty(int hash, String name, Base value) throws FHIRException { 789 switch (hash) { 790 case 642893321: // systemType 791 this.systemType = TypeConvertor.castToString(value); // StringType 792 return value; 793 case 351608024: // version 794 this.version = TypeConvertor.castToString(value); // StringType 795 return value; 796 default: return super.setProperty(hash, name, value); 797 } 798 799 } 800 801 @Override 802 public Base setProperty(String name, Base value) throws FHIRException { 803 if (name.equals("systemType")) { 804 this.systemType = TypeConvertor.castToString(value); // StringType 805 } else if (name.equals("version")) { 806 this.version = TypeConvertor.castToString(value); // StringType 807 } else 808 return super.setProperty(name, value); 809 return value; 810 } 811 812 @Override 813 public Base makeProperty(int hash, String name) throws FHIRException { 814 switch (hash) { 815 case 642893321: return getSystemTypeElement(); 816 case 351608024: return getVersionElement(); 817 default: return super.makeProperty(hash, name); 818 } 819 820 } 821 822 @Override 823 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 824 switch (hash) { 825 case 642893321: /*systemType*/ return new String[] {"string"}; 826 case 351608024: /*version*/ return new String[] {"string"}; 827 default: return super.getTypesForProperty(hash, name); 828 } 829 830 } 831 832 @Override 833 public Base addChild(String name) throws FHIRException { 834 if (name.equals("systemType")) { 835 throw new FHIRException("Cannot call addChild on a primitive type DeviceDefinition.specialization.systemType"); 836 } 837 else if (name.equals("version")) { 838 throw new FHIRException("Cannot call addChild on a primitive type DeviceDefinition.specialization.version"); 839 } 840 else 841 return super.addChild(name); 842 } 843 844 public DeviceDefinitionSpecializationComponent copy() { 845 DeviceDefinitionSpecializationComponent dst = new DeviceDefinitionSpecializationComponent(); 846 copyValues(dst); 847 return dst; 848 } 849 850 public void copyValues(DeviceDefinitionSpecializationComponent dst) { 851 super.copyValues(dst); 852 dst.systemType = systemType == null ? null : systemType.copy(); 853 dst.version = version == null ? null : version.copy(); 854 } 855 856 @Override 857 public boolean equalsDeep(Base other_) { 858 if (!super.equalsDeep(other_)) 859 return false; 860 if (!(other_ instanceof DeviceDefinitionSpecializationComponent)) 861 return false; 862 DeviceDefinitionSpecializationComponent o = (DeviceDefinitionSpecializationComponent) other_; 863 return compareDeep(systemType, o.systemType, true) && compareDeep(version, o.version, true); 864 } 865 866 @Override 867 public boolean equalsShallow(Base other_) { 868 if (!super.equalsShallow(other_)) 869 return false; 870 if (!(other_ instanceof DeviceDefinitionSpecializationComponent)) 871 return false; 872 DeviceDefinitionSpecializationComponent o = (DeviceDefinitionSpecializationComponent) other_; 873 return compareValues(systemType, o.systemType, true) && compareValues(version, o.version, true); 874 } 875 876 public boolean isEmpty() { 877 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(systemType, version); 878 } 879 880 public String fhirType() { 881 return "DeviceDefinition.specialization"; 882 883 } 884 885 } 886 887 @Block() 888 public static class DeviceDefinitionCapabilityComponent extends BackboneElement implements IBaseBackboneElement { 889 /** 890 * Type of capability. 891 */ 892 @Child(name = "type", type = {CodeableConcept.class}, order=1, min=1, max=1, modifier=false, summary=false) 893 @Description(shortDefinition="Type of capability", formalDefinition="Type of capability." ) 894 protected CodeableConcept type; 895 896 /** 897 * Description of capability. 898 */ 899 @Child(name = "description", type = {CodeableConcept.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 900 @Description(shortDefinition="Description of capability", formalDefinition="Description of capability." ) 901 protected List<CodeableConcept> description; 902 903 private static final long serialVersionUID = -192945344L; 904 905 /** 906 * Constructor 907 */ 908 public DeviceDefinitionCapabilityComponent() { 909 super(); 910 } 911 912 /** 913 * Constructor 914 */ 915 public DeviceDefinitionCapabilityComponent(CodeableConcept type) { 916 super(); 917 this.setType(type); 918 } 919 920 /** 921 * @return {@link #type} (Type of capability.) 922 */ 923 public CodeableConcept getType() { 924 if (this.type == null) 925 if (Configuration.errorOnAutoCreate()) 926 throw new Error("Attempt to auto-create DeviceDefinitionCapabilityComponent.type"); 927 else if (Configuration.doAutoCreate()) 928 this.type = new CodeableConcept(); // cc 929 return this.type; 930 } 931 932 public boolean hasType() { 933 return this.type != null && !this.type.isEmpty(); 934 } 935 936 /** 937 * @param value {@link #type} (Type of capability.) 938 */ 939 public DeviceDefinitionCapabilityComponent setType(CodeableConcept value) { 940 this.type = value; 941 return this; 942 } 943 944 /** 945 * @return {@link #description} (Description of capability.) 946 */ 947 public List<CodeableConcept> getDescription() { 948 if (this.description == null) 949 this.description = new ArrayList<CodeableConcept>(); 950 return this.description; 951 } 952 953 /** 954 * @return Returns a reference to <code>this</code> for easy method chaining 955 */ 956 public DeviceDefinitionCapabilityComponent setDescription(List<CodeableConcept> theDescription) { 957 this.description = theDescription; 958 return this; 959 } 960 961 public boolean hasDescription() { 962 if (this.description == null) 963 return false; 964 for (CodeableConcept item : this.description) 965 if (!item.isEmpty()) 966 return true; 967 return false; 968 } 969 970 public CodeableConcept addDescription() { //3 971 CodeableConcept t = new CodeableConcept(); 972 if (this.description == null) 973 this.description = new ArrayList<CodeableConcept>(); 974 this.description.add(t); 975 return t; 976 } 977 978 public DeviceDefinitionCapabilityComponent addDescription(CodeableConcept t) { //3 979 if (t == null) 980 return this; 981 if (this.description == null) 982 this.description = new ArrayList<CodeableConcept>(); 983 this.description.add(t); 984 return this; 985 } 986 987 /** 988 * @return The first repetition of repeating field {@link #description}, creating it if it does not already exist {3} 989 */ 990 public CodeableConcept getDescriptionFirstRep() { 991 if (getDescription().isEmpty()) { 992 addDescription(); 993 } 994 return getDescription().get(0); 995 } 996 997 protected void listChildren(List<Property> children) { 998 super.listChildren(children); 999 children.add(new Property("type", "CodeableConcept", "Type of capability.", 0, 1, type)); 1000 children.add(new Property("description", "CodeableConcept", "Description of capability.", 0, java.lang.Integer.MAX_VALUE, description)); 1001 } 1002 1003 @Override 1004 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1005 switch (_hash) { 1006 case 3575610: /*type*/ return new Property("type", "CodeableConcept", "Type of capability.", 0, 1, type); 1007 case -1724546052: /*description*/ return new Property("description", "CodeableConcept", "Description of capability.", 0, java.lang.Integer.MAX_VALUE, description); 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 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // CodeableConcept 1017 case -1724546052: /*description*/ return this.description == null ? new Base[0] : this.description.toArray(new Base[this.description.size()]); // CodeableConcept 1018 default: return super.getProperty(hash, name, checkValid); 1019 } 1020 1021 } 1022 1023 @Override 1024 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1025 switch (hash) { 1026 case 3575610: // type 1027 this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1028 return value; 1029 case -1724546052: // description 1030 this.getDescription().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 1031 return value; 1032 default: return super.setProperty(hash, name, value); 1033 } 1034 1035 } 1036 1037 @Override 1038 public Base setProperty(String name, Base value) throws FHIRException { 1039 if (name.equals("type")) { 1040 this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1041 } else if (name.equals("description")) { 1042 this.getDescription().add(TypeConvertor.castToCodeableConcept(value)); 1043 } else 1044 return super.setProperty(name, value); 1045 return value; 1046 } 1047 1048 @Override 1049 public Base makeProperty(int hash, String name) throws FHIRException { 1050 switch (hash) { 1051 case 3575610: return getType(); 1052 case -1724546052: return addDescription(); 1053 default: return super.makeProperty(hash, name); 1054 } 1055 1056 } 1057 1058 @Override 1059 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1060 switch (hash) { 1061 case 3575610: /*type*/ return new String[] {"CodeableConcept"}; 1062 case -1724546052: /*description*/ return new String[] {"CodeableConcept"}; 1063 default: return super.getTypesForProperty(hash, name); 1064 } 1065 1066 } 1067 1068 @Override 1069 public Base addChild(String name) throws FHIRException { 1070 if (name.equals("type")) { 1071 this.type = new CodeableConcept(); 1072 return this.type; 1073 } 1074 else if (name.equals("description")) { 1075 return addDescription(); 1076 } 1077 else 1078 return super.addChild(name); 1079 } 1080 1081 public DeviceDefinitionCapabilityComponent copy() { 1082 DeviceDefinitionCapabilityComponent dst = new DeviceDefinitionCapabilityComponent(); 1083 copyValues(dst); 1084 return dst; 1085 } 1086 1087 public void copyValues(DeviceDefinitionCapabilityComponent dst) { 1088 super.copyValues(dst); 1089 dst.type = type == null ? null : type.copy(); 1090 if (description != null) { 1091 dst.description = new ArrayList<CodeableConcept>(); 1092 for (CodeableConcept i : description) 1093 dst.description.add(i.copy()); 1094 }; 1095 } 1096 1097 @Override 1098 public boolean equalsDeep(Base other_) { 1099 if (!super.equalsDeep(other_)) 1100 return false; 1101 if (!(other_ instanceof DeviceDefinitionCapabilityComponent)) 1102 return false; 1103 DeviceDefinitionCapabilityComponent o = (DeviceDefinitionCapabilityComponent) other_; 1104 return compareDeep(type, o.type, true) && compareDeep(description, o.description, true); 1105 } 1106 1107 @Override 1108 public boolean equalsShallow(Base other_) { 1109 if (!super.equalsShallow(other_)) 1110 return false; 1111 if (!(other_ instanceof DeviceDefinitionCapabilityComponent)) 1112 return false; 1113 DeviceDefinitionCapabilityComponent o = (DeviceDefinitionCapabilityComponent) other_; 1114 return true; 1115 } 1116 1117 public boolean isEmpty() { 1118 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(type, description); 1119 } 1120 1121 public String fhirType() { 1122 return "DeviceDefinition.capability"; 1123 1124 } 1125 1126 } 1127 1128 @Block() 1129 public static class DeviceDefinitionPropertyComponent extends BackboneElement implements IBaseBackboneElement { 1130 /** 1131 * Code that specifies the property DeviceDefinitionPropetyCode (Extensible). 1132 */ 1133 @Child(name = "type", type = {CodeableConcept.class}, order=1, min=1, max=1, modifier=false, summary=false) 1134 @Description(shortDefinition="Code that specifies the property DeviceDefinitionPropetyCode (Extensible)", formalDefinition="Code that specifies the property DeviceDefinitionPropetyCode (Extensible)." ) 1135 protected CodeableConcept type; 1136 1137 /** 1138 * Property value as a quantity. 1139 */ 1140 @Child(name = "valueQuantity", type = {Quantity.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1141 @Description(shortDefinition="Property value as a quantity", formalDefinition="Property value as a quantity." ) 1142 protected List<Quantity> valueQuantity; 1143 1144 /** 1145 * Property value as a code, e.g., NTP4 (synced to NTP). 1146 */ 1147 @Child(name = "valueCode", type = {CodeableConcept.class}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1148 @Description(shortDefinition="Property value as a code, e.g., NTP4 (synced to NTP)", formalDefinition="Property value as a code, e.g., NTP4 (synced to NTP)." ) 1149 protected List<CodeableConcept> valueCode; 1150 1151 private static final long serialVersionUID = 1512172633L; 1152 1153 /** 1154 * Constructor 1155 */ 1156 public DeviceDefinitionPropertyComponent() { 1157 super(); 1158 } 1159 1160 /** 1161 * Constructor 1162 */ 1163 public DeviceDefinitionPropertyComponent(CodeableConcept type) { 1164 super(); 1165 this.setType(type); 1166 } 1167 1168 /** 1169 * @return {@link #type} (Code that specifies the property DeviceDefinitionPropetyCode (Extensible).) 1170 */ 1171 public CodeableConcept getType() { 1172 if (this.type == null) 1173 if (Configuration.errorOnAutoCreate()) 1174 throw new Error("Attempt to auto-create DeviceDefinitionPropertyComponent.type"); 1175 else if (Configuration.doAutoCreate()) 1176 this.type = new CodeableConcept(); // cc 1177 return this.type; 1178 } 1179 1180 public boolean hasType() { 1181 return this.type != null && !this.type.isEmpty(); 1182 } 1183 1184 /** 1185 * @param value {@link #type} (Code that specifies the property DeviceDefinitionPropetyCode (Extensible).) 1186 */ 1187 public DeviceDefinitionPropertyComponent setType(CodeableConcept value) { 1188 this.type = value; 1189 return this; 1190 } 1191 1192 /** 1193 * @return {@link #valueQuantity} (Property value as a quantity.) 1194 */ 1195 public List<Quantity> getValueQuantity() { 1196 if (this.valueQuantity == null) 1197 this.valueQuantity = new ArrayList<Quantity>(); 1198 return this.valueQuantity; 1199 } 1200 1201 /** 1202 * @return Returns a reference to <code>this</code> for easy method chaining 1203 */ 1204 public DeviceDefinitionPropertyComponent setValueQuantity(List<Quantity> theValueQuantity) { 1205 this.valueQuantity = theValueQuantity; 1206 return this; 1207 } 1208 1209 public boolean hasValueQuantity() { 1210 if (this.valueQuantity == null) 1211 return false; 1212 for (Quantity item : this.valueQuantity) 1213 if (!item.isEmpty()) 1214 return true; 1215 return false; 1216 } 1217 1218 public Quantity addValueQuantity() { //3 1219 Quantity t = new Quantity(); 1220 if (this.valueQuantity == null) 1221 this.valueQuantity = new ArrayList<Quantity>(); 1222 this.valueQuantity.add(t); 1223 return t; 1224 } 1225 1226 public DeviceDefinitionPropertyComponent addValueQuantity(Quantity t) { //3 1227 if (t == null) 1228 return this; 1229 if (this.valueQuantity == null) 1230 this.valueQuantity = new ArrayList<Quantity>(); 1231 this.valueQuantity.add(t); 1232 return this; 1233 } 1234 1235 /** 1236 * @return The first repetition of repeating field {@link #valueQuantity}, creating it if it does not already exist {3} 1237 */ 1238 public Quantity getValueQuantityFirstRep() { 1239 if (getValueQuantity().isEmpty()) { 1240 addValueQuantity(); 1241 } 1242 return getValueQuantity().get(0); 1243 } 1244 1245 /** 1246 * @return {@link #valueCode} (Property value as a code, e.g., NTP4 (synced to NTP).) 1247 */ 1248 public List<CodeableConcept> getValueCode() { 1249 if (this.valueCode == null) 1250 this.valueCode = new ArrayList<CodeableConcept>(); 1251 return this.valueCode; 1252 } 1253 1254 /** 1255 * @return Returns a reference to <code>this</code> for easy method chaining 1256 */ 1257 public DeviceDefinitionPropertyComponent setValueCode(List<CodeableConcept> theValueCode) { 1258 this.valueCode = theValueCode; 1259 return this; 1260 } 1261 1262 public boolean hasValueCode() { 1263 if (this.valueCode == null) 1264 return false; 1265 for (CodeableConcept item : this.valueCode) 1266 if (!item.isEmpty()) 1267 return true; 1268 return false; 1269 } 1270 1271 public CodeableConcept addValueCode() { //3 1272 CodeableConcept t = new CodeableConcept(); 1273 if (this.valueCode == null) 1274 this.valueCode = new ArrayList<CodeableConcept>(); 1275 this.valueCode.add(t); 1276 return t; 1277 } 1278 1279 public DeviceDefinitionPropertyComponent addValueCode(CodeableConcept t) { //3 1280 if (t == null) 1281 return this; 1282 if (this.valueCode == null) 1283 this.valueCode = new ArrayList<CodeableConcept>(); 1284 this.valueCode.add(t); 1285 return this; 1286 } 1287 1288 /** 1289 * @return The first repetition of repeating field {@link #valueCode}, creating it if it does not already exist {3} 1290 */ 1291 public CodeableConcept getValueCodeFirstRep() { 1292 if (getValueCode().isEmpty()) { 1293 addValueCode(); 1294 } 1295 return getValueCode().get(0); 1296 } 1297 1298 protected void listChildren(List<Property> children) { 1299 super.listChildren(children); 1300 children.add(new Property("type", "CodeableConcept", "Code that specifies the property DeviceDefinitionPropetyCode (Extensible).", 0, 1, type)); 1301 children.add(new Property("valueQuantity", "Quantity", "Property value as a quantity.", 0, java.lang.Integer.MAX_VALUE, valueQuantity)); 1302 children.add(new Property("valueCode", "CodeableConcept", "Property value as a code, e.g., NTP4 (synced to NTP).", 0, java.lang.Integer.MAX_VALUE, valueCode)); 1303 } 1304 1305 @Override 1306 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1307 switch (_hash) { 1308 case 3575610: /*type*/ return new Property("type", "CodeableConcept", "Code that specifies the property DeviceDefinitionPropetyCode (Extensible).", 0, 1, type); 1309 case -2029823716: /*valueQuantity*/ return new Property("valueQuantity", "Quantity", "Property value as a quantity.", 0, java.lang.Integer.MAX_VALUE, valueQuantity); 1310 case -766209282: /*valueCode*/ return new Property("valueCode", "CodeableConcept", "Property value as a code, e.g., NTP4 (synced to NTP).", 0, java.lang.Integer.MAX_VALUE, valueCode); 1311 default: return super.getNamedProperty(_hash, _name, _checkValid); 1312 } 1313 1314 } 1315 1316 @Override 1317 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1318 switch (hash) { 1319 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // CodeableConcept 1320 case -2029823716: /*valueQuantity*/ return this.valueQuantity == null ? new Base[0] : this.valueQuantity.toArray(new Base[this.valueQuantity.size()]); // Quantity 1321 case -766209282: /*valueCode*/ return this.valueCode == null ? new Base[0] : this.valueCode.toArray(new Base[this.valueCode.size()]); // CodeableConcept 1322 default: return super.getProperty(hash, name, checkValid); 1323 } 1324 1325 } 1326 1327 @Override 1328 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1329 switch (hash) { 1330 case 3575610: // type 1331 this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1332 return value; 1333 case -2029823716: // valueQuantity 1334 this.getValueQuantity().add(TypeConvertor.castToQuantity(value)); // Quantity 1335 return value; 1336 case -766209282: // valueCode 1337 this.getValueCode().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 1338 return value; 1339 default: return super.setProperty(hash, name, value); 1340 } 1341 1342 } 1343 1344 @Override 1345 public Base setProperty(String name, Base value) throws FHIRException { 1346 if (name.equals("type")) { 1347 this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1348 } else if (name.equals("valueQuantity")) { 1349 this.getValueQuantity().add(TypeConvertor.castToQuantity(value)); 1350 } else if (name.equals("valueCode")) { 1351 this.getValueCode().add(TypeConvertor.castToCodeableConcept(value)); 1352 } else 1353 return super.setProperty(name, value); 1354 return value; 1355 } 1356 1357 @Override 1358 public Base makeProperty(int hash, String name) throws FHIRException { 1359 switch (hash) { 1360 case 3575610: return getType(); 1361 case -2029823716: return addValueQuantity(); 1362 case -766209282: return addValueCode(); 1363 default: return super.makeProperty(hash, name); 1364 } 1365 1366 } 1367 1368 @Override 1369 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1370 switch (hash) { 1371 case 3575610: /*type*/ return new String[] {"CodeableConcept"}; 1372 case -2029823716: /*valueQuantity*/ return new String[] {"Quantity"}; 1373 case -766209282: /*valueCode*/ return new String[] {"CodeableConcept"}; 1374 default: return super.getTypesForProperty(hash, name); 1375 } 1376 1377 } 1378 1379 @Override 1380 public Base addChild(String name) throws FHIRException { 1381 if (name.equals("type")) { 1382 this.type = new CodeableConcept(); 1383 return this.type; 1384 } 1385 else if (name.equals("valueQuantity")) { 1386 return addValueQuantity(); 1387 } 1388 else if (name.equals("valueCode")) { 1389 return addValueCode(); 1390 } 1391 else 1392 return super.addChild(name); 1393 } 1394 1395 public DeviceDefinitionPropertyComponent copy() { 1396 DeviceDefinitionPropertyComponent dst = new DeviceDefinitionPropertyComponent(); 1397 copyValues(dst); 1398 return dst; 1399 } 1400 1401 public void copyValues(DeviceDefinitionPropertyComponent dst) { 1402 super.copyValues(dst); 1403 dst.type = type == null ? null : type.copy(); 1404 if (valueQuantity != null) { 1405 dst.valueQuantity = new ArrayList<Quantity>(); 1406 for (Quantity i : valueQuantity) 1407 dst.valueQuantity.add(i.copy()); 1408 }; 1409 if (valueCode != null) { 1410 dst.valueCode = new ArrayList<CodeableConcept>(); 1411 for (CodeableConcept i : valueCode) 1412 dst.valueCode.add(i.copy()); 1413 }; 1414 } 1415 1416 @Override 1417 public boolean equalsDeep(Base other_) { 1418 if (!super.equalsDeep(other_)) 1419 return false; 1420 if (!(other_ instanceof DeviceDefinitionPropertyComponent)) 1421 return false; 1422 DeviceDefinitionPropertyComponent o = (DeviceDefinitionPropertyComponent) other_; 1423 return compareDeep(type, o.type, true) && compareDeep(valueQuantity, o.valueQuantity, true) && compareDeep(valueCode, o.valueCode, true) 1424 ; 1425 } 1426 1427 @Override 1428 public boolean equalsShallow(Base other_) { 1429 if (!super.equalsShallow(other_)) 1430 return false; 1431 if (!(other_ instanceof DeviceDefinitionPropertyComponent)) 1432 return false; 1433 DeviceDefinitionPropertyComponent o = (DeviceDefinitionPropertyComponent) other_; 1434 return true; 1435 } 1436 1437 public boolean isEmpty() { 1438 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(type, valueQuantity, valueCode 1439 ); 1440 } 1441 1442 public String fhirType() { 1443 return "DeviceDefinition.property"; 1444 1445 } 1446 1447 } 1448 1449 @Block() 1450 public static class DeviceDefinitionMaterialComponent extends BackboneElement implements IBaseBackboneElement { 1451 /** 1452 * The substance. 1453 */ 1454 @Child(name = "substance", type = {CodeableConcept.class}, order=1, min=1, max=1, modifier=false, summary=false) 1455 @Description(shortDefinition="The substance", formalDefinition="The substance." ) 1456 protected CodeableConcept substance; 1457 1458 /** 1459 * Indicates an alternative material of the device. 1460 */ 1461 @Child(name = "alternate", type = {BooleanType.class}, order=2, min=0, max=1, modifier=false, summary=false) 1462 @Description(shortDefinition="Indicates an alternative material of the device", formalDefinition="Indicates an alternative material of the device." ) 1463 protected BooleanType alternate; 1464 1465 /** 1466 * Whether the substance is a known or suspected allergen. 1467 */ 1468 @Child(name = "allergenicIndicator", type = {BooleanType.class}, order=3, min=0, max=1, modifier=false, summary=false) 1469 @Description(shortDefinition="Whether the substance is a known or suspected allergen", formalDefinition="Whether the substance is a known or suspected allergen." ) 1470 protected BooleanType allergenicIndicator; 1471 1472 private static final long serialVersionUID = 1232736508L; 1473 1474 /** 1475 * Constructor 1476 */ 1477 public DeviceDefinitionMaterialComponent() { 1478 super(); 1479 } 1480 1481 /** 1482 * Constructor 1483 */ 1484 public DeviceDefinitionMaterialComponent(CodeableConcept substance) { 1485 super(); 1486 this.setSubstance(substance); 1487 } 1488 1489 /** 1490 * @return {@link #substance} (The substance.) 1491 */ 1492 public CodeableConcept getSubstance() { 1493 if (this.substance == null) 1494 if (Configuration.errorOnAutoCreate()) 1495 throw new Error("Attempt to auto-create DeviceDefinitionMaterialComponent.substance"); 1496 else if (Configuration.doAutoCreate()) 1497 this.substance = new CodeableConcept(); // cc 1498 return this.substance; 1499 } 1500 1501 public boolean hasSubstance() { 1502 return this.substance != null && !this.substance.isEmpty(); 1503 } 1504 1505 /** 1506 * @param value {@link #substance} (The substance.) 1507 */ 1508 public DeviceDefinitionMaterialComponent setSubstance(CodeableConcept value) { 1509 this.substance = value; 1510 return this; 1511 } 1512 1513 /** 1514 * @return {@link #alternate} (Indicates an alternative material of the device.). This is the underlying object with id, value and extensions. The accessor "getAlternate" gives direct access to the value 1515 */ 1516 public BooleanType getAlternateElement() { 1517 if (this.alternate == null) 1518 if (Configuration.errorOnAutoCreate()) 1519 throw new Error("Attempt to auto-create DeviceDefinitionMaterialComponent.alternate"); 1520 else if (Configuration.doAutoCreate()) 1521 this.alternate = new BooleanType(); // bb 1522 return this.alternate; 1523 } 1524 1525 public boolean hasAlternateElement() { 1526 return this.alternate != null && !this.alternate.isEmpty(); 1527 } 1528 1529 public boolean hasAlternate() { 1530 return this.alternate != null && !this.alternate.isEmpty(); 1531 } 1532 1533 /** 1534 * @param value {@link #alternate} (Indicates an alternative material of the device.). This is the underlying object with id, value and extensions. The accessor "getAlternate" gives direct access to the value 1535 */ 1536 public DeviceDefinitionMaterialComponent setAlternateElement(BooleanType value) { 1537 this.alternate = value; 1538 return this; 1539 } 1540 1541 /** 1542 * @return Indicates an alternative material of the device. 1543 */ 1544 public boolean getAlternate() { 1545 return this.alternate == null || this.alternate.isEmpty() ? false : this.alternate.getValue(); 1546 } 1547 1548 /** 1549 * @param value Indicates an alternative material of the device. 1550 */ 1551 public DeviceDefinitionMaterialComponent setAlternate(boolean value) { 1552 if (this.alternate == null) 1553 this.alternate = new BooleanType(); 1554 this.alternate.setValue(value); 1555 return this; 1556 } 1557 1558 /** 1559 * @return {@link #allergenicIndicator} (Whether the substance is a known or suspected allergen.). This is the underlying object with id, value and extensions. The accessor "getAllergenicIndicator" gives direct access to the value 1560 */ 1561 public BooleanType getAllergenicIndicatorElement() { 1562 if (this.allergenicIndicator == null) 1563 if (Configuration.errorOnAutoCreate()) 1564 throw new Error("Attempt to auto-create DeviceDefinitionMaterialComponent.allergenicIndicator"); 1565 else if (Configuration.doAutoCreate()) 1566 this.allergenicIndicator = new BooleanType(); // bb 1567 return this.allergenicIndicator; 1568 } 1569 1570 public boolean hasAllergenicIndicatorElement() { 1571 return this.allergenicIndicator != null && !this.allergenicIndicator.isEmpty(); 1572 } 1573 1574 public boolean hasAllergenicIndicator() { 1575 return this.allergenicIndicator != null && !this.allergenicIndicator.isEmpty(); 1576 } 1577 1578 /** 1579 * @param value {@link #allergenicIndicator} (Whether the substance is a known or suspected allergen.). This is the underlying object with id, value and extensions. The accessor "getAllergenicIndicator" gives direct access to the value 1580 */ 1581 public DeviceDefinitionMaterialComponent setAllergenicIndicatorElement(BooleanType value) { 1582 this.allergenicIndicator = value; 1583 return this; 1584 } 1585 1586 /** 1587 * @return Whether the substance is a known or suspected allergen. 1588 */ 1589 public boolean getAllergenicIndicator() { 1590 return this.allergenicIndicator == null || this.allergenicIndicator.isEmpty() ? false : this.allergenicIndicator.getValue(); 1591 } 1592 1593 /** 1594 * @param value Whether the substance is a known or suspected allergen. 1595 */ 1596 public DeviceDefinitionMaterialComponent setAllergenicIndicator(boolean value) { 1597 if (this.allergenicIndicator == null) 1598 this.allergenicIndicator = new BooleanType(); 1599 this.allergenicIndicator.setValue(value); 1600 return this; 1601 } 1602 1603 protected void listChildren(List<Property> children) { 1604 super.listChildren(children); 1605 children.add(new Property("substance", "CodeableConcept", "The substance.", 0, 1, substance)); 1606 children.add(new Property("alternate", "boolean", "Indicates an alternative material of the device.", 0, 1, alternate)); 1607 children.add(new Property("allergenicIndicator", "boolean", "Whether the substance is a known or suspected allergen.", 0, 1, allergenicIndicator)); 1608 } 1609 1610 @Override 1611 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1612 switch (_hash) { 1613 case 530040176: /*substance*/ return new Property("substance", "CodeableConcept", "The substance.", 0, 1, substance); 1614 case -1408024454: /*alternate*/ return new Property("alternate", "boolean", "Indicates an alternative material of the device.", 0, 1, alternate); 1615 case 75406931: /*allergenicIndicator*/ return new Property("allergenicIndicator", "boolean", "Whether the substance is a known or suspected allergen.", 0, 1, allergenicIndicator); 1616 default: return super.getNamedProperty(_hash, _name, _checkValid); 1617 } 1618 1619 } 1620 1621 @Override 1622 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1623 switch (hash) { 1624 case 530040176: /*substance*/ return this.substance == null ? new Base[0] : new Base[] {this.substance}; // CodeableConcept 1625 case -1408024454: /*alternate*/ return this.alternate == null ? new Base[0] : new Base[] {this.alternate}; // BooleanType 1626 case 75406931: /*allergenicIndicator*/ return this.allergenicIndicator == null ? new Base[0] : new Base[] {this.allergenicIndicator}; // BooleanType 1627 default: return super.getProperty(hash, name, checkValid); 1628 } 1629 1630 } 1631 1632 @Override 1633 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1634 switch (hash) { 1635 case 530040176: // substance 1636 this.substance = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1637 return value; 1638 case -1408024454: // alternate 1639 this.alternate = TypeConvertor.castToBoolean(value); // BooleanType 1640 return value; 1641 case 75406931: // allergenicIndicator 1642 this.allergenicIndicator = TypeConvertor.castToBoolean(value); // BooleanType 1643 return value; 1644 default: return super.setProperty(hash, name, value); 1645 } 1646 1647 } 1648 1649 @Override 1650 public Base setProperty(String name, Base value) throws FHIRException { 1651 if (name.equals("substance")) { 1652 this.substance = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1653 } else if (name.equals("alternate")) { 1654 this.alternate = TypeConvertor.castToBoolean(value); // BooleanType 1655 } else if (name.equals("allergenicIndicator")) { 1656 this.allergenicIndicator = TypeConvertor.castToBoolean(value); // BooleanType 1657 } else 1658 return super.setProperty(name, value); 1659 return value; 1660 } 1661 1662 @Override 1663 public Base makeProperty(int hash, String name) throws FHIRException { 1664 switch (hash) { 1665 case 530040176: return getSubstance(); 1666 case -1408024454: return getAlternateElement(); 1667 case 75406931: return getAllergenicIndicatorElement(); 1668 default: return super.makeProperty(hash, name); 1669 } 1670 1671 } 1672 1673 @Override 1674 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1675 switch (hash) { 1676 case 530040176: /*substance*/ return new String[] {"CodeableConcept"}; 1677 case -1408024454: /*alternate*/ return new String[] {"boolean"}; 1678 case 75406931: /*allergenicIndicator*/ return new String[] {"boolean"}; 1679 default: return super.getTypesForProperty(hash, name); 1680 } 1681 1682 } 1683 1684 @Override 1685 public Base addChild(String name) throws FHIRException { 1686 if (name.equals("substance")) { 1687 this.substance = new CodeableConcept(); 1688 return this.substance; 1689 } 1690 else if (name.equals("alternate")) { 1691 throw new FHIRException("Cannot call addChild on a primitive type DeviceDefinition.material.alternate"); 1692 } 1693 else if (name.equals("allergenicIndicator")) { 1694 throw new FHIRException("Cannot call addChild on a primitive type DeviceDefinition.material.allergenicIndicator"); 1695 } 1696 else 1697 return super.addChild(name); 1698 } 1699 1700 public DeviceDefinitionMaterialComponent copy() { 1701 DeviceDefinitionMaterialComponent dst = new DeviceDefinitionMaterialComponent(); 1702 copyValues(dst); 1703 return dst; 1704 } 1705 1706 public void copyValues(DeviceDefinitionMaterialComponent dst) { 1707 super.copyValues(dst); 1708 dst.substance = substance == null ? null : substance.copy(); 1709 dst.alternate = alternate == null ? null : alternate.copy(); 1710 dst.allergenicIndicator = allergenicIndicator == null ? null : allergenicIndicator.copy(); 1711 } 1712 1713 @Override 1714 public boolean equalsDeep(Base other_) { 1715 if (!super.equalsDeep(other_)) 1716 return false; 1717 if (!(other_ instanceof DeviceDefinitionMaterialComponent)) 1718 return false; 1719 DeviceDefinitionMaterialComponent o = (DeviceDefinitionMaterialComponent) other_; 1720 return compareDeep(substance, o.substance, true) && compareDeep(alternate, o.alternate, true) && compareDeep(allergenicIndicator, o.allergenicIndicator, true) 1721 ; 1722 } 1723 1724 @Override 1725 public boolean equalsShallow(Base other_) { 1726 if (!super.equalsShallow(other_)) 1727 return false; 1728 if (!(other_ instanceof DeviceDefinitionMaterialComponent)) 1729 return false; 1730 DeviceDefinitionMaterialComponent o = (DeviceDefinitionMaterialComponent) other_; 1731 return compareValues(alternate, o.alternate, true) && compareValues(allergenicIndicator, o.allergenicIndicator, true) 1732 ; 1733 } 1734 1735 public boolean isEmpty() { 1736 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(substance, alternate, allergenicIndicator 1737 ); 1738 } 1739 1740 public String fhirType() { 1741 return "DeviceDefinition.material"; 1742 1743 } 1744 1745 } 1746 1747 /** 1748 * Unique instance identifiers assigned to a device by the software, manufacturers, other organizations or owners. For example: handle ID. 1749 */ 1750 @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1751 @Description(shortDefinition="Instance identifier", formalDefinition="Unique instance identifiers assigned to a device by the software, manufacturers, other organizations or owners. For example: handle ID." ) 1752 protected List<Identifier> identifier; 1753 1754 /** 1755 * Unique device identifier (UDI) assigned to device label or package. Note that the Device may include multiple udiCarriers as it either may include just the udiCarrier for the jurisdiction it is sold, or for multiple jurisdictions it could have been sold. 1756 */ 1757 @Child(name = "udiDeviceIdentifier", type = {}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1758 @Description(shortDefinition="Unique Device Identifier (UDI) Barcode string", formalDefinition="Unique device identifier (UDI) assigned to device label or package. Note that the Device may include multiple udiCarriers as it either may include just the udiCarrier for the jurisdiction it is sold, or for multiple jurisdictions it could have been sold." ) 1759 protected List<DeviceDefinitionUdiDeviceIdentifierComponent> udiDeviceIdentifier; 1760 1761 /** 1762 * A name of the manufacturer. 1763 */ 1764 @Child(name = "manufacturer", type = {StringType.class, Organization.class}, order=2, min=0, max=1, modifier=false, summary=false) 1765 @Description(shortDefinition="Name of device manufacturer", formalDefinition="A name of the manufacturer." ) 1766 protected DataType manufacturer; 1767 1768 /** 1769 * A name given to the device to identify it. 1770 */ 1771 @Child(name = "deviceName", type = {}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1772 @Description(shortDefinition="A name given to the device to identify it", formalDefinition="A name given to the device to identify it." ) 1773 protected List<DeviceDefinitionDeviceNameComponent> deviceName; 1774 1775 /** 1776 * The model number for the device. 1777 */ 1778 @Child(name = "modelNumber", type = {StringType.class}, order=4, min=0, max=1, modifier=false, summary=false) 1779 @Description(shortDefinition="The model number for the device", formalDefinition="The model number for the device." ) 1780 protected StringType modelNumber; 1781 1782 /** 1783 * What kind of device or device system this is. 1784 */ 1785 @Child(name = "type", type = {CodeableConcept.class}, order=5, min=0, max=1, modifier=false, summary=false) 1786 @Description(shortDefinition="What kind of device or device system this is", formalDefinition="What kind of device or device system this is." ) 1787 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/device-kind") 1788 protected CodeableConcept type; 1789 1790 /** 1791 * The capabilities supported on a device, the standards to which the device conforms for a particular purpose, and used for the communication. 1792 */ 1793 @Child(name = "specialization", type = {}, order=6, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1794 @Description(shortDefinition="The capabilities supported on a device, the standards to which the device conforms for a particular purpose, and used for the communication", formalDefinition="The capabilities supported on a device, the standards to which the device conforms for a particular purpose, and used for the communication." ) 1795 protected List<DeviceDefinitionSpecializationComponent> specialization; 1796 1797 /** 1798 * The available versions of the device, e.g., software versions. 1799 */ 1800 @Child(name = "version", type = {StringType.class}, order=7, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1801 @Description(shortDefinition="Available versions", formalDefinition="The available versions of the device, e.g., software versions." ) 1802 protected List<StringType> version; 1803 1804 /** 1805 * Safety characteristics of the device. 1806 */ 1807 @Child(name = "safety", type = {CodeableConcept.class}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 1808 @Description(shortDefinition="Safety characteristics of the device", formalDefinition="Safety characteristics of the device." ) 1809 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/device-safety") 1810 protected List<CodeableConcept> safety; 1811 1812 /** 1813 * Shelf Life and storage information. 1814 */ 1815 @Child(name = "shelfLifeStorage", type = {ProductShelfLife.class}, order=9, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1816 @Description(shortDefinition="Shelf Life and storage information", formalDefinition="Shelf Life and storage information." ) 1817 protected List<ProductShelfLife> shelfLifeStorage; 1818 1819 /** 1820 * Dimensions, color etc. 1821 */ 1822 @Child(name = "physicalCharacteristics", type = {ProdCharacteristic.class}, order=10, min=0, max=1, modifier=false, summary=false) 1823 @Description(shortDefinition="Dimensions, color etc.", formalDefinition="Dimensions, color etc." ) 1824 protected ProdCharacteristic physicalCharacteristics; 1825 1826 /** 1827 * Language code for the human-readable text strings produced by the device (all supported). 1828 */ 1829 @Child(name = "languageCode", type = {CodeableConcept.class}, order=11, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1830 @Description(shortDefinition="Language code for the human-readable text strings produced by the device (all supported)", formalDefinition="Language code for the human-readable text strings produced by the device (all supported)." ) 1831 protected List<CodeableConcept> languageCode; 1832 1833 /** 1834 * Device capabilities. 1835 */ 1836 @Child(name = "capability", type = {}, order=12, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1837 @Description(shortDefinition="Device capabilities", formalDefinition="Device capabilities." ) 1838 protected List<DeviceDefinitionCapabilityComponent> capability; 1839 1840 /** 1841 * The actual configuration settings of a device as it actually operates, e.g., regulation status, time properties. 1842 */ 1843 @Child(name = "property", type = {}, order=13, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1844 @Description(shortDefinition="The actual configuration settings of a device as it actually operates, e.g., regulation status, time properties", formalDefinition="The actual configuration settings of a device as it actually operates, e.g., regulation status, time properties." ) 1845 protected List<DeviceDefinitionPropertyComponent> property; 1846 1847 /** 1848 * An organization that is responsible for the provision and ongoing maintenance of the device. 1849 */ 1850 @Child(name = "owner", type = {Organization.class}, order=14, min=0, max=1, modifier=false, summary=false) 1851 @Description(shortDefinition="Organization responsible for device", formalDefinition="An organization that is responsible for the provision and ongoing maintenance of the device." ) 1852 protected Reference owner; 1853 1854 /** 1855 * Contact details for an organization or a particular human that is responsible for the device. 1856 */ 1857 @Child(name = "contact", type = {ContactPoint.class}, order=15, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1858 @Description(shortDefinition="Details for human/organization for support", formalDefinition="Contact details for an organization or a particular human that is responsible for the device." ) 1859 protected List<ContactPoint> contact; 1860 1861 /** 1862 * A network address on which the device may be contacted directly. 1863 */ 1864 @Child(name = "url", type = {UriType.class}, order=16, min=0, max=1, modifier=false, summary=false) 1865 @Description(shortDefinition="Network address to contact device", formalDefinition="A network address on which the device may be contacted directly." ) 1866 protected UriType url; 1867 1868 /** 1869 * Access to on-line information about the device. 1870 */ 1871 @Child(name = "onlineInformation", type = {UriType.class}, order=17, min=0, max=1, modifier=false, summary=false) 1872 @Description(shortDefinition="Access to on-line information", formalDefinition="Access to on-line information about the device." ) 1873 protected UriType onlineInformation; 1874 1875 /** 1876 * Descriptive information, usage information or implantation information that is not captured in an existing element. 1877 */ 1878 @Child(name = "note", type = {Annotation.class}, order=18, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1879 @Description(shortDefinition="Device notes and comments", formalDefinition="Descriptive information, usage information or implantation information that is not captured in an existing element." ) 1880 protected List<Annotation> note; 1881 1882 /** 1883 * The quantity of the device present in the packaging (e.g. the number of devices present in a pack, or the number of devices in the same package of the medicinal product). 1884 */ 1885 @Child(name = "quantity", type = {Quantity.class}, order=19, min=0, max=1, modifier=false, summary=false) 1886 @Description(shortDefinition="The quantity of the device present in the packaging (e.g. the number of devices present in a pack, or the number of devices in the same package of the medicinal product)", formalDefinition="The quantity of the device present in the packaging (e.g. the number of devices present in a pack, or the number of devices in the same package of the medicinal product)." ) 1887 protected Quantity quantity; 1888 1889 /** 1890 * The parent device it can be part of. 1891 */ 1892 @Child(name = "parentDevice", type = {DeviceDefinition.class}, order=20, min=0, max=1, modifier=false, summary=true) 1893 @Description(shortDefinition="The parent device it can be part of", formalDefinition="The parent device it can be part of." ) 1894 protected Reference parentDevice; 1895 1896 /** 1897 * A substance used to create the material(s) of which the device is made. 1898 */ 1899 @Child(name = "material", type = {}, order=21, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1900 @Description(shortDefinition="A substance used to create the material(s) of which the device is made", formalDefinition="A substance used to create the material(s) of which the device is made." ) 1901 protected List<DeviceDefinitionMaterialComponent> material; 1902 1903 private static final long serialVersionUID = 740460962L; 1904 1905 /** 1906 * Constructor 1907 */ 1908 public DeviceDefinition() { 1909 super(); 1910 } 1911 1912 /** 1913 * @return {@link #identifier} (Unique instance identifiers assigned to a device by the software, manufacturers, other organizations or owners. For example: handle ID.) 1914 */ 1915 public List<Identifier> getIdentifier() { 1916 if (this.identifier == null) 1917 this.identifier = new ArrayList<Identifier>(); 1918 return this.identifier; 1919 } 1920 1921 /** 1922 * @return Returns a reference to <code>this</code> for easy method chaining 1923 */ 1924 public DeviceDefinition setIdentifier(List<Identifier> theIdentifier) { 1925 this.identifier = theIdentifier; 1926 return this; 1927 } 1928 1929 public boolean hasIdentifier() { 1930 if (this.identifier == null) 1931 return false; 1932 for (Identifier item : this.identifier) 1933 if (!item.isEmpty()) 1934 return true; 1935 return false; 1936 } 1937 1938 public Identifier addIdentifier() { //3 1939 Identifier t = new Identifier(); 1940 if (this.identifier == null) 1941 this.identifier = new ArrayList<Identifier>(); 1942 this.identifier.add(t); 1943 return t; 1944 } 1945 1946 public DeviceDefinition addIdentifier(Identifier t) { //3 1947 if (t == null) 1948 return this; 1949 if (this.identifier == null) 1950 this.identifier = new ArrayList<Identifier>(); 1951 this.identifier.add(t); 1952 return this; 1953 } 1954 1955 /** 1956 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3} 1957 */ 1958 public Identifier getIdentifierFirstRep() { 1959 if (getIdentifier().isEmpty()) { 1960 addIdentifier(); 1961 } 1962 return getIdentifier().get(0); 1963 } 1964 1965 /** 1966 * @return {@link #udiDeviceIdentifier} (Unique device identifier (UDI) assigned to device label or package. Note that the Device may include multiple udiCarriers as it either may include just the udiCarrier for the jurisdiction it is sold, or for multiple jurisdictions it could have been sold.) 1967 */ 1968 public List<DeviceDefinitionUdiDeviceIdentifierComponent> getUdiDeviceIdentifier() { 1969 if (this.udiDeviceIdentifier == null) 1970 this.udiDeviceIdentifier = new ArrayList<DeviceDefinitionUdiDeviceIdentifierComponent>(); 1971 return this.udiDeviceIdentifier; 1972 } 1973 1974 /** 1975 * @return Returns a reference to <code>this</code> for easy method chaining 1976 */ 1977 public DeviceDefinition setUdiDeviceIdentifier(List<DeviceDefinitionUdiDeviceIdentifierComponent> theUdiDeviceIdentifier) { 1978 this.udiDeviceIdentifier = theUdiDeviceIdentifier; 1979 return this; 1980 } 1981 1982 public boolean hasUdiDeviceIdentifier() { 1983 if (this.udiDeviceIdentifier == null) 1984 return false; 1985 for (DeviceDefinitionUdiDeviceIdentifierComponent item : this.udiDeviceIdentifier) 1986 if (!item.isEmpty()) 1987 return true; 1988 return false; 1989 } 1990 1991 public DeviceDefinitionUdiDeviceIdentifierComponent addUdiDeviceIdentifier() { //3 1992 DeviceDefinitionUdiDeviceIdentifierComponent t = new DeviceDefinitionUdiDeviceIdentifierComponent(); 1993 if (this.udiDeviceIdentifier == null) 1994 this.udiDeviceIdentifier = new ArrayList<DeviceDefinitionUdiDeviceIdentifierComponent>(); 1995 this.udiDeviceIdentifier.add(t); 1996 return t; 1997 } 1998 1999 public DeviceDefinition addUdiDeviceIdentifier(DeviceDefinitionUdiDeviceIdentifierComponent t) { //3 2000 if (t == null) 2001 return this; 2002 if (this.udiDeviceIdentifier == null) 2003 this.udiDeviceIdentifier = new ArrayList<DeviceDefinitionUdiDeviceIdentifierComponent>(); 2004 this.udiDeviceIdentifier.add(t); 2005 return this; 2006 } 2007 2008 /** 2009 * @return The first repetition of repeating field {@link #udiDeviceIdentifier}, creating it if it does not already exist {3} 2010 */ 2011 public DeviceDefinitionUdiDeviceIdentifierComponent getUdiDeviceIdentifierFirstRep() { 2012 if (getUdiDeviceIdentifier().isEmpty()) { 2013 addUdiDeviceIdentifier(); 2014 } 2015 return getUdiDeviceIdentifier().get(0); 2016 } 2017 2018 /** 2019 * @return {@link #manufacturer} (A name of the manufacturer.) 2020 */ 2021 public DataType getManufacturer() { 2022 return this.manufacturer; 2023 } 2024 2025 /** 2026 * @return {@link #manufacturer} (A name of the manufacturer.) 2027 */ 2028 public StringType getManufacturerStringType() throws FHIRException { 2029 if (this.manufacturer == null) 2030 this.manufacturer = new StringType(); 2031 if (!(this.manufacturer instanceof StringType)) 2032 throw new FHIRException("Type mismatch: the type StringType was expected, but "+this.manufacturer.getClass().getName()+" was encountered"); 2033 return (StringType) this.manufacturer; 2034 } 2035 2036 public boolean hasManufacturerStringType() { 2037 return this != null && this.manufacturer instanceof StringType; 2038 } 2039 2040 /** 2041 * @return {@link #manufacturer} (A name of the manufacturer.) 2042 */ 2043 public Reference getManufacturerReference() throws FHIRException { 2044 if (this.manufacturer == null) 2045 this.manufacturer = new Reference(); 2046 if (!(this.manufacturer instanceof Reference)) 2047 throw new FHIRException("Type mismatch: the type Reference was expected, but "+this.manufacturer.getClass().getName()+" was encountered"); 2048 return (Reference) this.manufacturer; 2049 } 2050 2051 public boolean hasManufacturerReference() { 2052 return this != null && this.manufacturer instanceof Reference; 2053 } 2054 2055 public boolean hasManufacturer() { 2056 return this.manufacturer != null && !this.manufacturer.isEmpty(); 2057 } 2058 2059 /** 2060 * @param value {@link #manufacturer} (A name of the manufacturer.) 2061 */ 2062 public DeviceDefinition setManufacturer(DataType value) { 2063 if (value != null && !(value instanceof StringType || value instanceof Reference)) 2064 throw new Error("Not the right type for DeviceDefinition.manufacturer[x]: "+value.fhirType()); 2065 this.manufacturer = value; 2066 return this; 2067 } 2068 2069 /** 2070 * @return {@link #deviceName} (A name given to the device to identify it.) 2071 */ 2072 public List<DeviceDefinitionDeviceNameComponent> getDeviceName() { 2073 if (this.deviceName == null) 2074 this.deviceName = new ArrayList<DeviceDefinitionDeviceNameComponent>(); 2075 return this.deviceName; 2076 } 2077 2078 /** 2079 * @return Returns a reference to <code>this</code> for easy method chaining 2080 */ 2081 public DeviceDefinition setDeviceName(List<DeviceDefinitionDeviceNameComponent> theDeviceName) { 2082 this.deviceName = theDeviceName; 2083 return this; 2084 } 2085 2086 public boolean hasDeviceName() { 2087 if (this.deviceName == null) 2088 return false; 2089 for (DeviceDefinitionDeviceNameComponent item : this.deviceName) 2090 if (!item.isEmpty()) 2091 return true; 2092 return false; 2093 } 2094 2095 public DeviceDefinitionDeviceNameComponent addDeviceName() { //3 2096 DeviceDefinitionDeviceNameComponent t = new DeviceDefinitionDeviceNameComponent(); 2097 if (this.deviceName == null) 2098 this.deviceName = new ArrayList<DeviceDefinitionDeviceNameComponent>(); 2099 this.deviceName.add(t); 2100 return t; 2101 } 2102 2103 public DeviceDefinition addDeviceName(DeviceDefinitionDeviceNameComponent t) { //3 2104 if (t == null) 2105 return this; 2106 if (this.deviceName == null) 2107 this.deviceName = new ArrayList<DeviceDefinitionDeviceNameComponent>(); 2108 this.deviceName.add(t); 2109 return this; 2110 } 2111 2112 /** 2113 * @return The first repetition of repeating field {@link #deviceName}, creating it if it does not already exist {3} 2114 */ 2115 public DeviceDefinitionDeviceNameComponent getDeviceNameFirstRep() { 2116 if (getDeviceName().isEmpty()) { 2117 addDeviceName(); 2118 } 2119 return getDeviceName().get(0); 2120 } 2121 2122 /** 2123 * @return {@link #modelNumber} (The model number for the device.). This is the underlying object with id, value and extensions. The accessor "getModelNumber" gives direct access to the value 2124 */ 2125 public StringType getModelNumberElement() { 2126 if (this.modelNumber == null) 2127 if (Configuration.errorOnAutoCreate()) 2128 throw new Error("Attempt to auto-create DeviceDefinition.modelNumber"); 2129 else if (Configuration.doAutoCreate()) 2130 this.modelNumber = new StringType(); // bb 2131 return this.modelNumber; 2132 } 2133 2134 public boolean hasModelNumberElement() { 2135 return this.modelNumber != null && !this.modelNumber.isEmpty(); 2136 } 2137 2138 public boolean hasModelNumber() { 2139 return this.modelNumber != null && !this.modelNumber.isEmpty(); 2140 } 2141 2142 /** 2143 * @param value {@link #modelNumber} (The model number for the device.). This is the underlying object with id, value and extensions. The accessor "getModelNumber" gives direct access to the value 2144 */ 2145 public DeviceDefinition setModelNumberElement(StringType value) { 2146 this.modelNumber = value; 2147 return this; 2148 } 2149 2150 /** 2151 * @return The model number for the device. 2152 */ 2153 public String getModelNumber() { 2154 return this.modelNumber == null ? null : this.modelNumber.getValue(); 2155 } 2156 2157 /** 2158 * @param value The model number for the device. 2159 */ 2160 public DeviceDefinition setModelNumber(String value) { 2161 if (Utilities.noString(value)) 2162 this.modelNumber = null; 2163 else { 2164 if (this.modelNumber == null) 2165 this.modelNumber = new StringType(); 2166 this.modelNumber.setValue(value); 2167 } 2168 return this; 2169 } 2170 2171 /** 2172 * @return {@link #type} (What kind of device or device system this is.) 2173 */ 2174 public CodeableConcept getType() { 2175 if (this.type == null) 2176 if (Configuration.errorOnAutoCreate()) 2177 throw new Error("Attempt to auto-create DeviceDefinition.type"); 2178 else if (Configuration.doAutoCreate()) 2179 this.type = new CodeableConcept(); // cc 2180 return this.type; 2181 } 2182 2183 public boolean hasType() { 2184 return this.type != null && !this.type.isEmpty(); 2185 } 2186 2187 /** 2188 * @param value {@link #type} (What kind of device or device system this is.) 2189 */ 2190 public DeviceDefinition setType(CodeableConcept value) { 2191 this.type = value; 2192 return this; 2193 } 2194 2195 /** 2196 * @return {@link #specialization} (The capabilities supported on a device, the standards to which the device conforms for a particular purpose, and used for the communication.) 2197 */ 2198 public List<DeviceDefinitionSpecializationComponent> getSpecialization() { 2199 if (this.specialization == null) 2200 this.specialization = new ArrayList<DeviceDefinitionSpecializationComponent>(); 2201 return this.specialization; 2202 } 2203 2204 /** 2205 * @return Returns a reference to <code>this</code> for easy method chaining 2206 */ 2207 public DeviceDefinition setSpecialization(List<DeviceDefinitionSpecializationComponent> theSpecialization) { 2208 this.specialization = theSpecialization; 2209 return this; 2210 } 2211 2212 public boolean hasSpecialization() { 2213 if (this.specialization == null) 2214 return false; 2215 for (DeviceDefinitionSpecializationComponent item : this.specialization) 2216 if (!item.isEmpty()) 2217 return true; 2218 return false; 2219 } 2220 2221 public DeviceDefinitionSpecializationComponent addSpecialization() { //3 2222 DeviceDefinitionSpecializationComponent t = new DeviceDefinitionSpecializationComponent(); 2223 if (this.specialization == null) 2224 this.specialization = new ArrayList<DeviceDefinitionSpecializationComponent>(); 2225 this.specialization.add(t); 2226 return t; 2227 } 2228 2229 public DeviceDefinition addSpecialization(DeviceDefinitionSpecializationComponent t) { //3 2230 if (t == null) 2231 return this; 2232 if (this.specialization == null) 2233 this.specialization = new ArrayList<DeviceDefinitionSpecializationComponent>(); 2234 this.specialization.add(t); 2235 return this; 2236 } 2237 2238 /** 2239 * @return The first repetition of repeating field {@link #specialization}, creating it if it does not already exist {3} 2240 */ 2241 public DeviceDefinitionSpecializationComponent getSpecializationFirstRep() { 2242 if (getSpecialization().isEmpty()) { 2243 addSpecialization(); 2244 } 2245 return getSpecialization().get(0); 2246 } 2247 2248 /** 2249 * @return {@link #version} (The available versions of the device, e.g., software versions.) 2250 */ 2251 public List<StringType> getVersion() { 2252 if (this.version == null) 2253 this.version = new ArrayList<StringType>(); 2254 return this.version; 2255 } 2256 2257 /** 2258 * @return Returns a reference to <code>this</code> for easy method chaining 2259 */ 2260 public DeviceDefinition setVersion(List<StringType> theVersion) { 2261 this.version = theVersion; 2262 return this; 2263 } 2264 2265 public boolean hasVersion() { 2266 if (this.version == null) 2267 return false; 2268 for (StringType item : this.version) 2269 if (!item.isEmpty()) 2270 return true; 2271 return false; 2272 } 2273 2274 /** 2275 * @return {@link #version} (The available versions of the device, e.g., software versions.) 2276 */ 2277 public StringType addVersionElement() {//2 2278 StringType t = new StringType(); 2279 if (this.version == null) 2280 this.version = new ArrayList<StringType>(); 2281 this.version.add(t); 2282 return t; 2283 } 2284 2285 /** 2286 * @param value {@link #version} (The available versions of the device, e.g., software versions.) 2287 */ 2288 public DeviceDefinition addVersion(String value) { //1 2289 StringType t = new StringType(); 2290 t.setValue(value); 2291 if (this.version == null) 2292 this.version = new ArrayList<StringType>(); 2293 this.version.add(t); 2294 return this; 2295 } 2296 2297 /** 2298 * @param value {@link #version} (The available versions of the device, e.g., software versions.) 2299 */ 2300 public boolean hasVersion(String value) { 2301 if (this.version == null) 2302 return false; 2303 for (StringType v : this.version) 2304 if (v.getValue().equals(value)) // string 2305 return true; 2306 return false; 2307 } 2308 2309 /** 2310 * @return {@link #safety} (Safety characteristics of the device.) 2311 */ 2312 public List<CodeableConcept> getSafety() { 2313 if (this.safety == null) 2314 this.safety = new ArrayList<CodeableConcept>(); 2315 return this.safety; 2316 } 2317 2318 /** 2319 * @return Returns a reference to <code>this</code> for easy method chaining 2320 */ 2321 public DeviceDefinition setSafety(List<CodeableConcept> theSafety) { 2322 this.safety = theSafety; 2323 return this; 2324 } 2325 2326 public boolean hasSafety() { 2327 if (this.safety == null) 2328 return false; 2329 for (CodeableConcept item : this.safety) 2330 if (!item.isEmpty()) 2331 return true; 2332 return false; 2333 } 2334 2335 public CodeableConcept addSafety() { //3 2336 CodeableConcept t = new CodeableConcept(); 2337 if (this.safety == null) 2338 this.safety = new ArrayList<CodeableConcept>(); 2339 this.safety.add(t); 2340 return t; 2341 } 2342 2343 public DeviceDefinition addSafety(CodeableConcept t) { //3 2344 if (t == null) 2345 return this; 2346 if (this.safety == null) 2347 this.safety = new ArrayList<CodeableConcept>(); 2348 this.safety.add(t); 2349 return this; 2350 } 2351 2352 /** 2353 * @return The first repetition of repeating field {@link #safety}, creating it if it does not already exist {3} 2354 */ 2355 public CodeableConcept getSafetyFirstRep() { 2356 if (getSafety().isEmpty()) { 2357 addSafety(); 2358 } 2359 return getSafety().get(0); 2360 } 2361 2362 /** 2363 * @return {@link #shelfLifeStorage} (Shelf Life and storage information.) 2364 */ 2365 public List<ProductShelfLife> getShelfLifeStorage() { 2366 if (this.shelfLifeStorage == null) 2367 this.shelfLifeStorage = new ArrayList<ProductShelfLife>(); 2368 return this.shelfLifeStorage; 2369 } 2370 2371 /** 2372 * @return Returns a reference to <code>this</code> for easy method chaining 2373 */ 2374 public DeviceDefinition setShelfLifeStorage(List<ProductShelfLife> theShelfLifeStorage) { 2375 this.shelfLifeStorage = theShelfLifeStorage; 2376 return this; 2377 } 2378 2379 public boolean hasShelfLifeStorage() { 2380 if (this.shelfLifeStorage == null) 2381 return false; 2382 for (ProductShelfLife item : this.shelfLifeStorage) 2383 if (!item.isEmpty()) 2384 return true; 2385 return false; 2386 } 2387 2388 public ProductShelfLife addShelfLifeStorage() { //3 2389 ProductShelfLife t = new ProductShelfLife(); 2390 if (this.shelfLifeStorage == null) 2391 this.shelfLifeStorage = new ArrayList<ProductShelfLife>(); 2392 this.shelfLifeStorage.add(t); 2393 return t; 2394 } 2395 2396 public DeviceDefinition addShelfLifeStorage(ProductShelfLife t) { //3 2397 if (t == null) 2398 return this; 2399 if (this.shelfLifeStorage == null) 2400 this.shelfLifeStorage = new ArrayList<ProductShelfLife>(); 2401 this.shelfLifeStorage.add(t); 2402 return this; 2403 } 2404 2405 /** 2406 * @return The first repetition of repeating field {@link #shelfLifeStorage}, creating it if it does not already exist {3} 2407 */ 2408 public ProductShelfLife getShelfLifeStorageFirstRep() { 2409 if (getShelfLifeStorage().isEmpty()) { 2410 addShelfLifeStorage(); 2411 } 2412 return getShelfLifeStorage().get(0); 2413 } 2414 2415 /** 2416 * @return {@link #physicalCharacteristics} (Dimensions, color etc.) 2417 */ 2418 public ProdCharacteristic getPhysicalCharacteristics() { 2419 if (this.physicalCharacteristics == null) 2420 if (Configuration.errorOnAutoCreate()) 2421 throw new Error("Attempt to auto-create DeviceDefinition.physicalCharacteristics"); 2422 else if (Configuration.doAutoCreate()) 2423 this.physicalCharacteristics = new ProdCharacteristic(); // cc 2424 return this.physicalCharacteristics; 2425 } 2426 2427 public boolean hasPhysicalCharacteristics() { 2428 return this.physicalCharacteristics != null && !this.physicalCharacteristics.isEmpty(); 2429 } 2430 2431 /** 2432 * @param value {@link #physicalCharacteristics} (Dimensions, color etc.) 2433 */ 2434 public DeviceDefinition setPhysicalCharacteristics(ProdCharacteristic value) { 2435 this.physicalCharacteristics = value; 2436 return this; 2437 } 2438 2439 /** 2440 * @return {@link #languageCode} (Language code for the human-readable text strings produced by the device (all supported).) 2441 */ 2442 public List<CodeableConcept> getLanguageCode() { 2443 if (this.languageCode == null) 2444 this.languageCode = new ArrayList<CodeableConcept>(); 2445 return this.languageCode; 2446 } 2447 2448 /** 2449 * @return Returns a reference to <code>this</code> for easy method chaining 2450 */ 2451 public DeviceDefinition setLanguageCode(List<CodeableConcept> theLanguageCode) { 2452 this.languageCode = theLanguageCode; 2453 return this; 2454 } 2455 2456 public boolean hasLanguageCode() { 2457 if (this.languageCode == null) 2458 return false; 2459 for (CodeableConcept item : this.languageCode) 2460 if (!item.isEmpty()) 2461 return true; 2462 return false; 2463 } 2464 2465 public CodeableConcept addLanguageCode() { //3 2466 CodeableConcept t = new CodeableConcept(); 2467 if (this.languageCode == null) 2468 this.languageCode = new ArrayList<CodeableConcept>(); 2469 this.languageCode.add(t); 2470 return t; 2471 } 2472 2473 public DeviceDefinition addLanguageCode(CodeableConcept t) { //3 2474 if (t == null) 2475 return this; 2476 if (this.languageCode == null) 2477 this.languageCode = new ArrayList<CodeableConcept>(); 2478 this.languageCode.add(t); 2479 return this; 2480 } 2481 2482 /** 2483 * @return The first repetition of repeating field {@link #languageCode}, creating it if it does not already exist {3} 2484 */ 2485 public CodeableConcept getLanguageCodeFirstRep() { 2486 if (getLanguageCode().isEmpty()) { 2487 addLanguageCode(); 2488 } 2489 return getLanguageCode().get(0); 2490 } 2491 2492 /** 2493 * @return {@link #capability} (Device capabilities.) 2494 */ 2495 public List<DeviceDefinitionCapabilityComponent> getCapability() { 2496 if (this.capability == null) 2497 this.capability = new ArrayList<DeviceDefinitionCapabilityComponent>(); 2498 return this.capability; 2499 } 2500 2501 /** 2502 * @return Returns a reference to <code>this</code> for easy method chaining 2503 */ 2504 public DeviceDefinition setCapability(List<DeviceDefinitionCapabilityComponent> theCapability) { 2505 this.capability = theCapability; 2506 return this; 2507 } 2508 2509 public boolean hasCapability() { 2510 if (this.capability == null) 2511 return false; 2512 for (DeviceDefinitionCapabilityComponent item : this.capability) 2513 if (!item.isEmpty()) 2514 return true; 2515 return false; 2516 } 2517 2518 public DeviceDefinitionCapabilityComponent addCapability() { //3 2519 DeviceDefinitionCapabilityComponent t = new DeviceDefinitionCapabilityComponent(); 2520 if (this.capability == null) 2521 this.capability = new ArrayList<DeviceDefinitionCapabilityComponent>(); 2522 this.capability.add(t); 2523 return t; 2524 } 2525 2526 public DeviceDefinition addCapability(DeviceDefinitionCapabilityComponent t) { //3 2527 if (t == null) 2528 return this; 2529 if (this.capability == null) 2530 this.capability = new ArrayList<DeviceDefinitionCapabilityComponent>(); 2531 this.capability.add(t); 2532 return this; 2533 } 2534 2535 /** 2536 * @return The first repetition of repeating field {@link #capability}, creating it if it does not already exist {3} 2537 */ 2538 public DeviceDefinitionCapabilityComponent getCapabilityFirstRep() { 2539 if (getCapability().isEmpty()) { 2540 addCapability(); 2541 } 2542 return getCapability().get(0); 2543 } 2544 2545 /** 2546 * @return {@link #property} (The actual configuration settings of a device as it actually operates, e.g., regulation status, time properties.) 2547 */ 2548 public List<DeviceDefinitionPropertyComponent> getProperty() { 2549 if (this.property == null) 2550 this.property = new ArrayList<DeviceDefinitionPropertyComponent>(); 2551 return this.property; 2552 } 2553 2554 /** 2555 * @return Returns a reference to <code>this</code> for easy method chaining 2556 */ 2557 public DeviceDefinition setProperty(List<DeviceDefinitionPropertyComponent> theProperty) { 2558 this.property = theProperty; 2559 return this; 2560 } 2561 2562 public boolean hasProperty() { 2563 if (this.property == null) 2564 return false; 2565 for (DeviceDefinitionPropertyComponent item : this.property) 2566 if (!item.isEmpty()) 2567 return true; 2568 return false; 2569 } 2570 2571 public DeviceDefinitionPropertyComponent addProperty() { //3 2572 DeviceDefinitionPropertyComponent t = new DeviceDefinitionPropertyComponent(); 2573 if (this.property == null) 2574 this.property = new ArrayList<DeviceDefinitionPropertyComponent>(); 2575 this.property.add(t); 2576 return t; 2577 } 2578 2579 public DeviceDefinition addProperty(DeviceDefinitionPropertyComponent t) { //3 2580 if (t == null) 2581 return this; 2582 if (this.property == null) 2583 this.property = new ArrayList<DeviceDefinitionPropertyComponent>(); 2584 this.property.add(t); 2585 return this; 2586 } 2587 2588 /** 2589 * @return The first repetition of repeating field {@link #property}, creating it if it does not already exist {3} 2590 */ 2591 public DeviceDefinitionPropertyComponent getPropertyFirstRep() { 2592 if (getProperty().isEmpty()) { 2593 addProperty(); 2594 } 2595 return getProperty().get(0); 2596 } 2597 2598 /** 2599 * @return {@link #owner} (An organization that is responsible for the provision and ongoing maintenance of the device.) 2600 */ 2601 public Reference getOwner() { 2602 if (this.owner == null) 2603 if (Configuration.errorOnAutoCreate()) 2604 throw new Error("Attempt to auto-create DeviceDefinition.owner"); 2605 else if (Configuration.doAutoCreate()) 2606 this.owner = new Reference(); // cc 2607 return this.owner; 2608 } 2609 2610 public boolean hasOwner() { 2611 return this.owner != null && !this.owner.isEmpty(); 2612 } 2613 2614 /** 2615 * @param value {@link #owner} (An organization that is responsible for the provision and ongoing maintenance of the device.) 2616 */ 2617 public DeviceDefinition setOwner(Reference value) { 2618 this.owner = value; 2619 return this; 2620 } 2621 2622 /** 2623 * @return {@link #contact} (Contact details for an organization or a particular human that is responsible for the device.) 2624 */ 2625 public List<ContactPoint> getContact() { 2626 if (this.contact == null) 2627 this.contact = new ArrayList<ContactPoint>(); 2628 return this.contact; 2629 } 2630 2631 /** 2632 * @return Returns a reference to <code>this</code> for easy method chaining 2633 */ 2634 public DeviceDefinition setContact(List<ContactPoint> theContact) { 2635 this.contact = theContact; 2636 return this; 2637 } 2638 2639 public boolean hasContact() { 2640 if (this.contact == null) 2641 return false; 2642 for (ContactPoint item : this.contact) 2643 if (!item.isEmpty()) 2644 return true; 2645 return false; 2646 } 2647 2648 public ContactPoint addContact() { //3 2649 ContactPoint t = new ContactPoint(); 2650 if (this.contact == null) 2651 this.contact = new ArrayList<ContactPoint>(); 2652 this.contact.add(t); 2653 return t; 2654 } 2655 2656 public DeviceDefinition addContact(ContactPoint t) { //3 2657 if (t == null) 2658 return this; 2659 if (this.contact == null) 2660 this.contact = new ArrayList<ContactPoint>(); 2661 this.contact.add(t); 2662 return this; 2663 } 2664 2665 /** 2666 * @return The first repetition of repeating field {@link #contact}, creating it if it does not already exist {3} 2667 */ 2668 public ContactPoint getContactFirstRep() { 2669 if (getContact().isEmpty()) { 2670 addContact(); 2671 } 2672 return getContact().get(0); 2673 } 2674 2675 /** 2676 * @return {@link #url} (A network address on which the device may be contacted directly.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value 2677 */ 2678 public UriType getUrlElement() { 2679 if (this.url == null) 2680 if (Configuration.errorOnAutoCreate()) 2681 throw new Error("Attempt to auto-create DeviceDefinition.url"); 2682 else if (Configuration.doAutoCreate()) 2683 this.url = new UriType(); // bb 2684 return this.url; 2685 } 2686 2687 public boolean hasUrlElement() { 2688 return this.url != null && !this.url.isEmpty(); 2689 } 2690 2691 public boolean hasUrl() { 2692 return this.url != null && !this.url.isEmpty(); 2693 } 2694 2695 /** 2696 * @param value {@link #url} (A network address on which the device may be contacted directly.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value 2697 */ 2698 public DeviceDefinition setUrlElement(UriType value) { 2699 this.url = value; 2700 return this; 2701 } 2702 2703 /** 2704 * @return A network address on which the device may be contacted directly. 2705 */ 2706 public String getUrl() { 2707 return this.url == null ? null : this.url.getValue(); 2708 } 2709 2710 /** 2711 * @param value A network address on which the device may be contacted directly. 2712 */ 2713 public DeviceDefinition setUrl(String value) { 2714 if (Utilities.noString(value)) 2715 this.url = null; 2716 else { 2717 if (this.url == null) 2718 this.url = new UriType(); 2719 this.url.setValue(value); 2720 } 2721 return this; 2722 } 2723 2724 /** 2725 * @return {@link #onlineInformation} (Access to on-line information about the device.). This is the underlying object with id, value and extensions. The accessor "getOnlineInformation" gives direct access to the value 2726 */ 2727 public UriType getOnlineInformationElement() { 2728 if (this.onlineInformation == null) 2729 if (Configuration.errorOnAutoCreate()) 2730 throw new Error("Attempt to auto-create DeviceDefinition.onlineInformation"); 2731 else if (Configuration.doAutoCreate()) 2732 this.onlineInformation = new UriType(); // bb 2733 return this.onlineInformation; 2734 } 2735 2736 public boolean hasOnlineInformationElement() { 2737 return this.onlineInformation != null && !this.onlineInformation.isEmpty(); 2738 } 2739 2740 public boolean hasOnlineInformation() { 2741 return this.onlineInformation != null && !this.onlineInformation.isEmpty(); 2742 } 2743 2744 /** 2745 * @param value {@link #onlineInformation} (Access to on-line information about the device.). This is the underlying object with id, value and extensions. The accessor "getOnlineInformation" gives direct access to the value 2746 */ 2747 public DeviceDefinition setOnlineInformationElement(UriType value) { 2748 this.onlineInformation = value; 2749 return this; 2750 } 2751 2752 /** 2753 * @return Access to on-line information about the device. 2754 */ 2755 public String getOnlineInformation() { 2756 return this.onlineInformation == null ? null : this.onlineInformation.getValue(); 2757 } 2758 2759 /** 2760 * @param value Access to on-line information about the device. 2761 */ 2762 public DeviceDefinition setOnlineInformation(String value) { 2763 if (Utilities.noString(value)) 2764 this.onlineInformation = null; 2765 else { 2766 if (this.onlineInformation == null) 2767 this.onlineInformation = new UriType(); 2768 this.onlineInformation.setValue(value); 2769 } 2770 return this; 2771 } 2772 2773 /** 2774 * @return {@link #note} (Descriptive information, usage information or implantation information that is not captured in an existing element.) 2775 */ 2776 public List<Annotation> getNote() { 2777 if (this.note == null) 2778 this.note = new ArrayList<Annotation>(); 2779 return this.note; 2780 } 2781 2782 /** 2783 * @return Returns a reference to <code>this</code> for easy method chaining 2784 */ 2785 public DeviceDefinition setNote(List<Annotation> theNote) { 2786 this.note = theNote; 2787 return this; 2788 } 2789 2790 public boolean hasNote() { 2791 if (this.note == null) 2792 return false; 2793 for (Annotation item : this.note) 2794 if (!item.isEmpty()) 2795 return true; 2796 return false; 2797 } 2798 2799 public Annotation addNote() { //3 2800 Annotation t = new Annotation(); 2801 if (this.note == null) 2802 this.note = new ArrayList<Annotation>(); 2803 this.note.add(t); 2804 return t; 2805 } 2806 2807 public DeviceDefinition addNote(Annotation t) { //3 2808 if (t == null) 2809 return this; 2810 if (this.note == null) 2811 this.note = new ArrayList<Annotation>(); 2812 this.note.add(t); 2813 return this; 2814 } 2815 2816 /** 2817 * @return The first repetition of repeating field {@link #note}, creating it if it does not already exist {3} 2818 */ 2819 public Annotation getNoteFirstRep() { 2820 if (getNote().isEmpty()) { 2821 addNote(); 2822 } 2823 return getNote().get(0); 2824 } 2825 2826 /** 2827 * @return {@link #quantity} (The quantity of the device present in the packaging (e.g. the number of devices present in a pack, or the number of devices in the same package of the medicinal product).) 2828 */ 2829 public Quantity getQuantity() { 2830 if (this.quantity == null) 2831 if (Configuration.errorOnAutoCreate()) 2832 throw new Error("Attempt to auto-create DeviceDefinition.quantity"); 2833 else if (Configuration.doAutoCreate()) 2834 this.quantity = new Quantity(); // cc 2835 return this.quantity; 2836 } 2837 2838 public boolean hasQuantity() { 2839 return this.quantity != null && !this.quantity.isEmpty(); 2840 } 2841 2842 /** 2843 * @param value {@link #quantity} (The quantity of the device present in the packaging (e.g. the number of devices present in a pack, or the number of devices in the same package of the medicinal product).) 2844 */ 2845 public DeviceDefinition setQuantity(Quantity value) { 2846 this.quantity = value; 2847 return this; 2848 } 2849 2850 /** 2851 * @return {@link #parentDevice} (The parent device it can be part of.) 2852 */ 2853 public Reference getParentDevice() { 2854 if (this.parentDevice == null) 2855 if (Configuration.errorOnAutoCreate()) 2856 throw new Error("Attempt to auto-create DeviceDefinition.parentDevice"); 2857 else if (Configuration.doAutoCreate()) 2858 this.parentDevice = new Reference(); // cc 2859 return this.parentDevice; 2860 } 2861 2862 public boolean hasParentDevice() { 2863 return this.parentDevice != null && !this.parentDevice.isEmpty(); 2864 } 2865 2866 /** 2867 * @param value {@link #parentDevice} (The parent device it can be part of.) 2868 */ 2869 public DeviceDefinition setParentDevice(Reference value) { 2870 this.parentDevice = value; 2871 return this; 2872 } 2873 2874 /** 2875 * @return {@link #material} (A substance used to create the material(s) of which the device is made.) 2876 */ 2877 public List<DeviceDefinitionMaterialComponent> getMaterial() { 2878 if (this.material == null) 2879 this.material = new ArrayList<DeviceDefinitionMaterialComponent>(); 2880 return this.material; 2881 } 2882 2883 /** 2884 * @return Returns a reference to <code>this</code> for easy method chaining 2885 */ 2886 public DeviceDefinition setMaterial(List<DeviceDefinitionMaterialComponent> theMaterial) { 2887 this.material = theMaterial; 2888 return this; 2889 } 2890 2891 public boolean hasMaterial() { 2892 if (this.material == null) 2893 return false; 2894 for (DeviceDefinitionMaterialComponent item : this.material) 2895 if (!item.isEmpty()) 2896 return true; 2897 return false; 2898 } 2899 2900 public DeviceDefinitionMaterialComponent addMaterial() { //3 2901 DeviceDefinitionMaterialComponent t = new DeviceDefinitionMaterialComponent(); 2902 if (this.material == null) 2903 this.material = new ArrayList<DeviceDefinitionMaterialComponent>(); 2904 this.material.add(t); 2905 return t; 2906 } 2907 2908 public DeviceDefinition addMaterial(DeviceDefinitionMaterialComponent t) { //3 2909 if (t == null) 2910 return this; 2911 if (this.material == null) 2912 this.material = new ArrayList<DeviceDefinitionMaterialComponent>(); 2913 this.material.add(t); 2914 return this; 2915 } 2916 2917 /** 2918 * @return The first repetition of repeating field {@link #material}, creating it if it does not already exist {3} 2919 */ 2920 public DeviceDefinitionMaterialComponent getMaterialFirstRep() { 2921 if (getMaterial().isEmpty()) { 2922 addMaterial(); 2923 } 2924 return getMaterial().get(0); 2925 } 2926 2927 protected void listChildren(List<Property> children) { 2928 super.listChildren(children); 2929 children.add(new Property("identifier", "Identifier", "Unique instance identifiers assigned to a device by the software, manufacturers, other organizations or owners. For example: handle ID.", 0, java.lang.Integer.MAX_VALUE, identifier)); 2930 children.add(new Property("udiDeviceIdentifier", "", "Unique device identifier (UDI) assigned to device label or package. Note that the Device may include multiple udiCarriers as it either may include just the udiCarrier for the jurisdiction it is sold, or for multiple jurisdictions it could have been sold.", 0, java.lang.Integer.MAX_VALUE, udiDeviceIdentifier)); 2931 children.add(new Property("manufacturer[x]", "string|Reference(Organization)", "A name of the manufacturer.", 0, 1, manufacturer)); 2932 children.add(new Property("deviceName", "", "A name given to the device to identify it.", 0, java.lang.Integer.MAX_VALUE, deviceName)); 2933 children.add(new Property("modelNumber", "string", "The model number for the device.", 0, 1, modelNumber)); 2934 children.add(new Property("type", "CodeableConcept", "What kind of device or device system this is.", 0, 1, type)); 2935 children.add(new Property("specialization", "", "The capabilities supported on a device, the standards to which the device conforms for a particular purpose, and used for the communication.", 0, java.lang.Integer.MAX_VALUE, specialization)); 2936 children.add(new Property("version", "string", "The available versions of the device, e.g., software versions.", 0, java.lang.Integer.MAX_VALUE, version)); 2937 children.add(new Property("safety", "CodeableConcept", "Safety characteristics of the device.", 0, java.lang.Integer.MAX_VALUE, safety)); 2938 children.add(new Property("shelfLifeStorage", "ProductShelfLife", "Shelf Life and storage information.", 0, java.lang.Integer.MAX_VALUE, shelfLifeStorage)); 2939 children.add(new Property("physicalCharacteristics", "ProdCharacteristic", "Dimensions, color etc.", 0, 1, physicalCharacteristics)); 2940 children.add(new Property("languageCode", "CodeableConcept", "Language code for the human-readable text strings produced by the device (all supported).", 0, java.lang.Integer.MAX_VALUE, languageCode)); 2941 children.add(new Property("capability", "", "Device capabilities.", 0, java.lang.Integer.MAX_VALUE, capability)); 2942 children.add(new Property("property", "", "The actual configuration settings of a device as it actually operates, e.g., regulation status, time properties.", 0, java.lang.Integer.MAX_VALUE, property)); 2943 children.add(new Property("owner", "Reference(Organization)", "An organization that is responsible for the provision and ongoing maintenance of the device.", 0, 1, owner)); 2944 children.add(new Property("contact", "ContactPoint", "Contact details for an organization or a particular human that is responsible for the device.", 0, java.lang.Integer.MAX_VALUE, contact)); 2945 children.add(new Property("url", "uri", "A network address on which the device may be contacted directly.", 0, 1, url)); 2946 children.add(new Property("onlineInformation", "uri", "Access to on-line information about the device.", 0, 1, onlineInformation)); 2947 children.add(new Property("note", "Annotation", "Descriptive information, usage information or implantation information that is not captured in an existing element.", 0, java.lang.Integer.MAX_VALUE, note)); 2948 children.add(new Property("quantity", "Quantity", "The quantity of the device present in the packaging (e.g. the number of devices present in a pack, or the number of devices in the same package of the medicinal product).", 0, 1, quantity)); 2949 children.add(new Property("parentDevice", "Reference(DeviceDefinition)", "The parent device it can be part of.", 0, 1, parentDevice)); 2950 children.add(new Property("material", "", "A substance used to create the material(s) of which the device is made.", 0, java.lang.Integer.MAX_VALUE, material)); 2951 } 2952 2953 @Override 2954 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 2955 switch (_hash) { 2956 case -1618432855: /*identifier*/ return new Property("identifier", "Identifier", "Unique instance identifiers assigned to a device by the software, manufacturers, other organizations or owners. For example: handle ID.", 0, java.lang.Integer.MAX_VALUE, identifier); 2957 case -99121287: /*udiDeviceIdentifier*/ return new Property("udiDeviceIdentifier", "", "Unique device identifier (UDI) assigned to device label or package. Note that the Device may include multiple udiCarriers as it either may include just the udiCarrier for the jurisdiction it is sold, or for multiple jurisdictions it could have been sold.", 0, java.lang.Integer.MAX_VALUE, udiDeviceIdentifier); 2958 case 418079503: /*manufacturer[x]*/ return new Property("manufacturer[x]", "string|Reference(Organization)", "A name of the manufacturer.", 0, 1, manufacturer); 2959 case -1969347631: /*manufacturer*/ return new Property("manufacturer[x]", "string|Reference(Organization)", "A name of the manufacturer.", 0, 1, manufacturer); 2960 case -630681790: /*manufacturerString*/ return new Property("manufacturer[x]", "string", "A name of the manufacturer.", 0, 1, manufacturer); 2961 case 1104934522: /*manufacturerReference*/ return new Property("manufacturer[x]", "Reference(Organization)", "A name of the manufacturer.", 0, 1, manufacturer); 2962 case 780988929: /*deviceName*/ return new Property("deviceName", "", "A name given to the device to identify it.", 0, java.lang.Integer.MAX_VALUE, deviceName); 2963 case 346619858: /*modelNumber*/ return new Property("modelNumber", "string", "The model number for the device.", 0, 1, modelNumber); 2964 case 3575610: /*type*/ return new Property("type", "CodeableConcept", "What kind of device or device system this is.", 0, 1, type); 2965 case 682815883: /*specialization*/ return new Property("specialization", "", "The capabilities supported on a device, the standards to which the device conforms for a particular purpose, and used for the communication.", 0, java.lang.Integer.MAX_VALUE, specialization); 2966 case 351608024: /*version*/ return new Property("version", "string", "The available versions of the device, e.g., software versions.", 0, java.lang.Integer.MAX_VALUE, version); 2967 case -909893934: /*safety*/ return new Property("safety", "CodeableConcept", "Safety characteristics of the device.", 0, java.lang.Integer.MAX_VALUE, safety); 2968 case 172049237: /*shelfLifeStorage*/ return new Property("shelfLifeStorage", "ProductShelfLife", "Shelf Life and storage information.", 0, java.lang.Integer.MAX_VALUE, shelfLifeStorage); 2969 case -1599676319: /*physicalCharacteristics*/ return new Property("physicalCharacteristics", "ProdCharacteristic", "Dimensions, color etc.", 0, 1, physicalCharacteristics); 2970 case -2092349083: /*languageCode*/ return new Property("languageCode", "CodeableConcept", "Language code for the human-readable text strings produced by the device (all supported).", 0, java.lang.Integer.MAX_VALUE, languageCode); 2971 case -783669992: /*capability*/ return new Property("capability", "", "Device capabilities.", 0, java.lang.Integer.MAX_VALUE, capability); 2972 case -993141291: /*property*/ return new Property("property", "", "The actual configuration settings of a device as it actually operates, e.g., regulation status, time properties.", 0, java.lang.Integer.MAX_VALUE, property); 2973 case 106164915: /*owner*/ return new Property("owner", "Reference(Organization)", "An organization that is responsible for the provision and ongoing maintenance of the device.", 0, 1, owner); 2974 case 951526432: /*contact*/ return new Property("contact", "ContactPoint", "Contact details for an organization or a particular human that is responsible for the device.", 0, java.lang.Integer.MAX_VALUE, contact); 2975 case 116079: /*url*/ return new Property("url", "uri", "A network address on which the device may be contacted directly.", 0, 1, url); 2976 case -788511527: /*onlineInformation*/ return new Property("onlineInformation", "uri", "Access to on-line information about the device.", 0, 1, onlineInformation); 2977 case 3387378: /*note*/ return new Property("note", "Annotation", "Descriptive information, usage information or implantation information that is not captured in an existing element.", 0, java.lang.Integer.MAX_VALUE, note); 2978 case -1285004149: /*quantity*/ return new Property("quantity", "Quantity", "The quantity of the device present in the packaging (e.g. the number of devices present in a pack, or the number of devices in the same package of the medicinal product).", 0, 1, quantity); 2979 case 620260256: /*parentDevice*/ return new Property("parentDevice", "Reference(DeviceDefinition)", "The parent device it can be part of.", 0, 1, parentDevice); 2980 case 299066663: /*material*/ return new Property("material", "", "A substance used to create the material(s) of which the device is made.", 0, java.lang.Integer.MAX_VALUE, material); 2981 default: return super.getNamedProperty(_hash, _name, _checkValid); 2982 } 2983 2984 } 2985 2986 @Override 2987 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2988 switch (hash) { 2989 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 2990 case -99121287: /*udiDeviceIdentifier*/ return this.udiDeviceIdentifier == null ? new Base[0] : this.udiDeviceIdentifier.toArray(new Base[this.udiDeviceIdentifier.size()]); // DeviceDefinitionUdiDeviceIdentifierComponent 2991 case -1969347631: /*manufacturer*/ return this.manufacturer == null ? new Base[0] : new Base[] {this.manufacturer}; // DataType 2992 case 780988929: /*deviceName*/ return this.deviceName == null ? new Base[0] : this.deviceName.toArray(new Base[this.deviceName.size()]); // DeviceDefinitionDeviceNameComponent 2993 case 346619858: /*modelNumber*/ return this.modelNumber == null ? new Base[0] : new Base[] {this.modelNumber}; // StringType 2994 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // CodeableConcept 2995 case 682815883: /*specialization*/ return this.specialization == null ? new Base[0] : this.specialization.toArray(new Base[this.specialization.size()]); // DeviceDefinitionSpecializationComponent 2996 case 351608024: /*version*/ return this.version == null ? new Base[0] : this.version.toArray(new Base[this.version.size()]); // StringType 2997 case -909893934: /*safety*/ return this.safety == null ? new Base[0] : this.safety.toArray(new Base[this.safety.size()]); // CodeableConcept 2998 case 172049237: /*shelfLifeStorage*/ return this.shelfLifeStorage == null ? new Base[0] : this.shelfLifeStorage.toArray(new Base[this.shelfLifeStorage.size()]); // ProductShelfLife 2999 case -1599676319: /*physicalCharacteristics*/ return this.physicalCharacteristics == null ? new Base[0] : new Base[] {this.physicalCharacteristics}; // ProdCharacteristic 3000 case -2092349083: /*languageCode*/ return this.languageCode == null ? new Base[0] : this.languageCode.toArray(new Base[this.languageCode.size()]); // CodeableConcept 3001 case -783669992: /*capability*/ return this.capability == null ? new Base[0] : this.capability.toArray(new Base[this.capability.size()]); // DeviceDefinitionCapabilityComponent 3002 case -993141291: /*property*/ return this.property == null ? new Base[0] : this.property.toArray(new Base[this.property.size()]); // DeviceDefinitionPropertyComponent 3003 case 106164915: /*owner*/ return this.owner == null ? new Base[0] : new Base[] {this.owner}; // Reference 3004 case 951526432: /*contact*/ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // ContactPoint 3005 case 116079: /*url*/ return this.url == null ? new Base[0] : new Base[] {this.url}; // UriType 3006 case -788511527: /*onlineInformation*/ return this.onlineInformation == null ? new Base[0] : new Base[] {this.onlineInformation}; // UriType 3007 case 3387378: /*note*/ return this.note == null ? new Base[0] : this.note.toArray(new Base[this.note.size()]); // Annotation 3008 case -1285004149: /*quantity*/ return this.quantity == null ? new Base[0] : new Base[] {this.quantity}; // Quantity 3009 case 620260256: /*parentDevice*/ return this.parentDevice == null ? new Base[0] : new Base[] {this.parentDevice}; // Reference 3010 case 299066663: /*material*/ return this.material == null ? new Base[0] : this.material.toArray(new Base[this.material.size()]); // DeviceDefinitionMaterialComponent 3011 default: return super.getProperty(hash, name, checkValid); 3012 } 3013 3014 } 3015 3016 @Override 3017 public Base setProperty(int hash, String name, Base value) throws FHIRException { 3018 switch (hash) { 3019 case -1618432855: // identifier 3020 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier 3021 return value; 3022 case -99121287: // udiDeviceIdentifier 3023 this.getUdiDeviceIdentifier().add((DeviceDefinitionUdiDeviceIdentifierComponent) value); // DeviceDefinitionUdiDeviceIdentifierComponent 3024 return value; 3025 case -1969347631: // manufacturer 3026 this.manufacturer = TypeConvertor.castToType(value); // DataType 3027 return value; 3028 case 780988929: // deviceName 3029 this.getDeviceName().add((DeviceDefinitionDeviceNameComponent) value); // DeviceDefinitionDeviceNameComponent 3030 return value; 3031 case 346619858: // modelNumber 3032 this.modelNumber = TypeConvertor.castToString(value); // StringType 3033 return value; 3034 case 3575610: // type 3035 this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 3036 return value; 3037 case 682815883: // specialization 3038 this.getSpecialization().add((DeviceDefinitionSpecializationComponent) value); // DeviceDefinitionSpecializationComponent 3039 return value; 3040 case 351608024: // version 3041 this.getVersion().add(TypeConvertor.castToString(value)); // StringType 3042 return value; 3043 case -909893934: // safety 3044 this.getSafety().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 3045 return value; 3046 case 172049237: // shelfLifeStorage 3047 this.getShelfLifeStorage().add(TypeConvertor.castToProductShelfLife(value)); // ProductShelfLife 3048 return value; 3049 case -1599676319: // physicalCharacteristics 3050 this.physicalCharacteristics = TypeConvertor.castToProdCharacteristic(value); // ProdCharacteristic 3051 return value; 3052 case -2092349083: // languageCode 3053 this.getLanguageCode().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 3054 return value; 3055 case -783669992: // capability 3056 this.getCapability().add((DeviceDefinitionCapabilityComponent) value); // DeviceDefinitionCapabilityComponent 3057 return value; 3058 case -993141291: // property 3059 this.getProperty().add((DeviceDefinitionPropertyComponent) value); // DeviceDefinitionPropertyComponent 3060 return value; 3061 case 106164915: // owner 3062 this.owner = TypeConvertor.castToReference(value); // Reference 3063 return value; 3064 case 951526432: // contact 3065 this.getContact().add(TypeConvertor.castToContactPoint(value)); // ContactPoint 3066 return value; 3067 case 116079: // url 3068 this.url = TypeConvertor.castToUri(value); // UriType 3069 return value; 3070 case -788511527: // onlineInformation 3071 this.onlineInformation = TypeConvertor.castToUri(value); // UriType 3072 return value; 3073 case 3387378: // note 3074 this.getNote().add(TypeConvertor.castToAnnotation(value)); // Annotation 3075 return value; 3076 case -1285004149: // quantity 3077 this.quantity = TypeConvertor.castToQuantity(value); // Quantity 3078 return value; 3079 case 620260256: // parentDevice 3080 this.parentDevice = TypeConvertor.castToReference(value); // Reference 3081 return value; 3082 case 299066663: // material 3083 this.getMaterial().add((DeviceDefinitionMaterialComponent) value); // DeviceDefinitionMaterialComponent 3084 return value; 3085 default: return super.setProperty(hash, name, value); 3086 } 3087 3088 } 3089 3090 @Override 3091 public Base setProperty(String name, Base value) throws FHIRException { 3092 if (name.equals("identifier")) { 3093 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); 3094 } else if (name.equals("udiDeviceIdentifier")) { 3095 this.getUdiDeviceIdentifier().add((DeviceDefinitionUdiDeviceIdentifierComponent) value); 3096 } else if (name.equals("manufacturer[x]")) { 3097 this.manufacturer = TypeConvertor.castToType(value); // DataType 3098 } else if (name.equals("deviceName")) { 3099 this.getDeviceName().add((DeviceDefinitionDeviceNameComponent) value); 3100 } else if (name.equals("modelNumber")) { 3101 this.modelNumber = TypeConvertor.castToString(value); // StringType 3102 } else if (name.equals("type")) { 3103 this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 3104 } else if (name.equals("specialization")) { 3105 this.getSpecialization().add((DeviceDefinitionSpecializationComponent) value); 3106 } else if (name.equals("version")) { 3107 this.getVersion().add(TypeConvertor.castToString(value)); 3108 } else if (name.equals("safety")) { 3109 this.getSafety().add(TypeConvertor.castToCodeableConcept(value)); 3110 } else if (name.equals("shelfLifeStorage")) { 3111 this.getShelfLifeStorage().add(TypeConvertor.castToProductShelfLife(value)); 3112 } else if (name.equals("physicalCharacteristics")) { 3113 this.physicalCharacteristics = TypeConvertor.castToProdCharacteristic(value); // ProdCharacteristic 3114 } else if (name.equals("languageCode")) { 3115 this.getLanguageCode().add(TypeConvertor.castToCodeableConcept(value)); 3116 } else if (name.equals("capability")) { 3117 this.getCapability().add((DeviceDefinitionCapabilityComponent) value); 3118 } else if (name.equals("property")) { 3119 this.getProperty().add((DeviceDefinitionPropertyComponent) value); 3120 } else if (name.equals("owner")) { 3121 this.owner = TypeConvertor.castToReference(value); // Reference 3122 } else if (name.equals("contact")) { 3123 this.getContact().add(TypeConvertor.castToContactPoint(value)); 3124 } else if (name.equals("url")) { 3125 this.url = TypeConvertor.castToUri(value); // UriType 3126 } else if (name.equals("onlineInformation")) { 3127 this.onlineInformation = TypeConvertor.castToUri(value); // UriType 3128 } else if (name.equals("note")) { 3129 this.getNote().add(TypeConvertor.castToAnnotation(value)); 3130 } else if (name.equals("quantity")) { 3131 this.quantity = TypeConvertor.castToQuantity(value); // Quantity 3132 } else if (name.equals("parentDevice")) { 3133 this.parentDevice = TypeConvertor.castToReference(value); // Reference 3134 } else if (name.equals("material")) { 3135 this.getMaterial().add((DeviceDefinitionMaterialComponent) value); 3136 } else 3137 return super.setProperty(name, value); 3138 return value; 3139 } 3140 3141 @Override 3142 public Base makeProperty(int hash, String name) throws FHIRException { 3143 switch (hash) { 3144 case -1618432855: return addIdentifier(); 3145 case -99121287: return addUdiDeviceIdentifier(); 3146 case 418079503: return getManufacturer(); 3147 case -1969347631: return getManufacturer(); 3148 case 780988929: return addDeviceName(); 3149 case 346619858: return getModelNumberElement(); 3150 case 3575610: return getType(); 3151 case 682815883: return addSpecialization(); 3152 case 351608024: return addVersionElement(); 3153 case -909893934: return addSafety(); 3154 case 172049237: return addShelfLifeStorage(); 3155 case -1599676319: return getPhysicalCharacteristics(); 3156 case -2092349083: return addLanguageCode(); 3157 case -783669992: return addCapability(); 3158 case -993141291: return addProperty(); 3159 case 106164915: return getOwner(); 3160 case 951526432: return addContact(); 3161 case 116079: return getUrlElement(); 3162 case -788511527: return getOnlineInformationElement(); 3163 case 3387378: return addNote(); 3164 case -1285004149: return getQuantity(); 3165 case 620260256: return getParentDevice(); 3166 case 299066663: return addMaterial(); 3167 default: return super.makeProperty(hash, name); 3168 } 3169 3170 } 3171 3172 @Override 3173 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 3174 switch (hash) { 3175 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 3176 case -99121287: /*udiDeviceIdentifier*/ return new String[] {}; 3177 case -1969347631: /*manufacturer*/ return new String[] {"string", "Reference"}; 3178 case 780988929: /*deviceName*/ return new String[] {}; 3179 case 346619858: /*modelNumber*/ return new String[] {"string"}; 3180 case 3575610: /*type*/ return new String[] {"CodeableConcept"}; 3181 case 682815883: /*specialization*/ return new String[] {}; 3182 case 351608024: /*version*/ return new String[] {"string"}; 3183 case -909893934: /*safety*/ return new String[] {"CodeableConcept"}; 3184 case 172049237: /*shelfLifeStorage*/ return new String[] {"ProductShelfLife"}; 3185 case -1599676319: /*physicalCharacteristics*/ return new String[] {"ProdCharacteristic"}; 3186 case -2092349083: /*languageCode*/ return new String[] {"CodeableConcept"}; 3187 case -783669992: /*capability*/ return new String[] {}; 3188 case -993141291: /*property*/ return new String[] {}; 3189 case 106164915: /*owner*/ return new String[] {"Reference"}; 3190 case 951526432: /*contact*/ return new String[] {"ContactPoint"}; 3191 case 116079: /*url*/ return new String[] {"uri"}; 3192 case -788511527: /*onlineInformation*/ return new String[] {"uri"}; 3193 case 3387378: /*note*/ return new String[] {"Annotation"}; 3194 case -1285004149: /*quantity*/ return new String[] {"Quantity"}; 3195 case 620260256: /*parentDevice*/ return new String[] {"Reference"}; 3196 case 299066663: /*material*/ return new String[] {}; 3197 default: return super.getTypesForProperty(hash, name); 3198 } 3199 3200 } 3201 3202 @Override 3203 public Base addChild(String name) throws FHIRException { 3204 if (name.equals("identifier")) { 3205 return addIdentifier(); 3206 } 3207 else if (name.equals("udiDeviceIdentifier")) { 3208 return addUdiDeviceIdentifier(); 3209 } 3210 else if (name.equals("manufacturerString")) { 3211 this.manufacturer = new StringType(); 3212 return this.manufacturer; 3213 } 3214 else if (name.equals("manufacturerReference")) { 3215 this.manufacturer = new Reference(); 3216 return this.manufacturer; 3217 } 3218 else if (name.equals("deviceName")) { 3219 return addDeviceName(); 3220 } 3221 else if (name.equals("modelNumber")) { 3222 throw new FHIRException("Cannot call addChild on a primitive type DeviceDefinition.modelNumber"); 3223 } 3224 else if (name.equals("type")) { 3225 this.type = new CodeableConcept(); 3226 return this.type; 3227 } 3228 else if (name.equals("specialization")) { 3229 return addSpecialization(); 3230 } 3231 else if (name.equals("version")) { 3232 throw new FHIRException("Cannot call addChild on a primitive type DeviceDefinition.version"); 3233 } 3234 else if (name.equals("safety")) { 3235 return addSafety(); 3236 } 3237 else if (name.equals("shelfLifeStorage")) { 3238 return addShelfLifeStorage(); 3239 } 3240 else if (name.equals("physicalCharacteristics")) { 3241 this.physicalCharacteristics = new ProdCharacteristic(); 3242 return this.physicalCharacteristics; 3243 } 3244 else if (name.equals("languageCode")) { 3245 return addLanguageCode(); 3246 } 3247 else if (name.equals("capability")) { 3248 return addCapability(); 3249 } 3250 else if (name.equals("property")) { 3251 return addProperty(); 3252 } 3253 else if (name.equals("owner")) { 3254 this.owner = new Reference(); 3255 return this.owner; 3256 } 3257 else if (name.equals("contact")) { 3258 return addContact(); 3259 } 3260 else if (name.equals("url")) { 3261 throw new FHIRException("Cannot call addChild on a primitive type DeviceDefinition.url"); 3262 } 3263 else if (name.equals("onlineInformation")) { 3264 throw new FHIRException("Cannot call addChild on a primitive type DeviceDefinition.onlineInformation"); 3265 } 3266 else if (name.equals("note")) { 3267 return addNote(); 3268 } 3269 else if (name.equals("quantity")) { 3270 this.quantity = new Quantity(); 3271 return this.quantity; 3272 } 3273 else if (name.equals("parentDevice")) { 3274 this.parentDevice = new Reference(); 3275 return this.parentDevice; 3276 } 3277 else if (name.equals("material")) { 3278 return addMaterial(); 3279 } 3280 else 3281 return super.addChild(name); 3282 } 3283 3284 public String fhirType() { 3285 return "DeviceDefinition"; 3286 3287 } 3288 3289 public DeviceDefinition copy() { 3290 DeviceDefinition dst = new DeviceDefinition(); 3291 copyValues(dst); 3292 return dst; 3293 } 3294 3295 public void copyValues(DeviceDefinition dst) { 3296 super.copyValues(dst); 3297 if (identifier != null) { 3298 dst.identifier = new ArrayList<Identifier>(); 3299 for (Identifier i : identifier) 3300 dst.identifier.add(i.copy()); 3301 }; 3302 if (udiDeviceIdentifier != null) { 3303 dst.udiDeviceIdentifier = new ArrayList<DeviceDefinitionUdiDeviceIdentifierComponent>(); 3304 for (DeviceDefinitionUdiDeviceIdentifierComponent i : udiDeviceIdentifier) 3305 dst.udiDeviceIdentifier.add(i.copy()); 3306 }; 3307 dst.manufacturer = manufacturer == null ? null : manufacturer.copy(); 3308 if (deviceName != null) { 3309 dst.deviceName = new ArrayList<DeviceDefinitionDeviceNameComponent>(); 3310 for (DeviceDefinitionDeviceNameComponent i : deviceName) 3311 dst.deviceName.add(i.copy()); 3312 }; 3313 dst.modelNumber = modelNumber == null ? null : modelNumber.copy(); 3314 dst.type = type == null ? null : type.copy(); 3315 if (specialization != null) { 3316 dst.specialization = new ArrayList<DeviceDefinitionSpecializationComponent>(); 3317 for (DeviceDefinitionSpecializationComponent i : specialization) 3318 dst.specialization.add(i.copy()); 3319 }; 3320 if (version != null) { 3321 dst.version = new ArrayList<StringType>(); 3322 for (StringType i : version) 3323 dst.version.add(i.copy()); 3324 }; 3325 if (safety != null) { 3326 dst.safety = new ArrayList<CodeableConcept>(); 3327 for (CodeableConcept i : safety) 3328 dst.safety.add(i.copy()); 3329 }; 3330 if (shelfLifeStorage != null) { 3331 dst.shelfLifeStorage = new ArrayList<ProductShelfLife>(); 3332 for (ProductShelfLife i : shelfLifeStorage) 3333 dst.shelfLifeStorage.add(i.copy()); 3334 }; 3335 dst.physicalCharacteristics = physicalCharacteristics == null ? null : physicalCharacteristics.copy(); 3336 if (languageCode != null) { 3337 dst.languageCode = new ArrayList<CodeableConcept>(); 3338 for (CodeableConcept i : languageCode) 3339 dst.languageCode.add(i.copy()); 3340 }; 3341 if (capability != null) { 3342 dst.capability = new ArrayList<DeviceDefinitionCapabilityComponent>(); 3343 for (DeviceDefinitionCapabilityComponent i : capability) 3344 dst.capability.add(i.copy()); 3345 }; 3346 if (property != null) { 3347 dst.property = new ArrayList<DeviceDefinitionPropertyComponent>(); 3348 for (DeviceDefinitionPropertyComponent i : property) 3349 dst.property.add(i.copy()); 3350 }; 3351 dst.owner = owner == null ? null : owner.copy(); 3352 if (contact != null) { 3353 dst.contact = new ArrayList<ContactPoint>(); 3354 for (ContactPoint i : contact) 3355 dst.contact.add(i.copy()); 3356 }; 3357 dst.url = url == null ? null : url.copy(); 3358 dst.onlineInformation = onlineInformation == null ? null : onlineInformation.copy(); 3359 if (note != null) { 3360 dst.note = new ArrayList<Annotation>(); 3361 for (Annotation i : note) 3362 dst.note.add(i.copy()); 3363 }; 3364 dst.quantity = quantity == null ? null : quantity.copy(); 3365 dst.parentDevice = parentDevice == null ? null : parentDevice.copy(); 3366 if (material != null) { 3367 dst.material = new ArrayList<DeviceDefinitionMaterialComponent>(); 3368 for (DeviceDefinitionMaterialComponent i : material) 3369 dst.material.add(i.copy()); 3370 }; 3371 } 3372 3373 protected DeviceDefinition typedCopy() { 3374 return copy(); 3375 } 3376 3377 @Override 3378 public boolean equalsDeep(Base other_) { 3379 if (!super.equalsDeep(other_)) 3380 return false; 3381 if (!(other_ instanceof DeviceDefinition)) 3382 return false; 3383 DeviceDefinition o = (DeviceDefinition) other_; 3384 return compareDeep(identifier, o.identifier, true) && compareDeep(udiDeviceIdentifier, o.udiDeviceIdentifier, true) 3385 && compareDeep(manufacturer, o.manufacturer, true) && compareDeep(deviceName, o.deviceName, true) 3386 && compareDeep(modelNumber, o.modelNumber, true) && compareDeep(type, o.type, true) && compareDeep(specialization, o.specialization, true) 3387 && compareDeep(version, o.version, true) && compareDeep(safety, o.safety, true) && compareDeep(shelfLifeStorage, o.shelfLifeStorage, true) 3388 && compareDeep(physicalCharacteristics, o.physicalCharacteristics, true) && compareDeep(languageCode, o.languageCode, true) 3389 && compareDeep(capability, o.capability, true) && compareDeep(property, o.property, true) && compareDeep(owner, o.owner, true) 3390 && compareDeep(contact, o.contact, true) && compareDeep(url, o.url, true) && compareDeep(onlineInformation, o.onlineInformation, true) 3391 && compareDeep(note, o.note, true) && compareDeep(quantity, o.quantity, true) && compareDeep(parentDevice, o.parentDevice, true) 3392 && compareDeep(material, o.material, true); 3393 } 3394 3395 @Override 3396 public boolean equalsShallow(Base other_) { 3397 if (!super.equalsShallow(other_)) 3398 return false; 3399 if (!(other_ instanceof DeviceDefinition)) 3400 return false; 3401 DeviceDefinition o = (DeviceDefinition) other_; 3402 return compareValues(modelNumber, o.modelNumber, true) && compareValues(version, o.version, true) && compareValues(url, o.url, true) 3403 && compareValues(onlineInformation, o.onlineInformation, true); 3404 } 3405 3406 public boolean isEmpty() { 3407 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, udiDeviceIdentifier 3408 , manufacturer, deviceName, modelNumber, type, specialization, version, safety 3409 , shelfLifeStorage, physicalCharacteristics, languageCode, capability, property, owner 3410 , contact, url, onlineInformation, note, quantity, parentDevice, material); 3411 } 3412 3413 @Override 3414 public ResourceType getResourceType() { 3415 return ResourceType.DeviceDefinition; 3416 } 3417 3418 /** 3419 * Search parameter: <b>identifier</b> 3420 * <p> 3421 * Description: <b>The identifier of the component</b><br> 3422 * Type: <b>token</b><br> 3423 * Path: <b>DeviceDefinition.identifier</b><br> 3424 * </p> 3425 */ 3426 @SearchParamDefinition(name="identifier", path="DeviceDefinition.identifier", description="The identifier of the component", type="token" ) 3427 public static final String SP_IDENTIFIER = "identifier"; 3428 /** 3429 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 3430 * <p> 3431 * Description: <b>The identifier of the component</b><br> 3432 * Type: <b>token</b><br> 3433 * Path: <b>DeviceDefinition.identifier</b><br> 3434 * </p> 3435 */ 3436 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 3437 3438 /** 3439 * Search parameter: <b>parent</b> 3440 * <p> 3441 * Description: <b>The parent DeviceDefinition resource</b><br> 3442 * Type: <b>reference</b><br> 3443 * Path: <b>DeviceDefinition.parentDevice</b><br> 3444 * </p> 3445 */ 3446 @SearchParamDefinition(name="parent", path="DeviceDefinition.parentDevice", description="The parent DeviceDefinition resource", type="reference", target={DeviceDefinition.class } ) 3447 public static final String SP_PARENT = "parent"; 3448 /** 3449 * <b>Fluent Client</b> search parameter constant for <b>parent</b> 3450 * <p> 3451 * Description: <b>The parent DeviceDefinition resource</b><br> 3452 * Type: <b>reference</b><br> 3453 * Path: <b>DeviceDefinition.parentDevice</b><br> 3454 * </p> 3455 */ 3456 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PARENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PARENT); 3457 3458/** 3459 * Constant for fluent queries to be used to add include statements. Specifies 3460 * the path value of "<b>DeviceDefinition:parent</b>". 3461 */ 3462 public static final ca.uhn.fhir.model.api.Include INCLUDE_PARENT = new ca.uhn.fhir.model.api.Include("DeviceDefinition:parent").toLocked(); 3463 3464 /** 3465 * Search parameter: <b>type</b> 3466 * <p> 3467 * Description: <b>The device component type</b><br> 3468 * Type: <b>token</b><br> 3469 * Path: <b>DeviceDefinition.type</b><br> 3470 * </p> 3471 */ 3472 @SearchParamDefinition(name="type", path="DeviceDefinition.type", description="The device component type", type="token" ) 3473 public static final String SP_TYPE = "type"; 3474 /** 3475 * <b>Fluent Client</b> search parameter constant for <b>type</b> 3476 * <p> 3477 * Description: <b>The device component type</b><br> 3478 * Type: <b>token</b><br> 3479 * Path: <b>DeviceDefinition.type</b><br> 3480 * </p> 3481 */ 3482 public static final ca.uhn.fhir.rest.gclient.TokenClientParam TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TYPE); 3483 3484 3485} 3486