001package org.hl7.fhir.dstu2.model; 002 003/*- 004 * #%L 005 * org.hl7.fhir.dstu2 006 * %% 007 * Copyright (C) 2014 - 2019 Health Level 7 008 * %% 009 * Licensed under the Apache License, Version 2.0 (the "License"); 010 * you may not use this file except in compliance with the License. 011 * You may obtain a copy of the License at 012 * 013 * http://www.apache.org/licenses/LICENSE-2.0 014 * 015 * Unless required by applicable law or agreed to in writing, software 016 * distributed under the License is distributed on an "AS IS" BASIS, 017 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 018 * See the License for the specific language governing permissions and 019 * limitations under the License. 020 * #L% 021 */ 022 023 024/* 025 Copyright (c) 2011+, HL7, Inc. 026 All rights reserved. 027 028 Redistribution and use in source and binary forms, with or without modification, 029 are permitted provided that the following conditions are met: 030 031 * Redistributions of source code must retain the above copyright notice, this 032 list of conditions and the following disclaimer. 033 * Redistributions in binary form must reproduce the above copyright notice, 034 this list of conditions and the following disclaimer in the documentation 035 and/or other materials provided with the distribution. 036 * Neither the name of HL7 nor the names of its contributors may be used to 037 endorse or promote products derived from this software without specific 038 prior written permission. 039 040 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 041 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 042 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 043 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 044 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 045 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 046 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 047 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 048 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 049 POSSIBILITY OF SUCH DAMAGE. 050 051*/ 052 053// Generated on Wed, Jul 13, 2016 05:32+1000 for FHIR v1.0.2 054import java.util.ArrayList; 055import java.util.Date; 056import java.util.List; 057 058import ca.uhn.fhir.model.api.annotation.Block; 059import ca.uhn.fhir.model.api.annotation.Child; 060import ca.uhn.fhir.model.api.annotation.Description; 061import ca.uhn.fhir.model.api.annotation.ResourceDef; 062import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 063import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 064import org.hl7.fhir.exceptions.FHIRException; 065import org.hl7.fhir.utilities.Utilities; 066/** 067 * Describes the characteristics, operational status and capabilities of a medical-related component of a medical device. 068 */ 069@ResourceDef(name="DeviceComponent", profile="http://hl7.org/fhir/Profile/DeviceComponent") 070public class DeviceComponent extends DomainResource { 071 072 public enum MeasmntPrinciple { 073 /** 074 * Measurement principle isn't in the list. 075 */ 076 OTHER, 077 /** 078 * Measurement is done using the chemical principle. 079 */ 080 CHEMICAL, 081 /** 082 * Measurement is done using the electrical principle. 083 */ 084 ELECTRICAL, 085 /** 086 * Measurement is done using the impedance principle. 087 */ 088 IMPEDANCE, 089 /** 090 * Measurement is done using the nuclear principle. 091 */ 092 NUCLEAR, 093 /** 094 * Measurement is done using the optical principle. 095 */ 096 OPTICAL, 097 /** 098 * Measurement is done using the thermal principle. 099 */ 100 THERMAL, 101 /** 102 * Measurement is done using the biological principle. 103 */ 104 BIOLOGICAL, 105 /** 106 * Measurement is done using the mechanical principle. 107 */ 108 MECHANICAL, 109 /** 110 * Measurement is done using the acoustical principle. 111 */ 112 ACOUSTICAL, 113 /** 114 * Measurement is done using the manual principle. 115 */ 116 MANUAL, 117 /** 118 * added to help the parsers 119 */ 120 NULL; 121 public static MeasmntPrinciple fromCode(String codeString) throws FHIRException { 122 if (codeString == null || "".equals(codeString)) 123 return null; 124 if ("other".equals(codeString)) 125 return OTHER; 126 if ("chemical".equals(codeString)) 127 return CHEMICAL; 128 if ("electrical".equals(codeString)) 129 return ELECTRICAL; 130 if ("impedance".equals(codeString)) 131 return IMPEDANCE; 132 if ("nuclear".equals(codeString)) 133 return NUCLEAR; 134 if ("optical".equals(codeString)) 135 return OPTICAL; 136 if ("thermal".equals(codeString)) 137 return THERMAL; 138 if ("biological".equals(codeString)) 139 return BIOLOGICAL; 140 if ("mechanical".equals(codeString)) 141 return MECHANICAL; 142 if ("acoustical".equals(codeString)) 143 return ACOUSTICAL; 144 if ("manual".equals(codeString)) 145 return MANUAL; 146 throw new FHIRException("Unknown MeasmntPrinciple code '"+codeString+"'"); 147 } 148 public String toCode() { 149 switch (this) { 150 case OTHER: return "other"; 151 case CHEMICAL: return "chemical"; 152 case ELECTRICAL: return "electrical"; 153 case IMPEDANCE: return "impedance"; 154 case NUCLEAR: return "nuclear"; 155 case OPTICAL: return "optical"; 156 case THERMAL: return "thermal"; 157 case BIOLOGICAL: return "biological"; 158 case MECHANICAL: return "mechanical"; 159 case ACOUSTICAL: return "acoustical"; 160 case MANUAL: return "manual"; 161 default: return "?"; 162 } 163 } 164 public String getSystem() { 165 switch (this) { 166 case OTHER: return "http://hl7.org/fhir/measurement-principle"; 167 case CHEMICAL: return "http://hl7.org/fhir/measurement-principle"; 168 case ELECTRICAL: return "http://hl7.org/fhir/measurement-principle"; 169 case IMPEDANCE: return "http://hl7.org/fhir/measurement-principle"; 170 case NUCLEAR: return "http://hl7.org/fhir/measurement-principle"; 171 case OPTICAL: return "http://hl7.org/fhir/measurement-principle"; 172 case THERMAL: return "http://hl7.org/fhir/measurement-principle"; 173 case BIOLOGICAL: return "http://hl7.org/fhir/measurement-principle"; 174 case MECHANICAL: return "http://hl7.org/fhir/measurement-principle"; 175 case ACOUSTICAL: return "http://hl7.org/fhir/measurement-principle"; 176 case MANUAL: return "http://hl7.org/fhir/measurement-principle"; 177 default: return "?"; 178 } 179 } 180 public String getDefinition() { 181 switch (this) { 182 case OTHER: return "Measurement principle isn't in the list."; 183 case CHEMICAL: return "Measurement is done using the chemical principle."; 184 case ELECTRICAL: return "Measurement is done using the electrical principle."; 185 case IMPEDANCE: return "Measurement is done using the impedance principle."; 186 case NUCLEAR: return "Measurement is done using the nuclear principle."; 187 case OPTICAL: return "Measurement is done using the optical principle."; 188 case THERMAL: return "Measurement is done using the thermal principle."; 189 case BIOLOGICAL: return "Measurement is done using the biological principle."; 190 case MECHANICAL: return "Measurement is done using the mechanical principle."; 191 case ACOUSTICAL: return "Measurement is done using the acoustical principle."; 192 case MANUAL: return "Measurement is done using the manual principle."; 193 default: return "?"; 194 } 195 } 196 public String getDisplay() { 197 switch (this) { 198 case OTHER: return "MSP Other"; 199 case CHEMICAL: return "MSP Chemical"; 200 case ELECTRICAL: return "MSP Electrical"; 201 case IMPEDANCE: return "MSP Impedance"; 202 case NUCLEAR: return "MSP Nuclear"; 203 case OPTICAL: return "MSP Optical"; 204 case THERMAL: return "MSP Thermal"; 205 case BIOLOGICAL: return "MSP Biological"; 206 case MECHANICAL: return "MSP Mechanical"; 207 case ACOUSTICAL: return "MSP Acoustical"; 208 case MANUAL: return "MSP Manual"; 209 default: return "?"; 210 } 211 } 212 } 213 214 public static class MeasmntPrincipleEnumFactory implements EnumFactory<MeasmntPrinciple> { 215 public MeasmntPrinciple fromCode(String codeString) throws IllegalArgumentException { 216 if (codeString == null || "".equals(codeString)) 217 if (codeString == null || "".equals(codeString)) 218 return null; 219 if ("other".equals(codeString)) 220 return MeasmntPrinciple.OTHER; 221 if ("chemical".equals(codeString)) 222 return MeasmntPrinciple.CHEMICAL; 223 if ("electrical".equals(codeString)) 224 return MeasmntPrinciple.ELECTRICAL; 225 if ("impedance".equals(codeString)) 226 return MeasmntPrinciple.IMPEDANCE; 227 if ("nuclear".equals(codeString)) 228 return MeasmntPrinciple.NUCLEAR; 229 if ("optical".equals(codeString)) 230 return MeasmntPrinciple.OPTICAL; 231 if ("thermal".equals(codeString)) 232 return MeasmntPrinciple.THERMAL; 233 if ("biological".equals(codeString)) 234 return MeasmntPrinciple.BIOLOGICAL; 235 if ("mechanical".equals(codeString)) 236 return MeasmntPrinciple.MECHANICAL; 237 if ("acoustical".equals(codeString)) 238 return MeasmntPrinciple.ACOUSTICAL; 239 if ("manual".equals(codeString)) 240 return MeasmntPrinciple.MANUAL; 241 throw new IllegalArgumentException("Unknown MeasmntPrinciple code '"+codeString+"'"); 242 } 243 public Enumeration<MeasmntPrinciple> fromType(Base code) throws FHIRException { 244 if (code == null || code.isEmpty()) 245 return null; 246 String codeString = ((PrimitiveType) code).asStringValue(); 247 if (codeString == null || "".equals(codeString)) 248 return null; 249 if ("other".equals(codeString)) 250 return new Enumeration<MeasmntPrinciple>(this, MeasmntPrinciple.OTHER); 251 if ("chemical".equals(codeString)) 252 return new Enumeration<MeasmntPrinciple>(this, MeasmntPrinciple.CHEMICAL); 253 if ("electrical".equals(codeString)) 254 return new Enumeration<MeasmntPrinciple>(this, MeasmntPrinciple.ELECTRICAL); 255 if ("impedance".equals(codeString)) 256 return new Enumeration<MeasmntPrinciple>(this, MeasmntPrinciple.IMPEDANCE); 257 if ("nuclear".equals(codeString)) 258 return new Enumeration<MeasmntPrinciple>(this, MeasmntPrinciple.NUCLEAR); 259 if ("optical".equals(codeString)) 260 return new Enumeration<MeasmntPrinciple>(this, MeasmntPrinciple.OPTICAL); 261 if ("thermal".equals(codeString)) 262 return new Enumeration<MeasmntPrinciple>(this, MeasmntPrinciple.THERMAL); 263 if ("biological".equals(codeString)) 264 return new Enumeration<MeasmntPrinciple>(this, MeasmntPrinciple.BIOLOGICAL); 265 if ("mechanical".equals(codeString)) 266 return new Enumeration<MeasmntPrinciple>(this, MeasmntPrinciple.MECHANICAL); 267 if ("acoustical".equals(codeString)) 268 return new Enumeration<MeasmntPrinciple>(this, MeasmntPrinciple.ACOUSTICAL); 269 if ("manual".equals(codeString)) 270 return new Enumeration<MeasmntPrinciple>(this, MeasmntPrinciple.MANUAL); 271 throw new FHIRException("Unknown MeasmntPrinciple code '"+codeString+"'"); 272 } 273 public String toCode(MeasmntPrinciple code) { 274 if (code == MeasmntPrinciple.OTHER) 275 return "other"; 276 if (code == MeasmntPrinciple.CHEMICAL) 277 return "chemical"; 278 if (code == MeasmntPrinciple.ELECTRICAL) 279 return "electrical"; 280 if (code == MeasmntPrinciple.IMPEDANCE) 281 return "impedance"; 282 if (code == MeasmntPrinciple.NUCLEAR) 283 return "nuclear"; 284 if (code == MeasmntPrinciple.OPTICAL) 285 return "optical"; 286 if (code == MeasmntPrinciple.THERMAL) 287 return "thermal"; 288 if (code == MeasmntPrinciple.BIOLOGICAL) 289 return "biological"; 290 if (code == MeasmntPrinciple.MECHANICAL) 291 return "mechanical"; 292 if (code == MeasmntPrinciple.ACOUSTICAL) 293 return "acoustical"; 294 if (code == MeasmntPrinciple.MANUAL) 295 return "manual"; 296 return "?"; 297 } 298 } 299 300 @Block() 301 public static class DeviceComponentProductionSpecificationComponent extends BackboneElement implements IBaseBackboneElement { 302 /** 303 * Describes the specification type, such as, serial number, part number, hardware revision, software revision, etc. 304 */ 305 @Child(name = "specType", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=false, summary=true) 306 @Description(shortDefinition="Specification type", formalDefinition="Describes the specification type, such as, serial number, part number, hardware revision, software revision, etc." ) 307 protected CodeableConcept specType; 308 309 /** 310 * Describes the internal component unique identification. This is a provision for manufacture specific standard components using a private OID. 11073-10101 has a partition for private OID semantic that the manufacture can make use of. 311 */ 312 @Child(name = "componentId", type = {Identifier.class}, order=2, min=0, max=1, modifier=false, summary=true) 313 @Description(shortDefinition="Internal component unique identification", formalDefinition="Describes the internal component unique identification. This is a provision for manufacture specific standard components using a private OID. 11073-10101 has a partition for private OID semantic that the manufacture can make use of." ) 314 protected Identifier componentId; 315 316 /** 317 * Describes the printable string defining the component. 318 */ 319 @Child(name = "productionSpec", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=true) 320 @Description(shortDefinition="A printable string defining the component", formalDefinition="Describes the printable string defining the component." ) 321 protected StringType productionSpec; 322 323 private static final long serialVersionUID = -1476597516L; 324 325 /* 326 * Constructor 327 */ 328 public DeviceComponentProductionSpecificationComponent() { 329 super(); 330 } 331 332 /** 333 * @return {@link #specType} (Describes the specification type, such as, serial number, part number, hardware revision, software revision, etc.) 334 */ 335 public CodeableConcept getSpecType() { 336 if (this.specType == null) 337 if (Configuration.errorOnAutoCreate()) 338 throw new Error("Attempt to auto-create DeviceComponentProductionSpecificationComponent.specType"); 339 else if (Configuration.doAutoCreate()) 340 this.specType = new CodeableConcept(); // cc 341 return this.specType; 342 } 343 344 public boolean hasSpecType() { 345 return this.specType != null && !this.specType.isEmpty(); 346 } 347 348 /** 349 * @param value {@link #specType} (Describes the specification type, such as, serial number, part number, hardware revision, software revision, etc.) 350 */ 351 public DeviceComponentProductionSpecificationComponent setSpecType(CodeableConcept value) { 352 this.specType = value; 353 return this; 354 } 355 356 /** 357 * @return {@link #componentId} (Describes the internal component unique identification. This is a provision for manufacture specific standard components using a private OID. 11073-10101 has a partition for private OID semantic that the manufacture can make use of.) 358 */ 359 public Identifier getComponentId() { 360 if (this.componentId == null) 361 if (Configuration.errorOnAutoCreate()) 362 throw new Error("Attempt to auto-create DeviceComponentProductionSpecificationComponent.componentId"); 363 else if (Configuration.doAutoCreate()) 364 this.componentId = new Identifier(); // cc 365 return this.componentId; 366 } 367 368 public boolean hasComponentId() { 369 return this.componentId != null && !this.componentId.isEmpty(); 370 } 371 372 /** 373 * @param value {@link #componentId} (Describes the internal component unique identification. This is a provision for manufacture specific standard components using a private OID. 11073-10101 has a partition for private OID semantic that the manufacture can make use of.) 374 */ 375 public DeviceComponentProductionSpecificationComponent setComponentId(Identifier value) { 376 this.componentId = value; 377 return this; 378 } 379 380 /** 381 * @return {@link #productionSpec} (Describes the printable string defining the component.). This is the underlying object with id, value and extensions. The accessor "getProductionSpec" gives direct access to the value 382 */ 383 public StringType getProductionSpecElement() { 384 if (this.productionSpec == null) 385 if (Configuration.errorOnAutoCreate()) 386 throw new Error("Attempt to auto-create DeviceComponentProductionSpecificationComponent.productionSpec"); 387 else if (Configuration.doAutoCreate()) 388 this.productionSpec = new StringType(); // bb 389 return this.productionSpec; 390 } 391 392 public boolean hasProductionSpecElement() { 393 return this.productionSpec != null && !this.productionSpec.isEmpty(); 394 } 395 396 public boolean hasProductionSpec() { 397 return this.productionSpec != null && !this.productionSpec.isEmpty(); 398 } 399 400 /** 401 * @param value {@link #productionSpec} (Describes the printable string defining the component.). This is the underlying object with id, value and extensions. The accessor "getProductionSpec" gives direct access to the value 402 */ 403 public DeviceComponentProductionSpecificationComponent setProductionSpecElement(StringType value) { 404 this.productionSpec = value; 405 return this; 406 } 407 408 /** 409 * @return Describes the printable string defining the component. 410 */ 411 public String getProductionSpec() { 412 return this.productionSpec == null ? null : this.productionSpec.getValue(); 413 } 414 415 /** 416 * @param value Describes the printable string defining the component. 417 */ 418 public DeviceComponentProductionSpecificationComponent setProductionSpec(String value) { 419 if (Utilities.noString(value)) 420 this.productionSpec = null; 421 else { 422 if (this.productionSpec == null) 423 this.productionSpec = new StringType(); 424 this.productionSpec.setValue(value); 425 } 426 return this; 427 } 428 429 protected void listChildren(List<Property> childrenList) { 430 super.listChildren(childrenList); 431 childrenList.add(new Property("specType", "CodeableConcept", "Describes the specification type, such as, serial number, part number, hardware revision, software revision, etc.", 0, java.lang.Integer.MAX_VALUE, specType)); 432 childrenList.add(new Property("componentId", "Identifier", "Describes the internal component unique identification. This is a provision for manufacture specific standard components using a private OID. 11073-10101 has a partition for private OID semantic that the manufacture can make use of.", 0, java.lang.Integer.MAX_VALUE, componentId)); 433 childrenList.add(new Property("productionSpec", "string", "Describes the printable string defining the component.", 0, java.lang.Integer.MAX_VALUE, productionSpec)); 434 } 435 436 @Override 437 public void setProperty(String name, Base value) throws FHIRException { 438 if (name.equals("specType")) 439 this.specType = castToCodeableConcept(value); // CodeableConcept 440 else if (name.equals("componentId")) 441 this.componentId = castToIdentifier(value); // Identifier 442 else if (name.equals("productionSpec")) 443 this.productionSpec = castToString(value); // StringType 444 else 445 super.setProperty(name, value); 446 } 447 448 @Override 449 public Base addChild(String name) throws FHIRException { 450 if (name.equals("specType")) { 451 this.specType = new CodeableConcept(); 452 return this.specType; 453 } 454 else if (name.equals("componentId")) { 455 this.componentId = new Identifier(); 456 return this.componentId; 457 } 458 else if (name.equals("productionSpec")) { 459 throw new FHIRException("Cannot call addChild on a primitive type DeviceComponent.productionSpec"); 460 } 461 else 462 return super.addChild(name); 463 } 464 465 public DeviceComponentProductionSpecificationComponent copy() { 466 DeviceComponentProductionSpecificationComponent dst = new DeviceComponentProductionSpecificationComponent(); 467 copyValues(dst); 468 dst.specType = specType == null ? null : specType.copy(); 469 dst.componentId = componentId == null ? null : componentId.copy(); 470 dst.productionSpec = productionSpec == null ? null : productionSpec.copy(); 471 return dst; 472 } 473 474 @Override 475 public boolean equalsDeep(Base other) { 476 if (!super.equalsDeep(other)) 477 return false; 478 if (!(other instanceof DeviceComponentProductionSpecificationComponent)) 479 return false; 480 DeviceComponentProductionSpecificationComponent o = (DeviceComponentProductionSpecificationComponent) other; 481 return compareDeep(specType, o.specType, true) && compareDeep(componentId, o.componentId, true) 482 && compareDeep(productionSpec, o.productionSpec, true); 483 } 484 485 @Override 486 public boolean equalsShallow(Base other) { 487 if (!super.equalsShallow(other)) 488 return false; 489 if (!(other instanceof DeviceComponentProductionSpecificationComponent)) 490 return false; 491 DeviceComponentProductionSpecificationComponent o = (DeviceComponentProductionSpecificationComponent) other; 492 return compareValues(productionSpec, o.productionSpec, true); 493 } 494 495 public boolean isEmpty() { 496 return super.isEmpty() && (specType == null || specType.isEmpty()) && (componentId == null || componentId.isEmpty()) 497 && (productionSpec == null || productionSpec.isEmpty()); 498 } 499 500 public String fhirType() { 501 return "DeviceComponent.productionSpecification"; 502 503 } 504 505 } 506 507 /** 508 * Describes the specific component type as defined in the object-oriented or metric nomenclature partition. 509 */ 510 @Child(name = "type", type = {CodeableConcept.class}, order=0, min=1, max=1, modifier=false, summary=true) 511 @Description(shortDefinition="What kind of component it is", formalDefinition="Describes the specific component type as defined in the object-oriented or metric nomenclature partition." ) 512 protected CodeableConcept type; 513 514 /** 515 * Describes the local assigned unique identification by the software. For example: handle ID. 516 */ 517 @Child(name = "identifier", type = {Identifier.class}, order=1, min=1, max=1, modifier=false, summary=true) 518 @Description(shortDefinition="Instance id assigned by the software stack", formalDefinition="Describes the local assigned unique identification by the software. For example: handle ID." ) 519 protected Identifier identifier; 520 521 /** 522 * Describes the timestamp for the most recent system change which includes device configuration or setting change. 523 */ 524 @Child(name = "lastSystemChange", type = {InstantType.class}, order=2, min=1, max=1, modifier=false, summary=true) 525 @Description(shortDefinition="Recent system change timestamp", formalDefinition="Describes the timestamp for the most recent system change which includes device configuration or setting change." ) 526 protected InstantType lastSystemChange; 527 528 /** 529 * Describes the link to the source Device that contains administrative device information such as manufacture, serial number, etc. 530 */ 531 @Child(name = "source", type = {Device.class}, order=3, min=0, max=1, modifier=false, summary=true) 532 @Description(shortDefinition="A source device of this component", formalDefinition="Describes the link to the source Device that contains administrative device information such as manufacture, serial number, etc." ) 533 protected Reference source; 534 535 /** 536 * The actual object that is the target of the reference (Describes the link to the source Device that contains administrative device information such as manufacture, serial number, etc.) 537 */ 538 protected Device sourceTarget; 539 540 /** 541 * Describes the link to the parent resource. For example: Channel is linked to its VMD parent. 542 */ 543 @Child(name = "parent", type = {DeviceComponent.class}, order=4, min=0, max=1, modifier=false, summary=true) 544 @Description(shortDefinition="Parent resource link", formalDefinition="Describes the link to the parent resource. For example: Channel is linked to its VMD parent." ) 545 protected Reference parent; 546 547 /** 548 * The actual object that is the target of the reference (Describes the link to the parent resource. For example: Channel is linked to its VMD parent.) 549 */ 550 protected DeviceComponent parentTarget; 551 552 /** 553 * Indicates current operational status of the device. For example: On, Off, Standby, etc. 554 */ 555 @Child(name = "operationalStatus", type = {CodeableConcept.class}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 556 @Description(shortDefinition="Component operational status", formalDefinition="Indicates current operational status of the device. For example: On, Off, Standby, etc." ) 557 protected List<CodeableConcept> operationalStatus; 558 559 /** 560 * Describes the parameter group supported by the current device component that is based on some nomenclature, e.g. cardiovascular. 561 */ 562 @Child(name = "parameterGroup", type = {CodeableConcept.class}, order=6, min=0, max=1, modifier=false, summary=true) 563 @Description(shortDefinition="Current supported parameter group", formalDefinition="Describes the parameter group supported by the current device component that is based on some nomenclature, e.g. cardiovascular." ) 564 protected CodeableConcept parameterGroup; 565 566 /** 567 * Describes the physical principle of the measurement. For example: thermal, chemical, acoustical, etc. 568 */ 569 @Child(name = "measurementPrinciple", type = {CodeType.class}, order=7, min=0, max=1, modifier=false, summary=true) 570 @Description(shortDefinition="other | chemical | electrical | impedance | nuclear | optical | thermal | biological | mechanical | acoustical | manual+", formalDefinition="Describes the physical principle of the measurement. For example: thermal, chemical, acoustical, etc." ) 571 protected Enumeration<MeasmntPrinciple> measurementPrinciple; 572 573 /** 574 * Describes the production specification such as component revision, serial number, etc. 575 */ 576 @Child(name = "productionSpecification", type = {}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 577 @Description(shortDefinition="Production specification of the component", formalDefinition="Describes the production specification such as component revision, serial number, etc." ) 578 protected List<DeviceComponentProductionSpecificationComponent> productionSpecification; 579 580 /** 581 * Describes the language code for the human-readable text string produced by the device. This language code will follow the IETF language tag. Example: en-US. 582 */ 583 @Child(name = "languageCode", type = {CodeableConcept.class}, order=9, min=0, max=1, modifier=false, summary=true) 584 @Description(shortDefinition="Language code for the human-readable text strings produced by the device", formalDefinition="Describes the language code for the human-readable text string produced by the device. This language code will follow the IETF language tag. Example: en-US." ) 585 protected CodeableConcept languageCode; 586 587 private static final long serialVersionUID = -1742890034L; 588 589 /* 590 * Constructor 591 */ 592 public DeviceComponent() { 593 super(); 594 } 595 596 /* 597 * Constructor 598 */ 599 public DeviceComponent(CodeableConcept type, Identifier identifier, InstantType lastSystemChange) { 600 super(); 601 this.type = type; 602 this.identifier = identifier; 603 this.lastSystemChange = lastSystemChange; 604 } 605 606 /** 607 * @return {@link #type} (Describes the specific component type as defined in the object-oriented or metric nomenclature partition.) 608 */ 609 public CodeableConcept getType() { 610 if (this.type == null) 611 if (Configuration.errorOnAutoCreate()) 612 throw new Error("Attempt to auto-create DeviceComponent.type"); 613 else if (Configuration.doAutoCreate()) 614 this.type = new CodeableConcept(); // cc 615 return this.type; 616 } 617 618 public boolean hasType() { 619 return this.type != null && !this.type.isEmpty(); 620 } 621 622 /** 623 * @param value {@link #type} (Describes the specific component type as defined in the object-oriented or metric nomenclature partition.) 624 */ 625 public DeviceComponent setType(CodeableConcept value) { 626 this.type = value; 627 return this; 628 } 629 630 /** 631 * @return {@link #identifier} (Describes the local assigned unique identification by the software. For example: handle ID.) 632 */ 633 public Identifier getIdentifier() { 634 if (this.identifier == null) 635 if (Configuration.errorOnAutoCreate()) 636 throw new Error("Attempt to auto-create DeviceComponent.identifier"); 637 else if (Configuration.doAutoCreate()) 638 this.identifier = new Identifier(); // cc 639 return this.identifier; 640 } 641 642 public boolean hasIdentifier() { 643 return this.identifier != null && !this.identifier.isEmpty(); 644 } 645 646 /** 647 * @param value {@link #identifier} (Describes the local assigned unique identification by the software. For example: handle ID.) 648 */ 649 public DeviceComponent setIdentifier(Identifier value) { 650 this.identifier = value; 651 return this; 652 } 653 654 /** 655 * @return {@link #lastSystemChange} (Describes the timestamp for the most recent system change which includes device configuration or setting change.). This is the underlying object with id, value and extensions. The accessor "getLastSystemChange" gives direct access to the value 656 */ 657 public InstantType getLastSystemChangeElement() { 658 if (this.lastSystemChange == null) 659 if (Configuration.errorOnAutoCreate()) 660 throw new Error("Attempt to auto-create DeviceComponent.lastSystemChange"); 661 else if (Configuration.doAutoCreate()) 662 this.lastSystemChange = new InstantType(); // bb 663 return this.lastSystemChange; 664 } 665 666 public boolean hasLastSystemChangeElement() { 667 return this.lastSystemChange != null && !this.lastSystemChange.isEmpty(); 668 } 669 670 public boolean hasLastSystemChange() { 671 return this.lastSystemChange != null && !this.lastSystemChange.isEmpty(); 672 } 673 674 /** 675 * @param value {@link #lastSystemChange} (Describes the timestamp for the most recent system change which includes device configuration or setting change.). This is the underlying object with id, value and extensions. The accessor "getLastSystemChange" gives direct access to the value 676 */ 677 public DeviceComponent setLastSystemChangeElement(InstantType value) { 678 this.lastSystemChange = value; 679 return this; 680 } 681 682 /** 683 * @return Describes the timestamp for the most recent system change which includes device configuration or setting change. 684 */ 685 public Date getLastSystemChange() { 686 return this.lastSystemChange == null ? null : this.lastSystemChange.getValue(); 687 } 688 689 /** 690 * @param value Describes the timestamp for the most recent system change which includes device configuration or setting change. 691 */ 692 public DeviceComponent setLastSystemChange(Date value) { 693 if (this.lastSystemChange == null) 694 this.lastSystemChange = new InstantType(); 695 this.lastSystemChange.setValue(value); 696 return this; 697 } 698 699 /** 700 * @return {@link #source} (Describes the link to the source Device that contains administrative device information such as manufacture, serial number, etc.) 701 */ 702 public Reference getSource() { 703 if (this.source == null) 704 if (Configuration.errorOnAutoCreate()) 705 throw new Error("Attempt to auto-create DeviceComponent.source"); 706 else if (Configuration.doAutoCreate()) 707 this.source = new Reference(); // cc 708 return this.source; 709 } 710 711 public boolean hasSource() { 712 return this.source != null && !this.source.isEmpty(); 713 } 714 715 /** 716 * @param value {@link #source} (Describes the link to the source Device that contains administrative device information such as manufacture, serial number, etc.) 717 */ 718 public DeviceComponent setSource(Reference value) { 719 this.source = value; 720 return this; 721 } 722 723 /** 724 * @return {@link #source} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Describes the link to the source Device that contains administrative device information such as manufacture, serial number, etc.) 725 */ 726 public Device getSourceTarget() { 727 if (this.sourceTarget == null) 728 if (Configuration.errorOnAutoCreate()) 729 throw new Error("Attempt to auto-create DeviceComponent.source"); 730 else if (Configuration.doAutoCreate()) 731 this.sourceTarget = new Device(); // aa 732 return this.sourceTarget; 733 } 734 735 /** 736 * @param value {@link #source} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Describes the link to the source Device that contains administrative device information such as manufacture, serial number, etc.) 737 */ 738 public DeviceComponent setSourceTarget(Device value) { 739 this.sourceTarget = value; 740 return this; 741 } 742 743 /** 744 * @return {@link #parent} (Describes the link to the parent resource. For example: Channel is linked to its VMD parent.) 745 */ 746 public Reference getParent() { 747 if (this.parent == null) 748 if (Configuration.errorOnAutoCreate()) 749 throw new Error("Attempt to auto-create DeviceComponent.parent"); 750 else if (Configuration.doAutoCreate()) 751 this.parent = new Reference(); // cc 752 return this.parent; 753 } 754 755 public boolean hasParent() { 756 return this.parent != null && !this.parent.isEmpty(); 757 } 758 759 /** 760 * @param value {@link #parent} (Describes the link to the parent resource. For example: Channel is linked to its VMD parent.) 761 */ 762 public DeviceComponent setParent(Reference value) { 763 this.parent = value; 764 return this; 765 } 766 767 /** 768 * @return {@link #parent} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Describes the link to the parent resource. For example: Channel is linked to its VMD parent.) 769 */ 770 public DeviceComponent getParentTarget() { 771 if (this.parentTarget == null) 772 if (Configuration.errorOnAutoCreate()) 773 throw new Error("Attempt to auto-create DeviceComponent.parent"); 774 else if (Configuration.doAutoCreate()) 775 this.parentTarget = new DeviceComponent(); // aa 776 return this.parentTarget; 777 } 778 779 /** 780 * @param value {@link #parent} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Describes the link to the parent resource. For example: Channel is linked to its VMD parent.) 781 */ 782 public DeviceComponent setParentTarget(DeviceComponent value) { 783 this.parentTarget = value; 784 return this; 785 } 786 787 /** 788 * @return {@link #operationalStatus} (Indicates current operational status of the device. For example: On, Off, Standby, etc.) 789 */ 790 public List<CodeableConcept> getOperationalStatus() { 791 if (this.operationalStatus == null) 792 this.operationalStatus = new ArrayList<CodeableConcept>(); 793 return this.operationalStatus; 794 } 795 796 public boolean hasOperationalStatus() { 797 if (this.operationalStatus == null) 798 return false; 799 for (CodeableConcept item : this.operationalStatus) 800 if (!item.isEmpty()) 801 return true; 802 return false; 803 } 804 805 /** 806 * @return {@link #operationalStatus} (Indicates current operational status of the device. For example: On, Off, Standby, etc.) 807 */ 808 // syntactic sugar 809 public CodeableConcept addOperationalStatus() { //3 810 CodeableConcept t = new CodeableConcept(); 811 if (this.operationalStatus == null) 812 this.operationalStatus = new ArrayList<CodeableConcept>(); 813 this.operationalStatus.add(t); 814 return t; 815 } 816 817 // syntactic sugar 818 public DeviceComponent addOperationalStatus(CodeableConcept t) { //3 819 if (t == null) 820 return this; 821 if (this.operationalStatus == null) 822 this.operationalStatus = new ArrayList<CodeableConcept>(); 823 this.operationalStatus.add(t); 824 return this; 825 } 826 827 /** 828 * @return {@link #parameterGroup} (Describes the parameter group supported by the current device component that is based on some nomenclature, e.g. cardiovascular.) 829 */ 830 public CodeableConcept getParameterGroup() { 831 if (this.parameterGroup == null) 832 if (Configuration.errorOnAutoCreate()) 833 throw new Error("Attempt to auto-create DeviceComponent.parameterGroup"); 834 else if (Configuration.doAutoCreate()) 835 this.parameterGroup = new CodeableConcept(); // cc 836 return this.parameterGroup; 837 } 838 839 public boolean hasParameterGroup() { 840 return this.parameterGroup != null && !this.parameterGroup.isEmpty(); 841 } 842 843 /** 844 * @param value {@link #parameterGroup} (Describes the parameter group supported by the current device component that is based on some nomenclature, e.g. cardiovascular.) 845 */ 846 public DeviceComponent setParameterGroup(CodeableConcept value) { 847 this.parameterGroup = value; 848 return this; 849 } 850 851 /** 852 * @return {@link #measurementPrinciple} (Describes the physical principle of the measurement. For example: thermal, chemical, acoustical, etc.). This is the underlying object with id, value and extensions. The accessor "getMeasurementPrinciple" gives direct access to the value 853 */ 854 public Enumeration<MeasmntPrinciple> getMeasurementPrincipleElement() { 855 if (this.measurementPrinciple == null) 856 if (Configuration.errorOnAutoCreate()) 857 throw new Error("Attempt to auto-create DeviceComponent.measurementPrinciple"); 858 else if (Configuration.doAutoCreate()) 859 this.measurementPrinciple = new Enumeration<MeasmntPrinciple>(new MeasmntPrincipleEnumFactory()); // bb 860 return this.measurementPrinciple; 861 } 862 863 public boolean hasMeasurementPrincipleElement() { 864 return this.measurementPrinciple != null && !this.measurementPrinciple.isEmpty(); 865 } 866 867 public boolean hasMeasurementPrinciple() { 868 return this.measurementPrinciple != null && !this.measurementPrinciple.isEmpty(); 869 } 870 871 /** 872 * @param value {@link #measurementPrinciple} (Describes the physical principle of the measurement. For example: thermal, chemical, acoustical, etc.). This is the underlying object with id, value and extensions. The accessor "getMeasurementPrinciple" gives direct access to the value 873 */ 874 public DeviceComponent setMeasurementPrincipleElement(Enumeration<MeasmntPrinciple> value) { 875 this.measurementPrinciple = value; 876 return this; 877 } 878 879 /** 880 * @return Describes the physical principle of the measurement. For example: thermal, chemical, acoustical, etc. 881 */ 882 public MeasmntPrinciple getMeasurementPrinciple() { 883 return this.measurementPrinciple == null ? null : this.measurementPrinciple.getValue(); 884 } 885 886 /** 887 * @param value Describes the physical principle of the measurement. For example: thermal, chemical, acoustical, etc. 888 */ 889 public DeviceComponent setMeasurementPrinciple(MeasmntPrinciple value) { 890 if (value == null) 891 this.measurementPrinciple = null; 892 else { 893 if (this.measurementPrinciple == null) 894 this.measurementPrinciple = new Enumeration<MeasmntPrinciple>(new MeasmntPrincipleEnumFactory()); 895 this.measurementPrinciple.setValue(value); 896 } 897 return this; 898 } 899 900 /** 901 * @return {@link #productionSpecification} (Describes the production specification such as component revision, serial number, etc.) 902 */ 903 public List<DeviceComponentProductionSpecificationComponent> getProductionSpecification() { 904 if (this.productionSpecification == null) 905 this.productionSpecification = new ArrayList<DeviceComponentProductionSpecificationComponent>(); 906 return this.productionSpecification; 907 } 908 909 public boolean hasProductionSpecification() { 910 if (this.productionSpecification == null) 911 return false; 912 for (DeviceComponentProductionSpecificationComponent item : this.productionSpecification) 913 if (!item.isEmpty()) 914 return true; 915 return false; 916 } 917 918 /** 919 * @return {@link #productionSpecification} (Describes the production specification such as component revision, serial number, etc.) 920 */ 921 // syntactic sugar 922 public DeviceComponentProductionSpecificationComponent addProductionSpecification() { //3 923 DeviceComponentProductionSpecificationComponent t = new DeviceComponentProductionSpecificationComponent(); 924 if (this.productionSpecification == null) 925 this.productionSpecification = new ArrayList<DeviceComponentProductionSpecificationComponent>(); 926 this.productionSpecification.add(t); 927 return t; 928 } 929 930 // syntactic sugar 931 public DeviceComponent addProductionSpecification(DeviceComponentProductionSpecificationComponent t) { //3 932 if (t == null) 933 return this; 934 if (this.productionSpecification == null) 935 this.productionSpecification = new ArrayList<DeviceComponentProductionSpecificationComponent>(); 936 this.productionSpecification.add(t); 937 return this; 938 } 939 940 /** 941 * @return {@link #languageCode} (Describes the language code for the human-readable text string produced by the device. This language code will follow the IETF language tag. Example: en-US.) 942 */ 943 public CodeableConcept getLanguageCode() { 944 if (this.languageCode == null) 945 if (Configuration.errorOnAutoCreate()) 946 throw new Error("Attempt to auto-create DeviceComponent.languageCode"); 947 else if (Configuration.doAutoCreate()) 948 this.languageCode = new CodeableConcept(); // cc 949 return this.languageCode; 950 } 951 952 public boolean hasLanguageCode() { 953 return this.languageCode != null && !this.languageCode.isEmpty(); 954 } 955 956 /** 957 * @param value {@link #languageCode} (Describes the language code for the human-readable text string produced by the device. This language code will follow the IETF language tag. Example: en-US.) 958 */ 959 public DeviceComponent setLanguageCode(CodeableConcept value) { 960 this.languageCode = value; 961 return this; 962 } 963 964 protected void listChildren(List<Property> childrenList) { 965 super.listChildren(childrenList); 966 childrenList.add(new Property("type", "CodeableConcept", "Describes the specific component type as defined in the object-oriented or metric nomenclature partition.", 0, java.lang.Integer.MAX_VALUE, type)); 967 childrenList.add(new Property("identifier", "Identifier", "Describes the local assigned unique identification by the software. For example: handle ID.", 0, java.lang.Integer.MAX_VALUE, identifier)); 968 childrenList.add(new Property("lastSystemChange", "instant", "Describes the timestamp for the most recent system change which includes device configuration or setting change.", 0, java.lang.Integer.MAX_VALUE, lastSystemChange)); 969 childrenList.add(new Property("source", "Reference(Device)", "Describes the link to the source Device that contains administrative device information such as manufacture, serial number, etc.", 0, java.lang.Integer.MAX_VALUE, source)); 970 childrenList.add(new Property("parent", "Reference(DeviceComponent)", "Describes the link to the parent resource. For example: Channel is linked to its VMD parent.", 0, java.lang.Integer.MAX_VALUE, parent)); 971 childrenList.add(new Property("operationalStatus", "CodeableConcept", "Indicates current operational status of the device. For example: On, Off, Standby, etc.", 0, java.lang.Integer.MAX_VALUE, operationalStatus)); 972 childrenList.add(new Property("parameterGroup", "CodeableConcept", "Describes the parameter group supported by the current device component that is based on some nomenclature, e.g. cardiovascular.", 0, java.lang.Integer.MAX_VALUE, parameterGroup)); 973 childrenList.add(new Property("measurementPrinciple", "code", "Describes the physical principle of the measurement. For example: thermal, chemical, acoustical, etc.", 0, java.lang.Integer.MAX_VALUE, measurementPrinciple)); 974 childrenList.add(new Property("productionSpecification", "", "Describes the production specification such as component revision, serial number, etc.", 0, java.lang.Integer.MAX_VALUE, productionSpecification)); 975 childrenList.add(new Property("languageCode", "CodeableConcept", "Describes the language code for the human-readable text string produced by the device. This language code will follow the IETF language tag. Example: en-US.", 0, java.lang.Integer.MAX_VALUE, languageCode)); 976 } 977 978 @Override 979 public void setProperty(String name, Base value) throws FHIRException { 980 if (name.equals("type")) 981 this.type = castToCodeableConcept(value); // CodeableConcept 982 else if (name.equals("identifier")) 983 this.identifier = castToIdentifier(value); // Identifier 984 else if (name.equals("lastSystemChange")) 985 this.lastSystemChange = castToInstant(value); // InstantType 986 else if (name.equals("source")) 987 this.source = castToReference(value); // Reference 988 else if (name.equals("parent")) 989 this.parent = castToReference(value); // Reference 990 else if (name.equals("operationalStatus")) 991 this.getOperationalStatus().add(castToCodeableConcept(value)); 992 else if (name.equals("parameterGroup")) 993 this.parameterGroup = castToCodeableConcept(value); // CodeableConcept 994 else if (name.equals("measurementPrinciple")) 995 this.measurementPrinciple = new MeasmntPrincipleEnumFactory().fromType(value); // Enumeration<MeasmntPrinciple> 996 else if (name.equals("productionSpecification")) 997 this.getProductionSpecification().add((DeviceComponentProductionSpecificationComponent) value); 998 else if (name.equals("languageCode")) 999 this.languageCode = castToCodeableConcept(value); // CodeableConcept 1000 else 1001 super.setProperty(name, value); 1002 } 1003 1004 @Override 1005 public Base addChild(String name) throws FHIRException { 1006 if (name.equals("type")) { 1007 this.type = new CodeableConcept(); 1008 return this.type; 1009 } 1010 else if (name.equals("identifier")) { 1011 this.identifier = new Identifier(); 1012 return this.identifier; 1013 } 1014 else if (name.equals("lastSystemChange")) { 1015 throw new FHIRException("Cannot call addChild on a primitive type DeviceComponent.lastSystemChange"); 1016 } 1017 else if (name.equals("source")) { 1018 this.source = new Reference(); 1019 return this.source; 1020 } 1021 else if (name.equals("parent")) { 1022 this.parent = new Reference(); 1023 return this.parent; 1024 } 1025 else if (name.equals("operationalStatus")) { 1026 return addOperationalStatus(); 1027 } 1028 else if (name.equals("parameterGroup")) { 1029 this.parameterGroup = new CodeableConcept(); 1030 return this.parameterGroup; 1031 } 1032 else if (name.equals("measurementPrinciple")) { 1033 throw new FHIRException("Cannot call addChild on a primitive type DeviceComponent.measurementPrinciple"); 1034 } 1035 else if (name.equals("productionSpecification")) { 1036 return addProductionSpecification(); 1037 } 1038 else if (name.equals("languageCode")) { 1039 this.languageCode = new CodeableConcept(); 1040 return this.languageCode; 1041 } 1042 else 1043 return super.addChild(name); 1044 } 1045 1046 public String fhirType() { 1047 return "DeviceComponent"; 1048 1049 } 1050 1051 public DeviceComponent copy() { 1052 DeviceComponent dst = new DeviceComponent(); 1053 copyValues(dst); 1054 dst.type = type == null ? null : type.copy(); 1055 dst.identifier = identifier == null ? null : identifier.copy(); 1056 dst.lastSystemChange = lastSystemChange == null ? null : lastSystemChange.copy(); 1057 dst.source = source == null ? null : source.copy(); 1058 dst.parent = parent == null ? null : parent.copy(); 1059 if (operationalStatus != null) { 1060 dst.operationalStatus = new ArrayList<CodeableConcept>(); 1061 for (CodeableConcept i : operationalStatus) 1062 dst.operationalStatus.add(i.copy()); 1063 }; 1064 dst.parameterGroup = parameterGroup == null ? null : parameterGroup.copy(); 1065 dst.measurementPrinciple = measurementPrinciple == null ? null : measurementPrinciple.copy(); 1066 if (productionSpecification != null) { 1067 dst.productionSpecification = new ArrayList<DeviceComponentProductionSpecificationComponent>(); 1068 for (DeviceComponentProductionSpecificationComponent i : productionSpecification) 1069 dst.productionSpecification.add(i.copy()); 1070 }; 1071 dst.languageCode = languageCode == null ? null : languageCode.copy(); 1072 return dst; 1073 } 1074 1075 protected DeviceComponent typedCopy() { 1076 return copy(); 1077 } 1078 1079 @Override 1080 public boolean equalsDeep(Base other) { 1081 if (!super.equalsDeep(other)) 1082 return false; 1083 if (!(other instanceof DeviceComponent)) 1084 return false; 1085 DeviceComponent o = (DeviceComponent) other; 1086 return compareDeep(type, o.type, true) && compareDeep(identifier, o.identifier, true) && compareDeep(lastSystemChange, o.lastSystemChange, true) 1087 && compareDeep(source, o.source, true) && compareDeep(parent, o.parent, true) && compareDeep(operationalStatus, o.operationalStatus, true) 1088 && compareDeep(parameterGroup, o.parameterGroup, true) && compareDeep(measurementPrinciple, o.measurementPrinciple, true) 1089 && compareDeep(productionSpecification, o.productionSpecification, true) && compareDeep(languageCode, o.languageCode, true) 1090 ; 1091 } 1092 1093 @Override 1094 public boolean equalsShallow(Base other) { 1095 if (!super.equalsShallow(other)) 1096 return false; 1097 if (!(other instanceof DeviceComponent)) 1098 return false; 1099 DeviceComponent o = (DeviceComponent) other; 1100 return compareValues(lastSystemChange, o.lastSystemChange, true) && compareValues(measurementPrinciple, o.measurementPrinciple, true) 1101 ; 1102 } 1103 1104 public boolean isEmpty() { 1105 return super.isEmpty() && (type == null || type.isEmpty()) && (identifier == null || identifier.isEmpty()) 1106 && (lastSystemChange == null || lastSystemChange.isEmpty()) && (source == null || source.isEmpty()) 1107 && (parent == null || parent.isEmpty()) && (operationalStatus == null || operationalStatus.isEmpty()) 1108 && (parameterGroup == null || parameterGroup.isEmpty()) && (measurementPrinciple == null || measurementPrinciple.isEmpty()) 1109 && (productionSpecification == null || productionSpecification.isEmpty()) && (languageCode == null || languageCode.isEmpty()) 1110 ; 1111 } 1112 1113 @Override 1114 public ResourceType getResourceType() { 1115 return ResourceType.DeviceComponent; 1116 } 1117 1118 @SearchParamDefinition(name="parent", path="DeviceComponent.parent", description="The parent DeviceComponent resource", type="reference" ) 1119 public static final String SP_PARENT = "parent"; 1120 @SearchParamDefinition(name="source", path="DeviceComponent.source", description="The device source", type="reference" ) 1121 public static final String SP_SOURCE = "source"; 1122 @SearchParamDefinition(name="type", path="DeviceComponent.type", description="The device component type", type="token" ) 1123 public static final String SP_TYPE = "type"; 1124 1125} 1126