001package org.hl7.fhir.instance.model; 002 003/* 004 Copyright (c) 2011+, HL7, Inc. 005 All rights reserved. 006 007 Redistribution and use in source and binary forms, with or without modification, 008 are permitted provided that the following conditions are met: 009 010 * Redistributions of source code must retain the above copyright notice, this 011 list of conditions and the following disclaimer. 012 * Redistributions in binary form must reproduce the above copyright notice, 013 this list of conditions and the following disclaimer in the documentation 014 and/or other materials provided with the distribution. 015 * Neither the name of HL7 nor the names of its contributors may be used to 016 endorse or promote products derived from this software without specific 017 prior written permission. 018 019 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 020 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 021 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 022 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 023 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 024 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 025 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 026 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 027 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 028 POSSIBILITY OF SUCH DAMAGE. 029 030*/ 031 032// Generated on Wed, Jul 13, 2016 05:32+1000 for FHIR v1.0.2 033import java.util.*; 034 035import org.hl7.fhir.exceptions.FHIRException; 036import org.hl7.fhir.utilities.Utilities; 037 038import ca.uhn.fhir.model.api.annotation.*; 039/** 040 * This resource identifies an instance of a manufactured item that is used in the provision of healthcare without being substantially changed through that activity. The device may be a medical or non-medical device. Medical devices includes durable (reusable) medical equipment, implantable devices, as well as disposable equipment used for diagnostic, treatment, and research for healthcare and public health. Non-medical devices may include items such as a machine, cellphone, computer, application, etc. 041 */ 042@ResourceDef(name="Device", profile="http://hl7.org/fhir/Profile/Device") 043public class Device extends DomainResource { 044 045 public enum DeviceStatus { 046 /** 047 * The Device is available for use. 048 */ 049 AVAILABLE, 050 /** 051 * The Device is no longer available for use (e.g. lost, expired, damaged). 052 */ 053 NOTAVAILABLE, 054 /** 055 * The Device was entered in error and voided. 056 */ 057 ENTEREDINERROR, 058 /** 059 * added to help the parsers 060 */ 061 NULL; 062 public static DeviceStatus fromCode(String codeString) throws FHIRException { 063 if (codeString == null || "".equals(codeString)) 064 return null; 065 if ("available".equals(codeString)) 066 return AVAILABLE; 067 if ("not-available".equals(codeString)) 068 return NOTAVAILABLE; 069 if ("entered-in-error".equals(codeString)) 070 return ENTEREDINERROR; 071 throw new FHIRException("Unknown DeviceStatus code '"+codeString+"'"); 072 } 073 public String toCode() { 074 switch (this) { 075 case AVAILABLE: return "available"; 076 case NOTAVAILABLE: return "not-available"; 077 case ENTEREDINERROR: return "entered-in-error"; 078 default: return "?"; 079 } 080 } 081 public String getSystem() { 082 switch (this) { 083 case AVAILABLE: return "http://hl7.org/fhir/devicestatus"; 084 case NOTAVAILABLE: return "http://hl7.org/fhir/devicestatus"; 085 case ENTEREDINERROR: return "http://hl7.org/fhir/devicestatus"; 086 default: return "?"; 087 } 088 } 089 public String getDefinition() { 090 switch (this) { 091 case AVAILABLE: return "The Device is available for use."; 092 case NOTAVAILABLE: return "The Device is no longer available for use (e.g. lost, expired, damaged)."; 093 case ENTEREDINERROR: return "The Device was entered in error and voided."; 094 default: return "?"; 095 } 096 } 097 public String getDisplay() { 098 switch (this) { 099 case AVAILABLE: return "Available"; 100 case NOTAVAILABLE: return "Not Available"; 101 case ENTEREDINERROR: return "Entered in Error"; 102 default: return "?"; 103 } 104 } 105 } 106 107 public static class DeviceStatusEnumFactory implements EnumFactory<DeviceStatus> { 108 public DeviceStatus fromCode(String codeString) throws IllegalArgumentException { 109 if (codeString == null || "".equals(codeString)) 110 if (codeString == null || "".equals(codeString)) 111 return null; 112 if ("available".equals(codeString)) 113 return DeviceStatus.AVAILABLE; 114 if ("not-available".equals(codeString)) 115 return DeviceStatus.NOTAVAILABLE; 116 if ("entered-in-error".equals(codeString)) 117 return DeviceStatus.ENTEREDINERROR; 118 throw new IllegalArgumentException("Unknown DeviceStatus code '"+codeString+"'"); 119 } 120 public Enumeration<DeviceStatus> fromType(Base code) throws FHIRException { 121 if (code == null || code.isEmpty()) 122 return null; 123 String codeString = ((PrimitiveType) code).asStringValue(); 124 if (codeString == null || "".equals(codeString)) 125 return null; 126 if ("available".equals(codeString)) 127 return new Enumeration<DeviceStatus>(this, DeviceStatus.AVAILABLE); 128 if ("not-available".equals(codeString)) 129 return new Enumeration<DeviceStatus>(this, DeviceStatus.NOTAVAILABLE); 130 if ("entered-in-error".equals(codeString)) 131 return new Enumeration<DeviceStatus>(this, DeviceStatus.ENTEREDINERROR); 132 throw new FHIRException("Unknown DeviceStatus code '"+codeString+"'"); 133 } 134 public String toCode(DeviceStatus code) { 135 if (code == DeviceStatus.AVAILABLE) 136 return "available"; 137 if (code == DeviceStatus.NOTAVAILABLE) 138 return "not-available"; 139 if (code == DeviceStatus.ENTEREDINERROR) 140 return "entered-in-error"; 141 return "?"; 142 } 143 } 144 145 /** 146 * Unique instance identifiers assigned to a device by organizations like manufacturers or owners. If the identifier identifies the type of device, Device.type should be used. 147 */ 148 @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 149 @Description(shortDefinition="Instance id from manufacturer, owner, and others", formalDefinition="Unique instance identifiers assigned to a device by organizations like manufacturers or owners. If the identifier identifies the type of device, Device.type should be used." ) 150 protected List<Identifier> identifier; 151 152 /** 153 * Code or identifier to identify a kind of device. 154 */ 155 @Child(name = "type", type = {CodeableConcept.class}, order=1, min=1, max=1, modifier=false, summary=false) 156 @Description(shortDefinition="What kind of device this is", formalDefinition="Code or identifier to identify a kind of device." ) 157 protected CodeableConcept type; 158 159 /** 160 * Descriptive information, usage information or implantation information that is not captured in an existing element. 161 */ 162 @Child(name = "note", type = {Annotation.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 163 @Description(shortDefinition="Device notes and comments", formalDefinition="Descriptive information, usage information or implantation information that is not captured in an existing element." ) 164 protected List<Annotation> note; 165 166 /** 167 * Status of the Device availability. 168 */ 169 @Child(name = "status", type = {CodeType.class}, order=3, min=0, max=1, modifier=true, summary=true) 170 @Description(shortDefinition="available | not-available | entered-in-error", formalDefinition="Status of the Device availability." ) 171 protected Enumeration<DeviceStatus> status; 172 173 /** 174 * A name of the manufacturer. 175 */ 176 @Child(name = "manufacturer", type = {StringType.class}, order=4, min=0, max=1, modifier=false, summary=false) 177 @Description(shortDefinition="Name of device manufacturer", formalDefinition="A name of the manufacturer." ) 178 protected StringType manufacturer; 179 180 /** 181 * The "model" is an identifier assigned by the manufacturer to identify the product by its type. This number is shared by the all devices sold as the same type. 182 */ 183 @Child(name = "model", type = {StringType.class}, order=5, min=0, max=1, modifier=false, summary=false) 184 @Description(shortDefinition="Model id assigned by the manufacturer", formalDefinition="The \"model\" is an identifier assigned by the manufacturer to identify the product by its type. This number is shared by the all devices sold as the same type." ) 185 protected StringType model; 186 187 /** 188 * The version of the device, if the device has multiple releases under the same model, or if the device is software or carries firmware. 189 */ 190 @Child(name = "version", type = {StringType.class}, order=6, min=0, max=1, modifier=false, summary=false) 191 @Description(shortDefinition="Version number (i.e. software)", formalDefinition="The version of the device, if the device has multiple releases under the same model, or if the device is software or carries firmware." ) 192 protected StringType version; 193 194 /** 195 * The date and time when the device was manufactured. 196 */ 197 @Child(name = "manufactureDate", type = {DateTimeType.class}, order=7, min=0, max=1, modifier=false, summary=false) 198 @Description(shortDefinition="Manufacture date", formalDefinition="The date and time when the device was manufactured." ) 199 protected DateTimeType manufactureDate; 200 201 /** 202 * The date and time beyond which this device is no longer valid or should not be used (if applicable). 203 */ 204 @Child(name = "expiry", type = {DateTimeType.class}, order=8, min=0, max=1, modifier=false, summary=false) 205 @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)." ) 206 protected DateTimeType expiry; 207 208 /** 209 * United States Food and Drug Administration mandated Unique Device Identifier (UDI). Use the human readable information (the content that the user sees, which is sometimes different to the exact syntax represented in the barcode) - see http://www.fda.gov/MedicalDevices/DeviceRegulationandGuidance/UniqueDeviceIdentification/default.htm. 210 */ 211 @Child(name = "udi", type = {StringType.class}, order=9, min=0, max=1, modifier=false, summary=false) 212 @Description(shortDefinition="FDA mandated Unique Device Identifier", formalDefinition="United States Food and Drug Administration mandated Unique Device Identifier (UDI). Use the human readable information (the content that the user sees, which is sometimes different to the exact syntax represented in the barcode) - see http://www.fda.gov/MedicalDevices/DeviceRegulationandGuidance/UniqueDeviceIdentification/default.htm." ) 213 protected StringType udi; 214 215 /** 216 * Lot number assigned by the manufacturer. 217 */ 218 @Child(name = "lotNumber", type = {StringType.class}, order=10, min=0, max=1, modifier=false, summary=false) 219 @Description(shortDefinition="Lot number of manufacture", formalDefinition="Lot number assigned by the manufacturer." ) 220 protected StringType lotNumber; 221 222 /** 223 * An organization that is responsible for the provision and ongoing maintenance of the device. 224 */ 225 @Child(name = "owner", type = {Organization.class}, order=11, min=0, max=1, modifier=false, summary=false) 226 @Description(shortDefinition="Organization responsible for device", formalDefinition="An organization that is responsible for the provision and ongoing maintenance of the device." ) 227 protected Reference owner; 228 229 /** 230 * The actual object that is the target of the reference (An organization that is responsible for the provision and ongoing maintenance of the device.) 231 */ 232 protected Organization ownerTarget; 233 234 /** 235 * The place where the device can be found. 236 */ 237 @Child(name = "location", type = {Location.class}, order=12, min=0, max=1, modifier=false, summary=false) 238 @Description(shortDefinition="Where the resource is found", formalDefinition="The place where the device can be found." ) 239 protected Reference location; 240 241 /** 242 * The actual object that is the target of the reference (The place where the device can be found.) 243 */ 244 protected Location locationTarget; 245 246 /** 247 * Patient information, if the resource is affixed to a person. 248 */ 249 @Child(name = "patient", type = {Patient.class}, order=13, min=0, max=1, modifier=false, summary=false) 250 @Description(shortDefinition="If the resource is affixed to a person", formalDefinition="Patient information, if the resource is affixed to a person." ) 251 protected Reference patient; 252 253 /** 254 * The actual object that is the target of the reference (Patient information, if the resource is affixed to a person.) 255 */ 256 protected Patient patientTarget; 257 258 /** 259 * Contact details for an organization or a particular human that is responsible for the device. 260 */ 261 @Child(name = "contact", type = {ContactPoint.class}, order=14, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 262 @Description(shortDefinition="Details for human/organization for support", formalDefinition="Contact details for an organization or a particular human that is responsible for the device." ) 263 protected List<ContactPoint> contact; 264 265 /** 266 * A network address on which the device may be contacted directly. 267 */ 268 @Child(name = "url", type = {UriType.class}, order=15, min=0, max=1, modifier=false, summary=false) 269 @Description(shortDefinition="Network address to contact device", formalDefinition="A network address on which the device may be contacted directly." ) 270 protected UriType url; 271 272 private static final long serialVersionUID = 366690094L; 273 274 /* 275 * Constructor 276 */ 277 public Device() { 278 super(); 279 } 280 281 /* 282 * Constructor 283 */ 284 public Device(CodeableConcept type) { 285 super(); 286 this.type = type; 287 } 288 289 /** 290 * @return {@link #identifier} (Unique instance identifiers assigned to a device by organizations like manufacturers or owners. If the identifier identifies the type of device, Device.type should be used.) 291 */ 292 public List<Identifier> getIdentifier() { 293 if (this.identifier == null) 294 this.identifier = new ArrayList<Identifier>(); 295 return this.identifier; 296 } 297 298 public boolean hasIdentifier() { 299 if (this.identifier == null) 300 return false; 301 for (Identifier item : this.identifier) 302 if (!item.isEmpty()) 303 return true; 304 return false; 305 } 306 307 /** 308 * @return {@link #identifier} (Unique instance identifiers assigned to a device by organizations like manufacturers or owners. If the identifier identifies the type of device, Device.type should be used.) 309 */ 310 // syntactic sugar 311 public Identifier addIdentifier() { //3 312 Identifier t = new Identifier(); 313 if (this.identifier == null) 314 this.identifier = new ArrayList<Identifier>(); 315 this.identifier.add(t); 316 return t; 317 } 318 319 // syntactic sugar 320 public Device addIdentifier(Identifier t) { //3 321 if (t == null) 322 return this; 323 if (this.identifier == null) 324 this.identifier = new ArrayList<Identifier>(); 325 this.identifier.add(t); 326 return this; 327 } 328 329 /** 330 * @return {@link #type} (Code or identifier to identify a kind of device.) 331 */ 332 public CodeableConcept getType() { 333 if (this.type == null) 334 if (Configuration.errorOnAutoCreate()) 335 throw new Error("Attempt to auto-create Device.type"); 336 else if (Configuration.doAutoCreate()) 337 this.type = new CodeableConcept(); // cc 338 return this.type; 339 } 340 341 public boolean hasType() { 342 return this.type != null && !this.type.isEmpty(); 343 } 344 345 /** 346 * @param value {@link #type} (Code or identifier to identify a kind of device.) 347 */ 348 public Device setType(CodeableConcept value) { 349 this.type = value; 350 return this; 351 } 352 353 /** 354 * @return {@link #note} (Descriptive information, usage information or implantation information that is not captured in an existing element.) 355 */ 356 public List<Annotation> getNote() { 357 if (this.note == null) 358 this.note = new ArrayList<Annotation>(); 359 return this.note; 360 } 361 362 public boolean hasNote() { 363 if (this.note == null) 364 return false; 365 for (Annotation item : this.note) 366 if (!item.isEmpty()) 367 return true; 368 return false; 369 } 370 371 /** 372 * @return {@link #note} (Descriptive information, usage information or implantation information that is not captured in an existing element.) 373 */ 374 // syntactic sugar 375 public Annotation addNote() { //3 376 Annotation t = new Annotation(); 377 if (this.note == null) 378 this.note = new ArrayList<Annotation>(); 379 this.note.add(t); 380 return t; 381 } 382 383 // syntactic sugar 384 public Device addNote(Annotation t) { //3 385 if (t == null) 386 return this; 387 if (this.note == null) 388 this.note = new ArrayList<Annotation>(); 389 this.note.add(t); 390 return this; 391 } 392 393 /** 394 * @return {@link #status} (Status of the Device availability.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 395 */ 396 public Enumeration<DeviceStatus> getStatusElement() { 397 if (this.status == null) 398 if (Configuration.errorOnAutoCreate()) 399 throw new Error("Attempt to auto-create Device.status"); 400 else if (Configuration.doAutoCreate()) 401 this.status = new Enumeration<DeviceStatus>(new DeviceStatusEnumFactory()); // bb 402 return this.status; 403 } 404 405 public boolean hasStatusElement() { 406 return this.status != null && !this.status.isEmpty(); 407 } 408 409 public boolean hasStatus() { 410 return this.status != null && !this.status.isEmpty(); 411 } 412 413 /** 414 * @param value {@link #status} (Status of the Device availability.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 415 */ 416 public Device setStatusElement(Enumeration<DeviceStatus> value) { 417 this.status = value; 418 return this; 419 } 420 421 /** 422 * @return Status of the Device availability. 423 */ 424 public DeviceStatus getStatus() { 425 return this.status == null ? null : this.status.getValue(); 426 } 427 428 /** 429 * @param value Status of the Device availability. 430 */ 431 public Device setStatus(DeviceStatus value) { 432 if (value == null) 433 this.status = null; 434 else { 435 if (this.status == null) 436 this.status = new Enumeration<DeviceStatus>(new DeviceStatusEnumFactory()); 437 this.status.setValue(value); 438 } 439 return this; 440 } 441 442 /** 443 * @return {@link #manufacturer} (A name of the manufacturer.). This is the underlying object with id, value and extensions. The accessor "getManufacturer" gives direct access to the value 444 */ 445 public StringType getManufacturerElement() { 446 if (this.manufacturer == null) 447 if (Configuration.errorOnAutoCreate()) 448 throw new Error("Attempt to auto-create Device.manufacturer"); 449 else if (Configuration.doAutoCreate()) 450 this.manufacturer = new StringType(); // bb 451 return this.manufacturer; 452 } 453 454 public boolean hasManufacturerElement() { 455 return this.manufacturer != null && !this.manufacturer.isEmpty(); 456 } 457 458 public boolean hasManufacturer() { 459 return this.manufacturer != null && !this.manufacturer.isEmpty(); 460 } 461 462 /** 463 * @param value {@link #manufacturer} (A name of the manufacturer.). This is the underlying object with id, value and extensions. The accessor "getManufacturer" gives direct access to the value 464 */ 465 public Device setManufacturerElement(StringType value) { 466 this.manufacturer = value; 467 return this; 468 } 469 470 /** 471 * @return A name of the manufacturer. 472 */ 473 public String getManufacturer() { 474 return this.manufacturer == null ? null : this.manufacturer.getValue(); 475 } 476 477 /** 478 * @param value A name of the manufacturer. 479 */ 480 public Device setManufacturer(String value) { 481 if (Utilities.noString(value)) 482 this.manufacturer = null; 483 else { 484 if (this.manufacturer == null) 485 this.manufacturer = new StringType(); 486 this.manufacturer.setValue(value); 487 } 488 return this; 489 } 490 491 /** 492 * @return {@link #model} (The "model" is an identifier assigned by the manufacturer to identify the product by its type. This number is shared by the all devices sold as the same type.). This is the underlying object with id, value and extensions. The accessor "getModel" gives direct access to the value 493 */ 494 public StringType getModelElement() { 495 if (this.model == null) 496 if (Configuration.errorOnAutoCreate()) 497 throw new Error("Attempt to auto-create Device.model"); 498 else if (Configuration.doAutoCreate()) 499 this.model = new StringType(); // bb 500 return this.model; 501 } 502 503 public boolean hasModelElement() { 504 return this.model != null && !this.model.isEmpty(); 505 } 506 507 public boolean hasModel() { 508 return this.model != null && !this.model.isEmpty(); 509 } 510 511 /** 512 * @param value {@link #model} (The "model" is an identifier assigned by the manufacturer to identify the product by its type. This number is shared by the all devices sold as the same type.). This is the underlying object with id, value and extensions. The accessor "getModel" gives direct access to the value 513 */ 514 public Device setModelElement(StringType value) { 515 this.model = value; 516 return this; 517 } 518 519 /** 520 * @return The "model" is an identifier assigned by the manufacturer to identify the product by its type. This number is shared by the all devices sold as the same type. 521 */ 522 public String getModel() { 523 return this.model == null ? null : this.model.getValue(); 524 } 525 526 /** 527 * @param value The "model" is an identifier assigned by the manufacturer to identify the product by its type. This number is shared by the all devices sold as the same type. 528 */ 529 public Device setModel(String value) { 530 if (Utilities.noString(value)) 531 this.model = null; 532 else { 533 if (this.model == null) 534 this.model = new StringType(); 535 this.model.setValue(value); 536 } 537 return this; 538 } 539 540 /** 541 * @return {@link #version} (The version of the device, if the device has multiple releases under the same model, or if the device is software or carries firmware.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value 542 */ 543 public StringType getVersionElement() { 544 if (this.version == null) 545 if (Configuration.errorOnAutoCreate()) 546 throw new Error("Attempt to auto-create Device.version"); 547 else if (Configuration.doAutoCreate()) 548 this.version = new StringType(); // bb 549 return this.version; 550 } 551 552 public boolean hasVersionElement() { 553 return this.version != null && !this.version.isEmpty(); 554 } 555 556 public boolean hasVersion() { 557 return this.version != null && !this.version.isEmpty(); 558 } 559 560 /** 561 * @param value {@link #version} (The version of the device, if the device has multiple releases under the same model, or if the device is software or carries firmware.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value 562 */ 563 public Device setVersionElement(StringType value) { 564 this.version = value; 565 return this; 566 } 567 568 /** 569 * @return The version of the device, if the device has multiple releases under the same model, or if the device is software or carries firmware. 570 */ 571 public String getVersion() { 572 return this.version == null ? null : this.version.getValue(); 573 } 574 575 /** 576 * @param value The version of the device, if the device has multiple releases under the same model, or if the device is software or carries firmware. 577 */ 578 public Device setVersion(String value) { 579 if (Utilities.noString(value)) 580 this.version = null; 581 else { 582 if (this.version == null) 583 this.version = new StringType(); 584 this.version.setValue(value); 585 } 586 return this; 587 } 588 589 /** 590 * @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 591 */ 592 public DateTimeType getManufactureDateElement() { 593 if (this.manufactureDate == null) 594 if (Configuration.errorOnAutoCreate()) 595 throw new Error("Attempt to auto-create Device.manufactureDate"); 596 else if (Configuration.doAutoCreate()) 597 this.manufactureDate = new DateTimeType(); // bb 598 return this.manufactureDate; 599 } 600 601 public boolean hasManufactureDateElement() { 602 return this.manufactureDate != null && !this.manufactureDate.isEmpty(); 603 } 604 605 public boolean hasManufactureDate() { 606 return this.manufactureDate != null && !this.manufactureDate.isEmpty(); 607 } 608 609 /** 610 * @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 611 */ 612 public Device setManufactureDateElement(DateTimeType value) { 613 this.manufactureDate = value; 614 return this; 615 } 616 617 /** 618 * @return The date and time when the device was manufactured. 619 */ 620 public Date getManufactureDate() { 621 return this.manufactureDate == null ? null : this.manufactureDate.getValue(); 622 } 623 624 /** 625 * @param value The date and time when the device was manufactured. 626 */ 627 public Device setManufactureDate(Date value) { 628 if (value == null) 629 this.manufactureDate = null; 630 else { 631 if (this.manufactureDate == null) 632 this.manufactureDate = new DateTimeType(); 633 this.manufactureDate.setValue(value); 634 } 635 return this; 636 } 637 638 /** 639 * @return {@link #expiry} (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 "getExpiry" gives direct access to the value 640 */ 641 public DateTimeType getExpiryElement() { 642 if (this.expiry == null) 643 if (Configuration.errorOnAutoCreate()) 644 throw new Error("Attempt to auto-create Device.expiry"); 645 else if (Configuration.doAutoCreate()) 646 this.expiry = new DateTimeType(); // bb 647 return this.expiry; 648 } 649 650 public boolean hasExpiryElement() { 651 return this.expiry != null && !this.expiry.isEmpty(); 652 } 653 654 public boolean hasExpiry() { 655 return this.expiry != null && !this.expiry.isEmpty(); 656 } 657 658 /** 659 * @param value {@link #expiry} (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 "getExpiry" gives direct access to the value 660 */ 661 public Device setExpiryElement(DateTimeType value) { 662 this.expiry = value; 663 return this; 664 } 665 666 /** 667 * @return The date and time beyond which this device is no longer valid or should not be used (if applicable). 668 */ 669 public Date getExpiry() { 670 return this.expiry == null ? null : this.expiry.getValue(); 671 } 672 673 /** 674 * @param value The date and time beyond which this device is no longer valid or should not be used (if applicable). 675 */ 676 public Device setExpiry(Date value) { 677 if (value == null) 678 this.expiry = null; 679 else { 680 if (this.expiry == null) 681 this.expiry = new DateTimeType(); 682 this.expiry.setValue(value); 683 } 684 return this; 685 } 686 687 /** 688 * @return {@link #udi} (United States Food and Drug Administration mandated Unique Device Identifier (UDI). Use the human readable information (the content that the user sees, which is sometimes different to the exact syntax represented in the barcode) - see http://www.fda.gov/MedicalDevices/DeviceRegulationandGuidance/UniqueDeviceIdentification/default.htm.). This is the underlying object with id, value and extensions. The accessor "getUdi" gives direct access to the value 689 */ 690 public StringType getUdiElement() { 691 if (this.udi == null) 692 if (Configuration.errorOnAutoCreate()) 693 throw new Error("Attempt to auto-create Device.udi"); 694 else if (Configuration.doAutoCreate()) 695 this.udi = new StringType(); // bb 696 return this.udi; 697 } 698 699 public boolean hasUdiElement() { 700 return this.udi != null && !this.udi.isEmpty(); 701 } 702 703 public boolean hasUdi() { 704 return this.udi != null && !this.udi.isEmpty(); 705 } 706 707 /** 708 * @param value {@link #udi} (United States Food and Drug Administration mandated Unique Device Identifier (UDI). Use the human readable information (the content that the user sees, which is sometimes different to the exact syntax represented in the barcode) - see http://www.fda.gov/MedicalDevices/DeviceRegulationandGuidance/UniqueDeviceIdentification/default.htm.). This is the underlying object with id, value and extensions. The accessor "getUdi" gives direct access to the value 709 */ 710 public Device setUdiElement(StringType value) { 711 this.udi = value; 712 return this; 713 } 714 715 /** 716 * @return United States Food and Drug Administration mandated Unique Device Identifier (UDI). Use the human readable information (the content that the user sees, which is sometimes different to the exact syntax represented in the barcode) - see http://www.fda.gov/MedicalDevices/DeviceRegulationandGuidance/UniqueDeviceIdentification/default.htm. 717 */ 718 public String getUdi() { 719 return this.udi == null ? null : this.udi.getValue(); 720 } 721 722 /** 723 * @param value United States Food and Drug Administration mandated Unique Device Identifier (UDI). Use the human readable information (the content that the user sees, which is sometimes different to the exact syntax represented in the barcode) - see http://www.fda.gov/MedicalDevices/DeviceRegulationandGuidance/UniqueDeviceIdentification/default.htm. 724 */ 725 public Device setUdi(String value) { 726 if (Utilities.noString(value)) 727 this.udi = null; 728 else { 729 if (this.udi == null) 730 this.udi = new StringType(); 731 this.udi.setValue(value); 732 } 733 return this; 734 } 735 736 /** 737 * @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 738 */ 739 public StringType getLotNumberElement() { 740 if (this.lotNumber == null) 741 if (Configuration.errorOnAutoCreate()) 742 throw new Error("Attempt to auto-create Device.lotNumber"); 743 else if (Configuration.doAutoCreate()) 744 this.lotNumber = new StringType(); // bb 745 return this.lotNumber; 746 } 747 748 public boolean hasLotNumberElement() { 749 return this.lotNumber != null && !this.lotNumber.isEmpty(); 750 } 751 752 public boolean hasLotNumber() { 753 return this.lotNumber != null && !this.lotNumber.isEmpty(); 754 } 755 756 /** 757 * @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 758 */ 759 public Device setLotNumberElement(StringType value) { 760 this.lotNumber = value; 761 return this; 762 } 763 764 /** 765 * @return Lot number assigned by the manufacturer. 766 */ 767 public String getLotNumber() { 768 return this.lotNumber == null ? null : this.lotNumber.getValue(); 769 } 770 771 /** 772 * @param value Lot number assigned by the manufacturer. 773 */ 774 public Device setLotNumber(String value) { 775 if (Utilities.noString(value)) 776 this.lotNumber = null; 777 else { 778 if (this.lotNumber == null) 779 this.lotNumber = new StringType(); 780 this.lotNumber.setValue(value); 781 } 782 return this; 783 } 784 785 /** 786 * @return {@link #owner} (An organization that is responsible for the provision and ongoing maintenance of the device.) 787 */ 788 public Reference getOwner() { 789 if (this.owner == null) 790 if (Configuration.errorOnAutoCreate()) 791 throw new Error("Attempt to auto-create Device.owner"); 792 else if (Configuration.doAutoCreate()) 793 this.owner = new Reference(); // cc 794 return this.owner; 795 } 796 797 public boolean hasOwner() { 798 return this.owner != null && !this.owner.isEmpty(); 799 } 800 801 /** 802 * @param value {@link #owner} (An organization that is responsible for the provision and ongoing maintenance of the device.) 803 */ 804 public Device setOwner(Reference value) { 805 this.owner = value; 806 return this; 807 } 808 809 /** 810 * @return {@link #owner} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (An organization that is responsible for the provision and ongoing maintenance of the device.) 811 */ 812 public Organization getOwnerTarget() { 813 if (this.ownerTarget == null) 814 if (Configuration.errorOnAutoCreate()) 815 throw new Error("Attempt to auto-create Device.owner"); 816 else if (Configuration.doAutoCreate()) 817 this.ownerTarget = new Organization(); // aa 818 return this.ownerTarget; 819 } 820 821 /** 822 * @param value {@link #owner} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (An organization that is responsible for the provision and ongoing maintenance of the device.) 823 */ 824 public Device setOwnerTarget(Organization value) { 825 this.ownerTarget = value; 826 return this; 827 } 828 829 /** 830 * @return {@link #location} (The place where the device can be found.) 831 */ 832 public Reference getLocation() { 833 if (this.location == null) 834 if (Configuration.errorOnAutoCreate()) 835 throw new Error("Attempt to auto-create Device.location"); 836 else if (Configuration.doAutoCreate()) 837 this.location = new Reference(); // cc 838 return this.location; 839 } 840 841 public boolean hasLocation() { 842 return this.location != null && !this.location.isEmpty(); 843 } 844 845 /** 846 * @param value {@link #location} (The place where the device can be found.) 847 */ 848 public Device setLocation(Reference value) { 849 this.location = value; 850 return this; 851 } 852 853 /** 854 * @return {@link #location} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The place where the device can be found.) 855 */ 856 public Location getLocationTarget() { 857 if (this.locationTarget == null) 858 if (Configuration.errorOnAutoCreate()) 859 throw new Error("Attempt to auto-create Device.location"); 860 else if (Configuration.doAutoCreate()) 861 this.locationTarget = new Location(); // aa 862 return this.locationTarget; 863 } 864 865 /** 866 * @param value {@link #location} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The place where the device can be found.) 867 */ 868 public Device setLocationTarget(Location value) { 869 this.locationTarget = value; 870 return this; 871 } 872 873 /** 874 * @return {@link #patient} (Patient information, if the resource is affixed to a person.) 875 */ 876 public Reference getPatient() { 877 if (this.patient == null) 878 if (Configuration.errorOnAutoCreate()) 879 throw new Error("Attempt to auto-create Device.patient"); 880 else if (Configuration.doAutoCreate()) 881 this.patient = new Reference(); // cc 882 return this.patient; 883 } 884 885 public boolean hasPatient() { 886 return this.patient != null && !this.patient.isEmpty(); 887 } 888 889 /** 890 * @param value {@link #patient} (Patient information, if the resource is affixed to a person.) 891 */ 892 public Device setPatient(Reference value) { 893 this.patient = value; 894 return this; 895 } 896 897 /** 898 * @return {@link #patient} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Patient information, if the resource is affixed to a person.) 899 */ 900 public Patient getPatientTarget() { 901 if (this.patientTarget == null) 902 if (Configuration.errorOnAutoCreate()) 903 throw new Error("Attempt to auto-create Device.patient"); 904 else if (Configuration.doAutoCreate()) 905 this.patientTarget = new Patient(); // aa 906 return this.patientTarget; 907 } 908 909 /** 910 * @param value {@link #patient} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Patient information, if the resource is affixed to a person.) 911 */ 912 public Device setPatientTarget(Patient value) { 913 this.patientTarget = value; 914 return this; 915 } 916 917 /** 918 * @return {@link #contact} (Contact details for an organization or a particular human that is responsible for the device.) 919 */ 920 public List<ContactPoint> getContact() { 921 if (this.contact == null) 922 this.contact = new ArrayList<ContactPoint>(); 923 return this.contact; 924 } 925 926 public boolean hasContact() { 927 if (this.contact == null) 928 return false; 929 for (ContactPoint item : this.contact) 930 if (!item.isEmpty()) 931 return true; 932 return false; 933 } 934 935 /** 936 * @return {@link #contact} (Contact details for an organization or a particular human that is responsible for the device.) 937 */ 938 // syntactic sugar 939 public ContactPoint addContact() { //3 940 ContactPoint t = new ContactPoint(); 941 if (this.contact == null) 942 this.contact = new ArrayList<ContactPoint>(); 943 this.contact.add(t); 944 return t; 945 } 946 947 // syntactic sugar 948 public Device addContact(ContactPoint t) { //3 949 if (t == null) 950 return this; 951 if (this.contact == null) 952 this.contact = new ArrayList<ContactPoint>(); 953 this.contact.add(t); 954 return this; 955 } 956 957 /** 958 * @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 959 */ 960 public UriType getUrlElement() { 961 if (this.url == null) 962 if (Configuration.errorOnAutoCreate()) 963 throw new Error("Attempt to auto-create Device.url"); 964 else if (Configuration.doAutoCreate()) 965 this.url = new UriType(); // bb 966 return this.url; 967 } 968 969 public boolean hasUrlElement() { 970 return this.url != null && !this.url.isEmpty(); 971 } 972 973 public boolean hasUrl() { 974 return this.url != null && !this.url.isEmpty(); 975 } 976 977 /** 978 * @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 979 */ 980 public Device setUrlElement(UriType value) { 981 this.url = value; 982 return this; 983 } 984 985 /** 986 * @return A network address on which the device may be contacted directly. 987 */ 988 public String getUrl() { 989 return this.url == null ? null : this.url.getValue(); 990 } 991 992 /** 993 * @param value A network address on which the device may be contacted directly. 994 */ 995 public Device setUrl(String value) { 996 if (Utilities.noString(value)) 997 this.url = null; 998 else { 999 if (this.url == null) 1000 this.url = new UriType(); 1001 this.url.setValue(value); 1002 } 1003 return this; 1004 } 1005 1006 protected void listChildren(List<Property> childrenList) { 1007 super.listChildren(childrenList); 1008 childrenList.add(new Property("identifier", "Identifier", "Unique instance identifiers assigned to a device by organizations like manufacturers or owners. If the identifier identifies the type of device, Device.type should be used.", 0, java.lang.Integer.MAX_VALUE, identifier)); 1009 childrenList.add(new Property("type", "CodeableConcept", "Code or identifier to identify a kind of device.", 0, java.lang.Integer.MAX_VALUE, type)); 1010 childrenList.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)); 1011 childrenList.add(new Property("status", "code", "Status of the Device availability.", 0, java.lang.Integer.MAX_VALUE, status)); 1012 childrenList.add(new Property("manufacturer", "string", "A name of the manufacturer.", 0, java.lang.Integer.MAX_VALUE, manufacturer)); 1013 childrenList.add(new Property("model", "string", "The \"model\" is an identifier assigned by the manufacturer to identify the product by its type. This number is shared by the all devices sold as the same type.", 0, java.lang.Integer.MAX_VALUE, model)); 1014 childrenList.add(new Property("version", "string", "The version of the device, if the device has multiple releases under the same model, or if the device is software or carries firmware.", 0, java.lang.Integer.MAX_VALUE, version)); 1015 childrenList.add(new Property("manufactureDate", "dateTime", "The date and time when the device was manufactured.", 0, java.lang.Integer.MAX_VALUE, manufactureDate)); 1016 childrenList.add(new Property("expiry", "dateTime", "The date and time beyond which this device is no longer valid or should not be used (if applicable).", 0, java.lang.Integer.MAX_VALUE, expiry)); 1017 childrenList.add(new Property("udi", "string", "United States Food and Drug Administration mandated Unique Device Identifier (UDI). Use the human readable information (the content that the user sees, which is sometimes different to the exact syntax represented in the barcode) - see http://www.fda.gov/MedicalDevices/DeviceRegulationandGuidance/UniqueDeviceIdentification/default.htm.", 0, java.lang.Integer.MAX_VALUE, udi)); 1018 childrenList.add(new Property("lotNumber", "string", "Lot number assigned by the manufacturer.", 0, java.lang.Integer.MAX_VALUE, lotNumber)); 1019 childrenList.add(new Property("owner", "Reference(Organization)", "An organization that is responsible for the provision and ongoing maintenance of the device.", 0, java.lang.Integer.MAX_VALUE, owner)); 1020 childrenList.add(new Property("location", "Reference(Location)", "The place where the device can be found.", 0, java.lang.Integer.MAX_VALUE, location)); 1021 childrenList.add(new Property("patient", "Reference(Patient)", "Patient information, if the resource is affixed to a person.", 0, java.lang.Integer.MAX_VALUE, patient)); 1022 childrenList.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)); 1023 childrenList.add(new Property("url", "uri", "A network address on which the device may be contacted directly.", 0, java.lang.Integer.MAX_VALUE, url)); 1024 } 1025 1026 @Override 1027 public void setProperty(String name, Base value) throws FHIRException { 1028 if (name.equals("identifier")) 1029 this.getIdentifier().add(castToIdentifier(value)); 1030 else if (name.equals("type")) 1031 this.type = castToCodeableConcept(value); // CodeableConcept 1032 else if (name.equals("note")) 1033 this.getNote().add(castToAnnotation(value)); 1034 else if (name.equals("status")) 1035 this.status = new DeviceStatusEnumFactory().fromType(value); // Enumeration<DeviceStatus> 1036 else if (name.equals("manufacturer")) 1037 this.manufacturer = castToString(value); // StringType 1038 else if (name.equals("model")) 1039 this.model = castToString(value); // StringType 1040 else if (name.equals("version")) 1041 this.version = castToString(value); // StringType 1042 else if (name.equals("manufactureDate")) 1043 this.manufactureDate = castToDateTime(value); // DateTimeType 1044 else if (name.equals("expiry")) 1045 this.expiry = castToDateTime(value); // DateTimeType 1046 else if (name.equals("udi")) 1047 this.udi = castToString(value); // StringType 1048 else if (name.equals("lotNumber")) 1049 this.lotNumber = castToString(value); // StringType 1050 else if (name.equals("owner")) 1051 this.owner = castToReference(value); // Reference 1052 else if (name.equals("location")) 1053 this.location = castToReference(value); // Reference 1054 else if (name.equals("patient")) 1055 this.patient = castToReference(value); // Reference 1056 else if (name.equals("contact")) 1057 this.getContact().add(castToContactPoint(value)); 1058 else if (name.equals("url")) 1059 this.url = castToUri(value); // UriType 1060 else 1061 super.setProperty(name, value); 1062 } 1063 1064 @Override 1065 public Base addChild(String name) throws FHIRException { 1066 if (name.equals("identifier")) { 1067 return addIdentifier(); 1068 } 1069 else if (name.equals("type")) { 1070 this.type = new CodeableConcept(); 1071 return this.type; 1072 } 1073 else if (name.equals("note")) { 1074 return addNote(); 1075 } 1076 else if (name.equals("status")) { 1077 throw new FHIRException("Cannot call addChild on a primitive type Device.status"); 1078 } 1079 else if (name.equals("manufacturer")) { 1080 throw new FHIRException("Cannot call addChild on a primitive type Device.manufacturer"); 1081 } 1082 else if (name.equals("model")) { 1083 throw new FHIRException("Cannot call addChild on a primitive type Device.model"); 1084 } 1085 else if (name.equals("version")) { 1086 throw new FHIRException("Cannot call addChild on a primitive type Device.version"); 1087 } 1088 else if (name.equals("manufactureDate")) { 1089 throw new FHIRException("Cannot call addChild on a primitive type Device.manufactureDate"); 1090 } 1091 else if (name.equals("expiry")) { 1092 throw new FHIRException("Cannot call addChild on a primitive type Device.expiry"); 1093 } 1094 else if (name.equals("udi")) { 1095 throw new FHIRException("Cannot call addChild on a primitive type Device.udi"); 1096 } 1097 else if (name.equals("lotNumber")) { 1098 throw new FHIRException("Cannot call addChild on a primitive type Device.lotNumber"); 1099 } 1100 else if (name.equals("owner")) { 1101 this.owner = new Reference(); 1102 return this.owner; 1103 } 1104 else if (name.equals("location")) { 1105 this.location = new Reference(); 1106 return this.location; 1107 } 1108 else if (name.equals("patient")) { 1109 this.patient = new Reference(); 1110 return this.patient; 1111 } 1112 else if (name.equals("contact")) { 1113 return addContact(); 1114 } 1115 else if (name.equals("url")) { 1116 throw new FHIRException("Cannot call addChild on a primitive type Device.url"); 1117 } 1118 else 1119 return super.addChild(name); 1120 } 1121 1122 public String fhirType() { 1123 return "Device"; 1124 1125 } 1126 1127 public Device copy() { 1128 Device dst = new Device(); 1129 copyValues(dst); 1130 if (identifier != null) { 1131 dst.identifier = new ArrayList<Identifier>(); 1132 for (Identifier i : identifier) 1133 dst.identifier.add(i.copy()); 1134 }; 1135 dst.type = type == null ? null : type.copy(); 1136 if (note != null) { 1137 dst.note = new ArrayList<Annotation>(); 1138 for (Annotation i : note) 1139 dst.note.add(i.copy()); 1140 }; 1141 dst.status = status == null ? null : status.copy(); 1142 dst.manufacturer = manufacturer == null ? null : manufacturer.copy(); 1143 dst.model = model == null ? null : model.copy(); 1144 dst.version = version == null ? null : version.copy(); 1145 dst.manufactureDate = manufactureDate == null ? null : manufactureDate.copy(); 1146 dst.expiry = expiry == null ? null : expiry.copy(); 1147 dst.udi = udi == null ? null : udi.copy(); 1148 dst.lotNumber = lotNumber == null ? null : lotNumber.copy(); 1149 dst.owner = owner == null ? null : owner.copy(); 1150 dst.location = location == null ? null : location.copy(); 1151 dst.patient = patient == null ? null : patient.copy(); 1152 if (contact != null) { 1153 dst.contact = new ArrayList<ContactPoint>(); 1154 for (ContactPoint i : contact) 1155 dst.contact.add(i.copy()); 1156 }; 1157 dst.url = url == null ? null : url.copy(); 1158 return dst; 1159 } 1160 1161 protected Device typedCopy() { 1162 return copy(); 1163 } 1164 1165 @Override 1166 public boolean equalsDeep(Base other) { 1167 if (!super.equalsDeep(other)) 1168 return false; 1169 if (!(other instanceof Device)) 1170 return false; 1171 Device o = (Device) other; 1172 return compareDeep(identifier, o.identifier, true) && compareDeep(type, o.type, true) && compareDeep(note, o.note, true) 1173 && compareDeep(status, o.status, true) && compareDeep(manufacturer, o.manufacturer, true) && compareDeep(model, o.model, true) 1174 && compareDeep(version, o.version, true) && compareDeep(manufactureDate, o.manufactureDate, true) 1175 && compareDeep(expiry, o.expiry, true) && compareDeep(udi, o.udi, true) && compareDeep(lotNumber, o.lotNumber, true) 1176 && compareDeep(owner, o.owner, true) && compareDeep(location, o.location, true) && compareDeep(patient, o.patient, true) 1177 && compareDeep(contact, o.contact, true) && compareDeep(url, o.url, true); 1178 } 1179 1180 @Override 1181 public boolean equalsShallow(Base other) { 1182 if (!super.equalsShallow(other)) 1183 return false; 1184 if (!(other instanceof Device)) 1185 return false; 1186 Device o = (Device) other; 1187 return compareValues(status, o.status, true) && compareValues(manufacturer, o.manufacturer, true) && compareValues(model, o.model, true) 1188 && compareValues(version, o.version, true) && compareValues(manufactureDate, o.manufactureDate, true) 1189 && compareValues(expiry, o.expiry, true) && compareValues(udi, o.udi, true) && compareValues(lotNumber, o.lotNumber, true) 1190 && compareValues(url, o.url, true); 1191 } 1192 1193 public boolean isEmpty() { 1194 return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (type == null || type.isEmpty()) 1195 && (note == null || note.isEmpty()) && (status == null || status.isEmpty()) && (manufacturer == null || manufacturer.isEmpty()) 1196 && (model == null || model.isEmpty()) && (version == null || version.isEmpty()) && (manufactureDate == null || manufactureDate.isEmpty()) 1197 && (expiry == null || expiry.isEmpty()) && (udi == null || udi.isEmpty()) && (lotNumber == null || lotNumber.isEmpty()) 1198 && (owner == null || owner.isEmpty()) && (location == null || location.isEmpty()) && (patient == null || patient.isEmpty()) 1199 && (contact == null || contact.isEmpty()) && (url == null || url.isEmpty()); 1200 } 1201 1202 @Override 1203 public ResourceType getResourceType() { 1204 return ResourceType.Device; 1205 } 1206 1207 @SearchParamDefinition(name="identifier", path="Device.identifier", description="Instance id from manufacturer, owner, and others", type="token" ) 1208 public static final String SP_IDENTIFIER = "identifier"; 1209 @SearchParamDefinition(name="patient", path="Device.patient", description="Patient information, if the resource is affixed to a person", type="reference" ) 1210 public static final String SP_PATIENT = "patient"; 1211 @SearchParamDefinition(name="organization", path="Device.owner", description="The organization responsible for the device", type="reference" ) 1212 public static final String SP_ORGANIZATION = "organization"; 1213 @SearchParamDefinition(name="model", path="Device.model", description="The model of the device", type="string" ) 1214 public static final String SP_MODEL = "model"; 1215 @SearchParamDefinition(name="location", path="Device.location", description="A location, where the resource is found", type="reference" ) 1216 public static final String SP_LOCATION = "location"; 1217 @SearchParamDefinition(name="udi", path="Device.udi", description="FDA mandated Unique Device Identifier", type="string" ) 1218 public static final String SP_UDI = "udi"; 1219 @SearchParamDefinition(name="type", path="Device.type", description="The type of the device", type="token" ) 1220 public static final String SP_TYPE = "type"; 1221 @SearchParamDefinition(name="url", path="Device.url", description="Network address to contact device", type="uri" ) 1222 public static final String SP_URL = "url"; 1223 @SearchParamDefinition(name="manufacturer", path="Device.manufacturer", description="The manufacturer of the device", type="string" ) 1224 public static final String SP_MANUFACTURER = "manufacturer"; 1225 1226} 1227