![](/hapi-fhir/images/logos/raccoon-forwards.png)
001package org.hl7.fhir.r5.model; 002 003 004/* 005 Copyright (c) 2011+, HL7, Inc. 006 All rights reserved. 007 008 Redistribution and use in source and binary forms, with or without modification, \ 009 are permitted provided that the following conditions are met: 010 011 * Redistributions of source code must retain the above copyright notice, this \ 012 list of conditions and the following disclaimer. 013 * Redistributions in binary form must reproduce the above copyright notice, \ 014 this list of conditions and the following disclaimer in the documentation \ 015 and/or other materials provided with the distribution. 016 * Neither the name of HL7 nor the names of its contributors may be used to 017 endorse or promote products derived from this software without specific 018 prior written permission. 019 020 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \ 021 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \ 022 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \ 023 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \ 024 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT \ 025 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR \ 026 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, \ 027 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) \ 028 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE \ 029 POSSIBILITY OF SUCH DAMAGE. 030 */ 031 032// Generated on Thu, Mar 23, 2023 19:59+1100 for FHIR v5.0.0 033 034import java.util.ArrayList; 035import java.util.Date; 036import java.util.List; 037import org.hl7.fhir.utilities.Utilities; 038import org.hl7.fhir.r5.model.Enumerations.*; 039import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 040import org.hl7.fhir.exceptions.FHIRException; 041import org.hl7.fhir.instance.model.api.ICompositeType; 042import ca.uhn.fhir.model.api.annotation.ResourceDef; 043import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 044import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 045import ca.uhn.fhir.model.api.annotation.Child; 046import ca.uhn.fhir.model.api.annotation.ChildOrder; 047import ca.uhn.fhir.model.api.annotation.Description; 048import ca.uhn.fhir.model.api.annotation.Block; 049 050/** 051 * This resource describes the properties (regulated, has real time clock, etc.), adminstrative (manufacturer name, model number, serial number, firmware, etc.), and type (knee replacement, blood pressure cuff, MRI, etc.) of a physical unit (these values do not change much within a given module, for example the serail number, manufacturer name, and model number). An actual unit may consist of several modules in a distinct hierarchy and these are represented by multiple Device resources and bound through the 'parent' element. 052 */ 053@ResourceDef(name="Device", profile="http://hl7.org/fhir/StructureDefinition/Device") 054public class Device extends DomainResource { 055 056 public enum FHIRDeviceStatus { 057 /** 058 * The device record is current and is appropriate for reference in new instances. 059 */ 060 ACTIVE, 061 /** 062 * The device record is not current and is not appropriate for reference in new instances. 063 */ 064 INACTIVE, 065 /** 066 * The device record is not current and is not appropriate for reference in new instances. 067 */ 068 ENTEREDINERROR, 069 /** 070 * added to help the parsers with the generic types 071 */ 072 NULL; 073 public static FHIRDeviceStatus fromCode(String codeString) throws FHIRException { 074 if (codeString == null || "".equals(codeString)) 075 return null; 076 if ("active".equals(codeString)) 077 return ACTIVE; 078 if ("inactive".equals(codeString)) 079 return INACTIVE; 080 if ("entered-in-error".equals(codeString)) 081 return ENTEREDINERROR; 082 if (Configuration.isAcceptInvalidEnums()) 083 return null; 084 else 085 throw new FHIRException("Unknown FHIRDeviceStatus code '"+codeString+"'"); 086 } 087 public String toCode() { 088 switch (this) { 089 case ACTIVE: return "active"; 090 case INACTIVE: return "inactive"; 091 case ENTEREDINERROR: return "entered-in-error"; 092 case NULL: return null; 093 default: return "?"; 094 } 095 } 096 public String getSystem() { 097 switch (this) { 098 case ACTIVE: return "http://hl7.org/fhir/device-status"; 099 case INACTIVE: return "http://hl7.org/fhir/device-status"; 100 case ENTEREDINERROR: return "http://hl7.org/fhir/device-status"; 101 case NULL: return null; 102 default: return "?"; 103 } 104 } 105 public String getDefinition() { 106 switch (this) { 107 case ACTIVE: return "The device record is current and is appropriate for reference in new instances."; 108 case INACTIVE: return "The device record is not current and is not appropriate for reference in new instances."; 109 case ENTEREDINERROR: return "The device record is not current and is not appropriate for reference in new instances."; 110 case NULL: return null; 111 default: return "?"; 112 } 113 } 114 public String getDisplay() { 115 switch (this) { 116 case ACTIVE: return "Active"; 117 case INACTIVE: return "Inactive"; 118 case ENTEREDINERROR: return "Entered in Error"; 119 case NULL: return null; 120 default: return "?"; 121 } 122 } 123 } 124 125 public static class FHIRDeviceStatusEnumFactory implements EnumFactory<FHIRDeviceStatus> { 126 public FHIRDeviceStatus fromCode(String codeString) throws IllegalArgumentException { 127 if (codeString == null || "".equals(codeString)) 128 if (codeString == null || "".equals(codeString)) 129 return null; 130 if ("active".equals(codeString)) 131 return FHIRDeviceStatus.ACTIVE; 132 if ("inactive".equals(codeString)) 133 return FHIRDeviceStatus.INACTIVE; 134 if ("entered-in-error".equals(codeString)) 135 return FHIRDeviceStatus.ENTEREDINERROR; 136 throw new IllegalArgumentException("Unknown FHIRDeviceStatus code '"+codeString+"'"); 137 } 138 public Enumeration<FHIRDeviceStatus> fromType(PrimitiveType<?> code) throws FHIRException { 139 if (code == null) 140 return null; 141 if (code.isEmpty()) 142 return new Enumeration<FHIRDeviceStatus>(this, FHIRDeviceStatus.NULL, code); 143 String codeString = ((PrimitiveType) code).asStringValue(); 144 if (codeString == null || "".equals(codeString)) 145 return new Enumeration<FHIRDeviceStatus>(this, FHIRDeviceStatus.NULL, code); 146 if ("active".equals(codeString)) 147 return new Enumeration<FHIRDeviceStatus>(this, FHIRDeviceStatus.ACTIVE, code); 148 if ("inactive".equals(codeString)) 149 return new Enumeration<FHIRDeviceStatus>(this, FHIRDeviceStatus.INACTIVE, code); 150 if ("entered-in-error".equals(codeString)) 151 return new Enumeration<FHIRDeviceStatus>(this, FHIRDeviceStatus.ENTEREDINERROR, code); 152 throw new FHIRException("Unknown FHIRDeviceStatus code '"+codeString+"'"); 153 } 154 public String toCode(FHIRDeviceStatus code) { 155 if (code == FHIRDeviceStatus.ACTIVE) 156 return "active"; 157 if (code == FHIRDeviceStatus.INACTIVE) 158 return "inactive"; 159 if (code == FHIRDeviceStatus.ENTEREDINERROR) 160 return "entered-in-error"; 161 return "?"; 162 } 163 public String toSystem(FHIRDeviceStatus code) { 164 return code.getSystem(); 165 } 166 } 167 168 public enum UDIEntryType { 169 /** 170 * a barcodescanner captured the data from the device label. 171 */ 172 BARCODE, 173 /** 174 * An RFID chip reader captured the data from the device label. 175 */ 176 RFID, 177 /** 178 * The data was read from the label by a person and manually entered. (e.g. via a keyboard). 179 */ 180 MANUAL, 181 /** 182 * The data originated from a patient's implant card and was read by an operator. 183 */ 184 CARD, 185 /** 186 * The data originated from a patient source and was not directly scanned or read from a label or card. 187 */ 188 SELFREPORTED, 189 /** 190 * The UDI information was received electronically from the device through a communication protocol, such as the IEEE 11073 20601 version 4 exchange protocol over Bluetooth or USB. 191 */ 192 ELECTRONICTRANSMISSION, 193 /** 194 * The method of data capture has not been determined. 195 */ 196 UNKNOWN, 197 /** 198 * added to help the parsers with the generic types 199 */ 200 NULL; 201 public static UDIEntryType fromCode(String codeString) throws FHIRException { 202 if (codeString == null || "".equals(codeString)) 203 return null; 204 if ("barcode".equals(codeString)) 205 return BARCODE; 206 if ("rfid".equals(codeString)) 207 return RFID; 208 if ("manual".equals(codeString)) 209 return MANUAL; 210 if ("card".equals(codeString)) 211 return CARD; 212 if ("self-reported".equals(codeString)) 213 return SELFREPORTED; 214 if ("electronic-transmission".equals(codeString)) 215 return ELECTRONICTRANSMISSION; 216 if ("unknown".equals(codeString)) 217 return UNKNOWN; 218 if (Configuration.isAcceptInvalidEnums()) 219 return null; 220 else 221 throw new FHIRException("Unknown UDIEntryType code '"+codeString+"'"); 222 } 223 public String toCode() { 224 switch (this) { 225 case BARCODE: return "barcode"; 226 case RFID: return "rfid"; 227 case MANUAL: return "manual"; 228 case CARD: return "card"; 229 case SELFREPORTED: return "self-reported"; 230 case ELECTRONICTRANSMISSION: return "electronic-transmission"; 231 case UNKNOWN: return "unknown"; 232 case NULL: return null; 233 default: return "?"; 234 } 235 } 236 public String getSystem() { 237 switch (this) { 238 case BARCODE: return "http://hl7.org/fhir/udi-entry-type"; 239 case RFID: return "http://hl7.org/fhir/udi-entry-type"; 240 case MANUAL: return "http://hl7.org/fhir/udi-entry-type"; 241 case CARD: return "http://hl7.org/fhir/udi-entry-type"; 242 case SELFREPORTED: return "http://hl7.org/fhir/udi-entry-type"; 243 case ELECTRONICTRANSMISSION: return "http://hl7.org/fhir/udi-entry-type"; 244 case UNKNOWN: return "http://hl7.org/fhir/udi-entry-type"; 245 case NULL: return null; 246 default: return "?"; 247 } 248 } 249 public String getDefinition() { 250 switch (this) { 251 case BARCODE: return "a barcodescanner captured the data from the device label."; 252 case RFID: return "An RFID chip reader captured the data from the device label."; 253 case MANUAL: return "The data was read from the label by a person and manually entered. (e.g. via a keyboard)."; 254 case CARD: return "The data originated from a patient's implant card and was read by an operator."; 255 case SELFREPORTED: return "The data originated from a patient source and was not directly scanned or read from a label or card."; 256 case ELECTRONICTRANSMISSION: return "The UDI information was received electronically from the device through a communication protocol, such as the IEEE 11073 20601 version 4 exchange protocol over Bluetooth or USB."; 257 case UNKNOWN: return "The method of data capture has not been determined."; 258 case NULL: return null; 259 default: return "?"; 260 } 261 } 262 public String getDisplay() { 263 switch (this) { 264 case BARCODE: return "Barcode"; 265 case RFID: return "RFID"; 266 case MANUAL: return "Manual"; 267 case CARD: return "Card"; 268 case SELFREPORTED: return "Self Reported"; 269 case ELECTRONICTRANSMISSION: return "Electronic Transmission"; 270 case UNKNOWN: return "Unknown"; 271 case NULL: return null; 272 default: return "?"; 273 } 274 } 275 } 276 277 public static class UDIEntryTypeEnumFactory implements EnumFactory<UDIEntryType> { 278 public UDIEntryType fromCode(String codeString) throws IllegalArgumentException { 279 if (codeString == null || "".equals(codeString)) 280 if (codeString == null || "".equals(codeString)) 281 return null; 282 if ("barcode".equals(codeString)) 283 return UDIEntryType.BARCODE; 284 if ("rfid".equals(codeString)) 285 return UDIEntryType.RFID; 286 if ("manual".equals(codeString)) 287 return UDIEntryType.MANUAL; 288 if ("card".equals(codeString)) 289 return UDIEntryType.CARD; 290 if ("self-reported".equals(codeString)) 291 return UDIEntryType.SELFREPORTED; 292 if ("electronic-transmission".equals(codeString)) 293 return UDIEntryType.ELECTRONICTRANSMISSION; 294 if ("unknown".equals(codeString)) 295 return UDIEntryType.UNKNOWN; 296 throw new IllegalArgumentException("Unknown UDIEntryType code '"+codeString+"'"); 297 } 298 public Enumeration<UDIEntryType> fromType(PrimitiveType<?> code) throws FHIRException { 299 if (code == null) 300 return null; 301 if (code.isEmpty()) 302 return new Enumeration<UDIEntryType>(this, UDIEntryType.NULL, code); 303 String codeString = ((PrimitiveType) code).asStringValue(); 304 if (codeString == null || "".equals(codeString)) 305 return new Enumeration<UDIEntryType>(this, UDIEntryType.NULL, code); 306 if ("barcode".equals(codeString)) 307 return new Enumeration<UDIEntryType>(this, UDIEntryType.BARCODE, code); 308 if ("rfid".equals(codeString)) 309 return new Enumeration<UDIEntryType>(this, UDIEntryType.RFID, code); 310 if ("manual".equals(codeString)) 311 return new Enumeration<UDIEntryType>(this, UDIEntryType.MANUAL, code); 312 if ("card".equals(codeString)) 313 return new Enumeration<UDIEntryType>(this, UDIEntryType.CARD, code); 314 if ("self-reported".equals(codeString)) 315 return new Enumeration<UDIEntryType>(this, UDIEntryType.SELFREPORTED, code); 316 if ("electronic-transmission".equals(codeString)) 317 return new Enumeration<UDIEntryType>(this, UDIEntryType.ELECTRONICTRANSMISSION, code); 318 if ("unknown".equals(codeString)) 319 return new Enumeration<UDIEntryType>(this, UDIEntryType.UNKNOWN, code); 320 throw new FHIRException("Unknown UDIEntryType code '"+codeString+"'"); 321 } 322 public String toCode(UDIEntryType code) { 323 if (code == UDIEntryType.BARCODE) 324 return "barcode"; 325 if (code == UDIEntryType.RFID) 326 return "rfid"; 327 if (code == UDIEntryType.MANUAL) 328 return "manual"; 329 if (code == UDIEntryType.CARD) 330 return "card"; 331 if (code == UDIEntryType.SELFREPORTED) 332 return "self-reported"; 333 if (code == UDIEntryType.ELECTRONICTRANSMISSION) 334 return "electronic-transmission"; 335 if (code == UDIEntryType.UNKNOWN) 336 return "unknown"; 337 return "?"; 338 } 339 public String toSystem(UDIEntryType code) { 340 return code.getSystem(); 341 } 342 } 343 344 @Block() 345 public static class DeviceUdiCarrierComponent extends BackboneElement implements IBaseBackboneElement { 346 /** 347 * The device identifier (DI) is a mandatory, fixed portion of a UDI that identifies the labeler and the specific version or model of a device. 348 */ 349 @Child(name = "deviceIdentifier", type = {StringType.class}, order=1, min=1, max=1, modifier=false, summary=true) 350 @Description(shortDefinition="Mandatory fixed portion of UDI", formalDefinition="The device identifier (DI) is a mandatory, fixed portion of a UDI that identifies the labeler and the specific version or model of a device." ) 351 protected StringType deviceIdentifier; 352 353 /** 354 * Organization that is charged with issuing UDIs for devices. For example, the US FDA issuers include: 3551) GS1: http://hl7.org/fhir/NamingSystem/gs1-di, 3562) HIBCC: http://hl7.org/fhir/NamingSystem/hibcc-diI, 3573) ICCBBA for blood containers: http://hl7.org/fhir/NamingSystem/iccbba-blood-di, 3584) ICCBA for other devices: http://hl7.org/fhir/NamingSystem/iccbba-other-di # Informationsstelle für Arzneispezialitäten (IFA GmbH) (EU only): http://hl7.org/fhir/NamingSystem/ifa-gmbh-di. 359 */ 360 @Child(name = "issuer", type = {UriType.class}, order=2, min=1, max=1, modifier=false, summary=true) 361 @Description(shortDefinition="UDI Issuing Organization", formalDefinition="Organization that is charged with issuing UDIs for devices. For example, the US FDA issuers include: \n1) GS1: http://hl7.org/fhir/NamingSystem/gs1-di, \n2) HIBCC: http://hl7.org/fhir/NamingSystem/hibcc-diI, \n3) ICCBBA for blood containers: http://hl7.org/fhir/NamingSystem/iccbba-blood-di, \n4) ICCBA for other devices: http://hl7.org/fhir/NamingSystem/iccbba-other-di # Informationsstelle für Arzneispezialitäten (IFA GmbH) (EU only): http://hl7.org/fhir/NamingSystem/ifa-gmbh-di." ) 362 protected UriType issuer; 363 364 /** 365 * The identity of the authoritative source for UDI generation within a jurisdiction. All UDIs are globally unique within a single namespace with the appropriate repository uri as the system. For example, UDIs of devices managed in the U.S. by the FDA, the value is http://hl7.org/fhir/NamingSystem/us-fda-udi or in the European Union by the European Commission http://hl7.org/fhir/NamingSystem/eu-ec-udi. 366 */ 367 @Child(name = "jurisdiction", type = {UriType.class}, order=3, min=0, max=1, modifier=false, summary=false) 368 @Description(shortDefinition="Regional UDI authority", formalDefinition="The identity of the authoritative source for UDI generation within a jurisdiction. All UDIs are globally unique within a single namespace with the appropriate repository uri as the system. For example, UDIs of devices managed in the U.S. by the FDA, the value is http://hl7.org/fhir/NamingSystem/us-fda-udi or in the European Union by the European Commission http://hl7.org/fhir/NamingSystem/eu-ec-udi." ) 369 protected UriType jurisdiction; 370 371 /** 372 * The full UDI carrier of the Automatic Identification and Data Capture (AIDC) technology representation of the barcode string as printed on the packaging of the device - e.g., a barcode or RFID. Because of limitations on character sets in XML and the need to round-trip JSON data through XML, AIDC Formats *SHALL* be base64 encoded. 373 */ 374 @Child(name = "carrierAIDC", type = {Base64BinaryType.class}, order=4, min=0, max=1, modifier=false, summary=true) 375 @Description(shortDefinition="UDI Machine Readable Barcode String", formalDefinition="The full UDI carrier of the Automatic Identification and Data Capture (AIDC) technology representation of the barcode string as printed on the packaging of the device - e.g., a barcode or RFID. Because of limitations on character sets in XML and the need to round-trip JSON data through XML, AIDC Formats *SHALL* be base64 encoded." ) 376 protected Base64BinaryType carrierAIDC; 377 378 /** 379 * The full UDI carrier as the human readable form (HRF) representation of the barcode string as printed on the packaging of the device. 380 */ 381 @Child(name = "carrierHRF", type = {StringType.class}, order=5, min=0, max=1, modifier=false, summary=true) 382 @Description(shortDefinition="UDI Human Readable Barcode String", formalDefinition="The full UDI carrier as the human readable form (HRF) representation of the barcode string as printed on the packaging of the device." ) 383 protected StringType carrierHRF; 384 385 /** 386 * A coded entry to indicate how the data was entered. 387 */ 388 @Child(name = "entryType", type = {CodeType.class}, order=6, min=0, max=1, modifier=false, summary=false) 389 @Description(shortDefinition="barcode | rfid | manual | card | self-reported | electronic-transmission | unknown", formalDefinition="A coded entry to indicate how the data was entered." ) 390 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/udi-entry-type") 391 protected Enumeration<UDIEntryType> entryType; 392 393 private static final long serialVersionUID = -191630425L; 394 395 /** 396 * Constructor 397 */ 398 public DeviceUdiCarrierComponent() { 399 super(); 400 } 401 402 /** 403 * Constructor 404 */ 405 public DeviceUdiCarrierComponent(String deviceIdentifier, String issuer) { 406 super(); 407 this.setDeviceIdentifier(deviceIdentifier); 408 this.setIssuer(issuer); 409 } 410 411 /** 412 * @return {@link #deviceIdentifier} (The device identifier (DI) is a mandatory, fixed portion of a UDI that identifies the labeler and the specific version or model of a device.). This is the underlying object with id, value and extensions. The accessor "getDeviceIdentifier" gives direct access to the value 413 */ 414 public StringType getDeviceIdentifierElement() { 415 if (this.deviceIdentifier == null) 416 if (Configuration.errorOnAutoCreate()) 417 throw new Error("Attempt to auto-create DeviceUdiCarrierComponent.deviceIdentifier"); 418 else if (Configuration.doAutoCreate()) 419 this.deviceIdentifier = new StringType(); // bb 420 return this.deviceIdentifier; 421 } 422 423 public boolean hasDeviceIdentifierElement() { 424 return this.deviceIdentifier != null && !this.deviceIdentifier.isEmpty(); 425 } 426 427 public boolean hasDeviceIdentifier() { 428 return this.deviceIdentifier != null && !this.deviceIdentifier.isEmpty(); 429 } 430 431 /** 432 * @param value {@link #deviceIdentifier} (The device identifier (DI) is a mandatory, fixed portion of a UDI that identifies the labeler and the specific version or model of a device.). This is the underlying object with id, value and extensions. The accessor "getDeviceIdentifier" gives direct access to the value 433 */ 434 public DeviceUdiCarrierComponent setDeviceIdentifierElement(StringType value) { 435 this.deviceIdentifier = value; 436 return this; 437 } 438 439 /** 440 * @return The device identifier (DI) is a mandatory, fixed portion of a UDI that identifies the labeler and the specific version or model of a device. 441 */ 442 public String getDeviceIdentifier() { 443 return this.deviceIdentifier == null ? null : this.deviceIdentifier.getValue(); 444 } 445 446 /** 447 * @param value The device identifier (DI) is a mandatory, fixed portion of a UDI that identifies the labeler and the specific version or model of a device. 448 */ 449 public DeviceUdiCarrierComponent setDeviceIdentifier(String value) { 450 if (this.deviceIdentifier == null) 451 this.deviceIdentifier = new StringType(); 452 this.deviceIdentifier.setValue(value); 453 return this; 454 } 455 456 /** 457 * @return {@link #issuer} (Organization that is charged with issuing UDIs for devices. For example, the US FDA issuers include: 4581) GS1: http://hl7.org/fhir/NamingSystem/gs1-di, 4592) HIBCC: http://hl7.org/fhir/NamingSystem/hibcc-diI, 4603) ICCBBA for blood containers: http://hl7.org/fhir/NamingSystem/iccbba-blood-di, 4614) ICCBA for other devices: http://hl7.org/fhir/NamingSystem/iccbba-other-di # Informationsstelle für Arzneispezialitäten (IFA GmbH) (EU only): http://hl7.org/fhir/NamingSystem/ifa-gmbh-di.). This is the underlying object with id, value and extensions. The accessor "getIssuer" gives direct access to the value 462 */ 463 public UriType getIssuerElement() { 464 if (this.issuer == null) 465 if (Configuration.errorOnAutoCreate()) 466 throw new Error("Attempt to auto-create DeviceUdiCarrierComponent.issuer"); 467 else if (Configuration.doAutoCreate()) 468 this.issuer = new UriType(); // bb 469 return this.issuer; 470 } 471 472 public boolean hasIssuerElement() { 473 return this.issuer != null && !this.issuer.isEmpty(); 474 } 475 476 public boolean hasIssuer() { 477 return this.issuer != null && !this.issuer.isEmpty(); 478 } 479 480 /** 481 * @param value {@link #issuer} (Organization that is charged with issuing UDIs for devices. For example, the US FDA issuers include: 4821) GS1: http://hl7.org/fhir/NamingSystem/gs1-di, 4832) HIBCC: http://hl7.org/fhir/NamingSystem/hibcc-diI, 4843) ICCBBA for blood containers: http://hl7.org/fhir/NamingSystem/iccbba-blood-di, 4854) ICCBA for other devices: http://hl7.org/fhir/NamingSystem/iccbba-other-di # Informationsstelle für Arzneispezialitäten (IFA GmbH) (EU only): http://hl7.org/fhir/NamingSystem/ifa-gmbh-di.). This is the underlying object with id, value and extensions. The accessor "getIssuer" gives direct access to the value 486 */ 487 public DeviceUdiCarrierComponent setIssuerElement(UriType value) { 488 this.issuer = value; 489 return this; 490 } 491 492 /** 493 * @return Organization that is charged with issuing UDIs for devices. For example, the US FDA issuers include: 4941) GS1: http://hl7.org/fhir/NamingSystem/gs1-di, 4952) HIBCC: http://hl7.org/fhir/NamingSystem/hibcc-diI, 4963) ICCBBA for blood containers: http://hl7.org/fhir/NamingSystem/iccbba-blood-di, 4974) ICCBA for other devices: http://hl7.org/fhir/NamingSystem/iccbba-other-di # Informationsstelle für Arzneispezialitäten (IFA GmbH) (EU only): http://hl7.org/fhir/NamingSystem/ifa-gmbh-di. 498 */ 499 public String getIssuer() { 500 return this.issuer == null ? null : this.issuer.getValue(); 501 } 502 503 /** 504 * @param value Organization that is charged with issuing UDIs for devices. For example, the US FDA issuers include: 5051) GS1: http://hl7.org/fhir/NamingSystem/gs1-di, 5062) HIBCC: http://hl7.org/fhir/NamingSystem/hibcc-diI, 5073) ICCBBA for blood containers: http://hl7.org/fhir/NamingSystem/iccbba-blood-di, 5084) ICCBA for other devices: http://hl7.org/fhir/NamingSystem/iccbba-other-di # Informationsstelle für Arzneispezialitäten (IFA GmbH) (EU only): http://hl7.org/fhir/NamingSystem/ifa-gmbh-di. 509 */ 510 public DeviceUdiCarrierComponent setIssuer(String value) { 511 if (this.issuer == null) 512 this.issuer = new UriType(); 513 this.issuer.setValue(value); 514 return this; 515 } 516 517 /** 518 * @return {@link #jurisdiction} (The identity of the authoritative source for UDI generation within a jurisdiction. All UDIs are globally unique within a single namespace with the appropriate repository uri as the system. For example, UDIs of devices managed in the U.S. by the FDA, the value is http://hl7.org/fhir/NamingSystem/us-fda-udi or in the European Union by the European Commission http://hl7.org/fhir/NamingSystem/eu-ec-udi.). This is the underlying object with id, value and extensions. The accessor "getJurisdiction" gives direct access to the value 519 */ 520 public UriType getJurisdictionElement() { 521 if (this.jurisdiction == null) 522 if (Configuration.errorOnAutoCreate()) 523 throw new Error("Attempt to auto-create DeviceUdiCarrierComponent.jurisdiction"); 524 else if (Configuration.doAutoCreate()) 525 this.jurisdiction = new UriType(); // bb 526 return this.jurisdiction; 527 } 528 529 public boolean hasJurisdictionElement() { 530 return this.jurisdiction != null && !this.jurisdiction.isEmpty(); 531 } 532 533 public boolean hasJurisdiction() { 534 return this.jurisdiction != null && !this.jurisdiction.isEmpty(); 535 } 536 537 /** 538 * @param value {@link #jurisdiction} (The identity of the authoritative source for UDI generation within a jurisdiction. All UDIs are globally unique within a single namespace with the appropriate repository uri as the system. For example, UDIs of devices managed in the U.S. by the FDA, the value is http://hl7.org/fhir/NamingSystem/us-fda-udi or in the European Union by the European Commission http://hl7.org/fhir/NamingSystem/eu-ec-udi.). This is the underlying object with id, value and extensions. The accessor "getJurisdiction" gives direct access to the value 539 */ 540 public DeviceUdiCarrierComponent setJurisdictionElement(UriType value) { 541 this.jurisdiction = value; 542 return this; 543 } 544 545 /** 546 * @return The identity of the authoritative source for UDI generation within a jurisdiction. All UDIs are globally unique within a single namespace with the appropriate repository uri as the system. For example, UDIs of devices managed in the U.S. by the FDA, the value is http://hl7.org/fhir/NamingSystem/us-fda-udi or in the European Union by the European Commission http://hl7.org/fhir/NamingSystem/eu-ec-udi. 547 */ 548 public String getJurisdiction() { 549 return this.jurisdiction == null ? null : this.jurisdiction.getValue(); 550 } 551 552 /** 553 * @param value The identity of the authoritative source for UDI generation within a jurisdiction. All UDIs are globally unique within a single namespace with the appropriate repository uri as the system. For example, UDIs of devices managed in the U.S. by the FDA, the value is http://hl7.org/fhir/NamingSystem/us-fda-udi or in the European Union by the European Commission http://hl7.org/fhir/NamingSystem/eu-ec-udi. 554 */ 555 public DeviceUdiCarrierComponent setJurisdiction(String value) { 556 if (Utilities.noString(value)) 557 this.jurisdiction = null; 558 else { 559 if (this.jurisdiction == null) 560 this.jurisdiction = new UriType(); 561 this.jurisdiction.setValue(value); 562 } 563 return this; 564 } 565 566 /** 567 * @return {@link #carrierAIDC} (The full UDI carrier of the Automatic Identification and Data Capture (AIDC) technology representation of the barcode string as printed on the packaging of the device - e.g., a barcode or RFID. Because of limitations on character sets in XML and the need to round-trip JSON data through XML, AIDC Formats *SHALL* be base64 encoded.). This is the underlying object with id, value and extensions. The accessor "getCarrierAIDC" gives direct access to the value 568 */ 569 public Base64BinaryType getCarrierAIDCElement() { 570 if (this.carrierAIDC == null) 571 if (Configuration.errorOnAutoCreate()) 572 throw new Error("Attempt to auto-create DeviceUdiCarrierComponent.carrierAIDC"); 573 else if (Configuration.doAutoCreate()) 574 this.carrierAIDC = new Base64BinaryType(); // bb 575 return this.carrierAIDC; 576 } 577 578 public boolean hasCarrierAIDCElement() { 579 return this.carrierAIDC != null && !this.carrierAIDC.isEmpty(); 580 } 581 582 public boolean hasCarrierAIDC() { 583 return this.carrierAIDC != null && !this.carrierAIDC.isEmpty(); 584 } 585 586 /** 587 * @param value {@link #carrierAIDC} (The full UDI carrier of the Automatic Identification and Data Capture (AIDC) technology representation of the barcode string as printed on the packaging of the device - e.g., a barcode or RFID. Because of limitations on character sets in XML and the need to round-trip JSON data through XML, AIDC Formats *SHALL* be base64 encoded.). This is the underlying object with id, value and extensions. The accessor "getCarrierAIDC" gives direct access to the value 588 */ 589 public DeviceUdiCarrierComponent setCarrierAIDCElement(Base64BinaryType value) { 590 this.carrierAIDC = value; 591 return this; 592 } 593 594 /** 595 * @return The full UDI carrier of the Automatic Identification and Data Capture (AIDC) technology representation of the barcode string as printed on the packaging of the device - e.g., a barcode or RFID. Because of limitations on character sets in XML and the need to round-trip JSON data through XML, AIDC Formats *SHALL* be base64 encoded. 596 */ 597 public byte[] getCarrierAIDC() { 598 return this.carrierAIDC == null ? null : this.carrierAIDC.getValue(); 599 } 600 601 /** 602 * @param value The full UDI carrier of the Automatic Identification and Data Capture (AIDC) technology representation of the barcode string as printed on the packaging of the device - e.g., a barcode or RFID. Because of limitations on character sets in XML and the need to round-trip JSON data through XML, AIDC Formats *SHALL* be base64 encoded. 603 */ 604 public DeviceUdiCarrierComponent setCarrierAIDC(byte[] value) { 605 if (value == null) 606 this.carrierAIDC = null; 607 else { 608 if (this.carrierAIDC == null) 609 this.carrierAIDC = new Base64BinaryType(); 610 this.carrierAIDC.setValue(value); 611 } 612 return this; 613 } 614 615 /** 616 * @return {@link #carrierHRF} (The full UDI carrier as the human readable form (HRF) representation of the barcode string as printed on the packaging of the device.). This is the underlying object with id, value and extensions. The accessor "getCarrierHRF" gives direct access to the value 617 */ 618 public StringType getCarrierHRFElement() { 619 if (this.carrierHRF == null) 620 if (Configuration.errorOnAutoCreate()) 621 throw new Error("Attempt to auto-create DeviceUdiCarrierComponent.carrierHRF"); 622 else if (Configuration.doAutoCreate()) 623 this.carrierHRF = new StringType(); // bb 624 return this.carrierHRF; 625 } 626 627 public boolean hasCarrierHRFElement() { 628 return this.carrierHRF != null && !this.carrierHRF.isEmpty(); 629 } 630 631 public boolean hasCarrierHRF() { 632 return this.carrierHRF != null && !this.carrierHRF.isEmpty(); 633 } 634 635 /** 636 * @param value {@link #carrierHRF} (The full UDI carrier as the human readable form (HRF) representation of the barcode string as printed on the packaging of the device.). This is the underlying object with id, value and extensions. The accessor "getCarrierHRF" gives direct access to the value 637 */ 638 public DeviceUdiCarrierComponent setCarrierHRFElement(StringType value) { 639 this.carrierHRF = value; 640 return this; 641 } 642 643 /** 644 * @return The full UDI carrier as the human readable form (HRF) representation of the barcode string as printed on the packaging of the device. 645 */ 646 public String getCarrierHRF() { 647 return this.carrierHRF == null ? null : this.carrierHRF.getValue(); 648 } 649 650 /** 651 * @param value The full UDI carrier as the human readable form (HRF) representation of the barcode string as printed on the packaging of the device. 652 */ 653 public DeviceUdiCarrierComponent setCarrierHRF(String value) { 654 if (Utilities.noString(value)) 655 this.carrierHRF = null; 656 else { 657 if (this.carrierHRF == null) 658 this.carrierHRF = new StringType(); 659 this.carrierHRF.setValue(value); 660 } 661 return this; 662 } 663 664 /** 665 * @return {@link #entryType} (A coded entry to indicate how the data was entered.). This is the underlying object with id, value and extensions. The accessor "getEntryType" gives direct access to the value 666 */ 667 public Enumeration<UDIEntryType> getEntryTypeElement() { 668 if (this.entryType == null) 669 if (Configuration.errorOnAutoCreate()) 670 throw new Error("Attempt to auto-create DeviceUdiCarrierComponent.entryType"); 671 else if (Configuration.doAutoCreate()) 672 this.entryType = new Enumeration<UDIEntryType>(new UDIEntryTypeEnumFactory()); // bb 673 return this.entryType; 674 } 675 676 public boolean hasEntryTypeElement() { 677 return this.entryType != null && !this.entryType.isEmpty(); 678 } 679 680 public boolean hasEntryType() { 681 return this.entryType != null && !this.entryType.isEmpty(); 682 } 683 684 /** 685 * @param value {@link #entryType} (A coded entry to indicate how the data was entered.). This is the underlying object with id, value and extensions. The accessor "getEntryType" gives direct access to the value 686 */ 687 public DeviceUdiCarrierComponent setEntryTypeElement(Enumeration<UDIEntryType> value) { 688 this.entryType = value; 689 return this; 690 } 691 692 /** 693 * @return A coded entry to indicate how the data was entered. 694 */ 695 public UDIEntryType getEntryType() { 696 return this.entryType == null ? null : this.entryType.getValue(); 697 } 698 699 /** 700 * @param value A coded entry to indicate how the data was entered. 701 */ 702 public DeviceUdiCarrierComponent setEntryType(UDIEntryType value) { 703 if (value == null) 704 this.entryType = null; 705 else { 706 if (this.entryType == null) 707 this.entryType = new Enumeration<UDIEntryType>(new UDIEntryTypeEnumFactory()); 708 this.entryType.setValue(value); 709 } 710 return this; 711 } 712 713 protected void listChildren(List<Property> children) { 714 super.listChildren(children); 715 children.add(new Property("deviceIdentifier", "string", "The device identifier (DI) is a mandatory, fixed portion of a UDI that identifies the labeler and the specific version or model of a device.", 0, 1, deviceIdentifier)); 716 children.add(new Property("issuer", "uri", "Organization that is charged with issuing UDIs for devices. For example, the US FDA issuers include: \n1) GS1: http://hl7.org/fhir/NamingSystem/gs1-di, \n2) HIBCC: http://hl7.org/fhir/NamingSystem/hibcc-diI, \n3) ICCBBA for blood containers: http://hl7.org/fhir/NamingSystem/iccbba-blood-di, \n4) ICCBA for other devices: http://hl7.org/fhir/NamingSystem/iccbba-other-di # Informationsstelle für Arzneispezialitäten (IFA GmbH) (EU only): http://hl7.org/fhir/NamingSystem/ifa-gmbh-di.", 0, 1, issuer)); 717 children.add(new Property("jurisdiction", "uri", "The identity of the authoritative source for UDI generation within a jurisdiction. All UDIs are globally unique within a single namespace with the appropriate repository uri as the system. For example, UDIs of devices managed in the U.S. by the FDA, the value is http://hl7.org/fhir/NamingSystem/us-fda-udi or in the European Union by the European Commission http://hl7.org/fhir/NamingSystem/eu-ec-udi.", 0, 1, jurisdiction)); 718 children.add(new Property("carrierAIDC", "base64Binary", "The full UDI carrier of the Automatic Identification and Data Capture (AIDC) technology representation of the barcode string as printed on the packaging of the device - e.g., a barcode or RFID. Because of limitations on character sets in XML and the need to round-trip JSON data through XML, AIDC Formats *SHALL* be base64 encoded.", 0, 1, carrierAIDC)); 719 children.add(new Property("carrierHRF", "string", "The full UDI carrier as the human readable form (HRF) representation of the barcode string as printed on the packaging of the device.", 0, 1, carrierHRF)); 720 children.add(new Property("entryType", "code", "A coded entry to indicate how the data was entered.", 0, 1, entryType)); 721 } 722 723 @Override 724 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 725 switch (_hash) { 726 case 1322005407: /*deviceIdentifier*/ return new Property("deviceIdentifier", "string", "The device identifier (DI) is a mandatory, fixed portion of a UDI that identifies the labeler and the specific version or model of a device.", 0, 1, deviceIdentifier); 727 case -1179159879: /*issuer*/ return new Property("issuer", "uri", "Organization that is charged with issuing UDIs for devices. For example, the US FDA issuers include: \n1) GS1: http://hl7.org/fhir/NamingSystem/gs1-di, \n2) HIBCC: http://hl7.org/fhir/NamingSystem/hibcc-diI, \n3) ICCBBA for blood containers: http://hl7.org/fhir/NamingSystem/iccbba-blood-di, \n4) ICCBA for other devices: http://hl7.org/fhir/NamingSystem/iccbba-other-di # Informationsstelle für Arzneispezialitäten (IFA GmbH) (EU only): http://hl7.org/fhir/NamingSystem/ifa-gmbh-di.", 0, 1, issuer); 728 case -507075711: /*jurisdiction*/ return new Property("jurisdiction", "uri", "The identity of the authoritative source for UDI generation within a jurisdiction. All UDIs are globally unique within a single namespace with the appropriate repository uri as the system. For example, UDIs of devices managed in the U.S. by the FDA, the value is http://hl7.org/fhir/NamingSystem/us-fda-udi or in the European Union by the European Commission http://hl7.org/fhir/NamingSystem/eu-ec-udi.", 0, 1, jurisdiction); 729 case -768521825: /*carrierAIDC*/ return new Property("carrierAIDC", "base64Binary", "The full UDI carrier of the Automatic Identification and Data Capture (AIDC) technology representation of the barcode string as printed on the packaging of the device - e.g., a barcode or RFID. Because of limitations on character sets in XML and the need to round-trip JSON data through XML, AIDC Formats *SHALL* be base64 encoded.", 0, 1, carrierAIDC); 730 case 806499972: /*carrierHRF*/ return new Property("carrierHRF", "string", "The full UDI carrier as the human readable form (HRF) representation of the barcode string as printed on the packaging of the device.", 0, 1, carrierHRF); 731 case -479362356: /*entryType*/ return new Property("entryType", "code", "A coded entry to indicate how the data was entered.", 0, 1, entryType); 732 default: return super.getNamedProperty(_hash, _name, _checkValid); 733 } 734 735 } 736 737 @Override 738 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 739 switch (hash) { 740 case 1322005407: /*deviceIdentifier*/ return this.deviceIdentifier == null ? new Base[0] : new Base[] {this.deviceIdentifier}; // StringType 741 case -1179159879: /*issuer*/ return this.issuer == null ? new Base[0] : new Base[] {this.issuer}; // UriType 742 case -507075711: /*jurisdiction*/ return this.jurisdiction == null ? new Base[0] : new Base[] {this.jurisdiction}; // UriType 743 case -768521825: /*carrierAIDC*/ return this.carrierAIDC == null ? new Base[0] : new Base[] {this.carrierAIDC}; // Base64BinaryType 744 case 806499972: /*carrierHRF*/ return this.carrierHRF == null ? new Base[0] : new Base[] {this.carrierHRF}; // StringType 745 case -479362356: /*entryType*/ return this.entryType == null ? new Base[0] : new Base[] {this.entryType}; // Enumeration<UDIEntryType> 746 default: return super.getProperty(hash, name, checkValid); 747 } 748 749 } 750 751 @Override 752 public Base setProperty(int hash, String name, Base value) throws FHIRException { 753 switch (hash) { 754 case 1322005407: // deviceIdentifier 755 this.deviceIdentifier = TypeConvertor.castToString(value); // StringType 756 return value; 757 case -1179159879: // issuer 758 this.issuer = TypeConvertor.castToUri(value); // UriType 759 return value; 760 case -507075711: // jurisdiction 761 this.jurisdiction = TypeConvertor.castToUri(value); // UriType 762 return value; 763 case -768521825: // carrierAIDC 764 this.carrierAIDC = TypeConvertor.castToBase64Binary(value); // Base64BinaryType 765 return value; 766 case 806499972: // carrierHRF 767 this.carrierHRF = TypeConvertor.castToString(value); // StringType 768 return value; 769 case -479362356: // entryType 770 value = new UDIEntryTypeEnumFactory().fromType(TypeConvertor.castToCode(value)); 771 this.entryType = (Enumeration) value; // Enumeration<UDIEntryType> 772 return value; 773 default: return super.setProperty(hash, name, value); 774 } 775 776 } 777 778 @Override 779 public Base setProperty(String name, Base value) throws FHIRException { 780 if (name.equals("deviceIdentifier")) { 781 this.deviceIdentifier = TypeConvertor.castToString(value); // StringType 782 } else if (name.equals("issuer")) { 783 this.issuer = TypeConvertor.castToUri(value); // UriType 784 } else if (name.equals("jurisdiction")) { 785 this.jurisdiction = TypeConvertor.castToUri(value); // UriType 786 } else if (name.equals("carrierAIDC")) { 787 this.carrierAIDC = TypeConvertor.castToBase64Binary(value); // Base64BinaryType 788 } else if (name.equals("carrierHRF")) { 789 this.carrierHRF = TypeConvertor.castToString(value); // StringType 790 } else if (name.equals("entryType")) { 791 value = new UDIEntryTypeEnumFactory().fromType(TypeConvertor.castToCode(value)); 792 this.entryType = (Enumeration) value; // Enumeration<UDIEntryType> 793 } else 794 return super.setProperty(name, value); 795 return value; 796 } 797 798 @Override 799 public void removeChild(String name, Base value) throws FHIRException { 800 if (name.equals("deviceIdentifier")) { 801 this.deviceIdentifier = null; 802 } else if (name.equals("issuer")) { 803 this.issuer = null; 804 } else if (name.equals("jurisdiction")) { 805 this.jurisdiction = null; 806 } else if (name.equals("carrierAIDC")) { 807 this.carrierAIDC = null; 808 } else if (name.equals("carrierHRF")) { 809 this.carrierHRF = null; 810 } else if (name.equals("entryType")) { 811 value = new UDIEntryTypeEnumFactory().fromType(TypeConvertor.castToCode(value)); 812 this.entryType = (Enumeration) value; // Enumeration<UDIEntryType> 813 } else 814 super.removeChild(name, value); 815 816 } 817 818 @Override 819 public Base makeProperty(int hash, String name) throws FHIRException { 820 switch (hash) { 821 case 1322005407: return getDeviceIdentifierElement(); 822 case -1179159879: return getIssuerElement(); 823 case -507075711: return getJurisdictionElement(); 824 case -768521825: return getCarrierAIDCElement(); 825 case 806499972: return getCarrierHRFElement(); 826 case -479362356: return getEntryTypeElement(); 827 default: return super.makeProperty(hash, name); 828 } 829 830 } 831 832 @Override 833 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 834 switch (hash) { 835 case 1322005407: /*deviceIdentifier*/ return new String[] {"string"}; 836 case -1179159879: /*issuer*/ return new String[] {"uri"}; 837 case -507075711: /*jurisdiction*/ return new String[] {"uri"}; 838 case -768521825: /*carrierAIDC*/ return new String[] {"base64Binary"}; 839 case 806499972: /*carrierHRF*/ return new String[] {"string"}; 840 case -479362356: /*entryType*/ return new String[] {"code"}; 841 default: return super.getTypesForProperty(hash, name); 842 } 843 844 } 845 846 @Override 847 public Base addChild(String name) throws FHIRException { 848 if (name.equals("deviceIdentifier")) { 849 throw new FHIRException("Cannot call addChild on a singleton property Device.udiCarrier.deviceIdentifier"); 850 } 851 else if (name.equals("issuer")) { 852 throw new FHIRException("Cannot call addChild on a singleton property Device.udiCarrier.issuer"); 853 } 854 else if (name.equals("jurisdiction")) { 855 throw new FHIRException("Cannot call addChild on a singleton property Device.udiCarrier.jurisdiction"); 856 } 857 else if (name.equals("carrierAIDC")) { 858 throw new FHIRException("Cannot call addChild on a singleton property Device.udiCarrier.carrierAIDC"); 859 } 860 else if (name.equals("carrierHRF")) { 861 throw new FHIRException("Cannot call addChild on a singleton property Device.udiCarrier.carrierHRF"); 862 } 863 else if (name.equals("entryType")) { 864 throw new FHIRException("Cannot call addChild on a singleton property Device.udiCarrier.entryType"); 865 } 866 else 867 return super.addChild(name); 868 } 869 870 public DeviceUdiCarrierComponent copy() { 871 DeviceUdiCarrierComponent dst = new DeviceUdiCarrierComponent(); 872 copyValues(dst); 873 return dst; 874 } 875 876 public void copyValues(DeviceUdiCarrierComponent dst) { 877 super.copyValues(dst); 878 dst.deviceIdentifier = deviceIdentifier == null ? null : deviceIdentifier.copy(); 879 dst.issuer = issuer == null ? null : issuer.copy(); 880 dst.jurisdiction = jurisdiction == null ? null : jurisdiction.copy(); 881 dst.carrierAIDC = carrierAIDC == null ? null : carrierAIDC.copy(); 882 dst.carrierHRF = carrierHRF == null ? null : carrierHRF.copy(); 883 dst.entryType = entryType == null ? null : entryType.copy(); 884 } 885 886 @Override 887 public boolean equalsDeep(Base other_) { 888 if (!super.equalsDeep(other_)) 889 return false; 890 if (!(other_ instanceof DeviceUdiCarrierComponent)) 891 return false; 892 DeviceUdiCarrierComponent o = (DeviceUdiCarrierComponent) other_; 893 return compareDeep(deviceIdentifier, o.deviceIdentifier, true) && compareDeep(issuer, o.issuer, true) 894 && compareDeep(jurisdiction, o.jurisdiction, true) && compareDeep(carrierAIDC, o.carrierAIDC, true) 895 && compareDeep(carrierHRF, o.carrierHRF, true) && compareDeep(entryType, o.entryType, true); 896 } 897 898 @Override 899 public boolean equalsShallow(Base other_) { 900 if (!super.equalsShallow(other_)) 901 return false; 902 if (!(other_ instanceof DeviceUdiCarrierComponent)) 903 return false; 904 DeviceUdiCarrierComponent o = (DeviceUdiCarrierComponent) other_; 905 return compareValues(deviceIdentifier, o.deviceIdentifier, true) && compareValues(issuer, o.issuer, true) 906 && compareValues(jurisdiction, o.jurisdiction, true) && compareValues(carrierAIDC, o.carrierAIDC, true) 907 && compareValues(carrierHRF, o.carrierHRF, true) && compareValues(entryType, o.entryType, true); 908 } 909 910 public boolean isEmpty() { 911 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(deviceIdentifier, issuer, jurisdiction 912 , carrierAIDC, carrierHRF, entryType); 913 } 914 915 public String fhirType() { 916 return "Device.udiCarrier"; 917 918 } 919 920 } 921 922 @Block() 923 public static class DeviceNameComponent extends BackboneElement implements IBaseBackboneElement { 924 /** 925 * The actual name that identifies the device. 926 */ 927 @Child(name = "value", type = {StringType.class}, order=1, min=1, max=1, modifier=false, summary=true) 928 @Description(shortDefinition="The term that names the device", formalDefinition="The actual name that identifies the device." ) 929 protected StringType value; 930 931 /** 932 * Indicates the kind of name. RegisteredName | UserFriendlyName | PatientReportedName. 933 */ 934 @Child(name = "type", type = {CodeType.class}, order=2, min=1, max=1, modifier=false, summary=true) 935 @Description(shortDefinition="registered-name | user-friendly-name | patient-reported-name", formalDefinition="Indicates the kind of name. RegisteredName | UserFriendlyName | PatientReportedName." ) 936 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/device-nametype") 937 protected Enumeration<DeviceNameType> type; 938 939 /** 940 * Indicates the default or preferred name to be displayed. 941 */ 942 @Child(name = "display", type = {BooleanType.class}, order=3, min=0, max=1, modifier=true, summary=true) 943 @Description(shortDefinition="The preferred device name", formalDefinition="Indicates the default or preferred name to be displayed." ) 944 protected BooleanType display; 945 946 private static final long serialVersionUID = 1911928470L; 947 948 /** 949 * Constructor 950 */ 951 public DeviceNameComponent() { 952 super(); 953 } 954 955 /** 956 * Constructor 957 */ 958 public DeviceNameComponent(String value, DeviceNameType type) { 959 super(); 960 this.setValue(value); 961 this.setType(type); 962 } 963 964 /** 965 * @return {@link #value} (The actual name that identifies the device.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value 966 */ 967 public StringType getValueElement() { 968 if (this.value == null) 969 if (Configuration.errorOnAutoCreate()) 970 throw new Error("Attempt to auto-create DeviceNameComponent.value"); 971 else if (Configuration.doAutoCreate()) 972 this.value = new StringType(); // bb 973 return this.value; 974 } 975 976 public boolean hasValueElement() { 977 return this.value != null && !this.value.isEmpty(); 978 } 979 980 public boolean hasValue() { 981 return this.value != null && !this.value.isEmpty(); 982 } 983 984 /** 985 * @param value {@link #value} (The actual name that identifies the device.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value 986 */ 987 public DeviceNameComponent setValueElement(StringType value) { 988 this.value = value; 989 return this; 990 } 991 992 /** 993 * @return The actual name that identifies the device. 994 */ 995 public String getValue() { 996 return this.value == null ? null : this.value.getValue(); 997 } 998 999 /** 1000 * @param value The actual name that identifies the device. 1001 */ 1002 public DeviceNameComponent setValue(String value) { 1003 if (this.value == null) 1004 this.value = new StringType(); 1005 this.value.setValue(value); 1006 return this; 1007 } 1008 1009 /** 1010 * @return {@link #type} (Indicates the kind of name. RegisteredName | UserFriendlyName | PatientReportedName.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value 1011 */ 1012 public Enumeration<DeviceNameType> getTypeElement() { 1013 if (this.type == null) 1014 if (Configuration.errorOnAutoCreate()) 1015 throw new Error("Attempt to auto-create DeviceNameComponent.type"); 1016 else if (Configuration.doAutoCreate()) 1017 this.type = new Enumeration<DeviceNameType>(new DeviceNameTypeEnumFactory()); // bb 1018 return this.type; 1019 } 1020 1021 public boolean hasTypeElement() { 1022 return this.type != null && !this.type.isEmpty(); 1023 } 1024 1025 public boolean hasType() { 1026 return this.type != null && !this.type.isEmpty(); 1027 } 1028 1029 /** 1030 * @param value {@link #type} (Indicates the kind of name. RegisteredName | UserFriendlyName | PatientReportedName.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value 1031 */ 1032 public DeviceNameComponent setTypeElement(Enumeration<DeviceNameType> value) { 1033 this.type = value; 1034 return this; 1035 } 1036 1037 /** 1038 * @return Indicates the kind of name. RegisteredName | UserFriendlyName | PatientReportedName. 1039 */ 1040 public DeviceNameType getType() { 1041 return this.type == null ? null : this.type.getValue(); 1042 } 1043 1044 /** 1045 * @param value Indicates the kind of name. RegisteredName | UserFriendlyName | PatientReportedName. 1046 */ 1047 public DeviceNameComponent setType(DeviceNameType value) { 1048 if (this.type == null) 1049 this.type = new Enumeration<DeviceNameType>(new DeviceNameTypeEnumFactory()); 1050 this.type.setValue(value); 1051 return this; 1052 } 1053 1054 /** 1055 * @return {@link #display} (Indicates the default or preferred name to be displayed.). This is the underlying object with id, value and extensions. The accessor "getDisplay" gives direct access to the value 1056 */ 1057 public BooleanType getDisplayElement() { 1058 if (this.display == null) 1059 if (Configuration.errorOnAutoCreate()) 1060 throw new Error("Attempt to auto-create DeviceNameComponent.display"); 1061 else if (Configuration.doAutoCreate()) 1062 this.display = new BooleanType(); // bb 1063 return this.display; 1064 } 1065 1066 public boolean hasDisplayElement() { 1067 return this.display != null && !this.display.isEmpty(); 1068 } 1069 1070 public boolean hasDisplay() { 1071 return this.display != null && !this.display.isEmpty(); 1072 } 1073 1074 /** 1075 * @param value {@link #display} (Indicates the default or preferred name to be displayed.). This is the underlying object with id, value and extensions. The accessor "getDisplay" gives direct access to the value 1076 */ 1077 public DeviceNameComponent setDisplayElement(BooleanType value) { 1078 this.display = value; 1079 return this; 1080 } 1081 1082 /** 1083 * @return Indicates the default or preferred name to be displayed. 1084 */ 1085 public boolean getDisplay() { 1086 return this.display == null || this.display.isEmpty() ? false : this.display.getValue(); 1087 } 1088 1089 /** 1090 * @param value Indicates the default or preferred name to be displayed. 1091 */ 1092 public DeviceNameComponent setDisplay(boolean value) { 1093 if (this.display == null) 1094 this.display = new BooleanType(); 1095 this.display.setValue(value); 1096 return this; 1097 } 1098 1099 protected void listChildren(List<Property> children) { 1100 super.listChildren(children); 1101 children.add(new Property("value", "string", "The actual name that identifies the device.", 0, 1, value)); 1102 children.add(new Property("type", "code", "Indicates the kind of name. RegisteredName | UserFriendlyName | PatientReportedName.", 0, 1, type)); 1103 children.add(new Property("display", "boolean", "Indicates the default or preferred name to be displayed.", 0, 1, display)); 1104 } 1105 1106 @Override 1107 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1108 switch (_hash) { 1109 case 111972721: /*value*/ return new Property("value", "string", "The actual name that identifies the device.", 0, 1, value); 1110 case 3575610: /*type*/ return new Property("type", "code", "Indicates the kind of name. RegisteredName | UserFriendlyName | PatientReportedName.", 0, 1, type); 1111 case 1671764162: /*display*/ return new Property("display", "boolean", "Indicates the default or preferred name to be displayed.", 0, 1, display); 1112 default: return super.getNamedProperty(_hash, _name, _checkValid); 1113 } 1114 1115 } 1116 1117 @Override 1118 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1119 switch (hash) { 1120 case 111972721: /*value*/ return this.value == null ? new Base[0] : new Base[] {this.value}; // StringType 1121 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // Enumeration<DeviceNameType> 1122 case 1671764162: /*display*/ return this.display == null ? new Base[0] : new Base[] {this.display}; // BooleanType 1123 default: return super.getProperty(hash, name, checkValid); 1124 } 1125 1126 } 1127 1128 @Override 1129 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1130 switch (hash) { 1131 case 111972721: // value 1132 this.value = TypeConvertor.castToString(value); // StringType 1133 return value; 1134 case 3575610: // type 1135 value = new DeviceNameTypeEnumFactory().fromType(TypeConvertor.castToCode(value)); 1136 this.type = (Enumeration) value; // Enumeration<DeviceNameType> 1137 return value; 1138 case 1671764162: // display 1139 this.display = TypeConvertor.castToBoolean(value); // BooleanType 1140 return value; 1141 default: return super.setProperty(hash, name, value); 1142 } 1143 1144 } 1145 1146 @Override 1147 public Base setProperty(String name, Base value) throws FHIRException { 1148 if (name.equals("value")) { 1149 this.value = TypeConvertor.castToString(value); // StringType 1150 } else if (name.equals("type")) { 1151 value = new DeviceNameTypeEnumFactory().fromType(TypeConvertor.castToCode(value)); 1152 this.type = (Enumeration) value; // Enumeration<DeviceNameType> 1153 } else if (name.equals("display")) { 1154 this.display = TypeConvertor.castToBoolean(value); // BooleanType 1155 } else 1156 return super.setProperty(name, value); 1157 return value; 1158 } 1159 1160 @Override 1161 public void removeChild(String name, Base value) throws FHIRException { 1162 if (name.equals("value")) { 1163 this.value = null; 1164 } else if (name.equals("type")) { 1165 value = new DeviceNameTypeEnumFactory().fromType(TypeConvertor.castToCode(value)); 1166 this.type = (Enumeration) value; // Enumeration<DeviceNameType> 1167 } else if (name.equals("display")) { 1168 this.display = null; 1169 } else 1170 super.removeChild(name, value); 1171 1172 } 1173 1174 @Override 1175 public Base makeProperty(int hash, String name) throws FHIRException { 1176 switch (hash) { 1177 case 111972721: return getValueElement(); 1178 case 3575610: return getTypeElement(); 1179 case 1671764162: return getDisplayElement(); 1180 default: return super.makeProperty(hash, name); 1181 } 1182 1183 } 1184 1185 @Override 1186 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1187 switch (hash) { 1188 case 111972721: /*value*/ return new String[] {"string"}; 1189 case 3575610: /*type*/ return new String[] {"code"}; 1190 case 1671764162: /*display*/ return new String[] {"boolean"}; 1191 default: return super.getTypesForProperty(hash, name); 1192 } 1193 1194 } 1195 1196 @Override 1197 public Base addChild(String name) throws FHIRException { 1198 if (name.equals("value")) { 1199 throw new FHIRException("Cannot call addChild on a singleton property Device.name.value"); 1200 } 1201 else if (name.equals("type")) { 1202 throw new FHIRException("Cannot call addChild on a singleton property Device.name.type"); 1203 } 1204 else if (name.equals("display")) { 1205 throw new FHIRException("Cannot call addChild on a singleton property Device.name.display"); 1206 } 1207 else 1208 return super.addChild(name); 1209 } 1210 1211 public DeviceNameComponent copy() { 1212 DeviceNameComponent dst = new DeviceNameComponent(); 1213 copyValues(dst); 1214 return dst; 1215 } 1216 1217 public void copyValues(DeviceNameComponent dst) { 1218 super.copyValues(dst); 1219 dst.value = value == null ? null : value.copy(); 1220 dst.type = type == null ? null : type.copy(); 1221 dst.display = display == null ? null : display.copy(); 1222 } 1223 1224 @Override 1225 public boolean equalsDeep(Base other_) { 1226 if (!super.equalsDeep(other_)) 1227 return false; 1228 if (!(other_ instanceof DeviceNameComponent)) 1229 return false; 1230 DeviceNameComponent o = (DeviceNameComponent) other_; 1231 return compareDeep(value, o.value, true) && compareDeep(type, o.type, true) && compareDeep(display, o.display, true) 1232 ; 1233 } 1234 1235 @Override 1236 public boolean equalsShallow(Base other_) { 1237 if (!super.equalsShallow(other_)) 1238 return false; 1239 if (!(other_ instanceof DeviceNameComponent)) 1240 return false; 1241 DeviceNameComponent o = (DeviceNameComponent) other_; 1242 return compareValues(value, o.value, true) && compareValues(type, o.type, true) && compareValues(display, o.display, true) 1243 ; 1244 } 1245 1246 public boolean isEmpty() { 1247 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(value, type, display); 1248 } 1249 1250 public String fhirType() { 1251 return "Device.name"; 1252 1253 } 1254 1255 } 1256 1257 @Block() 1258 public static class DeviceVersionComponent extends BackboneElement implements IBaseBackboneElement { 1259 /** 1260 * The type of the device version, e.g. manufacturer, approved, internal. 1261 */ 1262 @Child(name = "type", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=false, summary=false) 1263 @Description(shortDefinition="The type of the device version, e.g. manufacturer, approved, internal", formalDefinition="The type of the device version, e.g. manufacturer, approved, internal." ) 1264 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/device-versiontype") 1265 protected CodeableConcept type; 1266 1267 /** 1268 * The hardware or software module of the device to which the version applies. 1269 */ 1270 @Child(name = "component", type = {Identifier.class}, order=2, min=0, max=1, modifier=false, summary=false) 1271 @Description(shortDefinition="The hardware or software module of the device to which the version applies", formalDefinition="The hardware or software module of the device to which the version applies." ) 1272 protected Identifier component; 1273 1274 /** 1275 * The date the version was installed on the device. 1276 */ 1277 @Child(name = "installDate", type = {DateTimeType.class}, order=3, min=0, max=1, modifier=false, summary=false) 1278 @Description(shortDefinition="The date the version was installed on the device", formalDefinition="The date the version was installed on the device." ) 1279 protected DateTimeType installDate; 1280 1281 /** 1282 * The version text. 1283 */ 1284 @Child(name = "value", type = {StringType.class}, order=4, min=1, max=1, modifier=false, summary=false) 1285 @Description(shortDefinition="The version text", formalDefinition="The version text." ) 1286 protected StringType value; 1287 1288 private static final long serialVersionUID = 1358422741L; 1289 1290 /** 1291 * Constructor 1292 */ 1293 public DeviceVersionComponent() { 1294 super(); 1295 } 1296 1297 /** 1298 * Constructor 1299 */ 1300 public DeviceVersionComponent(String value) { 1301 super(); 1302 this.setValue(value); 1303 } 1304 1305 /** 1306 * @return {@link #type} (The type of the device version, e.g. manufacturer, approved, internal.) 1307 */ 1308 public CodeableConcept getType() { 1309 if (this.type == null) 1310 if (Configuration.errorOnAutoCreate()) 1311 throw new Error("Attempt to auto-create DeviceVersionComponent.type"); 1312 else if (Configuration.doAutoCreate()) 1313 this.type = new CodeableConcept(); // cc 1314 return this.type; 1315 } 1316 1317 public boolean hasType() { 1318 return this.type != null && !this.type.isEmpty(); 1319 } 1320 1321 /** 1322 * @param value {@link #type} (The type of the device version, e.g. manufacturer, approved, internal.) 1323 */ 1324 public DeviceVersionComponent setType(CodeableConcept value) { 1325 this.type = value; 1326 return this; 1327 } 1328 1329 /** 1330 * @return {@link #component} (The hardware or software module of the device to which the version applies.) 1331 */ 1332 public Identifier getComponent() { 1333 if (this.component == null) 1334 if (Configuration.errorOnAutoCreate()) 1335 throw new Error("Attempt to auto-create DeviceVersionComponent.component"); 1336 else if (Configuration.doAutoCreate()) 1337 this.component = new Identifier(); // cc 1338 return this.component; 1339 } 1340 1341 public boolean hasComponent() { 1342 return this.component != null && !this.component.isEmpty(); 1343 } 1344 1345 /** 1346 * @param value {@link #component} (The hardware or software module of the device to which the version applies.) 1347 */ 1348 public DeviceVersionComponent setComponent(Identifier value) { 1349 this.component = value; 1350 return this; 1351 } 1352 1353 /** 1354 * @return {@link #installDate} (The date the version was installed on the device.). This is the underlying object with id, value and extensions. The accessor "getInstallDate" gives direct access to the value 1355 */ 1356 public DateTimeType getInstallDateElement() { 1357 if (this.installDate == null) 1358 if (Configuration.errorOnAutoCreate()) 1359 throw new Error("Attempt to auto-create DeviceVersionComponent.installDate"); 1360 else if (Configuration.doAutoCreate()) 1361 this.installDate = new DateTimeType(); // bb 1362 return this.installDate; 1363 } 1364 1365 public boolean hasInstallDateElement() { 1366 return this.installDate != null && !this.installDate.isEmpty(); 1367 } 1368 1369 public boolean hasInstallDate() { 1370 return this.installDate != null && !this.installDate.isEmpty(); 1371 } 1372 1373 /** 1374 * @param value {@link #installDate} (The date the version was installed on the device.). This is the underlying object with id, value and extensions. The accessor "getInstallDate" gives direct access to the value 1375 */ 1376 public DeviceVersionComponent setInstallDateElement(DateTimeType value) { 1377 this.installDate = value; 1378 return this; 1379 } 1380 1381 /** 1382 * @return The date the version was installed on the device. 1383 */ 1384 public Date getInstallDate() { 1385 return this.installDate == null ? null : this.installDate.getValue(); 1386 } 1387 1388 /** 1389 * @param value The date the version was installed on the device. 1390 */ 1391 public DeviceVersionComponent setInstallDate(Date value) { 1392 if (value == null) 1393 this.installDate = null; 1394 else { 1395 if (this.installDate == null) 1396 this.installDate = new DateTimeType(); 1397 this.installDate.setValue(value); 1398 } 1399 return this; 1400 } 1401 1402 /** 1403 * @return {@link #value} (The version text.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value 1404 */ 1405 public StringType getValueElement() { 1406 if (this.value == null) 1407 if (Configuration.errorOnAutoCreate()) 1408 throw new Error("Attempt to auto-create DeviceVersionComponent.value"); 1409 else if (Configuration.doAutoCreate()) 1410 this.value = new StringType(); // bb 1411 return this.value; 1412 } 1413 1414 public boolean hasValueElement() { 1415 return this.value != null && !this.value.isEmpty(); 1416 } 1417 1418 public boolean hasValue() { 1419 return this.value != null && !this.value.isEmpty(); 1420 } 1421 1422 /** 1423 * @param value {@link #value} (The version text.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value 1424 */ 1425 public DeviceVersionComponent setValueElement(StringType value) { 1426 this.value = value; 1427 return this; 1428 } 1429 1430 /** 1431 * @return The version text. 1432 */ 1433 public String getValue() { 1434 return this.value == null ? null : this.value.getValue(); 1435 } 1436 1437 /** 1438 * @param value The version text. 1439 */ 1440 public DeviceVersionComponent setValue(String value) { 1441 if (this.value == null) 1442 this.value = new StringType(); 1443 this.value.setValue(value); 1444 return this; 1445 } 1446 1447 protected void listChildren(List<Property> children) { 1448 super.listChildren(children); 1449 children.add(new Property("type", "CodeableConcept", "The type of the device version, e.g. manufacturer, approved, internal.", 0, 1, type)); 1450 children.add(new Property("component", "Identifier", "The hardware or software module of the device to which the version applies.", 0, 1, component)); 1451 children.add(new Property("installDate", "dateTime", "The date the version was installed on the device.", 0, 1, installDate)); 1452 children.add(new Property("value", "string", "The version text.", 0, 1, value)); 1453 } 1454 1455 @Override 1456 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1457 switch (_hash) { 1458 case 3575610: /*type*/ return new Property("type", "CodeableConcept", "The type of the device version, e.g. manufacturer, approved, internal.", 0, 1, type); 1459 case -1399907075: /*component*/ return new Property("component", "Identifier", "The hardware or software module of the device to which the version applies.", 0, 1, component); 1460 case 2143044585: /*installDate*/ return new Property("installDate", "dateTime", "The date the version was installed on the device.", 0, 1, installDate); 1461 case 111972721: /*value*/ return new Property("value", "string", "The version text.", 0, 1, value); 1462 default: return super.getNamedProperty(_hash, _name, _checkValid); 1463 } 1464 1465 } 1466 1467 @Override 1468 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1469 switch (hash) { 1470 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // CodeableConcept 1471 case -1399907075: /*component*/ return this.component == null ? new Base[0] : new Base[] {this.component}; // Identifier 1472 case 2143044585: /*installDate*/ return this.installDate == null ? new Base[0] : new Base[] {this.installDate}; // DateTimeType 1473 case 111972721: /*value*/ return this.value == null ? new Base[0] : new Base[] {this.value}; // StringType 1474 default: return super.getProperty(hash, name, checkValid); 1475 } 1476 1477 } 1478 1479 @Override 1480 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1481 switch (hash) { 1482 case 3575610: // type 1483 this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1484 return value; 1485 case -1399907075: // component 1486 this.component = TypeConvertor.castToIdentifier(value); // Identifier 1487 return value; 1488 case 2143044585: // installDate 1489 this.installDate = TypeConvertor.castToDateTime(value); // DateTimeType 1490 return value; 1491 case 111972721: // value 1492 this.value = TypeConvertor.castToString(value); // StringType 1493 return value; 1494 default: return super.setProperty(hash, name, value); 1495 } 1496 1497 } 1498 1499 @Override 1500 public Base setProperty(String name, Base value) throws FHIRException { 1501 if (name.equals("type")) { 1502 this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1503 } else if (name.equals("component")) { 1504 this.component = TypeConvertor.castToIdentifier(value); // Identifier 1505 } else if (name.equals("installDate")) { 1506 this.installDate = TypeConvertor.castToDateTime(value); // DateTimeType 1507 } else if (name.equals("value")) { 1508 this.value = TypeConvertor.castToString(value); // StringType 1509 } else 1510 return super.setProperty(name, value); 1511 return value; 1512 } 1513 1514 @Override 1515 public void removeChild(String name, Base value) throws FHIRException { 1516 if (name.equals("type")) { 1517 this.type = null; 1518 } else if (name.equals("component")) { 1519 this.component = null; 1520 } else if (name.equals("installDate")) { 1521 this.installDate = null; 1522 } else if (name.equals("value")) { 1523 this.value = null; 1524 } else 1525 super.removeChild(name, value); 1526 1527 } 1528 1529 @Override 1530 public Base makeProperty(int hash, String name) throws FHIRException { 1531 switch (hash) { 1532 case 3575610: return getType(); 1533 case -1399907075: return getComponent(); 1534 case 2143044585: return getInstallDateElement(); 1535 case 111972721: return getValueElement(); 1536 default: return super.makeProperty(hash, name); 1537 } 1538 1539 } 1540 1541 @Override 1542 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1543 switch (hash) { 1544 case 3575610: /*type*/ return new String[] {"CodeableConcept"}; 1545 case -1399907075: /*component*/ return new String[] {"Identifier"}; 1546 case 2143044585: /*installDate*/ return new String[] {"dateTime"}; 1547 case 111972721: /*value*/ return new String[] {"string"}; 1548 default: return super.getTypesForProperty(hash, name); 1549 } 1550 1551 } 1552 1553 @Override 1554 public Base addChild(String name) throws FHIRException { 1555 if (name.equals("type")) { 1556 this.type = new CodeableConcept(); 1557 return this.type; 1558 } 1559 else if (name.equals("component")) { 1560 this.component = new Identifier(); 1561 return this.component; 1562 } 1563 else if (name.equals("installDate")) { 1564 throw new FHIRException("Cannot call addChild on a singleton property Device.version.installDate"); 1565 } 1566 else if (name.equals("value")) { 1567 throw new FHIRException("Cannot call addChild on a singleton property Device.version.value"); 1568 } 1569 else 1570 return super.addChild(name); 1571 } 1572 1573 public DeviceVersionComponent copy() { 1574 DeviceVersionComponent dst = new DeviceVersionComponent(); 1575 copyValues(dst); 1576 return dst; 1577 } 1578 1579 public void copyValues(DeviceVersionComponent dst) { 1580 super.copyValues(dst); 1581 dst.type = type == null ? null : type.copy(); 1582 dst.component = component == null ? null : component.copy(); 1583 dst.installDate = installDate == null ? null : installDate.copy(); 1584 dst.value = value == null ? null : value.copy(); 1585 } 1586 1587 @Override 1588 public boolean equalsDeep(Base other_) { 1589 if (!super.equalsDeep(other_)) 1590 return false; 1591 if (!(other_ instanceof DeviceVersionComponent)) 1592 return false; 1593 DeviceVersionComponent o = (DeviceVersionComponent) other_; 1594 return compareDeep(type, o.type, true) && compareDeep(component, o.component, true) && compareDeep(installDate, o.installDate, true) 1595 && compareDeep(value, o.value, true); 1596 } 1597 1598 @Override 1599 public boolean equalsShallow(Base other_) { 1600 if (!super.equalsShallow(other_)) 1601 return false; 1602 if (!(other_ instanceof DeviceVersionComponent)) 1603 return false; 1604 DeviceVersionComponent o = (DeviceVersionComponent) other_; 1605 return compareValues(installDate, o.installDate, true) && compareValues(value, o.value, true); 1606 } 1607 1608 public boolean isEmpty() { 1609 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(type, component, installDate 1610 , value); 1611 } 1612 1613 public String fhirType() { 1614 return "Device.version"; 1615 1616 } 1617 1618 } 1619 1620 @Block() 1621 public static class DeviceConformsToComponent extends BackboneElement implements IBaseBackboneElement { 1622 /** 1623 * Describes the type of the standard, specification, or formal guidance. 1624 */ 1625 @Child(name = "category", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=false, summary=false) 1626 @Description(shortDefinition="Describes the common type of the standard, specification, or formal guidance. communication | performance | measurement", formalDefinition="Describes the type of the standard, specification, or formal guidance." ) 1627 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/device-specification-category") 1628 protected CodeableConcept category; 1629 1630 /** 1631 * Code that identifies the specific standard, specification, protocol, formal guidance, regulation, legislation, or certification scheme to which the device adheres. 1632 */ 1633 @Child(name = "specification", type = {CodeableConcept.class}, order=2, min=1, max=1, modifier=false, summary=false) 1634 @Description(shortDefinition="Identifies the standard, specification, or formal guidance that the device adheres to", formalDefinition="Code that identifies the specific standard, specification, protocol, formal guidance, regulation, legislation, or certification scheme to which the device adheres." ) 1635 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/device-specification-type") 1636 protected CodeableConcept specification; 1637 1638 /** 1639 * Identifies the specific form or variant of the standard, specification, or formal guidance. This may be a 'version number', release, document edition, publication year, or other label. 1640 */ 1641 @Child(name = "version", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=false) 1642 @Description(shortDefinition="Specific form or variant of the standard", formalDefinition="Identifies the specific form or variant of the standard, specification, or formal guidance. This may be a 'version number', release, document edition, publication year, or other label." ) 1643 protected StringType version; 1644 1645 private static final long serialVersionUID = 1592712180L; 1646 1647 /** 1648 * Constructor 1649 */ 1650 public DeviceConformsToComponent() { 1651 super(); 1652 } 1653 1654 /** 1655 * Constructor 1656 */ 1657 public DeviceConformsToComponent(CodeableConcept specification) { 1658 super(); 1659 this.setSpecification(specification); 1660 } 1661 1662 /** 1663 * @return {@link #category} (Describes the type of the standard, specification, or formal guidance.) 1664 */ 1665 public CodeableConcept getCategory() { 1666 if (this.category == null) 1667 if (Configuration.errorOnAutoCreate()) 1668 throw new Error("Attempt to auto-create DeviceConformsToComponent.category"); 1669 else if (Configuration.doAutoCreate()) 1670 this.category = new CodeableConcept(); // cc 1671 return this.category; 1672 } 1673 1674 public boolean hasCategory() { 1675 return this.category != null && !this.category.isEmpty(); 1676 } 1677 1678 /** 1679 * @param value {@link #category} (Describes the type of the standard, specification, or formal guidance.) 1680 */ 1681 public DeviceConformsToComponent setCategory(CodeableConcept value) { 1682 this.category = value; 1683 return this; 1684 } 1685 1686 /** 1687 * @return {@link #specification} (Code that identifies the specific standard, specification, protocol, formal guidance, regulation, legislation, or certification scheme to which the device adheres.) 1688 */ 1689 public CodeableConcept getSpecification() { 1690 if (this.specification == null) 1691 if (Configuration.errorOnAutoCreate()) 1692 throw new Error("Attempt to auto-create DeviceConformsToComponent.specification"); 1693 else if (Configuration.doAutoCreate()) 1694 this.specification = new CodeableConcept(); // cc 1695 return this.specification; 1696 } 1697 1698 public boolean hasSpecification() { 1699 return this.specification != null && !this.specification.isEmpty(); 1700 } 1701 1702 /** 1703 * @param value {@link #specification} (Code that identifies the specific standard, specification, protocol, formal guidance, regulation, legislation, or certification scheme to which the device adheres.) 1704 */ 1705 public DeviceConformsToComponent setSpecification(CodeableConcept value) { 1706 this.specification = value; 1707 return this; 1708 } 1709 1710 /** 1711 * @return {@link #version} (Identifies the specific form or variant of the standard, specification, or formal guidance. This may be a 'version number', release, document edition, publication year, or other label.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value 1712 */ 1713 public StringType getVersionElement() { 1714 if (this.version == null) 1715 if (Configuration.errorOnAutoCreate()) 1716 throw new Error("Attempt to auto-create DeviceConformsToComponent.version"); 1717 else if (Configuration.doAutoCreate()) 1718 this.version = new StringType(); // bb 1719 return this.version; 1720 } 1721 1722 public boolean hasVersionElement() { 1723 return this.version != null && !this.version.isEmpty(); 1724 } 1725 1726 public boolean hasVersion() { 1727 return this.version != null && !this.version.isEmpty(); 1728 } 1729 1730 /** 1731 * @param value {@link #version} (Identifies the specific form or variant of the standard, specification, or formal guidance. This may be a 'version number', release, document edition, publication year, or other label.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value 1732 */ 1733 public DeviceConformsToComponent setVersionElement(StringType value) { 1734 this.version = value; 1735 return this; 1736 } 1737 1738 /** 1739 * @return Identifies the specific form or variant of the standard, specification, or formal guidance. This may be a 'version number', release, document edition, publication year, or other label. 1740 */ 1741 public String getVersion() { 1742 return this.version == null ? null : this.version.getValue(); 1743 } 1744 1745 /** 1746 * @param value Identifies the specific form or variant of the standard, specification, or formal guidance. This may be a 'version number', release, document edition, publication year, or other label. 1747 */ 1748 public DeviceConformsToComponent setVersion(String value) { 1749 if (Utilities.noString(value)) 1750 this.version = null; 1751 else { 1752 if (this.version == null) 1753 this.version = new StringType(); 1754 this.version.setValue(value); 1755 } 1756 return this; 1757 } 1758 1759 protected void listChildren(List<Property> children) { 1760 super.listChildren(children); 1761 children.add(new Property("category", "CodeableConcept", "Describes the type of the standard, specification, or formal guidance.", 0, 1, category)); 1762 children.add(new Property("specification", "CodeableConcept", "Code that identifies the specific standard, specification, protocol, formal guidance, regulation, legislation, or certification scheme to which the device adheres.", 0, 1, specification)); 1763 children.add(new Property("version", "string", "Identifies the specific form or variant of the standard, specification, or formal guidance. This may be a 'version number', release, document edition, publication year, or other label.", 0, 1, version)); 1764 } 1765 1766 @Override 1767 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1768 switch (_hash) { 1769 case 50511102: /*category*/ return new Property("category", "CodeableConcept", "Describes the type of the standard, specification, or formal guidance.", 0, 1, category); 1770 case 1307197699: /*specification*/ return new Property("specification", "CodeableConcept", "Code that identifies the specific standard, specification, protocol, formal guidance, regulation, legislation, or certification scheme to which the device adheres.", 0, 1, specification); 1771 case 351608024: /*version*/ return new Property("version", "string", "Identifies the specific form or variant of the standard, specification, or formal guidance. This may be a 'version number', release, document edition, publication year, or other label.", 0, 1, version); 1772 default: return super.getNamedProperty(_hash, _name, _checkValid); 1773 } 1774 1775 } 1776 1777 @Override 1778 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1779 switch (hash) { 1780 case 50511102: /*category*/ return this.category == null ? new Base[0] : new Base[] {this.category}; // CodeableConcept 1781 case 1307197699: /*specification*/ return this.specification == null ? new Base[0] : new Base[] {this.specification}; // CodeableConcept 1782 case 351608024: /*version*/ return this.version == null ? new Base[0] : new Base[] {this.version}; // StringType 1783 default: return super.getProperty(hash, name, checkValid); 1784 } 1785 1786 } 1787 1788 @Override 1789 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1790 switch (hash) { 1791 case 50511102: // category 1792 this.category = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1793 return value; 1794 case 1307197699: // specification 1795 this.specification = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1796 return value; 1797 case 351608024: // version 1798 this.version = TypeConvertor.castToString(value); // StringType 1799 return value; 1800 default: return super.setProperty(hash, name, value); 1801 } 1802 1803 } 1804 1805 @Override 1806 public Base setProperty(String name, Base value) throws FHIRException { 1807 if (name.equals("category")) { 1808 this.category = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1809 } else if (name.equals("specification")) { 1810 this.specification = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1811 } else if (name.equals("version")) { 1812 this.version = TypeConvertor.castToString(value); // StringType 1813 } else 1814 return super.setProperty(name, value); 1815 return value; 1816 } 1817 1818 @Override 1819 public void removeChild(String name, Base value) throws FHIRException { 1820 if (name.equals("category")) { 1821 this.category = null; 1822 } else if (name.equals("specification")) { 1823 this.specification = null; 1824 } else if (name.equals("version")) { 1825 this.version = null; 1826 } else 1827 super.removeChild(name, value); 1828 1829 } 1830 1831 @Override 1832 public Base makeProperty(int hash, String name) throws FHIRException { 1833 switch (hash) { 1834 case 50511102: return getCategory(); 1835 case 1307197699: return getSpecification(); 1836 case 351608024: return getVersionElement(); 1837 default: return super.makeProperty(hash, name); 1838 } 1839 1840 } 1841 1842 @Override 1843 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1844 switch (hash) { 1845 case 50511102: /*category*/ return new String[] {"CodeableConcept"}; 1846 case 1307197699: /*specification*/ return new String[] {"CodeableConcept"}; 1847 case 351608024: /*version*/ return new String[] {"string"}; 1848 default: return super.getTypesForProperty(hash, name); 1849 } 1850 1851 } 1852 1853 @Override 1854 public Base addChild(String name) throws FHIRException { 1855 if (name.equals("category")) { 1856 this.category = new CodeableConcept(); 1857 return this.category; 1858 } 1859 else if (name.equals("specification")) { 1860 this.specification = new CodeableConcept(); 1861 return this.specification; 1862 } 1863 else if (name.equals("version")) { 1864 throw new FHIRException("Cannot call addChild on a singleton property Device.conformsTo.version"); 1865 } 1866 else 1867 return super.addChild(name); 1868 } 1869 1870 public DeviceConformsToComponent copy() { 1871 DeviceConformsToComponent dst = new DeviceConformsToComponent(); 1872 copyValues(dst); 1873 return dst; 1874 } 1875 1876 public void copyValues(DeviceConformsToComponent dst) { 1877 super.copyValues(dst); 1878 dst.category = category == null ? null : category.copy(); 1879 dst.specification = specification == null ? null : specification.copy(); 1880 dst.version = version == null ? null : version.copy(); 1881 } 1882 1883 @Override 1884 public boolean equalsDeep(Base other_) { 1885 if (!super.equalsDeep(other_)) 1886 return false; 1887 if (!(other_ instanceof DeviceConformsToComponent)) 1888 return false; 1889 DeviceConformsToComponent o = (DeviceConformsToComponent) other_; 1890 return compareDeep(category, o.category, true) && compareDeep(specification, o.specification, true) 1891 && compareDeep(version, o.version, true); 1892 } 1893 1894 @Override 1895 public boolean equalsShallow(Base other_) { 1896 if (!super.equalsShallow(other_)) 1897 return false; 1898 if (!(other_ instanceof DeviceConformsToComponent)) 1899 return false; 1900 DeviceConformsToComponent o = (DeviceConformsToComponent) other_; 1901 return compareValues(version, o.version, true); 1902 } 1903 1904 public boolean isEmpty() { 1905 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(category, specification, version 1906 ); 1907 } 1908 1909 public String fhirType() { 1910 return "Device.conformsTo"; 1911 1912 } 1913 1914 } 1915 1916 @Block() 1917 public static class DevicePropertyComponent extends BackboneElement implements IBaseBackboneElement { 1918 /** 1919 * Code that specifies the property, such as resolution, color, size, being represented. 1920 */ 1921 @Child(name = "type", type = {CodeableConcept.class}, order=1, min=1, max=1, modifier=false, summary=false) 1922 @Description(shortDefinition="Code that specifies the property being represented", formalDefinition="Code that specifies the property, such as resolution, color, size, being represented." ) 1923 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/device-property-type") 1924 protected CodeableConcept type; 1925 1926 /** 1927 * The value of the property specified by the associated property.type code. 1928 */ 1929 @Child(name = "value", type = {Quantity.class, CodeableConcept.class, StringType.class, BooleanType.class, IntegerType.class, Range.class, Attachment.class}, order=2, min=1, max=1, modifier=false, summary=false) 1930 @Description(shortDefinition="Value of the property", formalDefinition="The value of the property specified by the associated property.type code." ) 1931 protected DataType value; 1932 1933 private static final long serialVersionUID = -1659186716L; 1934 1935 /** 1936 * Constructor 1937 */ 1938 public DevicePropertyComponent() { 1939 super(); 1940 } 1941 1942 /** 1943 * Constructor 1944 */ 1945 public DevicePropertyComponent(CodeableConcept type, DataType value) { 1946 super(); 1947 this.setType(type); 1948 this.setValue(value); 1949 } 1950 1951 /** 1952 * @return {@link #type} (Code that specifies the property, such as resolution, color, size, being represented.) 1953 */ 1954 public CodeableConcept getType() { 1955 if (this.type == null) 1956 if (Configuration.errorOnAutoCreate()) 1957 throw new Error("Attempt to auto-create DevicePropertyComponent.type"); 1958 else if (Configuration.doAutoCreate()) 1959 this.type = new CodeableConcept(); // cc 1960 return this.type; 1961 } 1962 1963 public boolean hasType() { 1964 return this.type != null && !this.type.isEmpty(); 1965 } 1966 1967 /** 1968 * @param value {@link #type} (Code that specifies the property, such as resolution, color, size, being represented.) 1969 */ 1970 public DevicePropertyComponent setType(CodeableConcept value) { 1971 this.type = value; 1972 return this; 1973 } 1974 1975 /** 1976 * @return {@link #value} (The value of the property specified by the associated property.type code.) 1977 */ 1978 public DataType getValue() { 1979 return this.value; 1980 } 1981 1982 /** 1983 * @return {@link #value} (The value of the property specified by the associated property.type code.) 1984 */ 1985 public Quantity getValueQuantity() throws FHIRException { 1986 if (this.value == null) 1987 this.value = new Quantity(); 1988 if (!(this.value instanceof Quantity)) 1989 throw new FHIRException("Type mismatch: the type Quantity was expected, but "+this.value.getClass().getName()+" was encountered"); 1990 return (Quantity) this.value; 1991 } 1992 1993 public boolean hasValueQuantity() { 1994 return this != null && this.value instanceof Quantity; 1995 } 1996 1997 /** 1998 * @return {@link #value} (The value of the property specified by the associated property.type code.) 1999 */ 2000 public CodeableConcept getValueCodeableConcept() throws FHIRException { 2001 if (this.value == null) 2002 this.value = new CodeableConcept(); 2003 if (!(this.value instanceof CodeableConcept)) 2004 throw new FHIRException("Type mismatch: the type CodeableConcept was expected, but "+this.value.getClass().getName()+" was encountered"); 2005 return (CodeableConcept) this.value; 2006 } 2007 2008 public boolean hasValueCodeableConcept() { 2009 return this != null && this.value instanceof CodeableConcept; 2010 } 2011 2012 /** 2013 * @return {@link #value} (The value of the property specified by the associated property.type code.) 2014 */ 2015 public StringType getValueStringType() throws FHIRException { 2016 if (this.value == null) 2017 this.value = new StringType(); 2018 if (!(this.value instanceof StringType)) 2019 throw new FHIRException("Type mismatch: the type StringType was expected, but "+this.value.getClass().getName()+" was encountered"); 2020 return (StringType) this.value; 2021 } 2022 2023 public boolean hasValueStringType() { 2024 return this != null && this.value instanceof StringType; 2025 } 2026 2027 /** 2028 * @return {@link #value} (The value of the property specified by the associated property.type code.) 2029 */ 2030 public BooleanType getValueBooleanType() throws FHIRException { 2031 if (this.value == null) 2032 this.value = new BooleanType(); 2033 if (!(this.value instanceof BooleanType)) 2034 throw new FHIRException("Type mismatch: the type BooleanType was expected, but "+this.value.getClass().getName()+" was encountered"); 2035 return (BooleanType) this.value; 2036 } 2037 2038 public boolean hasValueBooleanType() { 2039 return this != null && this.value instanceof BooleanType; 2040 } 2041 2042 /** 2043 * @return {@link #value} (The value of the property specified by the associated property.type code.) 2044 */ 2045 public IntegerType getValueIntegerType() throws FHIRException { 2046 if (this.value == null) 2047 this.value = new IntegerType(); 2048 if (!(this.value instanceof IntegerType)) 2049 throw new FHIRException("Type mismatch: the type IntegerType was expected, but "+this.value.getClass().getName()+" was encountered"); 2050 return (IntegerType) this.value; 2051 } 2052 2053 public boolean hasValueIntegerType() { 2054 return this != null && this.value instanceof IntegerType; 2055 } 2056 2057 /** 2058 * @return {@link #value} (The value of the property specified by the associated property.type code.) 2059 */ 2060 public Range getValueRange() throws FHIRException { 2061 if (this.value == null) 2062 this.value = new Range(); 2063 if (!(this.value instanceof Range)) 2064 throw new FHIRException("Type mismatch: the type Range was expected, but "+this.value.getClass().getName()+" was encountered"); 2065 return (Range) this.value; 2066 } 2067 2068 public boolean hasValueRange() { 2069 return this != null && this.value instanceof Range; 2070 } 2071 2072 /** 2073 * @return {@link #value} (The value of the property specified by the associated property.type code.) 2074 */ 2075 public Attachment getValueAttachment() throws FHIRException { 2076 if (this.value == null) 2077 this.value = new Attachment(); 2078 if (!(this.value instanceof Attachment)) 2079 throw new FHIRException("Type mismatch: the type Attachment was expected, but "+this.value.getClass().getName()+" was encountered"); 2080 return (Attachment) this.value; 2081 } 2082 2083 public boolean hasValueAttachment() { 2084 return this != null && this.value instanceof Attachment; 2085 } 2086 2087 public boolean hasValue() { 2088 return this.value != null && !this.value.isEmpty(); 2089 } 2090 2091 /** 2092 * @param value {@link #value} (The value of the property specified by the associated property.type code.) 2093 */ 2094 public DevicePropertyComponent setValue(DataType value) { 2095 if (value != null && !(value instanceof Quantity || value instanceof CodeableConcept || value instanceof StringType || value instanceof BooleanType || value instanceof IntegerType || value instanceof Range || value instanceof Attachment)) 2096 throw new FHIRException("Not the right type for Device.property.value[x]: "+value.fhirType()); 2097 this.value = value; 2098 return this; 2099 } 2100 2101 protected void listChildren(List<Property> children) { 2102 super.listChildren(children); 2103 children.add(new Property("type", "CodeableConcept", "Code that specifies the property, such as resolution, color, size, being represented.", 0, 1, type)); 2104 children.add(new Property("value[x]", "Quantity|CodeableConcept|string|boolean|integer|Range|Attachment", "The value of the property specified by the associated property.type code.", 0, 1, value)); 2105 } 2106 2107 @Override 2108 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 2109 switch (_hash) { 2110 case 3575610: /*type*/ return new Property("type", "CodeableConcept", "Code that specifies the property, such as resolution, color, size, being represented.", 0, 1, type); 2111 case -1410166417: /*value[x]*/ return new Property("value[x]", "Quantity|CodeableConcept|string|boolean|integer|Range|Attachment", "The value of the property specified by the associated property.type code.", 0, 1, value); 2112 case 111972721: /*value*/ return new Property("value[x]", "Quantity|CodeableConcept|string|boolean|integer|Range|Attachment", "The value of the property specified by the associated property.type code.", 0, 1, value); 2113 case -2029823716: /*valueQuantity*/ return new Property("value[x]", "Quantity", "The value of the property specified by the associated property.type code.", 0, 1, value); 2114 case 924902896: /*valueCodeableConcept*/ return new Property("value[x]", "CodeableConcept", "The value of the property specified by the associated property.type code.", 0, 1, value); 2115 case -1424603934: /*valueString*/ return new Property("value[x]", "string", "The value of the property specified by the associated property.type code.", 0, 1, value); 2116 case 733421943: /*valueBoolean*/ return new Property("value[x]", "boolean", "The value of the property specified by the associated property.type code.", 0, 1, value); 2117 case -1668204915: /*valueInteger*/ return new Property("value[x]", "integer", "The value of the property specified by the associated property.type code.", 0, 1, value); 2118 case 2030761548: /*valueRange*/ return new Property("value[x]", "Range", "The value of the property specified by the associated property.type code.", 0, 1, value); 2119 case -475566732: /*valueAttachment*/ return new Property("value[x]", "Attachment", "The value of the property specified by the associated property.type code.", 0, 1, value); 2120 default: return super.getNamedProperty(_hash, _name, _checkValid); 2121 } 2122 2123 } 2124 2125 @Override 2126 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2127 switch (hash) { 2128 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // CodeableConcept 2129 case 111972721: /*value*/ return this.value == null ? new Base[0] : new Base[] {this.value}; // DataType 2130 default: return super.getProperty(hash, name, checkValid); 2131 } 2132 2133 } 2134 2135 @Override 2136 public Base setProperty(int hash, String name, Base value) throws FHIRException { 2137 switch (hash) { 2138 case 3575610: // type 2139 this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 2140 return value; 2141 case 111972721: // value 2142 this.value = TypeConvertor.castToType(value); // DataType 2143 return value; 2144 default: return super.setProperty(hash, name, value); 2145 } 2146 2147 } 2148 2149 @Override 2150 public Base setProperty(String name, Base value) throws FHIRException { 2151 if (name.equals("type")) { 2152 this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 2153 } else if (name.equals("value[x]")) { 2154 this.value = TypeConvertor.castToType(value); // DataType 2155 } else 2156 return super.setProperty(name, value); 2157 return value; 2158 } 2159 2160 @Override 2161 public void removeChild(String name, Base value) throws FHIRException { 2162 if (name.equals("type")) { 2163 this.type = null; 2164 } else if (name.equals("value[x]")) { 2165 this.value = null; 2166 } else 2167 super.removeChild(name, value); 2168 2169 } 2170 2171 @Override 2172 public Base makeProperty(int hash, String name) throws FHIRException { 2173 switch (hash) { 2174 case 3575610: return getType(); 2175 case -1410166417: return getValue(); 2176 case 111972721: return getValue(); 2177 default: return super.makeProperty(hash, name); 2178 } 2179 2180 } 2181 2182 @Override 2183 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2184 switch (hash) { 2185 case 3575610: /*type*/ return new String[] {"CodeableConcept"}; 2186 case 111972721: /*value*/ return new String[] {"Quantity", "CodeableConcept", "string", "boolean", "integer", "Range", "Attachment"}; 2187 default: return super.getTypesForProperty(hash, name); 2188 } 2189 2190 } 2191 2192 @Override 2193 public Base addChild(String name) throws FHIRException { 2194 if (name.equals("type")) { 2195 this.type = new CodeableConcept(); 2196 return this.type; 2197 } 2198 else if (name.equals("valueQuantity")) { 2199 this.value = new Quantity(); 2200 return this.value; 2201 } 2202 else if (name.equals("valueCodeableConcept")) { 2203 this.value = new CodeableConcept(); 2204 return this.value; 2205 } 2206 else if (name.equals("valueString")) { 2207 this.value = new StringType(); 2208 return this.value; 2209 } 2210 else if (name.equals("valueBoolean")) { 2211 this.value = new BooleanType(); 2212 return this.value; 2213 } 2214 else if (name.equals("valueInteger")) { 2215 this.value = new IntegerType(); 2216 return this.value; 2217 } 2218 else if (name.equals("valueRange")) { 2219 this.value = new Range(); 2220 return this.value; 2221 } 2222 else if (name.equals("valueAttachment")) { 2223 this.value = new Attachment(); 2224 return this.value; 2225 } 2226 else 2227 return super.addChild(name); 2228 } 2229 2230 public DevicePropertyComponent copy() { 2231 DevicePropertyComponent dst = new DevicePropertyComponent(); 2232 copyValues(dst); 2233 return dst; 2234 } 2235 2236 public void copyValues(DevicePropertyComponent dst) { 2237 super.copyValues(dst); 2238 dst.type = type == null ? null : type.copy(); 2239 dst.value = value == null ? null : value.copy(); 2240 } 2241 2242 @Override 2243 public boolean equalsDeep(Base other_) { 2244 if (!super.equalsDeep(other_)) 2245 return false; 2246 if (!(other_ instanceof DevicePropertyComponent)) 2247 return false; 2248 DevicePropertyComponent o = (DevicePropertyComponent) other_; 2249 return compareDeep(type, o.type, true) && compareDeep(value, o.value, true); 2250 } 2251 2252 @Override 2253 public boolean equalsShallow(Base other_) { 2254 if (!super.equalsShallow(other_)) 2255 return false; 2256 if (!(other_ instanceof DevicePropertyComponent)) 2257 return false; 2258 DevicePropertyComponent o = (DevicePropertyComponent) other_; 2259 return true; 2260 } 2261 2262 public boolean isEmpty() { 2263 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(type, value); 2264 } 2265 2266 public String fhirType() { 2267 return "Device.property"; 2268 2269 } 2270 2271 } 2272 2273 /** 2274 * Unique instance identifiers assigned to a device by manufacturers other organizations or owners. 2275 */ 2276 @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 2277 @Description(shortDefinition="Instance identifier", formalDefinition="Unique instance identifiers assigned to a device by manufacturers other organizations or owners." ) 2278 protected List<Identifier> identifier; 2279 2280 /** 2281 * The name used to display by default when the device is referenced. Based on intent of use by the resource creator, this may reflect one of the names in Device.name, or may be another simple name. 2282 */ 2283 @Child(name = "displayName", type = {StringType.class}, order=1, min=0, max=1, modifier=false, summary=false) 2284 @Description(shortDefinition="The name used to display by default when the device is referenced", formalDefinition="The name used to display by default when the device is referenced. Based on intent of use by the resource creator, this may reflect one of the names in Device.name, or may be another simple name." ) 2285 protected StringType displayName; 2286 2287 /** 2288 * The reference to the definition for the device. 2289 */ 2290 @Child(name = "definition", type = {CodeableReference.class}, order=2, min=0, max=1, modifier=false, summary=false) 2291 @Description(shortDefinition="The reference to the definition for the device", formalDefinition="The reference to the definition for the device." ) 2292 protected CodeableReference definition; 2293 2294 /** 2295 * 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. 2296 */ 2297 @Child(name = "udiCarrier", type = {}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 2298 @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." ) 2299 protected List<DeviceUdiCarrierComponent> udiCarrier; 2300 2301 /** 2302 * The Device record status. This is not the status of the device like availability. 2303 */ 2304 @Child(name = "status", type = {CodeType.class}, order=4, min=0, max=1, modifier=true, summary=true) 2305 @Description(shortDefinition="active | inactive | entered-in-error", formalDefinition="The Device record status. This is not the status of the device like availability." ) 2306 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/device-status") 2307 protected Enumeration<FHIRDeviceStatus> status; 2308 2309 /** 2310 * The availability of the device. 2311 */ 2312 @Child(name = "availabilityStatus", type = {CodeableConcept.class}, order=5, min=0, max=1, modifier=false, summary=false) 2313 @Description(shortDefinition="lost | damaged | destroyed | available", formalDefinition="The availability of the device." ) 2314 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/device-availability-status") 2315 protected CodeableConcept availabilityStatus; 2316 2317 /** 2318 * An identifier that supports traceability to the event during which material in this product from one or more biological entities was obtained or pooled. 2319 */ 2320 @Child(name = "biologicalSourceEvent", type = {Identifier.class}, order=6, min=0, max=1, modifier=false, summary=false) 2321 @Description(shortDefinition="An identifier that supports traceability to the event during which material in this product from one or more biological entities was obtained or pooled", formalDefinition="An identifier that supports traceability to the event during which material in this product from one or more biological entities was obtained or pooled." ) 2322 protected Identifier biologicalSourceEvent; 2323 2324 /** 2325 * A name of the manufacturer or entity legally responsible for the device. 2326 */ 2327 @Child(name = "manufacturer", type = {StringType.class}, order=7, min=0, max=1, modifier=false, summary=false) 2328 @Description(shortDefinition="Name of device manufacturer", formalDefinition="A name of the manufacturer or entity legally responsible for the device." ) 2329 protected StringType manufacturer; 2330 2331 /** 2332 * The date and time when the device was manufactured. 2333 */ 2334 @Child(name = "manufactureDate", type = {DateTimeType.class}, order=8, min=0, max=1, modifier=false, summary=false) 2335 @Description(shortDefinition="Date when the device was made", formalDefinition="The date and time when the device was manufactured." ) 2336 protected DateTimeType manufactureDate; 2337 2338 /** 2339 * The date and time beyond which this device is no longer valid or should not be used (if applicable). 2340 */ 2341 @Child(name = "expirationDate", type = {DateTimeType.class}, order=9, min=0, max=1, modifier=false, summary=false) 2342 @Description(shortDefinition="Date and time of expiry of this device (if applicable)", formalDefinition="The date and time beyond which this device is no longer valid or should not be used (if applicable)." ) 2343 protected DateTimeType expirationDate; 2344 2345 /** 2346 * Lot number assigned by the manufacturer. 2347 */ 2348 @Child(name = "lotNumber", type = {StringType.class}, order=10, min=0, max=1, modifier=false, summary=false) 2349 @Description(shortDefinition="Lot number of manufacture", formalDefinition="Lot number assigned by the manufacturer." ) 2350 protected StringType lotNumber; 2351 2352 /** 2353 * The serial number assigned by the organization when the device was manufactured. 2354 */ 2355 @Child(name = "serialNumber", type = {StringType.class}, order=11, min=0, max=1, modifier=false, summary=false) 2356 @Description(shortDefinition="Serial number assigned by the manufacturer", formalDefinition="The serial number assigned by the organization when the device was manufactured." ) 2357 protected StringType serialNumber; 2358 2359 /** 2360 * This represents the manufacturer's name of the device as provided by the device, from a UDI label, or by a person describing the Device. This typically would be used when a person provides the name(s) or when the device represents one of the names available from DeviceDefinition. 2361 */ 2362 @Child(name = "name", type = {}, order=12, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 2363 @Description(shortDefinition="The name or names of the device as known to the manufacturer and/or patient", formalDefinition="This represents the manufacturer's name of the device as provided by the device, from a UDI label, or by a person describing the Device. This typically would be used when a person provides the name(s) or when the device represents one of the names available from DeviceDefinition." ) 2364 protected List<DeviceNameComponent> name; 2365 2366 /** 2367 * The manufacturer's model number for the device. 2368 */ 2369 @Child(name = "modelNumber", type = {StringType.class}, order=13, min=0, max=1, modifier=false, summary=false) 2370 @Description(shortDefinition="The manufacturer's model number for the device", formalDefinition="The manufacturer's model number for the device." ) 2371 protected StringType modelNumber; 2372 2373 /** 2374 * The part number or catalog number of the device. 2375 */ 2376 @Child(name = "partNumber", type = {StringType.class}, order=14, min=0, max=1, modifier=false, summary=false) 2377 @Description(shortDefinition="The part number or catalog number of the device", formalDefinition="The part number or catalog number of the device." ) 2378 protected StringType partNumber; 2379 2380 /** 2381 * Devices may be associated with one or more categories. 2382 */ 2383 @Child(name = "category", type = {CodeableConcept.class}, order=15, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 2384 @Description(shortDefinition="Indicates a high-level grouping of the device", formalDefinition="Devices may be associated with one or more categories." ) 2385 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/device-category") 2386 protected List<CodeableConcept> category; 2387 2388 /** 2389 * The kind or type of device. A device instance may have more than one type - in which case those are the types that apply to the specific instance of the device. 2390 */ 2391 @Child(name = "type", type = {CodeableConcept.class}, order=16, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 2392 @Description(shortDefinition="The kind or type of device", formalDefinition="The kind or type of device. A device instance may have more than one type - in which case those are the types that apply to the specific instance of the device." ) 2393 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/device-type") 2394 protected List<CodeableConcept> type; 2395 2396 /** 2397 * The actual design of the device or software version running on the device. 2398 */ 2399 @Child(name = "version", type = {}, order=17, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 2400 @Description(shortDefinition="The actual design of the device or software version running on the device", formalDefinition="The actual design of the device or software version running on the device." ) 2401 protected List<DeviceVersionComponent> version; 2402 2403 /** 2404 * Identifies the standards, specifications, or formal guidances for the capabilities supported by the device. The device may be certified as conformant to these specifications e.g., communication, performance, process, measurement, or specialization standards. 2405 */ 2406 @Child(name = "conformsTo", type = {}, order=18, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 2407 @Description(shortDefinition="Identifies the standards, specifications, or formal guidances for the capabilities supported by the device", formalDefinition="Identifies the standards, specifications, or formal guidances for the capabilities supported by the device. The device may be certified as conformant to these specifications e.g., communication, performance, process, measurement, or specialization standards." ) 2408 protected List<DeviceConformsToComponent> conformsTo; 2409 2410 /** 2411 * Static or essentially fixed characteristics or features of the device (e.g., time or timing attributes, resolution, accuracy, intended use or instructions for use, and physical attributes) that are not otherwise captured in more specific attributes. 2412 */ 2413 @Child(name = "property", type = {}, order=19, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 2414 @Description(shortDefinition="Inherent, essentially fixed, characteristics of the device. e.g., time properties, size, material, etc.", formalDefinition="Static or essentially fixed characteristics or features of the device (e.g., time or timing attributes, resolution, accuracy, intended use or instructions for use, and physical attributes) that are not otherwise captured in more specific attributes." ) 2415 protected List<DevicePropertyComponent> property; 2416 2417 /** 2418 * The designated condition for performing a task with the device. 2419 */ 2420 @Child(name = "mode", type = {CodeableConcept.class}, order=20, min=0, max=1, modifier=false, summary=false) 2421 @Description(shortDefinition="The designated condition for performing a task", formalDefinition="The designated condition for performing a task with the device." ) 2422 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/device-operation-mode") 2423 protected CodeableConcept mode; 2424 2425 /** 2426 * The series of occurrences that repeats during the operation of the device. 2427 */ 2428 @Child(name = "cycle", type = {Count.class}, order=21, min=0, max=1, modifier=false, summary=false) 2429 @Description(shortDefinition="The series of occurrences that repeats during the operation of the device", formalDefinition="The series of occurrences that repeats during the operation of the device." ) 2430 protected Count cycle; 2431 2432 /** 2433 * A measurement of time during the device's operation (e.g., days, hours, mins, etc.). 2434 */ 2435 @Child(name = "duration", type = {Duration.class}, order=22, min=0, max=1, modifier=false, summary=false) 2436 @Description(shortDefinition="A measurement of time during the device's operation (e.g., days, hours, mins, etc.)", formalDefinition="A measurement of time during the device's operation (e.g., days, hours, mins, etc.)." ) 2437 protected Duration duration; 2438 2439 /** 2440 * An organization that is responsible for the provision and ongoing maintenance of the device. 2441 */ 2442 @Child(name = "owner", type = {Organization.class}, order=23, min=0, max=1, modifier=false, summary=false) 2443 @Description(shortDefinition="Organization responsible for device", formalDefinition="An organization that is responsible for the provision and ongoing maintenance of the device." ) 2444 protected Reference owner; 2445 2446 /** 2447 * Contact details for an organization or a particular human that is responsible for the device. 2448 */ 2449 @Child(name = "contact", type = {ContactPoint.class}, order=24, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 2450 @Description(shortDefinition="Details for human/organization for support", formalDefinition="Contact details for an organization or a particular human that is responsible for the device." ) 2451 protected List<ContactPoint> contact; 2452 2453 /** 2454 * The place where the device can be found. 2455 */ 2456 @Child(name = "location", type = {Location.class}, order=25, min=0, max=1, modifier=false, summary=false) 2457 @Description(shortDefinition="Where the device is found", formalDefinition="The place where the device can be found." ) 2458 protected Reference location; 2459 2460 /** 2461 * A network address on which the device may be contacted directly. 2462 */ 2463 @Child(name = "url", type = {UriType.class}, order=26, min=0, max=1, modifier=false, summary=false) 2464 @Description(shortDefinition="Network address to contact device", formalDefinition="A network address on which the device may be contacted directly." ) 2465 protected UriType url; 2466 2467 /** 2468 * Technical endpoints providing access to services provided by the device defined at this resource. 2469 */ 2470 @Child(name = "endpoint", type = {Endpoint.class}, order=27, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 2471 @Description(shortDefinition="Technical endpoints providing access to electronic services provided by the device", formalDefinition="Technical endpoints providing access to services provided by the device defined at this resource." ) 2472 protected List<Reference> endpoint; 2473 2474 /** 2475 * The linked device acting as a communication controller, data collector, translator, or concentrator for the current device (e.g., mobile phone application that relays a blood pressure device's data). 2476 */ 2477 @Child(name = "gateway", type = {CodeableReference.class}, order=28, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 2478 @Description(shortDefinition="Linked device acting as a communication/data collector, translator or controller", formalDefinition="The linked device acting as a communication controller, data collector, translator, or concentrator for the current device (e.g., mobile phone application that relays a blood pressure device's data)." ) 2479 protected List<CodeableReference> gateway; 2480 2481 /** 2482 * Descriptive information, usage information or implantation information that is not captured in an existing element. 2483 */ 2484 @Child(name = "note", type = {Annotation.class}, order=29, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 2485 @Description(shortDefinition="Device notes and comments", formalDefinition="Descriptive information, usage information or implantation information that is not captured in an existing element." ) 2486 protected List<Annotation> note; 2487 2488 /** 2489 * Provides additional safety characteristics about a medical device. For example devices containing latex. 2490 */ 2491 @Child(name = "safety", type = {CodeableConcept.class}, order=30, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 2492 @Description(shortDefinition="Safety Characteristics of Device", formalDefinition="Provides additional safety characteristics about a medical device. For example devices containing latex." ) 2493 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/device-safety") 2494 protected List<CodeableConcept> safety; 2495 2496 /** 2497 * The higher level or encompassing device that this device is a logical part of. 2498 */ 2499 @Child(name = "parent", type = {Device.class}, order=31, min=0, max=1, modifier=false, summary=false) 2500 @Description(shortDefinition="The higher level or encompassing device that this device is a logical part of", formalDefinition="The higher level or encompassing device that this device is a logical part of." ) 2501 protected Reference parent; 2502 2503 private static final long serialVersionUID = 2120085847L; 2504 2505 /** 2506 * Constructor 2507 */ 2508 public Device() { 2509 super(); 2510 } 2511 2512 /** 2513 * @return {@link #identifier} (Unique instance identifiers assigned to a device by manufacturers other organizations or owners.) 2514 */ 2515 public List<Identifier> getIdentifier() { 2516 if (this.identifier == null) 2517 this.identifier = new ArrayList<Identifier>(); 2518 return this.identifier; 2519 } 2520 2521 /** 2522 * @return Returns a reference to <code>this</code> for easy method chaining 2523 */ 2524 public Device setIdentifier(List<Identifier> theIdentifier) { 2525 this.identifier = theIdentifier; 2526 return this; 2527 } 2528 2529 public boolean hasIdentifier() { 2530 if (this.identifier == null) 2531 return false; 2532 for (Identifier item : this.identifier) 2533 if (!item.isEmpty()) 2534 return true; 2535 return false; 2536 } 2537 2538 public Identifier addIdentifier() { //3 2539 Identifier t = new Identifier(); 2540 if (this.identifier == null) 2541 this.identifier = new ArrayList<Identifier>(); 2542 this.identifier.add(t); 2543 return t; 2544 } 2545 2546 public Device addIdentifier(Identifier t) { //3 2547 if (t == null) 2548 return this; 2549 if (this.identifier == null) 2550 this.identifier = new ArrayList<Identifier>(); 2551 this.identifier.add(t); 2552 return this; 2553 } 2554 2555 /** 2556 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3} 2557 */ 2558 public Identifier getIdentifierFirstRep() { 2559 if (getIdentifier().isEmpty()) { 2560 addIdentifier(); 2561 } 2562 return getIdentifier().get(0); 2563 } 2564 2565 /** 2566 * @return {@link #displayName} (The name used to display by default when the device is referenced. Based on intent of use by the resource creator, this may reflect one of the names in Device.name, or may be another simple name.). This is the underlying object with id, value and extensions. The accessor "getDisplayName" gives direct access to the value 2567 */ 2568 public StringType getDisplayNameElement() { 2569 if (this.displayName == null) 2570 if (Configuration.errorOnAutoCreate()) 2571 throw new Error("Attempt to auto-create Device.displayName"); 2572 else if (Configuration.doAutoCreate()) 2573 this.displayName = new StringType(); // bb 2574 return this.displayName; 2575 } 2576 2577 public boolean hasDisplayNameElement() { 2578 return this.displayName != null && !this.displayName.isEmpty(); 2579 } 2580 2581 public boolean hasDisplayName() { 2582 return this.displayName != null && !this.displayName.isEmpty(); 2583 } 2584 2585 /** 2586 * @param value {@link #displayName} (The name used to display by default when the device is referenced. Based on intent of use by the resource creator, this may reflect one of the names in Device.name, or may be another simple name.). This is the underlying object with id, value and extensions. The accessor "getDisplayName" gives direct access to the value 2587 */ 2588 public Device setDisplayNameElement(StringType value) { 2589 this.displayName = value; 2590 return this; 2591 } 2592 2593 /** 2594 * @return The name used to display by default when the device is referenced. Based on intent of use by the resource creator, this may reflect one of the names in Device.name, or may be another simple name. 2595 */ 2596 public String getDisplayName() { 2597 return this.displayName == null ? null : this.displayName.getValue(); 2598 } 2599 2600 /** 2601 * @param value The name used to display by default when the device is referenced. Based on intent of use by the resource creator, this may reflect one of the names in Device.name, or may be another simple name. 2602 */ 2603 public Device setDisplayName(String value) { 2604 if (Utilities.noString(value)) 2605 this.displayName = null; 2606 else { 2607 if (this.displayName == null) 2608 this.displayName = new StringType(); 2609 this.displayName.setValue(value); 2610 } 2611 return this; 2612 } 2613 2614 /** 2615 * @return {@link #definition} (The reference to the definition for the device.) 2616 */ 2617 public CodeableReference getDefinition() { 2618 if (this.definition == null) 2619 if (Configuration.errorOnAutoCreate()) 2620 throw new Error("Attempt to auto-create Device.definition"); 2621 else if (Configuration.doAutoCreate()) 2622 this.definition = new CodeableReference(); // cc 2623 return this.definition; 2624 } 2625 2626 public boolean hasDefinition() { 2627 return this.definition != null && !this.definition.isEmpty(); 2628 } 2629 2630 /** 2631 * @param value {@link #definition} (The reference to the definition for the device.) 2632 */ 2633 public Device setDefinition(CodeableReference value) { 2634 this.definition = value; 2635 return this; 2636 } 2637 2638 /** 2639 * @return {@link #udiCarrier} (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.) 2640 */ 2641 public List<DeviceUdiCarrierComponent> getUdiCarrier() { 2642 if (this.udiCarrier == null) 2643 this.udiCarrier = new ArrayList<DeviceUdiCarrierComponent>(); 2644 return this.udiCarrier; 2645 } 2646 2647 /** 2648 * @return Returns a reference to <code>this</code> for easy method chaining 2649 */ 2650 public Device setUdiCarrier(List<DeviceUdiCarrierComponent> theUdiCarrier) { 2651 this.udiCarrier = theUdiCarrier; 2652 return this; 2653 } 2654 2655 public boolean hasUdiCarrier() { 2656 if (this.udiCarrier == null) 2657 return false; 2658 for (DeviceUdiCarrierComponent item : this.udiCarrier) 2659 if (!item.isEmpty()) 2660 return true; 2661 return false; 2662 } 2663 2664 public DeviceUdiCarrierComponent addUdiCarrier() { //3 2665 DeviceUdiCarrierComponent t = new DeviceUdiCarrierComponent(); 2666 if (this.udiCarrier == null) 2667 this.udiCarrier = new ArrayList<DeviceUdiCarrierComponent>(); 2668 this.udiCarrier.add(t); 2669 return t; 2670 } 2671 2672 public Device addUdiCarrier(DeviceUdiCarrierComponent t) { //3 2673 if (t == null) 2674 return this; 2675 if (this.udiCarrier == null) 2676 this.udiCarrier = new ArrayList<DeviceUdiCarrierComponent>(); 2677 this.udiCarrier.add(t); 2678 return this; 2679 } 2680 2681 /** 2682 * @return The first repetition of repeating field {@link #udiCarrier}, creating it if it does not already exist {3} 2683 */ 2684 public DeviceUdiCarrierComponent getUdiCarrierFirstRep() { 2685 if (getUdiCarrier().isEmpty()) { 2686 addUdiCarrier(); 2687 } 2688 return getUdiCarrier().get(0); 2689 } 2690 2691 /** 2692 * @return {@link #status} (The Device record status. This is not the status of the device like availability.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 2693 */ 2694 public Enumeration<FHIRDeviceStatus> getStatusElement() { 2695 if (this.status == null) 2696 if (Configuration.errorOnAutoCreate()) 2697 throw new Error("Attempt to auto-create Device.status"); 2698 else if (Configuration.doAutoCreate()) 2699 this.status = new Enumeration<FHIRDeviceStatus>(new FHIRDeviceStatusEnumFactory()); // bb 2700 return this.status; 2701 } 2702 2703 public boolean hasStatusElement() { 2704 return this.status != null && !this.status.isEmpty(); 2705 } 2706 2707 public boolean hasStatus() { 2708 return this.status != null && !this.status.isEmpty(); 2709 } 2710 2711 /** 2712 * @param value {@link #status} (The Device record status. This is not the status of the device like availability.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 2713 */ 2714 public Device setStatusElement(Enumeration<FHIRDeviceStatus> value) { 2715 this.status = value; 2716 return this; 2717 } 2718 2719 /** 2720 * @return The Device record status. This is not the status of the device like availability. 2721 */ 2722 public FHIRDeviceStatus getStatus() { 2723 return this.status == null ? null : this.status.getValue(); 2724 } 2725 2726 /** 2727 * @param value The Device record status. This is not the status of the device like availability. 2728 */ 2729 public Device setStatus(FHIRDeviceStatus value) { 2730 if (value == null) 2731 this.status = null; 2732 else { 2733 if (this.status == null) 2734 this.status = new Enumeration<FHIRDeviceStatus>(new FHIRDeviceStatusEnumFactory()); 2735 this.status.setValue(value); 2736 } 2737 return this; 2738 } 2739 2740 /** 2741 * @return {@link #availabilityStatus} (The availability of the device.) 2742 */ 2743 public CodeableConcept getAvailabilityStatus() { 2744 if (this.availabilityStatus == null) 2745 if (Configuration.errorOnAutoCreate()) 2746 throw new Error("Attempt to auto-create Device.availabilityStatus"); 2747 else if (Configuration.doAutoCreate()) 2748 this.availabilityStatus = new CodeableConcept(); // cc 2749 return this.availabilityStatus; 2750 } 2751 2752 public boolean hasAvailabilityStatus() { 2753 return this.availabilityStatus != null && !this.availabilityStatus.isEmpty(); 2754 } 2755 2756 /** 2757 * @param value {@link #availabilityStatus} (The availability of the device.) 2758 */ 2759 public Device setAvailabilityStatus(CodeableConcept value) { 2760 this.availabilityStatus = value; 2761 return this; 2762 } 2763 2764 /** 2765 * @return {@link #biologicalSourceEvent} (An identifier that supports traceability to the event during which material in this product from one or more biological entities was obtained or pooled.) 2766 */ 2767 public Identifier getBiologicalSourceEvent() { 2768 if (this.biologicalSourceEvent == null) 2769 if (Configuration.errorOnAutoCreate()) 2770 throw new Error("Attempt to auto-create Device.biologicalSourceEvent"); 2771 else if (Configuration.doAutoCreate()) 2772 this.biologicalSourceEvent = new Identifier(); // cc 2773 return this.biologicalSourceEvent; 2774 } 2775 2776 public boolean hasBiologicalSourceEvent() { 2777 return this.biologicalSourceEvent != null && !this.biologicalSourceEvent.isEmpty(); 2778 } 2779 2780 /** 2781 * @param value {@link #biologicalSourceEvent} (An identifier that supports traceability to the event during which material in this product from one or more biological entities was obtained or pooled.) 2782 */ 2783 public Device setBiologicalSourceEvent(Identifier value) { 2784 this.biologicalSourceEvent = value; 2785 return this; 2786 } 2787 2788 /** 2789 * @return {@link #manufacturer} (A name of the manufacturer or entity legally responsible for the device.). This is the underlying object with id, value and extensions. The accessor "getManufacturer" gives direct access to the value 2790 */ 2791 public StringType getManufacturerElement() { 2792 if (this.manufacturer == null) 2793 if (Configuration.errorOnAutoCreate()) 2794 throw new Error("Attempt to auto-create Device.manufacturer"); 2795 else if (Configuration.doAutoCreate()) 2796 this.manufacturer = new StringType(); // bb 2797 return this.manufacturer; 2798 } 2799 2800 public boolean hasManufacturerElement() { 2801 return this.manufacturer != null && !this.manufacturer.isEmpty(); 2802 } 2803 2804 public boolean hasManufacturer() { 2805 return this.manufacturer != null && !this.manufacturer.isEmpty(); 2806 } 2807 2808 /** 2809 * @param value {@link #manufacturer} (A name of the manufacturer or entity legally responsible for the device.). This is the underlying object with id, value and extensions. The accessor "getManufacturer" gives direct access to the value 2810 */ 2811 public Device setManufacturerElement(StringType value) { 2812 this.manufacturer = value; 2813 return this; 2814 } 2815 2816 /** 2817 * @return A name of the manufacturer or entity legally responsible for the device. 2818 */ 2819 public String getManufacturer() { 2820 return this.manufacturer == null ? null : this.manufacturer.getValue(); 2821 } 2822 2823 /** 2824 * @param value A name of the manufacturer or entity legally responsible for the device. 2825 */ 2826 public Device setManufacturer(String value) { 2827 if (Utilities.noString(value)) 2828 this.manufacturer = null; 2829 else { 2830 if (this.manufacturer == null) 2831 this.manufacturer = new StringType(); 2832 this.manufacturer.setValue(value); 2833 } 2834 return this; 2835 } 2836 2837 /** 2838 * @return {@link #manufactureDate} (The date and time when the device was manufactured.). This is the underlying object with id, value and extensions. The accessor "getManufactureDate" gives direct access to the value 2839 */ 2840 public DateTimeType getManufactureDateElement() { 2841 if (this.manufactureDate == null) 2842 if (Configuration.errorOnAutoCreate()) 2843 throw new Error("Attempt to auto-create Device.manufactureDate"); 2844 else if (Configuration.doAutoCreate()) 2845 this.manufactureDate = new DateTimeType(); // bb 2846 return this.manufactureDate; 2847 } 2848 2849 public boolean hasManufactureDateElement() { 2850 return this.manufactureDate != null && !this.manufactureDate.isEmpty(); 2851 } 2852 2853 public boolean hasManufactureDate() { 2854 return this.manufactureDate != null && !this.manufactureDate.isEmpty(); 2855 } 2856 2857 /** 2858 * @param value {@link #manufactureDate} (The date and time when the device was manufactured.). This is the underlying object with id, value and extensions. The accessor "getManufactureDate" gives direct access to the value 2859 */ 2860 public Device setManufactureDateElement(DateTimeType value) { 2861 this.manufactureDate = value; 2862 return this; 2863 } 2864 2865 /** 2866 * @return The date and time when the device was manufactured. 2867 */ 2868 public Date getManufactureDate() { 2869 return this.manufactureDate == null ? null : this.manufactureDate.getValue(); 2870 } 2871 2872 /** 2873 * @param value The date and time when the device was manufactured. 2874 */ 2875 public Device setManufactureDate(Date value) { 2876 if (value == null) 2877 this.manufactureDate = null; 2878 else { 2879 if (this.manufactureDate == null) 2880 this.manufactureDate = new DateTimeType(); 2881 this.manufactureDate.setValue(value); 2882 } 2883 return this; 2884 } 2885 2886 /** 2887 * @return {@link #expirationDate} (The date and time beyond which this device is no longer valid or should not be used (if applicable).). This is the underlying object with id, value and extensions. The accessor "getExpirationDate" gives direct access to the value 2888 */ 2889 public DateTimeType getExpirationDateElement() { 2890 if (this.expirationDate == null) 2891 if (Configuration.errorOnAutoCreate()) 2892 throw new Error("Attempt to auto-create Device.expirationDate"); 2893 else if (Configuration.doAutoCreate()) 2894 this.expirationDate = new DateTimeType(); // bb 2895 return this.expirationDate; 2896 } 2897 2898 public boolean hasExpirationDateElement() { 2899 return this.expirationDate != null && !this.expirationDate.isEmpty(); 2900 } 2901 2902 public boolean hasExpirationDate() { 2903 return this.expirationDate != null && !this.expirationDate.isEmpty(); 2904 } 2905 2906 /** 2907 * @param value {@link #expirationDate} (The date and time beyond which this device is no longer valid or should not be used (if applicable).). This is the underlying object with id, value and extensions. The accessor "getExpirationDate" gives direct access to the value 2908 */ 2909 public Device setExpirationDateElement(DateTimeType value) { 2910 this.expirationDate = value; 2911 return this; 2912 } 2913 2914 /** 2915 * @return The date and time beyond which this device is no longer valid or should not be used (if applicable). 2916 */ 2917 public Date getExpirationDate() { 2918 return this.expirationDate == null ? null : this.expirationDate.getValue(); 2919 } 2920 2921 /** 2922 * @param value The date and time beyond which this device is no longer valid or should not be used (if applicable). 2923 */ 2924 public Device setExpirationDate(Date value) { 2925 if (value == null) 2926 this.expirationDate = null; 2927 else { 2928 if (this.expirationDate == null) 2929 this.expirationDate = new DateTimeType(); 2930 this.expirationDate.setValue(value); 2931 } 2932 return this; 2933 } 2934 2935 /** 2936 * @return {@link #lotNumber} (Lot number assigned by the manufacturer.). This is the underlying object with id, value and extensions. The accessor "getLotNumber" gives direct access to the value 2937 */ 2938 public StringType getLotNumberElement() { 2939 if (this.lotNumber == null) 2940 if (Configuration.errorOnAutoCreate()) 2941 throw new Error("Attempt to auto-create Device.lotNumber"); 2942 else if (Configuration.doAutoCreate()) 2943 this.lotNumber = new StringType(); // bb 2944 return this.lotNumber; 2945 } 2946 2947 public boolean hasLotNumberElement() { 2948 return this.lotNumber != null && !this.lotNumber.isEmpty(); 2949 } 2950 2951 public boolean hasLotNumber() { 2952 return this.lotNumber != null && !this.lotNumber.isEmpty(); 2953 } 2954 2955 /** 2956 * @param value {@link #lotNumber} (Lot number assigned by the manufacturer.). This is the underlying object with id, value and extensions. The accessor "getLotNumber" gives direct access to the value 2957 */ 2958 public Device setLotNumberElement(StringType value) { 2959 this.lotNumber = value; 2960 return this; 2961 } 2962 2963 /** 2964 * @return Lot number assigned by the manufacturer. 2965 */ 2966 public String getLotNumber() { 2967 return this.lotNumber == null ? null : this.lotNumber.getValue(); 2968 } 2969 2970 /** 2971 * @param value Lot number assigned by the manufacturer. 2972 */ 2973 public Device setLotNumber(String value) { 2974 if (Utilities.noString(value)) 2975 this.lotNumber = null; 2976 else { 2977 if (this.lotNumber == null) 2978 this.lotNumber = new StringType(); 2979 this.lotNumber.setValue(value); 2980 } 2981 return this; 2982 } 2983 2984 /** 2985 * @return {@link #serialNumber} (The serial number assigned by the organization when the device was manufactured.). This is the underlying object with id, value and extensions. The accessor "getSerialNumber" gives direct access to the value 2986 */ 2987 public StringType getSerialNumberElement() { 2988 if (this.serialNumber == null) 2989 if (Configuration.errorOnAutoCreate()) 2990 throw new Error("Attempt to auto-create Device.serialNumber"); 2991 else if (Configuration.doAutoCreate()) 2992 this.serialNumber = new StringType(); // bb 2993 return this.serialNumber; 2994 } 2995 2996 public boolean hasSerialNumberElement() { 2997 return this.serialNumber != null && !this.serialNumber.isEmpty(); 2998 } 2999 3000 public boolean hasSerialNumber() { 3001 return this.serialNumber != null && !this.serialNumber.isEmpty(); 3002 } 3003 3004 /** 3005 * @param value {@link #serialNumber} (The serial number assigned by the organization when the device was manufactured.). This is the underlying object with id, value and extensions. The accessor "getSerialNumber" gives direct access to the value 3006 */ 3007 public Device setSerialNumberElement(StringType value) { 3008 this.serialNumber = value; 3009 return this; 3010 } 3011 3012 /** 3013 * @return The serial number assigned by the organization when the device was manufactured. 3014 */ 3015 public String getSerialNumber() { 3016 return this.serialNumber == null ? null : this.serialNumber.getValue(); 3017 } 3018 3019 /** 3020 * @param value The serial number assigned by the organization when the device was manufactured. 3021 */ 3022 public Device setSerialNumber(String value) { 3023 if (Utilities.noString(value)) 3024 this.serialNumber = null; 3025 else { 3026 if (this.serialNumber == null) 3027 this.serialNumber = new StringType(); 3028 this.serialNumber.setValue(value); 3029 } 3030 return this; 3031 } 3032 3033 /** 3034 * @return {@link #name} (This represents the manufacturer's name of the device as provided by the device, from a UDI label, or by a person describing the Device. This typically would be used when a person provides the name(s) or when the device represents one of the names available from DeviceDefinition.) 3035 */ 3036 public List<DeviceNameComponent> getName() { 3037 if (this.name == null) 3038 this.name = new ArrayList<DeviceNameComponent>(); 3039 return this.name; 3040 } 3041 3042 /** 3043 * @return Returns a reference to <code>this</code> for easy method chaining 3044 */ 3045 public Device setName(List<DeviceNameComponent> theName) { 3046 this.name = theName; 3047 return this; 3048 } 3049 3050 public boolean hasName() { 3051 if (this.name == null) 3052 return false; 3053 for (DeviceNameComponent item : this.name) 3054 if (!item.isEmpty()) 3055 return true; 3056 return false; 3057 } 3058 3059 public DeviceNameComponent addName() { //3 3060 DeviceNameComponent t = new DeviceNameComponent(); 3061 if (this.name == null) 3062 this.name = new ArrayList<DeviceNameComponent>(); 3063 this.name.add(t); 3064 return t; 3065 } 3066 3067 public Device addName(DeviceNameComponent t) { //3 3068 if (t == null) 3069 return this; 3070 if (this.name == null) 3071 this.name = new ArrayList<DeviceNameComponent>(); 3072 this.name.add(t); 3073 return this; 3074 } 3075 3076 /** 3077 * @return The first repetition of repeating field {@link #name}, creating it if it does not already exist {3} 3078 */ 3079 public DeviceNameComponent getNameFirstRep() { 3080 if (getName().isEmpty()) { 3081 addName(); 3082 } 3083 return getName().get(0); 3084 } 3085 3086 /** 3087 * @return {@link #modelNumber} (The manufacturer's model number for the device.). This is the underlying object with id, value and extensions. The accessor "getModelNumber" gives direct access to the value 3088 */ 3089 public StringType getModelNumberElement() { 3090 if (this.modelNumber == null) 3091 if (Configuration.errorOnAutoCreate()) 3092 throw new Error("Attempt to auto-create Device.modelNumber"); 3093 else if (Configuration.doAutoCreate()) 3094 this.modelNumber = new StringType(); // bb 3095 return this.modelNumber; 3096 } 3097 3098 public boolean hasModelNumberElement() { 3099 return this.modelNumber != null && !this.modelNumber.isEmpty(); 3100 } 3101 3102 public boolean hasModelNumber() { 3103 return this.modelNumber != null && !this.modelNumber.isEmpty(); 3104 } 3105 3106 /** 3107 * @param value {@link #modelNumber} (The manufacturer's model number for the device.). This is the underlying object with id, value and extensions. The accessor "getModelNumber" gives direct access to the value 3108 */ 3109 public Device setModelNumberElement(StringType value) { 3110 this.modelNumber = value; 3111 return this; 3112 } 3113 3114 /** 3115 * @return The manufacturer's model number for the device. 3116 */ 3117 public String getModelNumber() { 3118 return this.modelNumber == null ? null : this.modelNumber.getValue(); 3119 } 3120 3121 /** 3122 * @param value The manufacturer's model number for the device. 3123 */ 3124 public Device setModelNumber(String value) { 3125 if (Utilities.noString(value)) 3126 this.modelNumber = null; 3127 else { 3128 if (this.modelNumber == null) 3129 this.modelNumber = new StringType(); 3130 this.modelNumber.setValue(value); 3131 } 3132 return this; 3133 } 3134 3135 /** 3136 * @return {@link #partNumber} (The part number or catalog number of the device.). This is the underlying object with id, value and extensions. The accessor "getPartNumber" gives direct access to the value 3137 */ 3138 public StringType getPartNumberElement() { 3139 if (this.partNumber == null) 3140 if (Configuration.errorOnAutoCreate()) 3141 throw new Error("Attempt to auto-create Device.partNumber"); 3142 else if (Configuration.doAutoCreate()) 3143 this.partNumber = new StringType(); // bb 3144 return this.partNumber; 3145 } 3146 3147 public boolean hasPartNumberElement() { 3148 return this.partNumber != null && !this.partNumber.isEmpty(); 3149 } 3150 3151 public boolean hasPartNumber() { 3152 return this.partNumber != null && !this.partNumber.isEmpty(); 3153 } 3154 3155 /** 3156 * @param value {@link #partNumber} (The part number or catalog number of the device.). This is the underlying object with id, value and extensions. The accessor "getPartNumber" gives direct access to the value 3157 */ 3158 public Device setPartNumberElement(StringType value) { 3159 this.partNumber = value; 3160 return this; 3161 } 3162 3163 /** 3164 * @return The part number or catalog number of the device. 3165 */ 3166 public String getPartNumber() { 3167 return this.partNumber == null ? null : this.partNumber.getValue(); 3168 } 3169 3170 /** 3171 * @param value The part number or catalog number of the device. 3172 */ 3173 public Device setPartNumber(String value) { 3174 if (Utilities.noString(value)) 3175 this.partNumber = null; 3176 else { 3177 if (this.partNumber == null) 3178 this.partNumber = new StringType(); 3179 this.partNumber.setValue(value); 3180 } 3181 return this; 3182 } 3183 3184 /** 3185 * @return {@link #category} (Devices may be associated with one or more categories.) 3186 */ 3187 public List<CodeableConcept> getCategory() { 3188 if (this.category == null) 3189 this.category = new ArrayList<CodeableConcept>(); 3190 return this.category; 3191 } 3192 3193 /** 3194 * @return Returns a reference to <code>this</code> for easy method chaining 3195 */ 3196 public Device setCategory(List<CodeableConcept> theCategory) { 3197 this.category = theCategory; 3198 return this; 3199 } 3200 3201 public boolean hasCategory() { 3202 if (this.category == null) 3203 return false; 3204 for (CodeableConcept item : this.category) 3205 if (!item.isEmpty()) 3206 return true; 3207 return false; 3208 } 3209 3210 public CodeableConcept addCategory() { //3 3211 CodeableConcept t = new CodeableConcept(); 3212 if (this.category == null) 3213 this.category = new ArrayList<CodeableConcept>(); 3214 this.category.add(t); 3215 return t; 3216 } 3217 3218 public Device addCategory(CodeableConcept t) { //3 3219 if (t == null) 3220 return this; 3221 if (this.category == null) 3222 this.category = new ArrayList<CodeableConcept>(); 3223 this.category.add(t); 3224 return this; 3225 } 3226 3227 /** 3228 * @return The first repetition of repeating field {@link #category}, creating it if it does not already exist {3} 3229 */ 3230 public CodeableConcept getCategoryFirstRep() { 3231 if (getCategory().isEmpty()) { 3232 addCategory(); 3233 } 3234 return getCategory().get(0); 3235 } 3236 3237 /** 3238 * @return {@link #type} (The kind or type of device. A device instance may have more than one type - in which case those are the types that apply to the specific instance of the device.) 3239 */ 3240 public List<CodeableConcept> getType() { 3241 if (this.type == null) 3242 this.type = new ArrayList<CodeableConcept>(); 3243 return this.type; 3244 } 3245 3246 /** 3247 * @return Returns a reference to <code>this</code> for easy method chaining 3248 */ 3249 public Device setType(List<CodeableConcept> theType) { 3250 this.type = theType; 3251 return this; 3252 } 3253 3254 public boolean hasType() { 3255 if (this.type == null) 3256 return false; 3257 for (CodeableConcept item : this.type) 3258 if (!item.isEmpty()) 3259 return true; 3260 return false; 3261 } 3262 3263 public CodeableConcept addType() { //3 3264 CodeableConcept t = new CodeableConcept(); 3265 if (this.type == null) 3266 this.type = new ArrayList<CodeableConcept>(); 3267 this.type.add(t); 3268 return t; 3269 } 3270 3271 public Device addType(CodeableConcept t) { //3 3272 if (t == null) 3273 return this; 3274 if (this.type == null) 3275 this.type = new ArrayList<CodeableConcept>(); 3276 this.type.add(t); 3277 return this; 3278 } 3279 3280 /** 3281 * @return The first repetition of repeating field {@link #type}, creating it if it does not already exist {3} 3282 */ 3283 public CodeableConcept getTypeFirstRep() { 3284 if (getType().isEmpty()) { 3285 addType(); 3286 } 3287 return getType().get(0); 3288 } 3289 3290 /** 3291 * @return {@link #version} (The actual design of the device or software version running on the device.) 3292 */ 3293 public List<DeviceVersionComponent> getVersion() { 3294 if (this.version == null) 3295 this.version = new ArrayList<DeviceVersionComponent>(); 3296 return this.version; 3297 } 3298 3299 /** 3300 * @return Returns a reference to <code>this</code> for easy method chaining 3301 */ 3302 public Device setVersion(List<DeviceVersionComponent> theVersion) { 3303 this.version = theVersion; 3304 return this; 3305 } 3306 3307 public boolean hasVersion() { 3308 if (this.version == null) 3309 return false; 3310 for (DeviceVersionComponent item : this.version) 3311 if (!item.isEmpty()) 3312 return true; 3313 return false; 3314 } 3315 3316 public DeviceVersionComponent addVersion() { //3 3317 DeviceVersionComponent t = new DeviceVersionComponent(); 3318 if (this.version == null) 3319 this.version = new ArrayList<DeviceVersionComponent>(); 3320 this.version.add(t); 3321 return t; 3322 } 3323 3324 public Device addVersion(DeviceVersionComponent t) { //3 3325 if (t == null) 3326 return this; 3327 if (this.version == null) 3328 this.version = new ArrayList<DeviceVersionComponent>(); 3329 this.version.add(t); 3330 return this; 3331 } 3332 3333 /** 3334 * @return The first repetition of repeating field {@link #version}, creating it if it does not already exist {3} 3335 */ 3336 public DeviceVersionComponent getVersionFirstRep() { 3337 if (getVersion().isEmpty()) { 3338 addVersion(); 3339 } 3340 return getVersion().get(0); 3341 } 3342 3343 /** 3344 * @return {@link #conformsTo} (Identifies the standards, specifications, or formal guidances for the capabilities supported by the device. The device may be certified as conformant to these specifications e.g., communication, performance, process, measurement, or specialization standards.) 3345 */ 3346 public List<DeviceConformsToComponent> getConformsTo() { 3347 if (this.conformsTo == null) 3348 this.conformsTo = new ArrayList<DeviceConformsToComponent>(); 3349 return this.conformsTo; 3350 } 3351 3352 /** 3353 * @return Returns a reference to <code>this</code> for easy method chaining 3354 */ 3355 public Device setConformsTo(List<DeviceConformsToComponent> theConformsTo) { 3356 this.conformsTo = theConformsTo; 3357 return this; 3358 } 3359 3360 public boolean hasConformsTo() { 3361 if (this.conformsTo == null) 3362 return false; 3363 for (DeviceConformsToComponent item : this.conformsTo) 3364 if (!item.isEmpty()) 3365 return true; 3366 return false; 3367 } 3368 3369 public DeviceConformsToComponent addConformsTo() { //3 3370 DeviceConformsToComponent t = new DeviceConformsToComponent(); 3371 if (this.conformsTo == null) 3372 this.conformsTo = new ArrayList<DeviceConformsToComponent>(); 3373 this.conformsTo.add(t); 3374 return t; 3375 } 3376 3377 public Device addConformsTo(DeviceConformsToComponent t) { //3 3378 if (t == null) 3379 return this; 3380 if (this.conformsTo == null) 3381 this.conformsTo = new ArrayList<DeviceConformsToComponent>(); 3382 this.conformsTo.add(t); 3383 return this; 3384 } 3385 3386 /** 3387 * @return The first repetition of repeating field {@link #conformsTo}, creating it if it does not already exist {3} 3388 */ 3389 public DeviceConformsToComponent getConformsToFirstRep() { 3390 if (getConformsTo().isEmpty()) { 3391 addConformsTo(); 3392 } 3393 return getConformsTo().get(0); 3394 } 3395 3396 /** 3397 * @return {@link #property} (Static or essentially fixed characteristics or features of the device (e.g., time or timing attributes, resolution, accuracy, intended use or instructions for use, and physical attributes) that are not otherwise captured in more specific attributes.) 3398 */ 3399 public List<DevicePropertyComponent> getProperty() { 3400 if (this.property == null) 3401 this.property = new ArrayList<DevicePropertyComponent>(); 3402 return this.property; 3403 } 3404 3405 /** 3406 * @return Returns a reference to <code>this</code> for easy method chaining 3407 */ 3408 public Device setProperty(List<DevicePropertyComponent> theProperty) { 3409 this.property = theProperty; 3410 return this; 3411 } 3412 3413 public boolean hasProperty() { 3414 if (this.property == null) 3415 return false; 3416 for (DevicePropertyComponent item : this.property) 3417 if (!item.isEmpty()) 3418 return true; 3419 return false; 3420 } 3421 3422 public DevicePropertyComponent addProperty() { //3 3423 DevicePropertyComponent t = new DevicePropertyComponent(); 3424 if (this.property == null) 3425 this.property = new ArrayList<DevicePropertyComponent>(); 3426 this.property.add(t); 3427 return t; 3428 } 3429 3430 public Device addProperty(DevicePropertyComponent t) { //3 3431 if (t == null) 3432 return this; 3433 if (this.property == null) 3434 this.property = new ArrayList<DevicePropertyComponent>(); 3435 this.property.add(t); 3436 return this; 3437 } 3438 3439 /** 3440 * @return The first repetition of repeating field {@link #property}, creating it if it does not already exist {3} 3441 */ 3442 public DevicePropertyComponent getPropertyFirstRep() { 3443 if (getProperty().isEmpty()) { 3444 addProperty(); 3445 } 3446 return getProperty().get(0); 3447 } 3448 3449 /** 3450 * @return {@link #mode} (The designated condition for performing a task with the device.) 3451 */ 3452 public CodeableConcept getMode() { 3453 if (this.mode == null) 3454 if (Configuration.errorOnAutoCreate()) 3455 throw new Error("Attempt to auto-create Device.mode"); 3456 else if (Configuration.doAutoCreate()) 3457 this.mode = new CodeableConcept(); // cc 3458 return this.mode; 3459 } 3460 3461 public boolean hasMode() { 3462 return this.mode != null && !this.mode.isEmpty(); 3463 } 3464 3465 /** 3466 * @param value {@link #mode} (The designated condition for performing a task with the device.) 3467 */ 3468 public Device setMode(CodeableConcept value) { 3469 this.mode = value; 3470 return this; 3471 } 3472 3473 /** 3474 * @return {@link #cycle} (The series of occurrences that repeats during the operation of the device.) 3475 */ 3476 public Count getCycle() { 3477 if (this.cycle == null) 3478 if (Configuration.errorOnAutoCreate()) 3479 throw new Error("Attempt to auto-create Device.cycle"); 3480 else if (Configuration.doAutoCreate()) 3481 this.cycle = new Count(); // cc 3482 return this.cycle; 3483 } 3484 3485 public boolean hasCycle() { 3486 return this.cycle != null && !this.cycle.isEmpty(); 3487 } 3488 3489 /** 3490 * @param value {@link #cycle} (The series of occurrences that repeats during the operation of the device.) 3491 */ 3492 public Device setCycle(Count value) { 3493 this.cycle = value; 3494 return this; 3495 } 3496 3497 /** 3498 * @return {@link #duration} (A measurement of time during the device's operation (e.g., days, hours, mins, etc.).) 3499 */ 3500 public Duration getDuration() { 3501 if (this.duration == null) 3502 if (Configuration.errorOnAutoCreate()) 3503 throw new Error("Attempt to auto-create Device.duration"); 3504 else if (Configuration.doAutoCreate()) 3505 this.duration = new Duration(); // cc 3506 return this.duration; 3507 } 3508 3509 public boolean hasDuration() { 3510 return this.duration != null && !this.duration.isEmpty(); 3511 } 3512 3513 /** 3514 * @param value {@link #duration} (A measurement of time during the device's operation (e.g., days, hours, mins, etc.).) 3515 */ 3516 public Device setDuration(Duration value) { 3517 this.duration = value; 3518 return this; 3519 } 3520 3521 /** 3522 * @return {@link #owner} (An organization that is responsible for the provision and ongoing maintenance of the device.) 3523 */ 3524 public Reference getOwner() { 3525 if (this.owner == null) 3526 if (Configuration.errorOnAutoCreate()) 3527 throw new Error("Attempt to auto-create Device.owner"); 3528 else if (Configuration.doAutoCreate()) 3529 this.owner = new Reference(); // cc 3530 return this.owner; 3531 } 3532 3533 public boolean hasOwner() { 3534 return this.owner != null && !this.owner.isEmpty(); 3535 } 3536 3537 /** 3538 * @param value {@link #owner} (An organization that is responsible for the provision and ongoing maintenance of the device.) 3539 */ 3540 public Device setOwner(Reference value) { 3541 this.owner = value; 3542 return this; 3543 } 3544 3545 /** 3546 * @return {@link #contact} (Contact details for an organization or a particular human that is responsible for the device.) 3547 */ 3548 public List<ContactPoint> getContact() { 3549 if (this.contact == null) 3550 this.contact = new ArrayList<ContactPoint>(); 3551 return this.contact; 3552 } 3553 3554 /** 3555 * @return Returns a reference to <code>this</code> for easy method chaining 3556 */ 3557 public Device setContact(List<ContactPoint> theContact) { 3558 this.contact = theContact; 3559 return this; 3560 } 3561 3562 public boolean hasContact() { 3563 if (this.contact == null) 3564 return false; 3565 for (ContactPoint item : this.contact) 3566 if (!item.isEmpty()) 3567 return true; 3568 return false; 3569 } 3570 3571 public ContactPoint addContact() { //3 3572 ContactPoint t = new ContactPoint(); 3573 if (this.contact == null) 3574 this.contact = new ArrayList<ContactPoint>(); 3575 this.contact.add(t); 3576 return t; 3577 } 3578 3579 public Device addContact(ContactPoint t) { //3 3580 if (t == null) 3581 return this; 3582 if (this.contact == null) 3583 this.contact = new ArrayList<ContactPoint>(); 3584 this.contact.add(t); 3585 return this; 3586 } 3587 3588 /** 3589 * @return The first repetition of repeating field {@link #contact}, creating it if it does not already exist {3} 3590 */ 3591 public ContactPoint getContactFirstRep() { 3592 if (getContact().isEmpty()) { 3593 addContact(); 3594 } 3595 return getContact().get(0); 3596 } 3597 3598 /** 3599 * @return {@link #location} (The place where the device can be found.) 3600 */ 3601 public Reference getLocation() { 3602 if (this.location == null) 3603 if (Configuration.errorOnAutoCreate()) 3604 throw new Error("Attempt to auto-create Device.location"); 3605 else if (Configuration.doAutoCreate()) 3606 this.location = new Reference(); // cc 3607 return this.location; 3608 } 3609 3610 public boolean hasLocation() { 3611 return this.location != null && !this.location.isEmpty(); 3612 } 3613 3614 /** 3615 * @param value {@link #location} (The place where the device can be found.) 3616 */ 3617 public Device setLocation(Reference value) { 3618 this.location = value; 3619 return this; 3620 } 3621 3622 /** 3623 * @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 3624 */ 3625 public UriType getUrlElement() { 3626 if (this.url == null) 3627 if (Configuration.errorOnAutoCreate()) 3628 throw new Error("Attempt to auto-create Device.url"); 3629 else if (Configuration.doAutoCreate()) 3630 this.url = new UriType(); // bb 3631 return this.url; 3632 } 3633 3634 public boolean hasUrlElement() { 3635 return this.url != null && !this.url.isEmpty(); 3636 } 3637 3638 public boolean hasUrl() { 3639 return this.url != null && !this.url.isEmpty(); 3640 } 3641 3642 /** 3643 * @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 3644 */ 3645 public Device setUrlElement(UriType value) { 3646 this.url = value; 3647 return this; 3648 } 3649 3650 /** 3651 * @return A network address on which the device may be contacted directly. 3652 */ 3653 public String getUrl() { 3654 return this.url == null ? null : this.url.getValue(); 3655 } 3656 3657 /** 3658 * @param value A network address on which the device may be contacted directly. 3659 */ 3660 public Device setUrl(String value) { 3661 if (Utilities.noString(value)) 3662 this.url = null; 3663 else { 3664 if (this.url == null) 3665 this.url = new UriType(); 3666 this.url.setValue(value); 3667 } 3668 return this; 3669 } 3670 3671 /** 3672 * @return {@link #endpoint} (Technical endpoints providing access to services provided by the device defined at this resource.) 3673 */ 3674 public List<Reference> getEndpoint() { 3675 if (this.endpoint == null) 3676 this.endpoint = new ArrayList<Reference>(); 3677 return this.endpoint; 3678 } 3679 3680 /** 3681 * @return Returns a reference to <code>this</code> for easy method chaining 3682 */ 3683 public Device setEndpoint(List<Reference> theEndpoint) { 3684 this.endpoint = theEndpoint; 3685 return this; 3686 } 3687 3688 public boolean hasEndpoint() { 3689 if (this.endpoint == null) 3690 return false; 3691 for (Reference item : this.endpoint) 3692 if (!item.isEmpty()) 3693 return true; 3694 return false; 3695 } 3696 3697 public Reference addEndpoint() { //3 3698 Reference t = new Reference(); 3699 if (this.endpoint == null) 3700 this.endpoint = new ArrayList<Reference>(); 3701 this.endpoint.add(t); 3702 return t; 3703 } 3704 3705 public Device addEndpoint(Reference t) { //3 3706 if (t == null) 3707 return this; 3708 if (this.endpoint == null) 3709 this.endpoint = new ArrayList<Reference>(); 3710 this.endpoint.add(t); 3711 return this; 3712 } 3713 3714 /** 3715 * @return The first repetition of repeating field {@link #endpoint}, creating it if it does not already exist {3} 3716 */ 3717 public Reference getEndpointFirstRep() { 3718 if (getEndpoint().isEmpty()) { 3719 addEndpoint(); 3720 } 3721 return getEndpoint().get(0); 3722 } 3723 3724 /** 3725 * @return {@link #gateway} (The linked device acting as a communication controller, data collector, translator, or concentrator for the current device (e.g., mobile phone application that relays a blood pressure device's data).) 3726 */ 3727 public List<CodeableReference> getGateway() { 3728 if (this.gateway == null) 3729 this.gateway = new ArrayList<CodeableReference>(); 3730 return this.gateway; 3731 } 3732 3733 /** 3734 * @return Returns a reference to <code>this</code> for easy method chaining 3735 */ 3736 public Device setGateway(List<CodeableReference> theGateway) { 3737 this.gateway = theGateway; 3738 return this; 3739 } 3740 3741 public boolean hasGateway() { 3742 if (this.gateway == null) 3743 return false; 3744 for (CodeableReference item : this.gateway) 3745 if (!item.isEmpty()) 3746 return true; 3747 return false; 3748 } 3749 3750 public CodeableReference addGateway() { //3 3751 CodeableReference t = new CodeableReference(); 3752 if (this.gateway == null) 3753 this.gateway = new ArrayList<CodeableReference>(); 3754 this.gateway.add(t); 3755 return t; 3756 } 3757 3758 public Device addGateway(CodeableReference t) { //3 3759 if (t == null) 3760 return this; 3761 if (this.gateway == null) 3762 this.gateway = new ArrayList<CodeableReference>(); 3763 this.gateway.add(t); 3764 return this; 3765 } 3766 3767 /** 3768 * @return The first repetition of repeating field {@link #gateway}, creating it if it does not already exist {3} 3769 */ 3770 public CodeableReference getGatewayFirstRep() { 3771 if (getGateway().isEmpty()) { 3772 addGateway(); 3773 } 3774 return getGateway().get(0); 3775 } 3776 3777 /** 3778 * @return {@link #note} (Descriptive information, usage information or implantation information that is not captured in an existing element.) 3779 */ 3780 public List<Annotation> getNote() { 3781 if (this.note == null) 3782 this.note = new ArrayList<Annotation>(); 3783 return this.note; 3784 } 3785 3786 /** 3787 * @return Returns a reference to <code>this</code> for easy method chaining 3788 */ 3789 public Device setNote(List<Annotation> theNote) { 3790 this.note = theNote; 3791 return this; 3792 } 3793 3794 public boolean hasNote() { 3795 if (this.note == null) 3796 return false; 3797 for (Annotation item : this.note) 3798 if (!item.isEmpty()) 3799 return true; 3800 return false; 3801 } 3802 3803 public Annotation addNote() { //3 3804 Annotation t = new Annotation(); 3805 if (this.note == null) 3806 this.note = new ArrayList<Annotation>(); 3807 this.note.add(t); 3808 return t; 3809 } 3810 3811 public Device addNote(Annotation t) { //3 3812 if (t == null) 3813 return this; 3814 if (this.note == null) 3815 this.note = new ArrayList<Annotation>(); 3816 this.note.add(t); 3817 return this; 3818 } 3819 3820 /** 3821 * @return The first repetition of repeating field {@link #note}, creating it if it does not already exist {3} 3822 */ 3823 public Annotation getNoteFirstRep() { 3824 if (getNote().isEmpty()) { 3825 addNote(); 3826 } 3827 return getNote().get(0); 3828 } 3829 3830 /** 3831 * @return {@link #safety} (Provides additional safety characteristics about a medical device. For example devices containing latex.) 3832 */ 3833 public List<CodeableConcept> getSafety() { 3834 if (this.safety == null) 3835 this.safety = new ArrayList<CodeableConcept>(); 3836 return this.safety; 3837 } 3838 3839 /** 3840 * @return Returns a reference to <code>this</code> for easy method chaining 3841 */ 3842 public Device setSafety(List<CodeableConcept> theSafety) { 3843 this.safety = theSafety; 3844 return this; 3845 } 3846 3847 public boolean hasSafety() { 3848 if (this.safety == null) 3849 return false; 3850 for (CodeableConcept item : this.safety) 3851 if (!item.isEmpty()) 3852 return true; 3853 return false; 3854 } 3855 3856 public CodeableConcept addSafety() { //3 3857 CodeableConcept t = new CodeableConcept(); 3858 if (this.safety == null) 3859 this.safety = new ArrayList<CodeableConcept>(); 3860 this.safety.add(t); 3861 return t; 3862 } 3863 3864 public Device addSafety(CodeableConcept t) { //3 3865 if (t == null) 3866 return this; 3867 if (this.safety == null) 3868 this.safety = new ArrayList<CodeableConcept>(); 3869 this.safety.add(t); 3870 return this; 3871 } 3872 3873 /** 3874 * @return The first repetition of repeating field {@link #safety}, creating it if it does not already exist {3} 3875 */ 3876 public CodeableConcept getSafetyFirstRep() { 3877 if (getSafety().isEmpty()) { 3878 addSafety(); 3879 } 3880 return getSafety().get(0); 3881 } 3882 3883 /** 3884 * @return {@link #parent} (The higher level or encompassing device that this device is a logical part of.) 3885 */ 3886 public Reference getParent() { 3887 if (this.parent == null) 3888 if (Configuration.errorOnAutoCreate()) 3889 throw new Error("Attempt to auto-create Device.parent"); 3890 else if (Configuration.doAutoCreate()) 3891 this.parent = new Reference(); // cc 3892 return this.parent; 3893 } 3894 3895 public boolean hasParent() { 3896 return this.parent != null && !this.parent.isEmpty(); 3897 } 3898 3899 /** 3900 * @param value {@link #parent} (The higher level or encompassing device that this device is a logical part of.) 3901 */ 3902 public Device setParent(Reference value) { 3903 this.parent = value; 3904 return this; 3905 } 3906 3907 protected void listChildren(List<Property> children) { 3908 super.listChildren(children); 3909 children.add(new Property("identifier", "Identifier", "Unique instance identifiers assigned to a device by manufacturers other organizations or owners.", 0, java.lang.Integer.MAX_VALUE, identifier)); 3910 children.add(new Property("displayName", "string", "The name used to display by default when the device is referenced. Based on intent of use by the resource creator, this may reflect one of the names in Device.name, or may be another simple name.", 0, 1, displayName)); 3911 children.add(new Property("definition", "CodeableReference(DeviceDefinition)", "The reference to the definition for the device.", 0, 1, definition)); 3912 children.add(new Property("udiCarrier", "", "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, udiCarrier)); 3913 children.add(new Property("status", "code", "The Device record status. This is not the status of the device like availability.", 0, 1, status)); 3914 children.add(new Property("availabilityStatus", "CodeableConcept", "The availability of the device.", 0, 1, availabilityStatus)); 3915 children.add(new Property("biologicalSourceEvent", "Identifier", "An identifier that supports traceability to the event during which material in this product from one or more biological entities was obtained or pooled.", 0, 1, biologicalSourceEvent)); 3916 children.add(new Property("manufacturer", "string", "A name of the manufacturer or entity legally responsible for the device.", 0, 1, manufacturer)); 3917 children.add(new Property("manufactureDate", "dateTime", "The date and time when the device was manufactured.", 0, 1, manufactureDate)); 3918 children.add(new Property("expirationDate", "dateTime", "The date and time beyond which this device is no longer valid or should not be used (if applicable).", 0, 1, expirationDate)); 3919 children.add(new Property("lotNumber", "string", "Lot number assigned by the manufacturer.", 0, 1, lotNumber)); 3920 children.add(new Property("serialNumber", "string", "The serial number assigned by the organization when the device was manufactured.", 0, 1, serialNumber)); 3921 children.add(new Property("name", "", "This represents the manufacturer's name of the device as provided by the device, from a UDI label, or by a person describing the Device. This typically would be used when a person provides the name(s) or when the device represents one of the names available from DeviceDefinition.", 0, java.lang.Integer.MAX_VALUE, name)); 3922 children.add(new Property("modelNumber", "string", "The manufacturer's model number for the device.", 0, 1, modelNumber)); 3923 children.add(new Property("partNumber", "string", "The part number or catalog number of the device.", 0, 1, partNumber)); 3924 children.add(new Property("category", "CodeableConcept", "Devices may be associated with one or more categories.", 0, java.lang.Integer.MAX_VALUE, category)); 3925 children.add(new Property("type", "CodeableConcept", "The kind or type of device. A device instance may have more than one type - in which case those are the types that apply to the specific instance of the device.", 0, java.lang.Integer.MAX_VALUE, type)); 3926 children.add(new Property("version", "", "The actual design of the device or software version running on the device.", 0, java.lang.Integer.MAX_VALUE, version)); 3927 children.add(new Property("conformsTo", "", "Identifies the standards, specifications, or formal guidances for the capabilities supported by the device. The device may be certified as conformant to these specifications e.g., communication, performance, process, measurement, or specialization standards.", 0, java.lang.Integer.MAX_VALUE, conformsTo)); 3928 children.add(new Property("property", "", "Static or essentially fixed characteristics or features of the device (e.g., time or timing attributes, resolution, accuracy, intended use or instructions for use, and physical attributes) that are not otherwise captured in more specific attributes.", 0, java.lang.Integer.MAX_VALUE, property)); 3929 children.add(new Property("mode", "CodeableConcept", "The designated condition for performing a task with the device.", 0, 1, mode)); 3930 children.add(new Property("cycle", "Count", "The series of occurrences that repeats during the operation of the device.", 0, 1, cycle)); 3931 children.add(new Property("duration", "Duration", "A measurement of time during the device's operation (e.g., days, hours, mins, etc.).", 0, 1, duration)); 3932 children.add(new Property("owner", "Reference(Organization)", "An organization that is responsible for the provision and ongoing maintenance of the device.", 0, 1, owner)); 3933 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)); 3934 children.add(new Property("location", "Reference(Location)", "The place where the device can be found.", 0, 1, location)); 3935 children.add(new Property("url", "uri", "A network address on which the device may be contacted directly.", 0, 1, url)); 3936 children.add(new Property("endpoint", "Reference(Endpoint)", "Technical endpoints providing access to services provided by the device defined at this resource.", 0, java.lang.Integer.MAX_VALUE, endpoint)); 3937 children.add(new Property("gateway", "CodeableReference(Device)", "The linked device acting as a communication controller, data collector, translator, or concentrator for the current device (e.g., mobile phone application that relays a blood pressure device's data).", 0, java.lang.Integer.MAX_VALUE, gateway)); 3938 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)); 3939 children.add(new Property("safety", "CodeableConcept", "Provides additional safety characteristics about a medical device. For example devices containing latex.", 0, java.lang.Integer.MAX_VALUE, safety)); 3940 children.add(new Property("parent", "Reference(Device)", "The higher level or encompassing device that this device is a logical part of.", 0, 1, parent)); 3941 } 3942 3943 @Override 3944 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 3945 switch (_hash) { 3946 case -1618432855: /*identifier*/ return new Property("identifier", "Identifier", "Unique instance identifiers assigned to a device by manufacturers other organizations or owners.", 0, java.lang.Integer.MAX_VALUE, identifier); 3947 case 1714148973: /*displayName*/ return new Property("displayName", "string", "The name used to display by default when the device is referenced. Based on intent of use by the resource creator, this may reflect one of the names in Device.name, or may be another simple name.", 0, 1, displayName); 3948 case -1014418093: /*definition*/ return new Property("definition", "CodeableReference(DeviceDefinition)", "The reference to the definition for the device.", 0, 1, definition); 3949 case -1343558178: /*udiCarrier*/ return new Property("udiCarrier", "", "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, udiCarrier); 3950 case -892481550: /*status*/ return new Property("status", "code", "The Device record status. This is not the status of the device like availability.", 0, 1, status); 3951 case 804659501: /*availabilityStatus*/ return new Property("availabilityStatus", "CodeableConcept", "The availability of the device.", 0, 1, availabilityStatus); 3952 case -654468482: /*biologicalSourceEvent*/ return new Property("biologicalSourceEvent", "Identifier", "An identifier that supports traceability to the event during which material in this product from one or more biological entities was obtained or pooled.", 0, 1, biologicalSourceEvent); 3953 case -1969347631: /*manufacturer*/ return new Property("manufacturer", "string", "A name of the manufacturer or entity legally responsible for the device.", 0, 1, manufacturer); 3954 case 416714767: /*manufactureDate*/ return new Property("manufactureDate", "dateTime", "The date and time when the device was manufactured.", 0, 1, manufactureDate); 3955 case -668811523: /*expirationDate*/ return new Property("expirationDate", "dateTime", "The date and time beyond which this device is no longer valid or should not be used (if applicable).", 0, 1, expirationDate); 3956 case 462547450: /*lotNumber*/ return new Property("lotNumber", "string", "Lot number assigned by the manufacturer.", 0, 1, lotNumber); 3957 case 83787357: /*serialNumber*/ return new Property("serialNumber", "string", "The serial number assigned by the organization when the device was manufactured.", 0, 1, serialNumber); 3958 case 3373707: /*name*/ return new Property("name", "", "This represents the manufacturer's name of the device as provided by the device, from a UDI label, or by a person describing the Device. This typically would be used when a person provides the name(s) or when the device represents one of the names available from DeviceDefinition.", 0, java.lang.Integer.MAX_VALUE, name); 3959 case 346619858: /*modelNumber*/ return new Property("modelNumber", "string", "The manufacturer's model number for the device.", 0, 1, modelNumber); 3960 case -731502308: /*partNumber*/ return new Property("partNumber", "string", "The part number or catalog number of the device.", 0, 1, partNumber); 3961 case 50511102: /*category*/ return new Property("category", "CodeableConcept", "Devices may be associated with one or more categories.", 0, java.lang.Integer.MAX_VALUE, category); 3962 case 3575610: /*type*/ return new Property("type", "CodeableConcept", "The kind or type of device. A device instance may have more than one type - in which case those are the types that apply to the specific instance of the device.", 0, java.lang.Integer.MAX_VALUE, type); 3963 case 351608024: /*version*/ return new Property("version", "", "The actual design of the device or software version running on the device.", 0, java.lang.Integer.MAX_VALUE, version); 3964 case 1014198088: /*conformsTo*/ return new Property("conformsTo", "", "Identifies the standards, specifications, or formal guidances for the capabilities supported by the device. The device may be certified as conformant to these specifications e.g., communication, performance, process, measurement, or specialization standards.", 0, java.lang.Integer.MAX_VALUE, conformsTo); 3965 case -993141291: /*property*/ return new Property("property", "", "Static or essentially fixed characteristics or features of the device (e.g., time or timing attributes, resolution, accuracy, intended use or instructions for use, and physical attributes) that are not otherwise captured in more specific attributes.", 0, java.lang.Integer.MAX_VALUE, property); 3966 case 3357091: /*mode*/ return new Property("mode", "CodeableConcept", "The designated condition for performing a task with the device.", 0, 1, mode); 3967 case 95131878: /*cycle*/ return new Property("cycle", "Count", "The series of occurrences that repeats during the operation of the device.", 0, 1, cycle); 3968 case -1992012396: /*duration*/ return new Property("duration", "Duration", "A measurement of time during the device's operation (e.g., days, hours, mins, etc.).", 0, 1, duration); 3969 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); 3970 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); 3971 case 1901043637: /*location*/ return new Property("location", "Reference(Location)", "The place where the device can be found.", 0, 1, location); 3972 case 116079: /*url*/ return new Property("url", "uri", "A network address on which the device may be contacted directly.", 0, 1, url); 3973 case 1741102485: /*endpoint*/ return new Property("endpoint", "Reference(Endpoint)", "Technical endpoints providing access to services provided by the device defined at this resource.", 0, java.lang.Integer.MAX_VALUE, endpoint); 3974 case -189118908: /*gateway*/ return new Property("gateway", "CodeableReference(Device)", "The linked device acting as a communication controller, data collector, translator, or concentrator for the current device (e.g., mobile phone application that relays a blood pressure device's data).", 0, java.lang.Integer.MAX_VALUE, gateway); 3975 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); 3976 case -909893934: /*safety*/ return new Property("safety", "CodeableConcept", "Provides additional safety characteristics about a medical device. For example devices containing latex.", 0, java.lang.Integer.MAX_VALUE, safety); 3977 case -995424086: /*parent*/ return new Property("parent", "Reference(Device)", "The higher level or encompassing device that this device is a logical part of.", 0, 1, parent); 3978 default: return super.getNamedProperty(_hash, _name, _checkValid); 3979 } 3980 3981 } 3982 3983 @Override 3984 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 3985 switch (hash) { 3986 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 3987 case 1714148973: /*displayName*/ return this.displayName == null ? new Base[0] : new Base[] {this.displayName}; // StringType 3988 case -1014418093: /*definition*/ return this.definition == null ? new Base[0] : new Base[] {this.definition}; // CodeableReference 3989 case -1343558178: /*udiCarrier*/ return this.udiCarrier == null ? new Base[0] : this.udiCarrier.toArray(new Base[this.udiCarrier.size()]); // DeviceUdiCarrierComponent 3990 case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<FHIRDeviceStatus> 3991 case 804659501: /*availabilityStatus*/ return this.availabilityStatus == null ? new Base[0] : new Base[] {this.availabilityStatus}; // CodeableConcept 3992 case -654468482: /*biologicalSourceEvent*/ return this.biologicalSourceEvent == null ? new Base[0] : new Base[] {this.biologicalSourceEvent}; // Identifier 3993 case -1969347631: /*manufacturer*/ return this.manufacturer == null ? new Base[0] : new Base[] {this.manufacturer}; // StringType 3994 case 416714767: /*manufactureDate*/ return this.manufactureDate == null ? new Base[0] : new Base[] {this.manufactureDate}; // DateTimeType 3995 case -668811523: /*expirationDate*/ return this.expirationDate == null ? new Base[0] : new Base[] {this.expirationDate}; // DateTimeType 3996 case 462547450: /*lotNumber*/ return this.lotNumber == null ? new Base[0] : new Base[] {this.lotNumber}; // StringType 3997 case 83787357: /*serialNumber*/ return this.serialNumber == null ? new Base[0] : new Base[] {this.serialNumber}; // StringType 3998 case 3373707: /*name*/ return this.name == null ? new Base[0] : this.name.toArray(new Base[this.name.size()]); // DeviceNameComponent 3999 case 346619858: /*modelNumber*/ return this.modelNumber == null ? new Base[0] : new Base[] {this.modelNumber}; // StringType 4000 case -731502308: /*partNumber*/ return this.partNumber == null ? new Base[0] : new Base[] {this.partNumber}; // StringType 4001 case 50511102: /*category*/ return this.category == null ? new Base[0] : this.category.toArray(new Base[this.category.size()]); // CodeableConcept 4002 case 3575610: /*type*/ return this.type == null ? new Base[0] : this.type.toArray(new Base[this.type.size()]); // CodeableConcept 4003 case 351608024: /*version*/ return this.version == null ? new Base[0] : this.version.toArray(new Base[this.version.size()]); // DeviceVersionComponent 4004 case 1014198088: /*conformsTo*/ return this.conformsTo == null ? new Base[0] : this.conformsTo.toArray(new Base[this.conformsTo.size()]); // DeviceConformsToComponent 4005 case -993141291: /*property*/ return this.property == null ? new Base[0] : this.property.toArray(new Base[this.property.size()]); // DevicePropertyComponent 4006 case 3357091: /*mode*/ return this.mode == null ? new Base[0] : new Base[] {this.mode}; // CodeableConcept 4007 case 95131878: /*cycle*/ return this.cycle == null ? new Base[0] : new Base[] {this.cycle}; // Count 4008 case -1992012396: /*duration*/ return this.duration == null ? new Base[0] : new Base[] {this.duration}; // Duration 4009 case 106164915: /*owner*/ return this.owner == null ? new Base[0] : new Base[] {this.owner}; // Reference 4010 case 951526432: /*contact*/ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // ContactPoint 4011 case 1901043637: /*location*/ return this.location == null ? new Base[0] : new Base[] {this.location}; // Reference 4012 case 116079: /*url*/ return this.url == null ? new Base[0] : new Base[] {this.url}; // UriType 4013 case 1741102485: /*endpoint*/ return this.endpoint == null ? new Base[0] : this.endpoint.toArray(new Base[this.endpoint.size()]); // Reference 4014 case -189118908: /*gateway*/ return this.gateway == null ? new Base[0] : this.gateway.toArray(new Base[this.gateway.size()]); // CodeableReference 4015 case 3387378: /*note*/ return this.note == null ? new Base[0] : this.note.toArray(new Base[this.note.size()]); // Annotation 4016 case -909893934: /*safety*/ return this.safety == null ? new Base[0] : this.safety.toArray(new Base[this.safety.size()]); // CodeableConcept 4017 case -995424086: /*parent*/ return this.parent == null ? new Base[0] : new Base[] {this.parent}; // Reference 4018 default: return super.getProperty(hash, name, checkValid); 4019 } 4020 4021 } 4022 4023 @Override 4024 public Base setProperty(int hash, String name, Base value) throws FHIRException { 4025 switch (hash) { 4026 case -1618432855: // identifier 4027 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier 4028 return value; 4029 case 1714148973: // displayName 4030 this.displayName = TypeConvertor.castToString(value); // StringType 4031 return value; 4032 case -1014418093: // definition 4033 this.definition = TypeConvertor.castToCodeableReference(value); // CodeableReference 4034 return value; 4035 case -1343558178: // udiCarrier 4036 this.getUdiCarrier().add((DeviceUdiCarrierComponent) value); // DeviceUdiCarrierComponent 4037 return value; 4038 case -892481550: // status 4039 value = new FHIRDeviceStatusEnumFactory().fromType(TypeConvertor.castToCode(value)); 4040 this.status = (Enumeration) value; // Enumeration<FHIRDeviceStatus> 4041 return value; 4042 case 804659501: // availabilityStatus 4043 this.availabilityStatus = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 4044 return value; 4045 case -654468482: // biologicalSourceEvent 4046 this.biologicalSourceEvent = TypeConvertor.castToIdentifier(value); // Identifier 4047 return value; 4048 case -1969347631: // manufacturer 4049 this.manufacturer = TypeConvertor.castToString(value); // StringType 4050 return value; 4051 case 416714767: // manufactureDate 4052 this.manufactureDate = TypeConvertor.castToDateTime(value); // DateTimeType 4053 return value; 4054 case -668811523: // expirationDate 4055 this.expirationDate = TypeConvertor.castToDateTime(value); // DateTimeType 4056 return value; 4057 case 462547450: // lotNumber 4058 this.lotNumber = TypeConvertor.castToString(value); // StringType 4059 return value; 4060 case 83787357: // serialNumber 4061 this.serialNumber = TypeConvertor.castToString(value); // StringType 4062 return value; 4063 case 3373707: // name 4064 this.getName().add((DeviceNameComponent) value); // DeviceNameComponent 4065 return value; 4066 case 346619858: // modelNumber 4067 this.modelNumber = TypeConvertor.castToString(value); // StringType 4068 return value; 4069 case -731502308: // partNumber 4070 this.partNumber = TypeConvertor.castToString(value); // StringType 4071 return value; 4072 case 50511102: // category 4073 this.getCategory().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 4074 return value; 4075 case 3575610: // type 4076 this.getType().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 4077 return value; 4078 case 351608024: // version 4079 this.getVersion().add((DeviceVersionComponent) value); // DeviceVersionComponent 4080 return value; 4081 case 1014198088: // conformsTo 4082 this.getConformsTo().add((DeviceConformsToComponent) value); // DeviceConformsToComponent 4083 return value; 4084 case -993141291: // property 4085 this.getProperty().add((DevicePropertyComponent) value); // DevicePropertyComponent 4086 return value; 4087 case 3357091: // mode 4088 this.mode = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 4089 return value; 4090 case 95131878: // cycle 4091 this.cycle = TypeConvertor.castToCount(value); // Count 4092 return value; 4093 case -1992012396: // duration 4094 this.duration = TypeConvertor.castToDuration(value); // Duration 4095 return value; 4096 case 106164915: // owner 4097 this.owner = TypeConvertor.castToReference(value); // Reference 4098 return value; 4099 case 951526432: // contact 4100 this.getContact().add(TypeConvertor.castToContactPoint(value)); // ContactPoint 4101 return value; 4102 case 1901043637: // location 4103 this.location = TypeConvertor.castToReference(value); // Reference 4104 return value; 4105 case 116079: // url 4106 this.url = TypeConvertor.castToUri(value); // UriType 4107 return value; 4108 case 1741102485: // endpoint 4109 this.getEndpoint().add(TypeConvertor.castToReference(value)); // Reference 4110 return value; 4111 case -189118908: // gateway 4112 this.getGateway().add(TypeConvertor.castToCodeableReference(value)); // CodeableReference 4113 return value; 4114 case 3387378: // note 4115 this.getNote().add(TypeConvertor.castToAnnotation(value)); // Annotation 4116 return value; 4117 case -909893934: // safety 4118 this.getSafety().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 4119 return value; 4120 case -995424086: // parent 4121 this.parent = TypeConvertor.castToReference(value); // Reference 4122 return value; 4123 default: return super.setProperty(hash, name, value); 4124 } 4125 4126 } 4127 4128 @Override 4129 public Base setProperty(String name, Base value) throws FHIRException { 4130 if (name.equals("identifier")) { 4131 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); 4132 } else if (name.equals("displayName")) { 4133 this.displayName = TypeConvertor.castToString(value); // StringType 4134 } else if (name.equals("definition")) { 4135 this.definition = TypeConvertor.castToCodeableReference(value); // CodeableReference 4136 } else if (name.equals("udiCarrier")) { 4137 this.getUdiCarrier().add((DeviceUdiCarrierComponent) value); 4138 } else if (name.equals("status")) { 4139 value = new FHIRDeviceStatusEnumFactory().fromType(TypeConvertor.castToCode(value)); 4140 this.status = (Enumeration) value; // Enumeration<FHIRDeviceStatus> 4141 } else if (name.equals("availabilityStatus")) { 4142 this.availabilityStatus = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 4143 } else if (name.equals("biologicalSourceEvent")) { 4144 this.biologicalSourceEvent = TypeConvertor.castToIdentifier(value); // Identifier 4145 } else if (name.equals("manufacturer")) { 4146 this.manufacturer = TypeConvertor.castToString(value); // StringType 4147 } else if (name.equals("manufactureDate")) { 4148 this.manufactureDate = TypeConvertor.castToDateTime(value); // DateTimeType 4149 } else if (name.equals("expirationDate")) { 4150 this.expirationDate = TypeConvertor.castToDateTime(value); // DateTimeType 4151 } else if (name.equals("lotNumber")) { 4152 this.lotNumber = TypeConvertor.castToString(value); // StringType 4153 } else if (name.equals("serialNumber")) { 4154 this.serialNumber = TypeConvertor.castToString(value); // StringType 4155 } else if (name.equals("name")) { 4156 this.getName().add((DeviceNameComponent) value); 4157 } else if (name.equals("modelNumber")) { 4158 this.modelNumber = TypeConvertor.castToString(value); // StringType 4159 } else if (name.equals("partNumber")) { 4160 this.partNumber = TypeConvertor.castToString(value); // StringType 4161 } else if (name.equals("category")) { 4162 this.getCategory().add(TypeConvertor.castToCodeableConcept(value)); 4163 } else if (name.equals("type")) { 4164 this.getType().add(TypeConvertor.castToCodeableConcept(value)); 4165 } else if (name.equals("version")) { 4166 this.getVersion().add((DeviceVersionComponent) value); 4167 } else if (name.equals("conformsTo")) { 4168 this.getConformsTo().add((DeviceConformsToComponent) value); 4169 } else if (name.equals("property")) { 4170 this.getProperty().add((DevicePropertyComponent) value); 4171 } else if (name.equals("mode")) { 4172 this.mode = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 4173 } else if (name.equals("cycle")) { 4174 this.cycle = TypeConvertor.castToCount(value); // Count 4175 } else if (name.equals("duration")) { 4176 this.duration = TypeConvertor.castToDuration(value); // Duration 4177 } else if (name.equals("owner")) { 4178 this.owner = TypeConvertor.castToReference(value); // Reference 4179 } else if (name.equals("contact")) { 4180 this.getContact().add(TypeConvertor.castToContactPoint(value)); 4181 } else if (name.equals("location")) { 4182 this.location = TypeConvertor.castToReference(value); // Reference 4183 } else if (name.equals("url")) { 4184 this.url = TypeConvertor.castToUri(value); // UriType 4185 } else if (name.equals("endpoint")) { 4186 this.getEndpoint().add(TypeConvertor.castToReference(value)); 4187 } else if (name.equals("gateway")) { 4188 this.getGateway().add(TypeConvertor.castToCodeableReference(value)); 4189 } else if (name.equals("note")) { 4190 this.getNote().add(TypeConvertor.castToAnnotation(value)); 4191 } else if (name.equals("safety")) { 4192 this.getSafety().add(TypeConvertor.castToCodeableConcept(value)); 4193 } else if (name.equals("parent")) { 4194 this.parent = TypeConvertor.castToReference(value); // Reference 4195 } else 4196 return super.setProperty(name, value); 4197 return value; 4198 } 4199 4200 @Override 4201 public void removeChild(String name, Base value) throws FHIRException { 4202 if (name.equals("identifier")) { 4203 this.getIdentifier().remove(value); 4204 } else if (name.equals("displayName")) { 4205 this.displayName = null; 4206 } else if (name.equals("definition")) { 4207 this.definition = null; 4208 } else if (name.equals("udiCarrier")) { 4209 this.getUdiCarrier().remove((DeviceUdiCarrierComponent) value); 4210 } else if (name.equals("status")) { 4211 value = new FHIRDeviceStatusEnumFactory().fromType(TypeConvertor.castToCode(value)); 4212 this.status = (Enumeration) value; // Enumeration<FHIRDeviceStatus> 4213 } else if (name.equals("availabilityStatus")) { 4214 this.availabilityStatus = null; 4215 } else if (name.equals("biologicalSourceEvent")) { 4216 this.biologicalSourceEvent = null; 4217 } else if (name.equals("manufacturer")) { 4218 this.manufacturer = null; 4219 } else if (name.equals("manufactureDate")) { 4220 this.manufactureDate = null; 4221 } else if (name.equals("expirationDate")) { 4222 this.expirationDate = null; 4223 } else if (name.equals("lotNumber")) { 4224 this.lotNumber = null; 4225 } else if (name.equals("serialNumber")) { 4226 this.serialNumber = null; 4227 } else if (name.equals("name")) { 4228 this.getName().remove((DeviceNameComponent) value); 4229 } else if (name.equals("modelNumber")) { 4230 this.modelNumber = null; 4231 } else if (name.equals("partNumber")) { 4232 this.partNumber = null; 4233 } else if (name.equals("category")) { 4234 this.getCategory().remove(value); 4235 } else if (name.equals("type")) { 4236 this.getType().remove(value); 4237 } else if (name.equals("version")) { 4238 this.getVersion().remove((DeviceVersionComponent) value); 4239 } else if (name.equals("conformsTo")) { 4240 this.getConformsTo().remove((DeviceConformsToComponent) value); 4241 } else if (name.equals("property")) { 4242 this.getProperty().remove((DevicePropertyComponent) value); 4243 } else if (name.equals("mode")) { 4244 this.mode = null; 4245 } else if (name.equals("cycle")) { 4246 this.cycle = null; 4247 } else if (name.equals("duration")) { 4248 this.duration = null; 4249 } else if (name.equals("owner")) { 4250 this.owner = null; 4251 } else if (name.equals("contact")) { 4252 this.getContact().remove(value); 4253 } else if (name.equals("location")) { 4254 this.location = null; 4255 } else if (name.equals("url")) { 4256 this.url = null; 4257 } else if (name.equals("endpoint")) { 4258 this.getEndpoint().remove(value); 4259 } else if (name.equals("gateway")) { 4260 this.getGateway().remove(value); 4261 } else if (name.equals("note")) { 4262 this.getNote().remove(value); 4263 } else if (name.equals("safety")) { 4264 this.getSafety().remove(value); 4265 } else if (name.equals("parent")) { 4266 this.parent = null; 4267 } else 4268 super.removeChild(name, value); 4269 4270 } 4271 4272 @Override 4273 public Base makeProperty(int hash, String name) throws FHIRException { 4274 switch (hash) { 4275 case -1618432855: return addIdentifier(); 4276 case 1714148973: return getDisplayNameElement(); 4277 case -1014418093: return getDefinition(); 4278 case -1343558178: return addUdiCarrier(); 4279 case -892481550: return getStatusElement(); 4280 case 804659501: return getAvailabilityStatus(); 4281 case -654468482: return getBiologicalSourceEvent(); 4282 case -1969347631: return getManufacturerElement(); 4283 case 416714767: return getManufactureDateElement(); 4284 case -668811523: return getExpirationDateElement(); 4285 case 462547450: return getLotNumberElement(); 4286 case 83787357: return getSerialNumberElement(); 4287 case 3373707: return addName(); 4288 case 346619858: return getModelNumberElement(); 4289 case -731502308: return getPartNumberElement(); 4290 case 50511102: return addCategory(); 4291 case 3575610: return addType(); 4292 case 351608024: return addVersion(); 4293 case 1014198088: return addConformsTo(); 4294 case -993141291: return addProperty(); 4295 case 3357091: return getMode(); 4296 case 95131878: return getCycle(); 4297 case -1992012396: return getDuration(); 4298 case 106164915: return getOwner(); 4299 case 951526432: return addContact(); 4300 case 1901043637: return getLocation(); 4301 case 116079: return getUrlElement(); 4302 case 1741102485: return addEndpoint(); 4303 case -189118908: return addGateway(); 4304 case 3387378: return addNote(); 4305 case -909893934: return addSafety(); 4306 case -995424086: return getParent(); 4307 default: return super.makeProperty(hash, name); 4308 } 4309 4310 } 4311 4312 @Override 4313 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 4314 switch (hash) { 4315 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 4316 case 1714148973: /*displayName*/ return new String[] {"string"}; 4317 case -1014418093: /*definition*/ return new String[] {"CodeableReference"}; 4318 case -1343558178: /*udiCarrier*/ return new String[] {}; 4319 case -892481550: /*status*/ return new String[] {"code"}; 4320 case 804659501: /*availabilityStatus*/ return new String[] {"CodeableConcept"}; 4321 case -654468482: /*biologicalSourceEvent*/ return new String[] {"Identifier"}; 4322 case -1969347631: /*manufacturer*/ return new String[] {"string"}; 4323 case 416714767: /*manufactureDate*/ return new String[] {"dateTime"}; 4324 case -668811523: /*expirationDate*/ return new String[] {"dateTime"}; 4325 case 462547450: /*lotNumber*/ return new String[] {"string"}; 4326 case 83787357: /*serialNumber*/ return new String[] {"string"}; 4327 case 3373707: /*name*/ return new String[] {}; 4328 case 346619858: /*modelNumber*/ return new String[] {"string"}; 4329 case -731502308: /*partNumber*/ return new String[] {"string"}; 4330 case 50511102: /*category*/ return new String[] {"CodeableConcept"}; 4331 case 3575610: /*type*/ return new String[] {"CodeableConcept"}; 4332 case 351608024: /*version*/ return new String[] {}; 4333 case 1014198088: /*conformsTo*/ return new String[] {}; 4334 case -993141291: /*property*/ return new String[] {}; 4335 case 3357091: /*mode*/ return new String[] {"CodeableConcept"}; 4336 case 95131878: /*cycle*/ return new String[] {"Count"}; 4337 case -1992012396: /*duration*/ return new String[] {"Duration"}; 4338 case 106164915: /*owner*/ return new String[] {"Reference"}; 4339 case 951526432: /*contact*/ return new String[] {"ContactPoint"}; 4340 case 1901043637: /*location*/ return new String[] {"Reference"}; 4341 case 116079: /*url*/ return new String[] {"uri"}; 4342 case 1741102485: /*endpoint*/ return new String[] {"Reference"}; 4343 case -189118908: /*gateway*/ return new String[] {"CodeableReference"}; 4344 case 3387378: /*note*/ return new String[] {"Annotation"}; 4345 case -909893934: /*safety*/ return new String[] {"CodeableConcept"}; 4346 case -995424086: /*parent*/ return new String[] {"Reference"}; 4347 default: return super.getTypesForProperty(hash, name); 4348 } 4349 4350 } 4351 4352 @Override 4353 public Base addChild(String name) throws FHIRException { 4354 if (name.equals("identifier")) { 4355 return addIdentifier(); 4356 } 4357 else if (name.equals("displayName")) { 4358 throw new FHIRException("Cannot call addChild on a singleton property Device.displayName"); 4359 } 4360 else if (name.equals("definition")) { 4361 this.definition = new CodeableReference(); 4362 return this.definition; 4363 } 4364 else if (name.equals("udiCarrier")) { 4365 return addUdiCarrier(); 4366 } 4367 else if (name.equals("status")) { 4368 throw new FHIRException("Cannot call addChild on a singleton property Device.status"); 4369 } 4370 else if (name.equals("availabilityStatus")) { 4371 this.availabilityStatus = new CodeableConcept(); 4372 return this.availabilityStatus; 4373 } 4374 else if (name.equals("biologicalSourceEvent")) { 4375 this.biologicalSourceEvent = new Identifier(); 4376 return this.biologicalSourceEvent; 4377 } 4378 else if (name.equals("manufacturer")) { 4379 throw new FHIRException("Cannot call addChild on a singleton property Device.manufacturer"); 4380 } 4381 else if (name.equals("manufactureDate")) { 4382 throw new FHIRException("Cannot call addChild on a singleton property Device.manufactureDate"); 4383 } 4384 else if (name.equals("expirationDate")) { 4385 throw new FHIRException("Cannot call addChild on a singleton property Device.expirationDate"); 4386 } 4387 else if (name.equals("lotNumber")) { 4388 throw new FHIRException("Cannot call addChild on a singleton property Device.lotNumber"); 4389 } 4390 else if (name.equals("serialNumber")) { 4391 throw new FHIRException("Cannot call addChild on a singleton property Device.serialNumber"); 4392 } 4393 else if (name.equals("name")) { 4394 return addName(); 4395 } 4396 else if (name.equals("modelNumber")) { 4397 throw new FHIRException("Cannot call addChild on a singleton property Device.modelNumber"); 4398 } 4399 else if (name.equals("partNumber")) { 4400 throw new FHIRException("Cannot call addChild on a singleton property Device.partNumber"); 4401 } 4402 else if (name.equals("category")) { 4403 return addCategory(); 4404 } 4405 else if (name.equals("type")) { 4406 return addType(); 4407 } 4408 else if (name.equals("version")) { 4409 return addVersion(); 4410 } 4411 else if (name.equals("conformsTo")) { 4412 return addConformsTo(); 4413 } 4414 else if (name.equals("property")) { 4415 return addProperty(); 4416 } 4417 else if (name.equals("mode")) { 4418 this.mode = new CodeableConcept(); 4419 return this.mode; 4420 } 4421 else if (name.equals("cycle")) { 4422 this.cycle = new Count(); 4423 return this.cycle; 4424 } 4425 else if (name.equals("duration")) { 4426 this.duration = new Duration(); 4427 return this.duration; 4428 } 4429 else if (name.equals("owner")) { 4430 this.owner = new Reference(); 4431 return this.owner; 4432 } 4433 else if (name.equals("contact")) { 4434 return addContact(); 4435 } 4436 else if (name.equals("location")) { 4437 this.location = new Reference(); 4438 return this.location; 4439 } 4440 else if (name.equals("url")) { 4441 throw new FHIRException("Cannot call addChild on a singleton property Device.url"); 4442 } 4443 else if (name.equals("endpoint")) { 4444 return addEndpoint(); 4445 } 4446 else if (name.equals("gateway")) { 4447 return addGateway(); 4448 } 4449 else if (name.equals("note")) { 4450 return addNote(); 4451 } 4452 else if (name.equals("safety")) { 4453 return addSafety(); 4454 } 4455 else if (name.equals("parent")) { 4456 this.parent = new Reference(); 4457 return this.parent; 4458 } 4459 else 4460 return super.addChild(name); 4461 } 4462 4463 public String fhirType() { 4464 return "Device"; 4465 4466 } 4467 4468 public Device copy() { 4469 Device dst = new Device(); 4470 copyValues(dst); 4471 return dst; 4472 } 4473 4474 public void copyValues(Device dst) { 4475 super.copyValues(dst); 4476 if (identifier != null) { 4477 dst.identifier = new ArrayList<Identifier>(); 4478 for (Identifier i : identifier) 4479 dst.identifier.add(i.copy()); 4480 }; 4481 dst.displayName = displayName == null ? null : displayName.copy(); 4482 dst.definition = definition == null ? null : definition.copy(); 4483 if (udiCarrier != null) { 4484 dst.udiCarrier = new ArrayList<DeviceUdiCarrierComponent>(); 4485 for (DeviceUdiCarrierComponent i : udiCarrier) 4486 dst.udiCarrier.add(i.copy()); 4487 }; 4488 dst.status = status == null ? null : status.copy(); 4489 dst.availabilityStatus = availabilityStatus == null ? null : availabilityStatus.copy(); 4490 dst.biologicalSourceEvent = biologicalSourceEvent == null ? null : biologicalSourceEvent.copy(); 4491 dst.manufacturer = manufacturer == null ? null : manufacturer.copy(); 4492 dst.manufactureDate = manufactureDate == null ? null : manufactureDate.copy(); 4493 dst.expirationDate = expirationDate == null ? null : expirationDate.copy(); 4494 dst.lotNumber = lotNumber == null ? null : lotNumber.copy(); 4495 dst.serialNumber = serialNumber == null ? null : serialNumber.copy(); 4496 if (name != null) { 4497 dst.name = new ArrayList<DeviceNameComponent>(); 4498 for (DeviceNameComponent i : name) 4499 dst.name.add(i.copy()); 4500 }; 4501 dst.modelNumber = modelNumber == null ? null : modelNumber.copy(); 4502 dst.partNumber = partNumber == null ? null : partNumber.copy(); 4503 if (category != null) { 4504 dst.category = new ArrayList<CodeableConcept>(); 4505 for (CodeableConcept i : category) 4506 dst.category.add(i.copy()); 4507 }; 4508 if (type != null) { 4509 dst.type = new ArrayList<CodeableConcept>(); 4510 for (CodeableConcept i : type) 4511 dst.type.add(i.copy()); 4512 }; 4513 if (version != null) { 4514 dst.version = new ArrayList<DeviceVersionComponent>(); 4515 for (DeviceVersionComponent i : version) 4516 dst.version.add(i.copy()); 4517 }; 4518 if (conformsTo != null) { 4519 dst.conformsTo = new ArrayList<DeviceConformsToComponent>(); 4520 for (DeviceConformsToComponent i : conformsTo) 4521 dst.conformsTo.add(i.copy()); 4522 }; 4523 if (property != null) { 4524 dst.property = new ArrayList<DevicePropertyComponent>(); 4525 for (DevicePropertyComponent i : property) 4526 dst.property.add(i.copy()); 4527 }; 4528 dst.mode = mode == null ? null : mode.copy(); 4529 dst.cycle = cycle == null ? null : cycle.copy(); 4530 dst.duration = duration == null ? null : duration.copy(); 4531 dst.owner = owner == null ? null : owner.copy(); 4532 if (contact != null) { 4533 dst.contact = new ArrayList<ContactPoint>(); 4534 for (ContactPoint i : contact) 4535 dst.contact.add(i.copy()); 4536 }; 4537 dst.location = location == null ? null : location.copy(); 4538 dst.url = url == null ? null : url.copy(); 4539 if (endpoint != null) { 4540 dst.endpoint = new ArrayList<Reference>(); 4541 for (Reference i : endpoint) 4542 dst.endpoint.add(i.copy()); 4543 }; 4544 if (gateway != null) { 4545 dst.gateway = new ArrayList<CodeableReference>(); 4546 for (CodeableReference i : gateway) 4547 dst.gateway.add(i.copy()); 4548 }; 4549 if (note != null) { 4550 dst.note = new ArrayList<Annotation>(); 4551 for (Annotation i : note) 4552 dst.note.add(i.copy()); 4553 }; 4554 if (safety != null) { 4555 dst.safety = new ArrayList<CodeableConcept>(); 4556 for (CodeableConcept i : safety) 4557 dst.safety.add(i.copy()); 4558 }; 4559 dst.parent = parent == null ? null : parent.copy(); 4560 } 4561 4562 protected Device typedCopy() { 4563 return copy(); 4564 } 4565 4566 @Override 4567 public boolean equalsDeep(Base other_) { 4568 if (!super.equalsDeep(other_)) 4569 return false; 4570 if (!(other_ instanceof Device)) 4571 return false; 4572 Device o = (Device) other_; 4573 return compareDeep(identifier, o.identifier, true) && compareDeep(displayName, o.displayName, true) 4574 && compareDeep(definition, o.definition, true) && compareDeep(udiCarrier, o.udiCarrier, true) && compareDeep(status, o.status, true) 4575 && compareDeep(availabilityStatus, o.availabilityStatus, true) && compareDeep(biologicalSourceEvent, o.biologicalSourceEvent, true) 4576 && compareDeep(manufacturer, o.manufacturer, true) && compareDeep(manufactureDate, o.manufactureDate, true) 4577 && compareDeep(expirationDate, o.expirationDate, true) && compareDeep(lotNumber, o.lotNumber, true) 4578 && compareDeep(serialNumber, o.serialNumber, true) && compareDeep(name, o.name, true) && compareDeep(modelNumber, o.modelNumber, true) 4579 && compareDeep(partNumber, o.partNumber, true) && compareDeep(category, o.category, true) && compareDeep(type, o.type, true) 4580 && compareDeep(version, o.version, true) && compareDeep(conformsTo, o.conformsTo, true) && compareDeep(property, o.property, true) 4581 && compareDeep(mode, o.mode, true) && compareDeep(cycle, o.cycle, true) && compareDeep(duration, o.duration, true) 4582 && compareDeep(owner, o.owner, true) && compareDeep(contact, o.contact, true) && compareDeep(location, o.location, true) 4583 && compareDeep(url, o.url, true) && compareDeep(endpoint, o.endpoint, true) && compareDeep(gateway, o.gateway, true) 4584 && compareDeep(note, o.note, true) && compareDeep(safety, o.safety, true) && compareDeep(parent, o.parent, true) 4585 ; 4586 } 4587 4588 @Override 4589 public boolean equalsShallow(Base other_) { 4590 if (!super.equalsShallow(other_)) 4591 return false; 4592 if (!(other_ instanceof Device)) 4593 return false; 4594 Device o = (Device) other_; 4595 return compareValues(displayName, o.displayName, true) && compareValues(status, o.status, true) && compareValues(manufacturer, o.manufacturer, true) 4596 && compareValues(manufactureDate, o.manufactureDate, true) && compareValues(expirationDate, o.expirationDate, true) 4597 && compareValues(lotNumber, o.lotNumber, true) && compareValues(serialNumber, o.serialNumber, true) 4598 && compareValues(modelNumber, o.modelNumber, true) && compareValues(partNumber, o.partNumber, true) 4599 && compareValues(url, o.url, true); 4600 } 4601 4602 public boolean isEmpty() { 4603 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, displayName, definition 4604 , udiCarrier, status, availabilityStatus, biologicalSourceEvent, manufacturer, manufactureDate 4605 , expirationDate, lotNumber, serialNumber, name, modelNumber, partNumber, category 4606 , type, version, conformsTo, property, mode, cycle, duration, owner, contact 4607 , location, url, endpoint, gateway, note, safety, parent); 4608 } 4609 4610 @Override 4611 public ResourceType getResourceType() { 4612 return ResourceType.Device; 4613 } 4614 4615 /** 4616 * Search parameter: <b>biological-source-event</b> 4617 * <p> 4618 * Description: <b>The biological source for the device</b><br> 4619 * Type: <b>token</b><br> 4620 * Path: <b>Device.biologicalSourceEvent</b><br> 4621 * </p> 4622 */ 4623 @SearchParamDefinition(name="biological-source-event", path="Device.biologicalSourceEvent", description="The biological source for the device", type="token" ) 4624 public static final String SP_BIOLOGICAL_SOURCE_EVENT = "biological-source-event"; 4625 /** 4626 * <b>Fluent Client</b> search parameter constant for <b>biological-source-event</b> 4627 * <p> 4628 * Description: <b>The biological source for the device</b><br> 4629 * Type: <b>token</b><br> 4630 * Path: <b>Device.biologicalSourceEvent</b><br> 4631 * </p> 4632 */ 4633 public static final ca.uhn.fhir.rest.gclient.TokenClientParam BIOLOGICAL_SOURCE_EVENT = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_BIOLOGICAL_SOURCE_EVENT); 4634 4635 /** 4636 * Search parameter: <b>code-value-concept</b> 4637 * <p> 4638 * Description: <b>Code and value parameter pair</b><br> 4639 * Type: <b>composite</b><br> 4640 * Path: <b>Device</b><br> 4641 * </p> 4642 */ 4643 @SearchParamDefinition(name="code-value-concept", path="Device", description="Code and value parameter pair", type="composite", compositeOf={"specification", "version"} ) 4644 public static final String SP_CODE_VALUE_CONCEPT = "code-value-concept"; 4645 /** 4646 * <b>Fluent Client</b> search parameter constant for <b>code-value-concept</b> 4647 * <p> 4648 * Description: <b>Code and value parameter pair</b><br> 4649 * Type: <b>composite</b><br> 4650 * Path: <b>Device</b><br> 4651 * </p> 4652 */ 4653 public static final ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.StringClientParam> CODE_VALUE_CONCEPT = new ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.StringClientParam>(SP_CODE_VALUE_CONCEPT); 4654 4655 /** 4656 * Search parameter: <b>code</b> 4657 * <p> 4658 * Description: <b>The definition / type of the device (code)</b><br> 4659 * Type: <b>token</b><br> 4660 * Path: <b>Device.definition.concept</b><br> 4661 * </p> 4662 */ 4663 @SearchParamDefinition(name="code", path="Device.definition.concept", description="The definition / type of the device (code)", type="token" ) 4664 public static final String SP_CODE = "code"; 4665 /** 4666 * <b>Fluent Client</b> search parameter constant for <b>code</b> 4667 * <p> 4668 * Description: <b>The definition / type of the device (code)</b><br> 4669 * Type: <b>token</b><br> 4670 * Path: <b>Device.definition.concept</b><br> 4671 * </p> 4672 */ 4673 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CODE); 4674 4675 /** 4676 * Search parameter: <b>definition</b> 4677 * <p> 4678 * Description: <b>The definition / type of the device</b><br> 4679 * Type: <b>reference</b><br> 4680 * Path: <b>Device.definition.reference</b><br> 4681 * </p> 4682 */ 4683 @SearchParamDefinition(name="definition", path="Device.definition.reference", description="The definition / type of the device", type="reference", target={DeviceDefinition.class } ) 4684 public static final String SP_DEFINITION = "definition"; 4685 /** 4686 * <b>Fluent Client</b> search parameter constant for <b>definition</b> 4687 * <p> 4688 * Description: <b>The definition / type of the device</b><br> 4689 * Type: <b>reference</b><br> 4690 * Path: <b>Device.definition.reference</b><br> 4691 * </p> 4692 */ 4693 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam DEFINITION = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_DEFINITION); 4694 4695/** 4696 * Constant for fluent queries to be used to add include statements. Specifies 4697 * the path value of "<b>Device:definition</b>". 4698 */ 4699 public static final ca.uhn.fhir.model.api.Include INCLUDE_DEFINITION = new ca.uhn.fhir.model.api.Include("Device:definition").toLocked(); 4700 4701 /** 4702 * Search parameter: <b>device-name</b> 4703 * <p> 4704 * Description: <b>A server defined search that may match any of the string fields in Device.name or Device.type.</b><br> 4705 * Type: <b>string</b><br> 4706 * Path: <b>Device.name.value | Device.type.coding.display | Device.type.text</b><br> 4707 * </p> 4708 */ 4709 @SearchParamDefinition(name="device-name", path="Device.name.value | Device.type.coding.display | Device.type.text", description="A server defined search that may match any of the string fields in Device.name or Device.type.", type="string" ) 4710 public static final String SP_DEVICE_NAME = "device-name"; 4711 /** 4712 * <b>Fluent Client</b> search parameter constant for <b>device-name</b> 4713 * <p> 4714 * Description: <b>A server defined search that may match any of the string fields in Device.name or Device.type.</b><br> 4715 * Type: <b>string</b><br> 4716 * Path: <b>Device.name.value | Device.type.coding.display | Device.type.text</b><br> 4717 * </p> 4718 */ 4719 public static final ca.uhn.fhir.rest.gclient.StringClientParam DEVICE_NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_DEVICE_NAME); 4720 4721 /** 4722 * Search parameter: <b>expiration-date</b> 4723 * <p> 4724 * Description: <b>The expiration date of the device</b><br> 4725 * Type: <b>date</b><br> 4726 * Path: <b>Device.expirationDate</b><br> 4727 * </p> 4728 */ 4729 @SearchParamDefinition(name="expiration-date", path="Device.expirationDate", description="The expiration date of the device", type="date" ) 4730 public static final String SP_EXPIRATION_DATE = "expiration-date"; 4731 /** 4732 * <b>Fluent Client</b> search parameter constant for <b>expiration-date</b> 4733 * <p> 4734 * Description: <b>The expiration date of the device</b><br> 4735 * Type: <b>date</b><br> 4736 * Path: <b>Device.expirationDate</b><br> 4737 * </p> 4738 */ 4739 public static final ca.uhn.fhir.rest.gclient.DateClientParam EXPIRATION_DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_EXPIRATION_DATE); 4740 4741 /** 4742 * Search parameter: <b>identifier</b> 4743 * <p> 4744 * Description: <b>Instance id from manufacturer, owner, and others</b><br> 4745 * Type: <b>token</b><br> 4746 * Path: <b>Device.identifier</b><br> 4747 * </p> 4748 */ 4749 @SearchParamDefinition(name="identifier", path="Device.identifier", description="Instance id from manufacturer, owner, and others", type="token" ) 4750 public static final String SP_IDENTIFIER = "identifier"; 4751 /** 4752 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 4753 * <p> 4754 * Description: <b>Instance id from manufacturer, owner, and others</b><br> 4755 * Type: <b>token</b><br> 4756 * Path: <b>Device.identifier</b><br> 4757 * </p> 4758 */ 4759 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 4760 4761 /** 4762 * Search parameter: <b>location</b> 4763 * <p> 4764 * Description: <b>A location, where the resource is found</b><br> 4765 * Type: <b>reference</b><br> 4766 * Path: <b>Device.location</b><br> 4767 * </p> 4768 */ 4769 @SearchParamDefinition(name="location", path="Device.location", description="A location, where the resource is found", type="reference", target={Location.class } ) 4770 public static final String SP_LOCATION = "location"; 4771 /** 4772 * <b>Fluent Client</b> search parameter constant for <b>location</b> 4773 * <p> 4774 * Description: <b>A location, where the resource is found</b><br> 4775 * Type: <b>reference</b><br> 4776 * Path: <b>Device.location</b><br> 4777 * </p> 4778 */ 4779 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam LOCATION = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_LOCATION); 4780 4781/** 4782 * Constant for fluent queries to be used to add include statements. Specifies 4783 * the path value of "<b>Device:location</b>". 4784 */ 4785 public static final ca.uhn.fhir.model.api.Include INCLUDE_LOCATION = new ca.uhn.fhir.model.api.Include("Device:location").toLocked(); 4786 4787 /** 4788 * Search parameter: <b>lot-number</b> 4789 * <p> 4790 * Description: <b>The lot number of the device</b><br> 4791 * Type: <b>string</b><br> 4792 * Path: <b>Device.lotNumber</b><br> 4793 * </p> 4794 */ 4795 @SearchParamDefinition(name="lot-number", path="Device.lotNumber", description="The lot number of the device", type="string" ) 4796 public static final String SP_LOT_NUMBER = "lot-number"; 4797 /** 4798 * <b>Fluent Client</b> search parameter constant for <b>lot-number</b> 4799 * <p> 4800 * Description: <b>The lot number of the device</b><br> 4801 * Type: <b>string</b><br> 4802 * Path: <b>Device.lotNumber</b><br> 4803 * </p> 4804 */ 4805 public static final ca.uhn.fhir.rest.gclient.StringClientParam LOT_NUMBER = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_LOT_NUMBER); 4806 4807 /** 4808 * Search parameter: <b>manufacture-date</b> 4809 * <p> 4810 * Description: <b>The manufacture date of the device</b><br> 4811 * Type: <b>date</b><br> 4812 * Path: <b>Device.manufactureDate</b><br> 4813 * </p> 4814 */ 4815 @SearchParamDefinition(name="manufacture-date", path="Device.manufactureDate", description="The manufacture date of the device", type="date" ) 4816 public static final String SP_MANUFACTURE_DATE = "manufacture-date"; 4817 /** 4818 * <b>Fluent Client</b> search parameter constant for <b>manufacture-date</b> 4819 * <p> 4820 * Description: <b>The manufacture date of the device</b><br> 4821 * Type: <b>date</b><br> 4822 * Path: <b>Device.manufactureDate</b><br> 4823 * </p> 4824 */ 4825 public static final ca.uhn.fhir.rest.gclient.DateClientParam MANUFACTURE_DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_MANUFACTURE_DATE); 4826 4827 /** 4828 * Search parameter: <b>manufacturer</b> 4829 * <p> 4830 * Description: <b>The manufacturer of the device</b><br> 4831 * Type: <b>string</b><br> 4832 * Path: <b>Device.manufacturer</b><br> 4833 * </p> 4834 */ 4835 @SearchParamDefinition(name="manufacturer", path="Device.manufacturer", description="The manufacturer of the device", type="string" ) 4836 public static final String SP_MANUFACTURER = "manufacturer"; 4837 /** 4838 * <b>Fluent Client</b> search parameter constant for <b>manufacturer</b> 4839 * <p> 4840 * Description: <b>The manufacturer of the device</b><br> 4841 * Type: <b>string</b><br> 4842 * Path: <b>Device.manufacturer</b><br> 4843 * </p> 4844 */ 4845 public static final ca.uhn.fhir.rest.gclient.StringClientParam MANUFACTURER = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_MANUFACTURER); 4846 4847 /** 4848 * Search parameter: <b>model</b> 4849 * <p> 4850 * Description: <b>The model of the device</b><br> 4851 * Type: <b>string</b><br> 4852 * Path: <b>Device.modelNumber</b><br> 4853 * </p> 4854 */ 4855 @SearchParamDefinition(name="model", path="Device.modelNumber", description="The model of the device", type="string" ) 4856 public static final String SP_MODEL = "model"; 4857 /** 4858 * <b>Fluent Client</b> search parameter constant for <b>model</b> 4859 * <p> 4860 * Description: <b>The model of the device</b><br> 4861 * Type: <b>string</b><br> 4862 * Path: <b>Device.modelNumber</b><br> 4863 * </p> 4864 */ 4865 public static final ca.uhn.fhir.rest.gclient.StringClientParam MODEL = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_MODEL); 4866 4867 /** 4868 * Search parameter: <b>organization</b> 4869 * <p> 4870 * Description: <b>The organization responsible for the device</b><br> 4871 * Type: <b>reference</b><br> 4872 * Path: <b>Device.owner</b><br> 4873 * </p> 4874 */ 4875 @SearchParamDefinition(name="organization", path="Device.owner", description="The organization responsible for the device", type="reference", target={Organization.class } ) 4876 public static final String SP_ORGANIZATION = "organization"; 4877 /** 4878 * <b>Fluent Client</b> search parameter constant for <b>organization</b> 4879 * <p> 4880 * Description: <b>The organization responsible for the device</b><br> 4881 * Type: <b>reference</b><br> 4882 * Path: <b>Device.owner</b><br> 4883 * </p> 4884 */ 4885 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ORGANIZATION = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ORGANIZATION); 4886 4887/** 4888 * Constant for fluent queries to be used to add include statements. Specifies 4889 * the path value of "<b>Device:organization</b>". 4890 */ 4891 public static final ca.uhn.fhir.model.api.Include INCLUDE_ORGANIZATION = new ca.uhn.fhir.model.api.Include("Device:organization").toLocked(); 4892 4893 /** 4894 * Search parameter: <b>parent</b> 4895 * <p> 4896 * Description: <b>The parent device</b><br> 4897 * Type: <b>reference</b><br> 4898 * Path: <b>Device.parent</b><br> 4899 * </p> 4900 */ 4901 @SearchParamDefinition(name="parent", path="Device.parent", description="The parent device", type="reference", target={Device.class } ) 4902 public static final String SP_PARENT = "parent"; 4903 /** 4904 * <b>Fluent Client</b> search parameter constant for <b>parent</b> 4905 * <p> 4906 * Description: <b>The parent device</b><br> 4907 * Type: <b>reference</b><br> 4908 * Path: <b>Device.parent</b><br> 4909 * </p> 4910 */ 4911 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PARENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PARENT); 4912 4913/** 4914 * Constant for fluent queries to be used to add include statements. Specifies 4915 * the path value of "<b>Device:parent</b>". 4916 */ 4917 public static final ca.uhn.fhir.model.api.Include INCLUDE_PARENT = new ca.uhn.fhir.model.api.Include("Device:parent").toLocked(); 4918 4919 /** 4920 * Search parameter: <b>serial-number</b> 4921 * <p> 4922 * Description: <b>The serial number of the device</b><br> 4923 * Type: <b>string</b><br> 4924 * Path: <b>Device.serialNumber | Device.identifier.where(type='SNO')</b><br> 4925 * </p> 4926 */ 4927 @SearchParamDefinition(name="serial-number", path="Device.serialNumber | Device.identifier.where(type='SNO')", description="The serial number of the device", type="string" ) 4928 public static final String SP_SERIAL_NUMBER = "serial-number"; 4929 /** 4930 * <b>Fluent Client</b> search parameter constant for <b>serial-number</b> 4931 * <p> 4932 * Description: <b>The serial number of the device</b><br> 4933 * Type: <b>string</b><br> 4934 * Path: <b>Device.serialNumber | Device.identifier.where(type='SNO')</b><br> 4935 * </p> 4936 */ 4937 public static final ca.uhn.fhir.rest.gclient.StringClientParam SERIAL_NUMBER = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_SERIAL_NUMBER); 4938 4939 /** 4940 * Search parameter: <b>specification-version</b> 4941 * <p> 4942 * Description: <b>A composite of both specification and version</b><br> 4943 * Type: <b>composite</b><br> 4944 * Path: <b>Device.conformsTo</b><br> 4945 * </p> 4946 */ 4947 @SearchParamDefinition(name="specification-version", path="Device.conformsTo", description="A composite of both specification and version", type="composite", compositeOf={"specification", "version"} ) 4948 public static final String SP_SPECIFICATION_VERSION = "specification-version"; 4949 /** 4950 * <b>Fluent Client</b> search parameter constant for <b>specification-version</b> 4951 * <p> 4952 * Description: <b>A composite of both specification and version</b><br> 4953 * Type: <b>composite</b><br> 4954 * Path: <b>Device.conformsTo</b><br> 4955 * </p> 4956 */ 4957 public static final ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.StringClientParam> SPECIFICATION_VERSION = new ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.StringClientParam>(SP_SPECIFICATION_VERSION); 4958 4959 /** 4960 * Search parameter: <b>specification</b> 4961 * <p> 4962 * Description: <b>The standards, specifications, or formal guidances.</b><br> 4963 * Type: <b>token</b><br> 4964 * Path: <b>Device.conformsTo.specification</b><br> 4965 * </p> 4966 */ 4967 @SearchParamDefinition(name="specification", path="Device.conformsTo.specification", description="The standards, specifications, or formal guidances.", type="token" ) 4968 public static final String SP_SPECIFICATION = "specification"; 4969 /** 4970 * <b>Fluent Client</b> search parameter constant for <b>specification</b> 4971 * <p> 4972 * Description: <b>The standards, specifications, or formal guidances.</b><br> 4973 * Type: <b>token</b><br> 4974 * Path: <b>Device.conformsTo.specification</b><br> 4975 * </p> 4976 */ 4977 public static final ca.uhn.fhir.rest.gclient.TokenClientParam SPECIFICATION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_SPECIFICATION); 4978 4979 /** 4980 * Search parameter: <b>status</b> 4981 * <p> 4982 * Description: <b>active | inactive | entered-in-error | unknown</b><br> 4983 * Type: <b>token</b><br> 4984 * Path: <b>Device.status</b><br> 4985 * </p> 4986 */ 4987 @SearchParamDefinition(name="status", path="Device.status", description="active | inactive | entered-in-error | unknown", type="token" ) 4988 public static final String SP_STATUS = "status"; 4989 /** 4990 * <b>Fluent Client</b> search parameter constant for <b>status</b> 4991 * <p> 4992 * Description: <b>active | inactive | entered-in-error | unknown</b><br> 4993 * Type: <b>token</b><br> 4994 * Path: <b>Device.status</b><br> 4995 * </p> 4996 */ 4997 public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS); 4998 4999 /** 5000 * Search parameter: <b>type</b> 5001 * <p> 5002 * Description: <b>The type of the device</b><br> 5003 * Type: <b>token</b><br> 5004 * Path: <b>Device.type</b><br> 5005 * </p> 5006 */ 5007 @SearchParamDefinition(name="type", path="Device.type", description="The type of the device", type="token" ) 5008 public static final String SP_TYPE = "type"; 5009 /** 5010 * <b>Fluent Client</b> search parameter constant for <b>type</b> 5011 * <p> 5012 * Description: <b>The type of the device</b><br> 5013 * Type: <b>token</b><br> 5014 * Path: <b>Device.type</b><br> 5015 * </p> 5016 */ 5017 public static final ca.uhn.fhir.rest.gclient.TokenClientParam TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TYPE); 5018 5019 /** 5020 * Search parameter: <b>udi-carrier</b> 5021 * <p> 5022 * Description: <b>UDI Barcode (RFID or other technology) string in *HRF* format.</b><br> 5023 * Type: <b>string</b><br> 5024 * Path: <b>Device.udiCarrier.carrierHRF</b><br> 5025 * </p> 5026 */ 5027 @SearchParamDefinition(name="udi-carrier", path="Device.udiCarrier.carrierHRF", description="UDI Barcode (RFID or other technology) string in *HRF* format.", type="string" ) 5028 public static final String SP_UDI_CARRIER = "udi-carrier"; 5029 /** 5030 * <b>Fluent Client</b> search parameter constant for <b>udi-carrier</b> 5031 * <p> 5032 * Description: <b>UDI Barcode (RFID or other technology) string in *HRF* format.</b><br> 5033 * Type: <b>string</b><br> 5034 * Path: <b>Device.udiCarrier.carrierHRF</b><br> 5035 * </p> 5036 */ 5037 public static final ca.uhn.fhir.rest.gclient.StringClientParam UDI_CARRIER = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_UDI_CARRIER); 5038 5039 /** 5040 * Search parameter: <b>udi-di</b> 5041 * <p> 5042 * Description: <b>The udi Device Identifier (DI)</b><br> 5043 * Type: <b>string</b><br> 5044 * Path: <b>Device.udiCarrier.deviceIdentifier</b><br> 5045 * </p> 5046 */ 5047 @SearchParamDefinition(name="udi-di", path="Device.udiCarrier.deviceIdentifier", description="The udi Device Identifier (DI)", type="string" ) 5048 public static final String SP_UDI_DI = "udi-di"; 5049 /** 5050 * <b>Fluent Client</b> search parameter constant for <b>udi-di</b> 5051 * <p> 5052 * Description: <b>The udi Device Identifier (DI)</b><br> 5053 * Type: <b>string</b><br> 5054 * Path: <b>Device.udiCarrier.deviceIdentifier</b><br> 5055 * </p> 5056 */ 5057 public static final ca.uhn.fhir.rest.gclient.StringClientParam UDI_DI = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_UDI_DI); 5058 5059 /** 5060 * Search parameter: <b>url</b> 5061 * <p> 5062 * Description: <b>Network address to contact device</b><br> 5063 * Type: <b>uri</b><br> 5064 * Path: <b>Device.url</b><br> 5065 * </p> 5066 */ 5067 @SearchParamDefinition(name="url", path="Device.url", description="Network address to contact device", type="uri" ) 5068 public static final String SP_URL = "url"; 5069 /** 5070 * <b>Fluent Client</b> search parameter constant for <b>url</b> 5071 * <p> 5072 * Description: <b>Network address to contact device</b><br> 5073 * Type: <b>uri</b><br> 5074 * Path: <b>Device.url</b><br> 5075 * </p> 5076 */ 5077 public static final ca.uhn.fhir.rest.gclient.UriClientParam URL = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_URL); 5078 5079 /** 5080 * Search parameter: <b>version</b> 5081 * <p> 5082 * Description: <b>The specific version of the device</b><br> 5083 * Type: <b>string</b><br> 5084 * Path: <b>Device.version.value</b><br> 5085 * </p> 5086 */ 5087 @SearchParamDefinition(name="version", path="Device.version.value", description="The specific version of the device", type="string" ) 5088 public static final String SP_VERSION = "version"; 5089 /** 5090 * <b>Fluent Client</b> search parameter constant for <b>version</b> 5091 * <p> 5092 * Description: <b>The specific version of the device</b><br> 5093 * Type: <b>string</b><br> 5094 * Path: <b>Device.version.value</b><br> 5095 * </p> 5096 */ 5097 public static final ca.uhn.fhir.rest.gclient.StringClientParam VERSION = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_VERSION); 5098 5099 5100} 5101