
001package org.hl7.fhir.dstu3.model; 002 003 004 005/* 006 Copyright (c) 2011+, HL7, Inc. 007 All rights reserved. 008 009 Redistribution and use in source and binary forms, with or without modification, 010 are permitted provided that the following conditions are met: 011 012 * Redistributions of source code must retain the above copyright notice, this 013 list of conditions and the following disclaimer. 014 * Redistributions in binary form must reproduce the above copyright notice, 015 this list of conditions and the following disclaimer in the documentation 016 and/or other materials provided with the distribution. 017 * Neither the name of HL7 nor the names of its contributors may be used to 018 endorse or promote products derived from this software without specific 019 prior written permission. 020 021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 022 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 023 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 024 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 025 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 026 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 027 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 028 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 029 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 030 POSSIBILITY OF SUCH DAMAGE. 031 032*/ 033 034// Generated on Fri, Mar 16, 2018 15:21+1100 for FHIR v3.0.x 035import java.util.ArrayList; 036import java.util.Date; 037import java.util.List; 038 039import org.hl7.fhir.exceptions.FHIRException; 040import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 041import org.hl7.fhir.utilities.Utilities; 042 043import ca.uhn.fhir.model.api.annotation.Block; 044import ca.uhn.fhir.model.api.annotation.Child; 045import ca.uhn.fhir.model.api.annotation.Description; 046import ca.uhn.fhir.model.api.annotation.ResourceDef; 047import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 048/** 049 * Representation of the content produced in a DICOM imaging study. A study comprises a set of series, each of which includes a set of Service-Object Pair Instances (SOP Instances - images or other data) acquired or produced in a common context. A series is of only one modality (e.g. X-ray, CT, MR, ultrasound), but a study may have multiple series of different modalities. 050 */ 051@ResourceDef(name="ImagingStudy", profile="http://hl7.org/fhir/Profile/ImagingStudy") 052public class ImagingStudy extends DomainResource { 053 054 public enum InstanceAvailability { 055 /** 056 * null 057 */ 058 ONLINE, 059 /** 060 * null 061 */ 062 OFFLINE, 063 /** 064 * null 065 */ 066 NEARLINE, 067 /** 068 * null 069 */ 070 UNAVAILABLE, 071 /** 072 * added to help the parsers with the generic types 073 */ 074 NULL; 075 public static InstanceAvailability fromCode(String codeString) throws FHIRException { 076 if (codeString == null || "".equals(codeString)) 077 return null; 078 if ("ONLINE".equals(codeString)) 079 return ONLINE; 080 if ("OFFLINE".equals(codeString)) 081 return OFFLINE; 082 if ("NEARLINE".equals(codeString)) 083 return NEARLINE; 084 if ("UNAVAILABLE".equals(codeString)) 085 return UNAVAILABLE; 086 if (Configuration.isAcceptInvalidEnums()) 087 return null; 088 else 089 throw new FHIRException("Unknown InstanceAvailability code '"+codeString+"'"); 090 } 091 public String toCode() { 092 switch (this) { 093 case ONLINE: return "ONLINE"; 094 case OFFLINE: return "OFFLINE"; 095 case NEARLINE: return "NEARLINE"; 096 case UNAVAILABLE: return "UNAVAILABLE"; 097 case NULL: return null; 098 default: return "?"; 099 } 100 } 101 public String getSystem() { 102 switch (this) { 103 case ONLINE: return "http://dicom.nema.org/resources/ontology/DCM"; 104 case OFFLINE: return "http://dicom.nema.org/resources/ontology/DCM"; 105 case NEARLINE: return "http://dicom.nema.org/resources/ontology/DCM"; 106 case UNAVAILABLE: return "http://dicom.nema.org/resources/ontology/DCM"; 107 case NULL: return null; 108 default: return "?"; 109 } 110 } 111 public String getDefinition() { 112 switch (this) { 113 case ONLINE: return ""; 114 case OFFLINE: return ""; 115 case NEARLINE: return ""; 116 case UNAVAILABLE: return ""; 117 case NULL: return null; 118 default: return "?"; 119 } 120 } 121 public String getDisplay() { 122 switch (this) { 123 case ONLINE: return "ONLINE"; 124 case OFFLINE: return "OFFLINE"; 125 case NEARLINE: return "NEARLINE"; 126 case UNAVAILABLE: return "UNAVAILABLE"; 127 case NULL: return null; 128 default: return "?"; 129 } 130 } 131 } 132 133 public static class InstanceAvailabilityEnumFactory implements EnumFactory<InstanceAvailability> { 134 public InstanceAvailability fromCode(String codeString) throws IllegalArgumentException { 135 if (codeString == null || "".equals(codeString)) 136 if (codeString == null || "".equals(codeString)) 137 return null; 138 if ("ONLINE".equals(codeString)) 139 return InstanceAvailability.ONLINE; 140 if ("OFFLINE".equals(codeString)) 141 return InstanceAvailability.OFFLINE; 142 if ("NEARLINE".equals(codeString)) 143 return InstanceAvailability.NEARLINE; 144 if ("UNAVAILABLE".equals(codeString)) 145 return InstanceAvailability.UNAVAILABLE; 146 throw new IllegalArgumentException("Unknown InstanceAvailability code '"+codeString+"'"); 147 } 148 public Enumeration<InstanceAvailability> fromType(PrimitiveType<?> code) throws FHIRException { 149 if (code == null) 150 return null; 151 if (code.isEmpty()) 152 return new Enumeration<InstanceAvailability>(this); 153 String codeString = code.asStringValue(); 154 if (codeString == null || "".equals(codeString)) 155 return null; 156 if ("ONLINE".equals(codeString)) 157 return new Enumeration<InstanceAvailability>(this, InstanceAvailability.ONLINE); 158 if ("OFFLINE".equals(codeString)) 159 return new Enumeration<InstanceAvailability>(this, InstanceAvailability.OFFLINE); 160 if ("NEARLINE".equals(codeString)) 161 return new Enumeration<InstanceAvailability>(this, InstanceAvailability.NEARLINE); 162 if ("UNAVAILABLE".equals(codeString)) 163 return new Enumeration<InstanceAvailability>(this, InstanceAvailability.UNAVAILABLE); 164 throw new FHIRException("Unknown InstanceAvailability code '"+codeString+"'"); 165 } 166 public String toCode(InstanceAvailability code) { 167 if (code == InstanceAvailability.NULL) 168 return null; 169 if (code == InstanceAvailability.ONLINE) 170 return "ONLINE"; 171 if (code == InstanceAvailability.OFFLINE) 172 return "OFFLINE"; 173 if (code == InstanceAvailability.NEARLINE) 174 return "NEARLINE"; 175 if (code == InstanceAvailability.UNAVAILABLE) 176 return "UNAVAILABLE"; 177 return "?"; 178 } 179 public String toSystem(InstanceAvailability code) { 180 return code.getSystem(); 181 } 182 } 183 184 @Block() 185 public static class ImagingStudySeriesComponent extends BackboneElement implements IBaseBackboneElement { 186 /** 187 * Formal identifier for this series. 188 */ 189 @Child(name = "uid", type = {OidType.class}, order=1, min=1, max=1, modifier=false, summary=true) 190 @Description(shortDefinition="Formal DICOM identifier for this series", formalDefinition="Formal identifier for this series." ) 191 protected OidType uid; 192 193 /** 194 * The numeric identifier of this series in the study. 195 */ 196 @Child(name = "number", type = {UnsignedIntType.class}, order=2, min=0, max=1, modifier=false, summary=true) 197 @Description(shortDefinition="Numeric identifier of this series", formalDefinition="The numeric identifier of this series in the study." ) 198 protected UnsignedIntType number; 199 200 /** 201 * The modality of this series sequence. 202 */ 203 @Child(name = "modality", type = {Coding.class}, order=3, min=1, max=1, modifier=false, summary=true) 204 @Description(shortDefinition="The modality of the instances in the series", formalDefinition="The modality of this series sequence." ) 205 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/dicom-cid29") 206 protected Coding modality; 207 208 /** 209 * A description of the series. 210 */ 211 @Child(name = "description", type = {StringType.class}, order=4, min=0, max=1, modifier=false, summary=true) 212 @Description(shortDefinition="A short human readable summary of the series", formalDefinition="A description of the series." ) 213 protected StringType description; 214 215 /** 216 * Number of SOP Instances in the Study. The value given may be larger than the number of instance elements this resource contains due to resource availability, security, or other factors. This element should be present if any instance elements are present. 217 */ 218 @Child(name = "numberOfInstances", type = {UnsignedIntType.class}, order=5, min=0, max=1, modifier=false, summary=true) 219 @Description(shortDefinition="Number of Series Related Instances", formalDefinition="Number of SOP Instances in the Study. The value given may be larger than the number of instance elements this resource contains due to resource availability, security, or other factors. This element should be present if any instance elements are present." ) 220 protected UnsignedIntType numberOfInstances; 221 222 /** 223 * Availability of series (online, offline or nearline). 224 */ 225 @Child(name = "availability", type = {CodeType.class}, order=6, min=0, max=1, modifier=false, summary=true) 226 @Description(shortDefinition="ONLINE | OFFLINE | NEARLINE | UNAVAILABLE", formalDefinition="Availability of series (online, offline or nearline)." ) 227 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/instance-availability") 228 protected Enumeration<InstanceAvailability> availability; 229 230 /** 231 * The network service providing access (e.g., query, view, or retrieval) for this series. See implementation notes for information about using DICOM endpoints. A series-level endpoint, if present, has precedence over a study-level endpoint with the same Endpoint.type. 232 */ 233 @Child(name = "endpoint", type = {Endpoint.class}, order=7, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 234 @Description(shortDefinition="Series access endpoint", formalDefinition="The network service providing access (e.g., query, view, or retrieval) for this series. See implementation notes for information about using DICOM endpoints. A series-level endpoint, if present, has precedence over a study-level endpoint with the same Endpoint.type." ) 235 protected List<Reference> endpoint; 236 /** 237 * The actual objects that are the target of the reference (The network service providing access (e.g., query, view, or retrieval) for this series. See implementation notes for information about using DICOM endpoints. A series-level endpoint, if present, has precedence over a study-level endpoint with the same Endpoint.type.) 238 */ 239 protected List<Endpoint> endpointTarget; 240 241 242 /** 243 * The anatomic structures examined. See DICOM Part 16 Annex L (http://dicom.nema.org/medical/dicom/current/output/chtml/part16/chapter_L.html) for DICOM to SNOMED-CT mappings. The bodySite may indicate the laterality of body part imaged; if so, it shall be consistent with any content of ImagingStudy.series.laterality. 244 */ 245 @Child(name = "bodySite", type = {Coding.class}, order=8, min=0, max=1, modifier=false, summary=true) 246 @Description(shortDefinition="Body part examined", formalDefinition="The anatomic structures examined. See DICOM Part 16 Annex L (http://dicom.nema.org/medical/dicom/current/output/chtml/part16/chapter_L.html) for DICOM to SNOMED-CT mappings. The bodySite may indicate the laterality of body part imaged; if so, it shall be consistent with any content of ImagingStudy.series.laterality." ) 247 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/body-site") 248 protected Coding bodySite; 249 250 /** 251 * The laterality of the (possibly paired) anatomic structures examined. E.g., the left knee, both lungs, or unpaired abdomen. If present, shall be consistent with any laterality information indicated in ImagingStudy.series.bodySite. 252 */ 253 @Child(name = "laterality", type = {Coding.class}, order=9, min=0, max=1, modifier=false, summary=true) 254 @Description(shortDefinition="Body part laterality", formalDefinition="The laterality of the (possibly paired) anatomic structures examined. E.g., the left knee, both lungs, or unpaired abdomen. If present, shall be consistent with any laterality information indicated in ImagingStudy.series.bodySite." ) 255 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/bodysite-laterality") 256 protected Coding laterality; 257 258 /** 259 * The date and time the series was started. 260 */ 261 @Child(name = "started", type = {DateTimeType.class}, order=10, min=0, max=1, modifier=false, summary=true) 262 @Description(shortDefinition="When the series started", formalDefinition="The date and time the series was started." ) 263 protected DateTimeType started; 264 265 /** 266 * The physician or operator (often the radiology technician) who performed the series. The performer is recorded at the series level, since each series in a study may be performed by a different practitioner, at different times, and using different devices. A series may be performed by multiple practitioners. 267 */ 268 @Child(name = "performer", type = {Practitioner.class}, order=11, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 269 @Description(shortDefinition="Who performed the series", formalDefinition="The physician or operator (often the radiology technician) who performed the series. The performer is recorded at the series level, since each series in a study may be performed by a different practitioner, at different times, and using different devices. A series may be performed by multiple practitioners." ) 270 protected List<Reference> performer; 271 /** 272 * The actual objects that are the target of the reference (The physician or operator (often the radiology technician) who performed the series. The performer is recorded at the series level, since each series in a study may be performed by a different practitioner, at different times, and using different devices. A series may be performed by multiple practitioners.) 273 */ 274 protected List<Practitioner> performerTarget; 275 276 277 /** 278 * A single SOP instance within the series, e.g. an image, or presentation state. 279 */ 280 @Child(name = "instance", type = {}, order=12, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 281 @Description(shortDefinition="A single SOP instance from the series", formalDefinition="A single SOP instance within the series, e.g. an image, or presentation state." ) 282 protected List<ImagingStudySeriesInstanceComponent> instance; 283 284 private static final long serialVersionUID = -1469376087L; 285 286 /** 287 * Constructor 288 */ 289 public ImagingStudySeriesComponent() { 290 super(); 291 } 292 293 /** 294 * Constructor 295 */ 296 public ImagingStudySeriesComponent(OidType uid, Coding modality) { 297 super(); 298 this.uid = uid; 299 this.modality = modality; 300 } 301 302 /** 303 * @return {@link #uid} (Formal identifier for this series.). This is the underlying object with id, value and extensions. The accessor "getUid" gives direct access to the value 304 */ 305 public OidType getUidElement() { 306 if (this.uid == null) 307 if (Configuration.errorOnAutoCreate()) 308 throw new Error("Attempt to auto-create ImagingStudySeriesComponent.uid"); 309 else if (Configuration.doAutoCreate()) 310 this.uid = new OidType(); // bb 311 return this.uid; 312 } 313 314 public boolean hasUidElement() { 315 return this.uid != null && !this.uid.isEmpty(); 316 } 317 318 public boolean hasUid() { 319 return this.uid != null && !this.uid.isEmpty(); 320 } 321 322 /** 323 * @param value {@link #uid} (Formal identifier for this series.). This is the underlying object with id, value and extensions. The accessor "getUid" gives direct access to the value 324 */ 325 public ImagingStudySeriesComponent setUidElement(OidType value) { 326 this.uid = value; 327 return this; 328 } 329 330 /** 331 * @return Formal identifier for this series. 332 */ 333 public String getUid() { 334 return this.uid == null ? null : this.uid.getValue(); 335 } 336 337 /** 338 * @param value Formal identifier for this series. 339 */ 340 public ImagingStudySeriesComponent setUid(String value) { 341 if (this.uid == null) 342 this.uid = new OidType(); 343 this.uid.setValue(value); 344 return this; 345 } 346 347 /** 348 * @return {@link #number} (The numeric identifier of this series in the study.). This is the underlying object with id, value and extensions. The accessor "getNumber" gives direct access to the value 349 */ 350 public UnsignedIntType getNumberElement() { 351 if (this.number == null) 352 if (Configuration.errorOnAutoCreate()) 353 throw new Error("Attempt to auto-create ImagingStudySeriesComponent.number"); 354 else if (Configuration.doAutoCreate()) 355 this.number = new UnsignedIntType(); // bb 356 return this.number; 357 } 358 359 public boolean hasNumberElement() { 360 return this.number != null && !this.number.isEmpty(); 361 } 362 363 public boolean hasNumber() { 364 return this.number != null && !this.number.isEmpty(); 365 } 366 367 /** 368 * @param value {@link #number} (The numeric identifier of this series in the study.). This is the underlying object with id, value and extensions. The accessor "getNumber" gives direct access to the value 369 */ 370 public ImagingStudySeriesComponent setNumberElement(UnsignedIntType value) { 371 this.number = value; 372 return this; 373 } 374 375 /** 376 * @return The numeric identifier of this series in the study. 377 */ 378 public int getNumber() { 379 return this.number == null || this.number.isEmpty() ? 0 : this.number.getValue(); 380 } 381 382 /** 383 * @param value The numeric identifier of this series in the study. 384 */ 385 public ImagingStudySeriesComponent setNumber(int value) { 386 if (this.number == null) 387 this.number = new UnsignedIntType(); 388 this.number.setValue(value); 389 return this; 390 } 391 392 /** 393 * @return {@link #modality} (The modality of this series sequence.) 394 */ 395 public Coding getModality() { 396 if (this.modality == null) 397 if (Configuration.errorOnAutoCreate()) 398 throw new Error("Attempt to auto-create ImagingStudySeriesComponent.modality"); 399 else if (Configuration.doAutoCreate()) 400 this.modality = new Coding(); // cc 401 return this.modality; 402 } 403 404 public boolean hasModality() { 405 return this.modality != null && !this.modality.isEmpty(); 406 } 407 408 /** 409 * @param value {@link #modality} (The modality of this series sequence.) 410 */ 411 public ImagingStudySeriesComponent setModality(Coding value) { 412 this.modality = value; 413 return this; 414 } 415 416 /** 417 * @return {@link #description} (A description of the series.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 418 */ 419 public StringType getDescriptionElement() { 420 if (this.description == null) 421 if (Configuration.errorOnAutoCreate()) 422 throw new Error("Attempt to auto-create ImagingStudySeriesComponent.description"); 423 else if (Configuration.doAutoCreate()) 424 this.description = new StringType(); // bb 425 return this.description; 426 } 427 428 public boolean hasDescriptionElement() { 429 return this.description != null && !this.description.isEmpty(); 430 } 431 432 public boolean hasDescription() { 433 return this.description != null && !this.description.isEmpty(); 434 } 435 436 /** 437 * @param value {@link #description} (A description of the series.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 438 */ 439 public ImagingStudySeriesComponent setDescriptionElement(StringType value) { 440 this.description = value; 441 return this; 442 } 443 444 /** 445 * @return A description of the series. 446 */ 447 public String getDescription() { 448 return this.description == null ? null : this.description.getValue(); 449 } 450 451 /** 452 * @param value A description of the series. 453 */ 454 public ImagingStudySeriesComponent setDescription(String value) { 455 if (Utilities.noString(value)) 456 this.description = null; 457 else { 458 if (this.description == null) 459 this.description = new StringType(); 460 this.description.setValue(value); 461 } 462 return this; 463 } 464 465 /** 466 * @return {@link #numberOfInstances} (Number of SOP Instances in the Study. The value given may be larger than the number of instance elements this resource contains due to resource availability, security, or other factors. This element should be present if any instance elements are present.). This is the underlying object with id, value and extensions. The accessor "getNumberOfInstances" gives direct access to the value 467 */ 468 public UnsignedIntType getNumberOfInstancesElement() { 469 if (this.numberOfInstances == null) 470 if (Configuration.errorOnAutoCreate()) 471 throw new Error("Attempt to auto-create ImagingStudySeriesComponent.numberOfInstances"); 472 else if (Configuration.doAutoCreate()) 473 this.numberOfInstances = new UnsignedIntType(); // bb 474 return this.numberOfInstances; 475 } 476 477 public boolean hasNumberOfInstancesElement() { 478 return this.numberOfInstances != null && !this.numberOfInstances.isEmpty(); 479 } 480 481 public boolean hasNumberOfInstances() { 482 return this.numberOfInstances != null && !this.numberOfInstances.isEmpty(); 483 } 484 485 /** 486 * @param value {@link #numberOfInstances} (Number of SOP Instances in the Study. The value given may be larger than the number of instance elements this resource contains due to resource availability, security, or other factors. This element should be present if any instance elements are present.). This is the underlying object with id, value and extensions. The accessor "getNumberOfInstances" gives direct access to the value 487 */ 488 public ImagingStudySeriesComponent setNumberOfInstancesElement(UnsignedIntType value) { 489 this.numberOfInstances = value; 490 return this; 491 } 492 493 /** 494 * @return Number of SOP Instances in the Study. The value given may be larger than the number of instance elements this resource contains due to resource availability, security, or other factors. This element should be present if any instance elements are present. 495 */ 496 public int getNumberOfInstances() { 497 return this.numberOfInstances == null || this.numberOfInstances.isEmpty() ? 0 : this.numberOfInstances.getValue(); 498 } 499 500 /** 501 * @param value Number of SOP Instances in the Study. The value given may be larger than the number of instance elements this resource contains due to resource availability, security, or other factors. This element should be present if any instance elements are present. 502 */ 503 public ImagingStudySeriesComponent setNumberOfInstances(int value) { 504 if (this.numberOfInstances == null) 505 this.numberOfInstances = new UnsignedIntType(); 506 this.numberOfInstances.setValue(value); 507 return this; 508 } 509 510 /** 511 * @return {@link #availability} (Availability of series (online, offline or nearline).). This is the underlying object with id, value and extensions. The accessor "getAvailability" gives direct access to the value 512 */ 513 public Enumeration<InstanceAvailability> getAvailabilityElement() { 514 if (this.availability == null) 515 if (Configuration.errorOnAutoCreate()) 516 throw new Error("Attempt to auto-create ImagingStudySeriesComponent.availability"); 517 else if (Configuration.doAutoCreate()) 518 this.availability = new Enumeration<InstanceAvailability>(new InstanceAvailabilityEnumFactory()); // bb 519 return this.availability; 520 } 521 522 public boolean hasAvailabilityElement() { 523 return this.availability != null && !this.availability.isEmpty(); 524 } 525 526 public boolean hasAvailability() { 527 return this.availability != null && !this.availability.isEmpty(); 528 } 529 530 /** 531 * @param value {@link #availability} (Availability of series (online, offline or nearline).). This is the underlying object with id, value and extensions. The accessor "getAvailability" gives direct access to the value 532 */ 533 public ImagingStudySeriesComponent setAvailabilityElement(Enumeration<InstanceAvailability> value) { 534 this.availability = value; 535 return this; 536 } 537 538 /** 539 * @return Availability of series (online, offline or nearline). 540 */ 541 public InstanceAvailability getAvailability() { 542 return this.availability == null ? null : this.availability.getValue(); 543 } 544 545 /** 546 * @param value Availability of series (online, offline or nearline). 547 */ 548 public ImagingStudySeriesComponent setAvailability(InstanceAvailability value) { 549 if (value == null) 550 this.availability = null; 551 else { 552 if (this.availability == null) 553 this.availability = new Enumeration<InstanceAvailability>(new InstanceAvailabilityEnumFactory()); 554 this.availability.setValue(value); 555 } 556 return this; 557 } 558 559 /** 560 * @return {@link #endpoint} (The network service providing access (e.g., query, view, or retrieval) for this series. See implementation notes for information about using DICOM endpoints. A series-level endpoint, if present, has precedence over a study-level endpoint with the same Endpoint.type.) 561 */ 562 public List<Reference> getEndpoint() { 563 if (this.endpoint == null) 564 this.endpoint = new ArrayList<Reference>(); 565 return this.endpoint; 566 } 567 568 /** 569 * @return Returns a reference to <code>this</code> for easy method chaining 570 */ 571 public ImagingStudySeriesComponent setEndpoint(List<Reference> theEndpoint) { 572 this.endpoint = theEndpoint; 573 return this; 574 } 575 576 public boolean hasEndpoint() { 577 if (this.endpoint == null) 578 return false; 579 for (Reference item : this.endpoint) 580 if (!item.isEmpty()) 581 return true; 582 return false; 583 } 584 585 public Reference addEndpoint() { //3 586 Reference t = new Reference(); 587 if (this.endpoint == null) 588 this.endpoint = new ArrayList<Reference>(); 589 this.endpoint.add(t); 590 return t; 591 } 592 593 public ImagingStudySeriesComponent addEndpoint(Reference t) { //3 594 if (t == null) 595 return this; 596 if (this.endpoint == null) 597 this.endpoint = new ArrayList<Reference>(); 598 this.endpoint.add(t); 599 return this; 600 } 601 602 /** 603 * @return The first repetition of repeating field {@link #endpoint}, creating it if it does not already exist 604 */ 605 public Reference getEndpointFirstRep() { 606 if (getEndpoint().isEmpty()) { 607 addEndpoint(); 608 } 609 return getEndpoint().get(0); 610 } 611 612 /** 613 * @return {@link #bodySite} (The anatomic structures examined. See DICOM Part 16 Annex L (http://dicom.nema.org/medical/dicom/current/output/chtml/part16/chapter_L.html) for DICOM to SNOMED-CT mappings. The bodySite may indicate the laterality of body part imaged; if so, it shall be consistent with any content of ImagingStudy.series.laterality.) 614 */ 615 public Coding getBodySite() { 616 if (this.bodySite == null) 617 if (Configuration.errorOnAutoCreate()) 618 throw new Error("Attempt to auto-create ImagingStudySeriesComponent.bodySite"); 619 else if (Configuration.doAutoCreate()) 620 this.bodySite = new Coding(); // cc 621 return this.bodySite; 622 } 623 624 public boolean hasBodySite() { 625 return this.bodySite != null && !this.bodySite.isEmpty(); 626 } 627 628 /** 629 * @param value {@link #bodySite} (The anatomic structures examined. See DICOM Part 16 Annex L (http://dicom.nema.org/medical/dicom/current/output/chtml/part16/chapter_L.html) for DICOM to SNOMED-CT mappings. The bodySite may indicate the laterality of body part imaged; if so, it shall be consistent with any content of ImagingStudy.series.laterality.) 630 */ 631 public ImagingStudySeriesComponent setBodySite(Coding value) { 632 this.bodySite = value; 633 return this; 634 } 635 636 /** 637 * @return {@link #laterality} (The laterality of the (possibly paired) anatomic structures examined. E.g., the left knee, both lungs, or unpaired abdomen. If present, shall be consistent with any laterality information indicated in ImagingStudy.series.bodySite.) 638 */ 639 public Coding getLaterality() { 640 if (this.laterality == null) 641 if (Configuration.errorOnAutoCreate()) 642 throw new Error("Attempt to auto-create ImagingStudySeriesComponent.laterality"); 643 else if (Configuration.doAutoCreate()) 644 this.laterality = new Coding(); // cc 645 return this.laterality; 646 } 647 648 public boolean hasLaterality() { 649 return this.laterality != null && !this.laterality.isEmpty(); 650 } 651 652 /** 653 * @param value {@link #laterality} (The laterality of the (possibly paired) anatomic structures examined. E.g., the left knee, both lungs, or unpaired abdomen. If present, shall be consistent with any laterality information indicated in ImagingStudy.series.bodySite.) 654 */ 655 public ImagingStudySeriesComponent setLaterality(Coding value) { 656 this.laterality = value; 657 return this; 658 } 659 660 /** 661 * @return {@link #started} (The date and time the series was started.). This is the underlying object with id, value and extensions. The accessor "getStarted" gives direct access to the value 662 */ 663 public DateTimeType getStartedElement() { 664 if (this.started == null) 665 if (Configuration.errorOnAutoCreate()) 666 throw new Error("Attempt to auto-create ImagingStudySeriesComponent.started"); 667 else if (Configuration.doAutoCreate()) 668 this.started = new DateTimeType(); // bb 669 return this.started; 670 } 671 672 public boolean hasStartedElement() { 673 return this.started != null && !this.started.isEmpty(); 674 } 675 676 public boolean hasStarted() { 677 return this.started != null && !this.started.isEmpty(); 678 } 679 680 /** 681 * @param value {@link #started} (The date and time the series was started.). This is the underlying object with id, value and extensions. The accessor "getStarted" gives direct access to the value 682 */ 683 public ImagingStudySeriesComponent setStartedElement(DateTimeType value) { 684 this.started = value; 685 return this; 686 } 687 688 /** 689 * @return The date and time the series was started. 690 */ 691 public Date getStarted() { 692 return this.started == null ? null : this.started.getValue(); 693 } 694 695 /** 696 * @param value The date and time the series was started. 697 */ 698 public ImagingStudySeriesComponent setStarted(Date value) { 699 if (value == null) 700 this.started = null; 701 else { 702 if (this.started == null) 703 this.started = new DateTimeType(); 704 this.started.setValue(value); 705 } 706 return this; 707 } 708 709 /** 710 * @return {@link #performer} (The physician or operator (often the radiology technician) who performed the series. The performer is recorded at the series level, since each series in a study may be performed by a different practitioner, at different times, and using different devices. A series may be performed by multiple practitioners.) 711 */ 712 public List<Reference> getPerformer() { 713 if (this.performer == null) 714 this.performer = new ArrayList<Reference>(); 715 return this.performer; 716 } 717 718 /** 719 * @return Returns a reference to <code>this</code> for easy method chaining 720 */ 721 public ImagingStudySeriesComponent setPerformer(List<Reference> thePerformer) { 722 this.performer = thePerformer; 723 return this; 724 } 725 726 public boolean hasPerformer() { 727 if (this.performer == null) 728 return false; 729 for (Reference item : this.performer) 730 if (!item.isEmpty()) 731 return true; 732 return false; 733 } 734 735 public Reference addPerformer() { //3 736 Reference t = new Reference(); 737 if (this.performer == null) 738 this.performer = new ArrayList<Reference>(); 739 this.performer.add(t); 740 return t; 741 } 742 743 public ImagingStudySeriesComponent addPerformer(Reference t) { //3 744 if (t == null) 745 return this; 746 if (this.performer == null) 747 this.performer = new ArrayList<Reference>(); 748 this.performer.add(t); 749 return this; 750 } 751 752 /** 753 * @return The first repetition of repeating field {@link #performer}, creating it if it does not already exist 754 */ 755 public Reference getPerformerFirstRep() { 756 if (getPerformer().isEmpty()) { 757 addPerformer(); 758 } 759 return getPerformer().get(0); 760 } 761 762 /** 763 * @return {@link #instance} (A single SOP instance within the series, e.g. an image, or presentation state.) 764 */ 765 public List<ImagingStudySeriesInstanceComponent> getInstance() { 766 if (this.instance == null) 767 this.instance = new ArrayList<ImagingStudySeriesInstanceComponent>(); 768 return this.instance; 769 } 770 771 /** 772 * @return Returns a reference to <code>this</code> for easy method chaining 773 */ 774 public ImagingStudySeriesComponent setInstance(List<ImagingStudySeriesInstanceComponent> theInstance) { 775 this.instance = theInstance; 776 return this; 777 } 778 779 public boolean hasInstance() { 780 if (this.instance == null) 781 return false; 782 for (ImagingStudySeriesInstanceComponent item : this.instance) 783 if (!item.isEmpty()) 784 return true; 785 return false; 786 } 787 788 public ImagingStudySeriesInstanceComponent addInstance() { //3 789 ImagingStudySeriesInstanceComponent t = new ImagingStudySeriesInstanceComponent(); 790 if (this.instance == null) 791 this.instance = new ArrayList<ImagingStudySeriesInstanceComponent>(); 792 this.instance.add(t); 793 return t; 794 } 795 796 public ImagingStudySeriesComponent addInstance(ImagingStudySeriesInstanceComponent t) { //3 797 if (t == null) 798 return this; 799 if (this.instance == null) 800 this.instance = new ArrayList<ImagingStudySeriesInstanceComponent>(); 801 this.instance.add(t); 802 return this; 803 } 804 805 /** 806 * @return The first repetition of repeating field {@link #instance}, creating it if it does not already exist 807 */ 808 public ImagingStudySeriesInstanceComponent getInstanceFirstRep() { 809 if (getInstance().isEmpty()) { 810 addInstance(); 811 } 812 return getInstance().get(0); 813 } 814 815 protected void listChildren(List<Property> children) { 816 super.listChildren(children); 817 children.add(new Property("uid", "oid", "Formal identifier for this series.", 0, 1, uid)); 818 children.add(new Property("number", "unsignedInt", "The numeric identifier of this series in the study.", 0, 1, number)); 819 children.add(new Property("modality", "Coding", "The modality of this series sequence.", 0, 1, modality)); 820 children.add(new Property("description", "string", "A description of the series.", 0, 1, description)); 821 children.add(new Property("numberOfInstances", "unsignedInt", "Number of SOP Instances in the Study. The value given may be larger than the number of instance elements this resource contains due to resource availability, security, or other factors. This element should be present if any instance elements are present.", 0, 1, numberOfInstances)); 822 children.add(new Property("availability", "code", "Availability of series (online, offline or nearline).", 0, 1, availability)); 823 children.add(new Property("endpoint", "Reference(Endpoint)", "The network service providing access (e.g., query, view, or retrieval) for this series. See implementation notes for information about using DICOM endpoints. A series-level endpoint, if present, has precedence over a study-level endpoint with the same Endpoint.type.", 0, java.lang.Integer.MAX_VALUE, endpoint)); 824 children.add(new Property("bodySite", "Coding", "The anatomic structures examined. See DICOM Part 16 Annex L (http://dicom.nema.org/medical/dicom/current/output/chtml/part16/chapter_L.html) for DICOM to SNOMED-CT mappings. The bodySite may indicate the laterality of body part imaged; if so, it shall be consistent with any content of ImagingStudy.series.laterality.", 0, 1, bodySite)); 825 children.add(new Property("laterality", "Coding", "The laterality of the (possibly paired) anatomic structures examined. E.g., the left knee, both lungs, or unpaired abdomen. If present, shall be consistent with any laterality information indicated in ImagingStudy.series.bodySite.", 0, 1, laterality)); 826 children.add(new Property("started", "dateTime", "The date and time the series was started.", 0, 1, started)); 827 children.add(new Property("performer", "Reference(Practitioner)", "The physician or operator (often the radiology technician) who performed the series. The performer is recorded at the series level, since each series in a study may be performed by a different practitioner, at different times, and using different devices. A series may be performed by multiple practitioners.", 0, java.lang.Integer.MAX_VALUE, performer)); 828 children.add(new Property("instance", "", "A single SOP instance within the series, e.g. an image, or presentation state.", 0, java.lang.Integer.MAX_VALUE, instance)); 829 } 830 831 @Override 832 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 833 switch (_hash) { 834 case 115792: /*uid*/ return new Property("uid", "oid", "Formal identifier for this series.", 0, 1, uid); 835 case -1034364087: /*number*/ return new Property("number", "unsignedInt", "The numeric identifier of this series in the study.", 0, 1, number); 836 case -622722335: /*modality*/ return new Property("modality", "Coding", "The modality of this series sequence.", 0, 1, modality); 837 case -1724546052: /*description*/ return new Property("description", "string", "A description of the series.", 0, 1, description); 838 case -1043544226: /*numberOfInstances*/ return new Property("numberOfInstances", "unsignedInt", "Number of SOP Instances in the Study. The value given may be larger than the number of instance elements this resource contains due to resource availability, security, or other factors. This element should be present if any instance elements are present.", 0, 1, numberOfInstances); 839 case 1997542747: /*availability*/ return new Property("availability", "code", "Availability of series (online, offline or nearline).", 0, 1, availability); 840 case 1741102485: /*endpoint*/ return new Property("endpoint", "Reference(Endpoint)", "The network service providing access (e.g., query, view, or retrieval) for this series. See implementation notes for information about using DICOM endpoints. A series-level endpoint, if present, has precedence over a study-level endpoint with the same Endpoint.type.", 0, java.lang.Integer.MAX_VALUE, endpoint); 841 case 1702620169: /*bodySite*/ return new Property("bodySite", "Coding", "The anatomic structures examined. See DICOM Part 16 Annex L (http://dicom.nema.org/medical/dicom/current/output/chtml/part16/chapter_L.html) for DICOM to SNOMED-CT mappings. The bodySite may indicate the laterality of body part imaged; if so, it shall be consistent with any content of ImagingStudy.series.laterality.", 0, 1, bodySite); 842 case -170291817: /*laterality*/ return new Property("laterality", "Coding", "The laterality of the (possibly paired) anatomic structures examined. E.g., the left knee, both lungs, or unpaired abdomen. If present, shall be consistent with any laterality information indicated in ImagingStudy.series.bodySite.", 0, 1, laterality); 843 case -1897185151: /*started*/ return new Property("started", "dateTime", "The date and time the series was started.", 0, 1, started); 844 case 481140686: /*performer*/ return new Property("performer", "Reference(Practitioner)", "The physician or operator (often the radiology technician) who performed the series. The performer is recorded at the series level, since each series in a study may be performed by a different practitioner, at different times, and using different devices. A series may be performed by multiple practitioners.", 0, java.lang.Integer.MAX_VALUE, performer); 845 case 555127957: /*instance*/ return new Property("instance", "", "A single SOP instance within the series, e.g. an image, or presentation state.", 0, java.lang.Integer.MAX_VALUE, instance); 846 default: return super.getNamedProperty(_hash, _name, _checkValid); 847 } 848 849 } 850 851 @Override 852 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 853 switch (hash) { 854 case 115792: /*uid*/ return this.uid == null ? new Base[0] : new Base[] {this.uid}; // OidType 855 case -1034364087: /*number*/ return this.number == null ? new Base[0] : new Base[] {this.number}; // UnsignedIntType 856 case -622722335: /*modality*/ return this.modality == null ? new Base[0] : new Base[] {this.modality}; // Coding 857 case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // StringType 858 case -1043544226: /*numberOfInstances*/ return this.numberOfInstances == null ? new Base[0] : new Base[] {this.numberOfInstances}; // UnsignedIntType 859 case 1997542747: /*availability*/ return this.availability == null ? new Base[0] : new Base[] {this.availability}; // Enumeration<InstanceAvailability> 860 case 1741102485: /*endpoint*/ return this.endpoint == null ? new Base[0] : this.endpoint.toArray(new Base[this.endpoint.size()]); // Reference 861 case 1702620169: /*bodySite*/ return this.bodySite == null ? new Base[0] : new Base[] {this.bodySite}; // Coding 862 case -170291817: /*laterality*/ return this.laterality == null ? new Base[0] : new Base[] {this.laterality}; // Coding 863 case -1897185151: /*started*/ return this.started == null ? new Base[0] : new Base[] {this.started}; // DateTimeType 864 case 481140686: /*performer*/ return this.performer == null ? new Base[0] : this.performer.toArray(new Base[this.performer.size()]); // Reference 865 case 555127957: /*instance*/ return this.instance == null ? new Base[0] : this.instance.toArray(new Base[this.instance.size()]); // ImagingStudySeriesInstanceComponent 866 default: return super.getProperty(hash, name, checkValid); 867 } 868 869 } 870 871 @Override 872 public Base setProperty(int hash, String name, Base value) throws FHIRException { 873 switch (hash) { 874 case 115792: // uid 875 this.uid = castToOid(value); // OidType 876 return value; 877 case -1034364087: // number 878 this.number = castToUnsignedInt(value); // UnsignedIntType 879 return value; 880 case -622722335: // modality 881 this.modality = castToCoding(value); // Coding 882 return value; 883 case -1724546052: // description 884 this.description = castToString(value); // StringType 885 return value; 886 case -1043544226: // numberOfInstances 887 this.numberOfInstances = castToUnsignedInt(value); // UnsignedIntType 888 return value; 889 case 1997542747: // availability 890 value = new InstanceAvailabilityEnumFactory().fromType(castToCode(value)); 891 this.availability = (Enumeration) value; // Enumeration<InstanceAvailability> 892 return value; 893 case 1741102485: // endpoint 894 this.getEndpoint().add(castToReference(value)); // Reference 895 return value; 896 case 1702620169: // bodySite 897 this.bodySite = castToCoding(value); // Coding 898 return value; 899 case -170291817: // laterality 900 this.laterality = castToCoding(value); // Coding 901 return value; 902 case -1897185151: // started 903 this.started = castToDateTime(value); // DateTimeType 904 return value; 905 case 481140686: // performer 906 this.getPerformer().add(castToReference(value)); // Reference 907 return value; 908 case 555127957: // instance 909 this.getInstance().add((ImagingStudySeriesInstanceComponent) value); // ImagingStudySeriesInstanceComponent 910 return value; 911 default: return super.setProperty(hash, name, value); 912 } 913 914 } 915 916 @Override 917 public Base setProperty(String name, Base value) throws FHIRException { 918 if (name.equals("uid")) { 919 this.uid = castToOid(value); // OidType 920 } else if (name.equals("number")) { 921 this.number = castToUnsignedInt(value); // UnsignedIntType 922 } else if (name.equals("modality")) { 923 this.modality = castToCoding(value); // Coding 924 } else if (name.equals("description")) { 925 this.description = castToString(value); // StringType 926 } else if (name.equals("numberOfInstances")) { 927 this.numberOfInstances = castToUnsignedInt(value); // UnsignedIntType 928 } else if (name.equals("availability")) { 929 value = new InstanceAvailabilityEnumFactory().fromType(castToCode(value)); 930 this.availability = (Enumeration) value; // Enumeration<InstanceAvailability> 931 } else if (name.equals("endpoint")) { 932 this.getEndpoint().add(castToReference(value)); 933 } else if (name.equals("bodySite")) { 934 this.bodySite = castToCoding(value); // Coding 935 } else if (name.equals("laterality")) { 936 this.laterality = castToCoding(value); // Coding 937 } else if (name.equals("started")) { 938 this.started = castToDateTime(value); // DateTimeType 939 } else if (name.equals("performer")) { 940 this.getPerformer().add(castToReference(value)); 941 } else if (name.equals("instance")) { 942 this.getInstance().add((ImagingStudySeriesInstanceComponent) value); 943 } else 944 return super.setProperty(name, value); 945 return value; 946 } 947 948 @Override 949 public Base makeProperty(int hash, String name) throws FHIRException { 950 switch (hash) { 951 case 115792: return getUidElement(); 952 case -1034364087: return getNumberElement(); 953 case -622722335: return getModality(); 954 case -1724546052: return getDescriptionElement(); 955 case -1043544226: return getNumberOfInstancesElement(); 956 case 1997542747: return getAvailabilityElement(); 957 case 1741102485: return addEndpoint(); 958 case 1702620169: return getBodySite(); 959 case -170291817: return getLaterality(); 960 case -1897185151: return getStartedElement(); 961 case 481140686: return addPerformer(); 962 case 555127957: return addInstance(); 963 default: return super.makeProperty(hash, name); 964 } 965 966 } 967 968 @Override 969 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 970 switch (hash) { 971 case 115792: /*uid*/ return new String[] {"oid"}; 972 case -1034364087: /*number*/ return new String[] {"unsignedInt"}; 973 case -622722335: /*modality*/ return new String[] {"Coding"}; 974 case -1724546052: /*description*/ return new String[] {"string"}; 975 case -1043544226: /*numberOfInstances*/ return new String[] {"unsignedInt"}; 976 case 1997542747: /*availability*/ return new String[] {"code"}; 977 case 1741102485: /*endpoint*/ return new String[] {"Reference"}; 978 case 1702620169: /*bodySite*/ return new String[] {"Coding"}; 979 case -170291817: /*laterality*/ return new String[] {"Coding"}; 980 case -1897185151: /*started*/ return new String[] {"dateTime"}; 981 case 481140686: /*performer*/ return new String[] {"Reference"}; 982 case 555127957: /*instance*/ return new String[] {}; 983 default: return super.getTypesForProperty(hash, name); 984 } 985 986 } 987 988 @Override 989 public Base addChild(String name) throws FHIRException { 990 if (name.equals("uid")) { 991 throw new FHIRException("Cannot call addChild on a singleton property ImagingStudy.uid"); 992 } 993 else if (name.equals("number")) { 994 throw new FHIRException("Cannot call addChild on a singleton property ImagingStudy.number"); 995 } 996 else if (name.equals("modality")) { 997 this.modality = new Coding(); 998 return this.modality; 999 } 1000 else if (name.equals("description")) { 1001 throw new FHIRException("Cannot call addChild on a singleton property ImagingStudy.description"); 1002 } 1003 else if (name.equals("numberOfInstances")) { 1004 throw new FHIRException("Cannot call addChild on a singleton property ImagingStudy.numberOfInstances"); 1005 } 1006 else if (name.equals("availability")) { 1007 throw new FHIRException("Cannot call addChild on a singleton property ImagingStudy.availability"); 1008 } 1009 else if (name.equals("endpoint")) { 1010 return addEndpoint(); 1011 } 1012 else if (name.equals("bodySite")) { 1013 this.bodySite = new Coding(); 1014 return this.bodySite; 1015 } 1016 else if (name.equals("laterality")) { 1017 this.laterality = new Coding(); 1018 return this.laterality; 1019 } 1020 else if (name.equals("started")) { 1021 throw new FHIRException("Cannot call addChild on a singleton property ImagingStudy.started"); 1022 } 1023 else if (name.equals("performer")) { 1024 return addPerformer(); 1025 } 1026 else if (name.equals("instance")) { 1027 return addInstance(); 1028 } 1029 else 1030 return super.addChild(name); 1031 } 1032 1033 public ImagingStudySeriesComponent copy() { 1034 ImagingStudySeriesComponent dst = new ImagingStudySeriesComponent(); 1035 copyValues(dst); 1036 dst.uid = uid == null ? null : uid.copy(); 1037 dst.number = number == null ? null : number.copy(); 1038 dst.modality = modality == null ? null : modality.copy(); 1039 dst.description = description == null ? null : description.copy(); 1040 dst.numberOfInstances = numberOfInstances == null ? null : numberOfInstances.copy(); 1041 dst.availability = availability == null ? null : availability.copy(); 1042 if (endpoint != null) { 1043 dst.endpoint = new ArrayList<Reference>(); 1044 for (Reference i : endpoint) 1045 dst.endpoint.add(i.copy()); 1046 }; 1047 dst.bodySite = bodySite == null ? null : bodySite.copy(); 1048 dst.laterality = laterality == null ? null : laterality.copy(); 1049 dst.started = started == null ? null : started.copy(); 1050 if (performer != null) { 1051 dst.performer = new ArrayList<Reference>(); 1052 for (Reference i : performer) 1053 dst.performer.add(i.copy()); 1054 }; 1055 if (instance != null) { 1056 dst.instance = new ArrayList<ImagingStudySeriesInstanceComponent>(); 1057 for (ImagingStudySeriesInstanceComponent i : instance) 1058 dst.instance.add(i.copy()); 1059 }; 1060 return dst; 1061 } 1062 1063 @Override 1064 public boolean equalsDeep(Base other_) { 1065 if (!super.equalsDeep(other_)) 1066 return false; 1067 if (!(other_ instanceof ImagingStudySeriesComponent)) 1068 return false; 1069 ImagingStudySeriesComponent o = (ImagingStudySeriesComponent) other_; 1070 return compareDeep(uid, o.uid, true) && compareDeep(number, o.number, true) && compareDeep(modality, o.modality, true) 1071 && compareDeep(description, o.description, true) && compareDeep(numberOfInstances, o.numberOfInstances, true) 1072 && compareDeep(availability, o.availability, true) && compareDeep(endpoint, o.endpoint, true) && compareDeep(bodySite, o.bodySite, true) 1073 && compareDeep(laterality, o.laterality, true) && compareDeep(started, o.started, true) && compareDeep(performer, o.performer, true) 1074 && compareDeep(instance, o.instance, true); 1075 } 1076 1077 @Override 1078 public boolean equalsShallow(Base other_) { 1079 if (!super.equalsShallow(other_)) 1080 return false; 1081 if (!(other_ instanceof ImagingStudySeriesComponent)) 1082 return false; 1083 ImagingStudySeriesComponent o = (ImagingStudySeriesComponent) other_; 1084 return compareValues(uid, o.uid, true) && compareValues(number, o.number, true) && compareValues(description, o.description, true) 1085 && compareValues(numberOfInstances, o.numberOfInstances, true) && compareValues(availability, o.availability, true) 1086 && compareValues(started, o.started, true); 1087 } 1088 1089 public boolean isEmpty() { 1090 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(uid, number, modality, description 1091 , numberOfInstances, availability, endpoint, bodySite, laterality, started, performer 1092 , instance); 1093 } 1094 1095 public String fhirType() { 1096 return "ImagingStudy.series"; 1097 1098 } 1099 1100 } 1101 1102 @Block() 1103 public static class ImagingStudySeriesInstanceComponent extends BackboneElement implements IBaseBackboneElement { 1104 /** 1105 * Formal identifier for this image or other content. 1106 */ 1107 @Child(name = "uid", type = {OidType.class}, order=1, min=1, max=1, modifier=false, summary=false) 1108 @Description(shortDefinition="Formal DICOM identifier for this instance", formalDefinition="Formal identifier for this image or other content." ) 1109 protected OidType uid; 1110 1111 /** 1112 * The number of instance in the series. 1113 */ 1114 @Child(name = "number", type = {UnsignedIntType.class}, order=2, min=0, max=1, modifier=false, summary=false) 1115 @Description(shortDefinition="The number of this instance in the series", formalDefinition="The number of instance in the series." ) 1116 protected UnsignedIntType number; 1117 1118 /** 1119 * DICOM instance type. 1120 */ 1121 @Child(name = "sopClass", type = {OidType.class}, order=3, min=1, max=1, modifier=false, summary=false) 1122 @Description(shortDefinition="DICOM class type", formalDefinition="DICOM instance type." ) 1123 protected OidType sopClass; 1124 1125 /** 1126 * The description of the instance. 1127 */ 1128 @Child(name = "title", type = {StringType.class}, order=4, min=0, max=1, modifier=false, summary=false) 1129 @Description(shortDefinition="Description of instance", formalDefinition="The description of the instance." ) 1130 protected StringType title; 1131 1132 private static final long serialVersionUID = -771526344L; 1133 1134 /** 1135 * Constructor 1136 */ 1137 public ImagingStudySeriesInstanceComponent() { 1138 super(); 1139 } 1140 1141 /** 1142 * Constructor 1143 */ 1144 public ImagingStudySeriesInstanceComponent(OidType uid, OidType sopClass) { 1145 super(); 1146 this.uid = uid; 1147 this.sopClass = sopClass; 1148 } 1149 1150 /** 1151 * @return {@link #uid} (Formal identifier for this image or other content.). This is the underlying object with id, value and extensions. The accessor "getUid" gives direct access to the value 1152 */ 1153 public OidType getUidElement() { 1154 if (this.uid == null) 1155 if (Configuration.errorOnAutoCreate()) 1156 throw new Error("Attempt to auto-create ImagingStudySeriesInstanceComponent.uid"); 1157 else if (Configuration.doAutoCreate()) 1158 this.uid = new OidType(); // bb 1159 return this.uid; 1160 } 1161 1162 public boolean hasUidElement() { 1163 return this.uid != null && !this.uid.isEmpty(); 1164 } 1165 1166 public boolean hasUid() { 1167 return this.uid != null && !this.uid.isEmpty(); 1168 } 1169 1170 /** 1171 * @param value {@link #uid} (Formal identifier for this image or other content.). This is the underlying object with id, value and extensions. The accessor "getUid" gives direct access to the value 1172 */ 1173 public ImagingStudySeriesInstanceComponent setUidElement(OidType value) { 1174 this.uid = value; 1175 return this; 1176 } 1177 1178 /** 1179 * @return Formal identifier for this image or other content. 1180 */ 1181 public String getUid() { 1182 return this.uid == null ? null : this.uid.getValue(); 1183 } 1184 1185 /** 1186 * @param value Formal identifier for this image or other content. 1187 */ 1188 public ImagingStudySeriesInstanceComponent setUid(String value) { 1189 if (this.uid == null) 1190 this.uid = new OidType(); 1191 this.uid.setValue(value); 1192 return this; 1193 } 1194 1195 /** 1196 * @return {@link #number} (The number of instance in the series.). This is the underlying object with id, value and extensions. The accessor "getNumber" gives direct access to the value 1197 */ 1198 public UnsignedIntType getNumberElement() { 1199 if (this.number == null) 1200 if (Configuration.errorOnAutoCreate()) 1201 throw new Error("Attempt to auto-create ImagingStudySeriesInstanceComponent.number"); 1202 else if (Configuration.doAutoCreate()) 1203 this.number = new UnsignedIntType(); // bb 1204 return this.number; 1205 } 1206 1207 public boolean hasNumberElement() { 1208 return this.number != null && !this.number.isEmpty(); 1209 } 1210 1211 public boolean hasNumber() { 1212 return this.number != null && !this.number.isEmpty(); 1213 } 1214 1215 /** 1216 * @param value {@link #number} (The number of instance in the series.). This is the underlying object with id, value and extensions. The accessor "getNumber" gives direct access to the value 1217 */ 1218 public ImagingStudySeriesInstanceComponent setNumberElement(UnsignedIntType value) { 1219 this.number = value; 1220 return this; 1221 } 1222 1223 /** 1224 * @return The number of instance in the series. 1225 */ 1226 public int getNumber() { 1227 return this.number == null || this.number.isEmpty() ? 0 : this.number.getValue(); 1228 } 1229 1230 /** 1231 * @param value The number of instance in the series. 1232 */ 1233 public ImagingStudySeriesInstanceComponent setNumber(int value) { 1234 if (this.number == null) 1235 this.number = new UnsignedIntType(); 1236 this.number.setValue(value); 1237 return this; 1238 } 1239 1240 /** 1241 * @return {@link #sopClass} (DICOM instance type.). This is the underlying object with id, value and extensions. The accessor "getSopClass" gives direct access to the value 1242 */ 1243 public OidType getSopClassElement() { 1244 if (this.sopClass == null) 1245 if (Configuration.errorOnAutoCreate()) 1246 throw new Error("Attempt to auto-create ImagingStudySeriesInstanceComponent.sopClass"); 1247 else if (Configuration.doAutoCreate()) 1248 this.sopClass = new OidType(); // bb 1249 return this.sopClass; 1250 } 1251 1252 public boolean hasSopClassElement() { 1253 return this.sopClass != null && !this.sopClass.isEmpty(); 1254 } 1255 1256 public boolean hasSopClass() { 1257 return this.sopClass != null && !this.sopClass.isEmpty(); 1258 } 1259 1260 /** 1261 * @param value {@link #sopClass} (DICOM instance type.). This is the underlying object with id, value and extensions. The accessor "getSopClass" gives direct access to the value 1262 */ 1263 public ImagingStudySeriesInstanceComponent setSopClassElement(OidType value) { 1264 this.sopClass = value; 1265 return this; 1266 } 1267 1268 /** 1269 * @return DICOM instance type. 1270 */ 1271 public String getSopClass() { 1272 return this.sopClass == null ? null : this.sopClass.getValue(); 1273 } 1274 1275 /** 1276 * @param value DICOM instance type. 1277 */ 1278 public ImagingStudySeriesInstanceComponent setSopClass(String value) { 1279 if (this.sopClass == null) 1280 this.sopClass = new OidType(); 1281 this.sopClass.setValue(value); 1282 return this; 1283 } 1284 1285 /** 1286 * @return {@link #title} (The description of the instance.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value 1287 */ 1288 public StringType getTitleElement() { 1289 if (this.title == null) 1290 if (Configuration.errorOnAutoCreate()) 1291 throw new Error("Attempt to auto-create ImagingStudySeriesInstanceComponent.title"); 1292 else if (Configuration.doAutoCreate()) 1293 this.title = new StringType(); // bb 1294 return this.title; 1295 } 1296 1297 public boolean hasTitleElement() { 1298 return this.title != null && !this.title.isEmpty(); 1299 } 1300 1301 public boolean hasTitle() { 1302 return this.title != null && !this.title.isEmpty(); 1303 } 1304 1305 /** 1306 * @param value {@link #title} (The description of the instance.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value 1307 */ 1308 public ImagingStudySeriesInstanceComponent setTitleElement(StringType value) { 1309 this.title = value; 1310 return this; 1311 } 1312 1313 /** 1314 * @return The description of the instance. 1315 */ 1316 public String getTitle() { 1317 return this.title == null ? null : this.title.getValue(); 1318 } 1319 1320 /** 1321 * @param value The description of the instance. 1322 */ 1323 public ImagingStudySeriesInstanceComponent setTitle(String value) { 1324 if (Utilities.noString(value)) 1325 this.title = null; 1326 else { 1327 if (this.title == null) 1328 this.title = new StringType(); 1329 this.title.setValue(value); 1330 } 1331 return this; 1332 } 1333 1334 protected void listChildren(List<Property> children) { 1335 super.listChildren(children); 1336 children.add(new Property("uid", "oid", "Formal identifier for this image or other content.", 0, 1, uid)); 1337 children.add(new Property("number", "unsignedInt", "The number of instance in the series.", 0, 1, number)); 1338 children.add(new Property("sopClass", "oid", "DICOM instance type.", 0, 1, sopClass)); 1339 children.add(new Property("title", "string", "The description of the instance.", 0, 1, title)); 1340 } 1341 1342 @Override 1343 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1344 switch (_hash) { 1345 case 115792: /*uid*/ return new Property("uid", "oid", "Formal identifier for this image or other content.", 0, 1, uid); 1346 case -1034364087: /*number*/ return new Property("number", "unsignedInt", "The number of instance in the series.", 0, 1, number); 1347 case 1560041540: /*sopClass*/ return new Property("sopClass", "oid", "DICOM instance type.", 0, 1, sopClass); 1348 case 110371416: /*title*/ return new Property("title", "string", "The description of the instance.", 0, 1, title); 1349 default: return super.getNamedProperty(_hash, _name, _checkValid); 1350 } 1351 1352 } 1353 1354 @Override 1355 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1356 switch (hash) { 1357 case 115792: /*uid*/ return this.uid == null ? new Base[0] : new Base[] {this.uid}; // OidType 1358 case -1034364087: /*number*/ return this.number == null ? new Base[0] : new Base[] {this.number}; // UnsignedIntType 1359 case 1560041540: /*sopClass*/ return this.sopClass == null ? new Base[0] : new Base[] {this.sopClass}; // OidType 1360 case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType 1361 default: return super.getProperty(hash, name, checkValid); 1362 } 1363 1364 } 1365 1366 @Override 1367 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1368 switch (hash) { 1369 case 115792: // uid 1370 this.uid = castToOid(value); // OidType 1371 return value; 1372 case -1034364087: // number 1373 this.number = castToUnsignedInt(value); // UnsignedIntType 1374 return value; 1375 case 1560041540: // sopClass 1376 this.sopClass = castToOid(value); // OidType 1377 return value; 1378 case 110371416: // title 1379 this.title = castToString(value); // StringType 1380 return value; 1381 default: return super.setProperty(hash, name, value); 1382 } 1383 1384 } 1385 1386 @Override 1387 public Base setProperty(String name, Base value) throws FHIRException { 1388 if (name.equals("uid")) { 1389 this.uid = castToOid(value); // OidType 1390 } else if (name.equals("number")) { 1391 this.number = castToUnsignedInt(value); // UnsignedIntType 1392 } else if (name.equals("sopClass")) { 1393 this.sopClass = castToOid(value); // OidType 1394 } else if (name.equals("title")) { 1395 this.title = castToString(value); // StringType 1396 } else 1397 return super.setProperty(name, value); 1398 return value; 1399 } 1400 1401 @Override 1402 public Base makeProperty(int hash, String name) throws FHIRException { 1403 switch (hash) { 1404 case 115792: return getUidElement(); 1405 case -1034364087: return getNumberElement(); 1406 case 1560041540: return getSopClassElement(); 1407 case 110371416: return getTitleElement(); 1408 default: return super.makeProperty(hash, name); 1409 } 1410 1411 } 1412 1413 @Override 1414 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1415 switch (hash) { 1416 case 115792: /*uid*/ return new String[] {"oid"}; 1417 case -1034364087: /*number*/ return new String[] {"unsignedInt"}; 1418 case 1560041540: /*sopClass*/ return new String[] {"oid"}; 1419 case 110371416: /*title*/ return new String[] {"string"}; 1420 default: return super.getTypesForProperty(hash, name); 1421 } 1422 1423 } 1424 1425 @Override 1426 public Base addChild(String name) throws FHIRException { 1427 if (name.equals("uid")) { 1428 throw new FHIRException("Cannot call addChild on a singleton property ImagingStudy.uid"); 1429 } 1430 else if (name.equals("number")) { 1431 throw new FHIRException("Cannot call addChild on a singleton property ImagingStudy.number"); 1432 } 1433 else if (name.equals("sopClass")) { 1434 throw new FHIRException("Cannot call addChild on a singleton property ImagingStudy.sopClass"); 1435 } 1436 else if (name.equals("title")) { 1437 throw new FHIRException("Cannot call addChild on a singleton property ImagingStudy.title"); 1438 } 1439 else 1440 return super.addChild(name); 1441 } 1442 1443 public ImagingStudySeriesInstanceComponent copy() { 1444 ImagingStudySeriesInstanceComponent dst = new ImagingStudySeriesInstanceComponent(); 1445 copyValues(dst); 1446 dst.uid = uid == null ? null : uid.copy(); 1447 dst.number = number == null ? null : number.copy(); 1448 dst.sopClass = sopClass == null ? null : sopClass.copy(); 1449 dst.title = title == null ? null : title.copy(); 1450 return dst; 1451 } 1452 1453 @Override 1454 public boolean equalsDeep(Base other_) { 1455 if (!super.equalsDeep(other_)) 1456 return false; 1457 if (!(other_ instanceof ImagingStudySeriesInstanceComponent)) 1458 return false; 1459 ImagingStudySeriesInstanceComponent o = (ImagingStudySeriesInstanceComponent) other_; 1460 return compareDeep(uid, o.uid, true) && compareDeep(number, o.number, true) && compareDeep(sopClass, o.sopClass, true) 1461 && compareDeep(title, o.title, true); 1462 } 1463 1464 @Override 1465 public boolean equalsShallow(Base other_) { 1466 if (!super.equalsShallow(other_)) 1467 return false; 1468 if (!(other_ instanceof ImagingStudySeriesInstanceComponent)) 1469 return false; 1470 ImagingStudySeriesInstanceComponent o = (ImagingStudySeriesInstanceComponent) other_; 1471 return compareValues(uid, o.uid, true) && compareValues(number, o.number, true) && compareValues(sopClass, o.sopClass, true) 1472 && compareValues(title, o.title, true); 1473 } 1474 1475 public boolean isEmpty() { 1476 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(uid, number, sopClass, title 1477 ); 1478 } 1479 1480 public String fhirType() { 1481 return "ImagingStudy.series.instance"; 1482 1483 } 1484 1485 } 1486 1487 /** 1488 * Formal identifier for the study. 1489 */ 1490 @Child(name = "uid", type = {OidType.class}, order=0, min=1, max=1, modifier=false, summary=true) 1491 @Description(shortDefinition="Formal DICOM identifier for the study", formalDefinition="Formal identifier for the study." ) 1492 protected OidType uid; 1493 1494 /** 1495 * Accession Number is an identifier related to some aspect of imaging workflow and data management. Usage may vary across different institutions. See for instance [IHE Radiology Technical Framework Volume 1 Appendix A](http://www.ihe.net/uploadedFiles/Documents/Radiology/IHE_RAD_TF_Rev13.0_Vol1_FT_2014-07-30.pdf). 1496 */ 1497 @Child(name = "accession", type = {Identifier.class}, order=1, min=0, max=1, modifier=false, summary=true) 1498 @Description(shortDefinition="Related workflow identifier (\"Accession Number\")", formalDefinition="Accession Number is an identifier related to some aspect of imaging workflow and data management. Usage may vary across different institutions. See for instance [IHE Radiology Technical Framework Volume 1 Appendix A](http://www.ihe.net/uploadedFiles/Documents/Radiology/IHE_RAD_TF_Rev13.0_Vol1_FT_2014-07-30.pdf)." ) 1499 protected Identifier accession; 1500 1501 /** 1502 * Other identifiers for the study. 1503 */ 1504 @Child(name = "identifier", type = {Identifier.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 1505 @Description(shortDefinition="Other identifiers for the study", formalDefinition="Other identifiers for the study." ) 1506 protected List<Identifier> identifier; 1507 1508 /** 1509 * Availability of study (online, offline, or nearline). 1510 */ 1511 @Child(name = "availability", type = {CodeType.class}, order=3, min=0, max=1, modifier=false, summary=true) 1512 @Description(shortDefinition="ONLINE | OFFLINE | NEARLINE | UNAVAILABLE", formalDefinition="Availability of study (online, offline, or nearline)." ) 1513 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/instance-availability") 1514 protected Enumeration<InstanceAvailability> availability; 1515 1516 /** 1517 * A list of all the Series.ImageModality values that are actual acquisition modalities, i.e. those in the DICOM Context Group 29 (value set OID 1.2.840.10008.6.1.19). 1518 */ 1519 @Child(name = "modalityList", type = {Coding.class}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 1520 @Description(shortDefinition="All series modality if actual acquisition modalities", formalDefinition="A list of all the Series.ImageModality values that are actual acquisition modalities, i.e. those in the DICOM Context Group 29 (value set OID 1.2.840.10008.6.1.19)." ) 1521 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/dicom-cid29") 1522 protected List<Coding> modalityList; 1523 1524 /** 1525 * The patient imaged in the study. 1526 */ 1527 @Child(name = "patient", type = {Patient.class}, order=5, min=1, max=1, modifier=false, summary=true) 1528 @Description(shortDefinition="Who the images are of", formalDefinition="The patient imaged in the study." ) 1529 protected Reference patient; 1530 1531 /** 1532 * The actual object that is the target of the reference (The patient imaged in the study.) 1533 */ 1534 protected Patient patientTarget; 1535 1536 /** 1537 * The encounter or episode at which the request is initiated. 1538 */ 1539 @Child(name = "context", type = {Encounter.class, EpisodeOfCare.class}, order=6, min=0, max=1, modifier=false, summary=true) 1540 @Description(shortDefinition="Originating context", formalDefinition="The encounter or episode at which the request is initiated." ) 1541 protected Reference context; 1542 1543 /** 1544 * The actual object that is the target of the reference (The encounter or episode at which the request is initiated.) 1545 */ 1546 protected Resource contextTarget; 1547 1548 /** 1549 * Date and time the study started. 1550 */ 1551 @Child(name = "started", type = {DateTimeType.class}, order=7, min=0, max=1, modifier=false, summary=true) 1552 @Description(shortDefinition="When the study was started", formalDefinition="Date and time the study started." ) 1553 protected DateTimeType started; 1554 1555 /** 1556 * A list of the diagnostic requests that resulted in this imaging study being performed. 1557 */ 1558 @Child(name = "basedOn", type = {ReferralRequest.class, CarePlan.class, ProcedureRequest.class}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 1559 @Description(shortDefinition="Request fulfilled", formalDefinition="A list of the diagnostic requests that resulted in this imaging study being performed." ) 1560 protected List<Reference> basedOn; 1561 /** 1562 * The actual objects that are the target of the reference (A list of the diagnostic requests that resulted in this imaging study being performed.) 1563 */ 1564 protected List<Resource> basedOnTarget; 1565 1566 1567 /** 1568 * The requesting/referring physician. 1569 */ 1570 @Child(name = "referrer", type = {Practitioner.class}, order=9, min=0, max=1, modifier=false, summary=true) 1571 @Description(shortDefinition="Referring physician", formalDefinition="The requesting/referring physician." ) 1572 protected Reference referrer; 1573 1574 /** 1575 * The actual object that is the target of the reference (The requesting/referring physician.) 1576 */ 1577 protected Practitioner referrerTarget; 1578 1579 /** 1580 * Who read the study and interpreted the images or other content. 1581 */ 1582 @Child(name = "interpreter", type = {Practitioner.class}, order=10, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 1583 @Description(shortDefinition="Who interpreted images", formalDefinition="Who read the study and interpreted the images or other content." ) 1584 protected List<Reference> interpreter; 1585 /** 1586 * The actual objects that are the target of the reference (Who read the study and interpreted the images or other content.) 1587 */ 1588 protected List<Practitioner> interpreterTarget; 1589 1590 1591 /** 1592 * The network service providing access (e.g., query, view, or retrieval) for the study. See implementation notes for information about using DICOM endpoints. A study-level endpoint applies to each series in the study, unless overridden by a series-level endpoint with the same Endpoint.type. 1593 */ 1594 @Child(name = "endpoint", type = {Endpoint.class}, order=11, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 1595 @Description(shortDefinition="Study access endpoint", formalDefinition="The network service providing access (e.g., query, view, or retrieval) for the study. See implementation notes for information about using DICOM endpoints. A study-level endpoint applies to each series in the study, unless overridden by a series-level endpoint with the same Endpoint.type." ) 1596 protected List<Reference> endpoint; 1597 /** 1598 * The actual objects that are the target of the reference (The network service providing access (e.g., query, view, or retrieval) for the study. See implementation notes for information about using DICOM endpoints. A study-level endpoint applies to each series in the study, unless overridden by a series-level endpoint with the same Endpoint.type.) 1599 */ 1600 protected List<Endpoint> endpointTarget; 1601 1602 1603 /** 1604 * Number of Series in the Study. This value given may be larger than the number of series elements this Resource contains due to resource availability, security, or other factors. This element should be present if any series elements are present. 1605 */ 1606 @Child(name = "numberOfSeries", type = {UnsignedIntType.class}, order=12, min=0, max=1, modifier=false, summary=true) 1607 @Description(shortDefinition="Number of Study Related Series", formalDefinition="Number of Series in the Study. This value given may be larger than the number of series elements this Resource contains due to resource availability, security, or other factors. This element should be present if any series elements are present." ) 1608 protected UnsignedIntType numberOfSeries; 1609 1610 /** 1611 * Number of SOP Instances in Study. This value given may be larger than the number of instance elements this resource contains due to resource availability, security, or other factors. This element should be present if any instance elements are present. 1612 */ 1613 @Child(name = "numberOfInstances", type = {UnsignedIntType.class}, order=13, min=0, max=1, modifier=false, summary=true) 1614 @Description(shortDefinition="Number of Study Related Instances", formalDefinition="Number of SOP Instances in Study. This value given may be larger than the number of instance elements this resource contains due to resource availability, security, or other factors. This element should be present if any instance elements are present." ) 1615 protected UnsignedIntType numberOfInstances; 1616 1617 /** 1618 * A reference to the performed Procedure. 1619 */ 1620 @Child(name = "procedureReference", type = {Procedure.class}, order=14, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 1621 @Description(shortDefinition="The performed Procedure reference", formalDefinition="A reference to the performed Procedure." ) 1622 protected List<Reference> procedureReference; 1623 /** 1624 * The actual objects that are the target of the reference (A reference to the performed Procedure.) 1625 */ 1626 protected List<Procedure> procedureReferenceTarget; 1627 1628 1629 /** 1630 * The code for the performed procedure type. 1631 */ 1632 @Child(name = "procedureCode", type = {CodeableConcept.class}, order=15, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 1633 @Description(shortDefinition="The performed procedure code", formalDefinition="The code for the performed procedure type." ) 1634 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/procedure-code") 1635 protected List<CodeableConcept> procedureCode; 1636 1637 /** 1638 * Description of clinical condition indicating why the ImagingStudy was requested. 1639 */ 1640 @Child(name = "reason", type = {CodeableConcept.class}, order=16, min=0, max=1, modifier=false, summary=true) 1641 @Description(shortDefinition="Why the study was requested", formalDefinition="Description of clinical condition indicating why the ImagingStudy was requested." ) 1642 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/procedure-reason") 1643 protected CodeableConcept reason; 1644 1645 /** 1646 * Institution-generated description or classification of the Study performed. 1647 */ 1648 @Child(name = "description", type = {StringType.class}, order=17, min=0, max=1, modifier=false, summary=true) 1649 @Description(shortDefinition="Institution-generated description", formalDefinition="Institution-generated description or classification of the Study performed." ) 1650 protected StringType description; 1651 1652 /** 1653 * Each study has one or more series of images or other content. 1654 */ 1655 @Child(name = "series", type = {}, order=18, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 1656 @Description(shortDefinition="Each study has one or more series of instances", formalDefinition="Each study has one or more series of images or other content." ) 1657 protected List<ImagingStudySeriesComponent> series; 1658 1659 private static final long serialVersionUID = -1987354693L; 1660 1661 /** 1662 * Constructor 1663 */ 1664 public ImagingStudy() { 1665 super(); 1666 } 1667 1668 /** 1669 * Constructor 1670 */ 1671 public ImagingStudy(OidType uid, Reference patient) { 1672 super(); 1673 this.uid = uid; 1674 this.patient = patient; 1675 } 1676 1677 /** 1678 * @return {@link #uid} (Formal identifier for the study.). This is the underlying object with id, value and extensions. The accessor "getUid" gives direct access to the value 1679 */ 1680 public OidType getUidElement() { 1681 if (this.uid == null) 1682 if (Configuration.errorOnAutoCreate()) 1683 throw new Error("Attempt to auto-create ImagingStudy.uid"); 1684 else if (Configuration.doAutoCreate()) 1685 this.uid = new OidType(); // bb 1686 return this.uid; 1687 } 1688 1689 public boolean hasUidElement() { 1690 return this.uid != null && !this.uid.isEmpty(); 1691 } 1692 1693 public boolean hasUid() { 1694 return this.uid != null && !this.uid.isEmpty(); 1695 } 1696 1697 /** 1698 * @param value {@link #uid} (Formal identifier for the study.). This is the underlying object with id, value and extensions. The accessor "getUid" gives direct access to the value 1699 */ 1700 public ImagingStudy setUidElement(OidType value) { 1701 this.uid = value; 1702 return this; 1703 } 1704 1705 /** 1706 * @return Formal identifier for the study. 1707 */ 1708 public String getUid() { 1709 return this.uid == null ? null : this.uid.getValue(); 1710 } 1711 1712 /** 1713 * @param value Formal identifier for the study. 1714 */ 1715 public ImagingStudy setUid(String value) { 1716 if (this.uid == null) 1717 this.uid = new OidType(); 1718 this.uid.setValue(value); 1719 return this; 1720 } 1721 1722 /** 1723 * @return {@link #accession} (Accession Number is an identifier related to some aspect of imaging workflow and data management. Usage may vary across different institutions. See for instance [IHE Radiology Technical Framework Volume 1 Appendix A](http://www.ihe.net/uploadedFiles/Documents/Radiology/IHE_RAD_TF_Rev13.0_Vol1_FT_2014-07-30.pdf).) 1724 */ 1725 public Identifier getAccession() { 1726 if (this.accession == null) 1727 if (Configuration.errorOnAutoCreate()) 1728 throw new Error("Attempt to auto-create ImagingStudy.accession"); 1729 else if (Configuration.doAutoCreate()) 1730 this.accession = new Identifier(); // cc 1731 return this.accession; 1732 } 1733 1734 public boolean hasAccession() { 1735 return this.accession != null && !this.accession.isEmpty(); 1736 } 1737 1738 /** 1739 * @param value {@link #accession} (Accession Number is an identifier related to some aspect of imaging workflow and data management. Usage may vary across different institutions. See for instance [IHE Radiology Technical Framework Volume 1 Appendix A](http://www.ihe.net/uploadedFiles/Documents/Radiology/IHE_RAD_TF_Rev13.0_Vol1_FT_2014-07-30.pdf).) 1740 */ 1741 public ImagingStudy setAccession(Identifier value) { 1742 this.accession = value; 1743 return this; 1744 } 1745 1746 /** 1747 * @return {@link #identifier} (Other identifiers for the study.) 1748 */ 1749 public List<Identifier> getIdentifier() { 1750 if (this.identifier == null) 1751 this.identifier = new ArrayList<Identifier>(); 1752 return this.identifier; 1753 } 1754 1755 /** 1756 * @return Returns a reference to <code>this</code> for easy method chaining 1757 */ 1758 public ImagingStudy setIdentifier(List<Identifier> theIdentifier) { 1759 this.identifier = theIdentifier; 1760 return this; 1761 } 1762 1763 public boolean hasIdentifier() { 1764 if (this.identifier == null) 1765 return false; 1766 for (Identifier item : this.identifier) 1767 if (!item.isEmpty()) 1768 return true; 1769 return false; 1770 } 1771 1772 public Identifier addIdentifier() { //3 1773 Identifier t = new Identifier(); 1774 if (this.identifier == null) 1775 this.identifier = new ArrayList<Identifier>(); 1776 this.identifier.add(t); 1777 return t; 1778 } 1779 1780 public ImagingStudy addIdentifier(Identifier t) { //3 1781 if (t == null) 1782 return this; 1783 if (this.identifier == null) 1784 this.identifier = new ArrayList<Identifier>(); 1785 this.identifier.add(t); 1786 return this; 1787 } 1788 1789 /** 1790 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist 1791 */ 1792 public Identifier getIdentifierFirstRep() { 1793 if (getIdentifier().isEmpty()) { 1794 addIdentifier(); 1795 } 1796 return getIdentifier().get(0); 1797 } 1798 1799 /** 1800 * @return {@link #availability} (Availability of study (online, offline, or nearline).). This is the underlying object with id, value and extensions. The accessor "getAvailability" gives direct access to the value 1801 */ 1802 public Enumeration<InstanceAvailability> getAvailabilityElement() { 1803 if (this.availability == null) 1804 if (Configuration.errorOnAutoCreate()) 1805 throw new Error("Attempt to auto-create ImagingStudy.availability"); 1806 else if (Configuration.doAutoCreate()) 1807 this.availability = new Enumeration<InstanceAvailability>(new InstanceAvailabilityEnumFactory()); // bb 1808 return this.availability; 1809 } 1810 1811 public boolean hasAvailabilityElement() { 1812 return this.availability != null && !this.availability.isEmpty(); 1813 } 1814 1815 public boolean hasAvailability() { 1816 return this.availability != null && !this.availability.isEmpty(); 1817 } 1818 1819 /** 1820 * @param value {@link #availability} (Availability of study (online, offline, or nearline).). This is the underlying object with id, value and extensions. The accessor "getAvailability" gives direct access to the value 1821 */ 1822 public ImagingStudy setAvailabilityElement(Enumeration<InstanceAvailability> value) { 1823 this.availability = value; 1824 return this; 1825 } 1826 1827 /** 1828 * @return Availability of study (online, offline, or nearline). 1829 */ 1830 public InstanceAvailability getAvailability() { 1831 return this.availability == null ? null : this.availability.getValue(); 1832 } 1833 1834 /** 1835 * @param value Availability of study (online, offline, or nearline). 1836 */ 1837 public ImagingStudy setAvailability(InstanceAvailability value) { 1838 if (value == null) 1839 this.availability = null; 1840 else { 1841 if (this.availability == null) 1842 this.availability = new Enumeration<InstanceAvailability>(new InstanceAvailabilityEnumFactory()); 1843 this.availability.setValue(value); 1844 } 1845 return this; 1846 } 1847 1848 /** 1849 * @return {@link #modalityList} (A list of all the Series.ImageModality values that are actual acquisition modalities, i.e. those in the DICOM Context Group 29 (value set OID 1.2.840.10008.6.1.19).) 1850 */ 1851 public List<Coding> getModalityList() { 1852 if (this.modalityList == null) 1853 this.modalityList = new ArrayList<Coding>(); 1854 return this.modalityList; 1855 } 1856 1857 /** 1858 * @return Returns a reference to <code>this</code> for easy method chaining 1859 */ 1860 public ImagingStudy setModalityList(List<Coding> theModalityList) { 1861 this.modalityList = theModalityList; 1862 return this; 1863 } 1864 1865 public boolean hasModalityList() { 1866 if (this.modalityList == null) 1867 return false; 1868 for (Coding item : this.modalityList) 1869 if (!item.isEmpty()) 1870 return true; 1871 return false; 1872 } 1873 1874 public Coding addModalityList() { //3 1875 Coding t = new Coding(); 1876 if (this.modalityList == null) 1877 this.modalityList = new ArrayList<Coding>(); 1878 this.modalityList.add(t); 1879 return t; 1880 } 1881 1882 public ImagingStudy addModalityList(Coding t) { //3 1883 if (t == null) 1884 return this; 1885 if (this.modalityList == null) 1886 this.modalityList = new ArrayList<Coding>(); 1887 this.modalityList.add(t); 1888 return this; 1889 } 1890 1891 /** 1892 * @return The first repetition of repeating field {@link #modalityList}, creating it if it does not already exist 1893 */ 1894 public Coding getModalityListFirstRep() { 1895 if (getModalityList().isEmpty()) { 1896 addModalityList(); 1897 } 1898 return getModalityList().get(0); 1899 } 1900 1901 /** 1902 * @return {@link #patient} (The patient imaged in the study.) 1903 */ 1904 public Reference getPatient() { 1905 if (this.patient == null) 1906 if (Configuration.errorOnAutoCreate()) 1907 throw new Error("Attempt to auto-create ImagingStudy.patient"); 1908 else if (Configuration.doAutoCreate()) 1909 this.patient = new Reference(); // cc 1910 return this.patient; 1911 } 1912 1913 public boolean hasPatient() { 1914 return this.patient != null && !this.patient.isEmpty(); 1915 } 1916 1917 /** 1918 * @param value {@link #patient} (The patient imaged in the study.) 1919 */ 1920 public ImagingStudy setPatient(Reference value) { 1921 this.patient = value; 1922 return this; 1923 } 1924 1925 /** 1926 * @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. (The patient imaged in the study.) 1927 */ 1928 public Patient getPatientTarget() { 1929 if (this.patientTarget == null) 1930 if (Configuration.errorOnAutoCreate()) 1931 throw new Error("Attempt to auto-create ImagingStudy.patient"); 1932 else if (Configuration.doAutoCreate()) 1933 this.patientTarget = new Patient(); // aa 1934 return this.patientTarget; 1935 } 1936 1937 /** 1938 * @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. (The patient imaged in the study.) 1939 */ 1940 public ImagingStudy setPatientTarget(Patient value) { 1941 this.patientTarget = value; 1942 return this; 1943 } 1944 1945 /** 1946 * @return {@link #context} (The encounter or episode at which the request is initiated.) 1947 */ 1948 public Reference getContext() { 1949 if (this.context == null) 1950 if (Configuration.errorOnAutoCreate()) 1951 throw new Error("Attempt to auto-create ImagingStudy.context"); 1952 else if (Configuration.doAutoCreate()) 1953 this.context = new Reference(); // cc 1954 return this.context; 1955 } 1956 1957 public boolean hasContext() { 1958 return this.context != null && !this.context.isEmpty(); 1959 } 1960 1961 /** 1962 * @param value {@link #context} (The encounter or episode at which the request is initiated.) 1963 */ 1964 public ImagingStudy setContext(Reference value) { 1965 this.context = value; 1966 return this; 1967 } 1968 1969 /** 1970 * @return {@link #context} 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 encounter or episode at which the request is initiated.) 1971 */ 1972 public Resource getContextTarget() { 1973 return this.contextTarget; 1974 } 1975 1976 /** 1977 * @param value {@link #context} 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 encounter or episode at which the request is initiated.) 1978 */ 1979 public ImagingStudy setContextTarget(Resource value) { 1980 this.contextTarget = value; 1981 return this; 1982 } 1983 1984 /** 1985 * @return {@link #started} (Date and time the study started.). This is the underlying object with id, value and extensions. The accessor "getStarted" gives direct access to the value 1986 */ 1987 public DateTimeType getStartedElement() { 1988 if (this.started == null) 1989 if (Configuration.errorOnAutoCreate()) 1990 throw new Error("Attempt to auto-create ImagingStudy.started"); 1991 else if (Configuration.doAutoCreate()) 1992 this.started = new DateTimeType(); // bb 1993 return this.started; 1994 } 1995 1996 public boolean hasStartedElement() { 1997 return this.started != null && !this.started.isEmpty(); 1998 } 1999 2000 public boolean hasStarted() { 2001 return this.started != null && !this.started.isEmpty(); 2002 } 2003 2004 /** 2005 * @param value {@link #started} (Date and time the study started.). This is the underlying object with id, value and extensions. The accessor "getStarted" gives direct access to the value 2006 */ 2007 public ImagingStudy setStartedElement(DateTimeType value) { 2008 this.started = value; 2009 return this; 2010 } 2011 2012 /** 2013 * @return Date and time the study started. 2014 */ 2015 public Date getStarted() { 2016 return this.started == null ? null : this.started.getValue(); 2017 } 2018 2019 /** 2020 * @param value Date and time the study started. 2021 */ 2022 public ImagingStudy setStarted(Date value) { 2023 if (value == null) 2024 this.started = null; 2025 else { 2026 if (this.started == null) 2027 this.started = new DateTimeType(); 2028 this.started.setValue(value); 2029 } 2030 return this; 2031 } 2032 2033 /** 2034 * @return {@link #basedOn} (A list of the diagnostic requests that resulted in this imaging study being performed.) 2035 */ 2036 public List<Reference> getBasedOn() { 2037 if (this.basedOn == null) 2038 this.basedOn = new ArrayList<Reference>(); 2039 return this.basedOn; 2040 } 2041 2042 /** 2043 * @return Returns a reference to <code>this</code> for easy method chaining 2044 */ 2045 public ImagingStudy setBasedOn(List<Reference> theBasedOn) { 2046 this.basedOn = theBasedOn; 2047 return this; 2048 } 2049 2050 public boolean hasBasedOn() { 2051 if (this.basedOn == null) 2052 return false; 2053 for (Reference item : this.basedOn) 2054 if (!item.isEmpty()) 2055 return true; 2056 return false; 2057 } 2058 2059 public Reference addBasedOn() { //3 2060 Reference t = new Reference(); 2061 if (this.basedOn == null) 2062 this.basedOn = new ArrayList<Reference>(); 2063 this.basedOn.add(t); 2064 return t; 2065 } 2066 2067 public ImagingStudy addBasedOn(Reference t) { //3 2068 if (t == null) 2069 return this; 2070 if (this.basedOn == null) 2071 this.basedOn = new ArrayList<Reference>(); 2072 this.basedOn.add(t); 2073 return this; 2074 } 2075 2076 /** 2077 * @return The first repetition of repeating field {@link #basedOn}, creating it if it does not already exist 2078 */ 2079 public Reference getBasedOnFirstRep() { 2080 if (getBasedOn().isEmpty()) { 2081 addBasedOn(); 2082 } 2083 return getBasedOn().get(0); 2084 } 2085 2086 /** 2087 * @return {@link #referrer} (The requesting/referring physician.) 2088 */ 2089 public Reference getReferrer() { 2090 if (this.referrer == null) 2091 if (Configuration.errorOnAutoCreate()) 2092 throw new Error("Attempt to auto-create ImagingStudy.referrer"); 2093 else if (Configuration.doAutoCreate()) 2094 this.referrer = new Reference(); // cc 2095 return this.referrer; 2096 } 2097 2098 public boolean hasReferrer() { 2099 return this.referrer != null && !this.referrer.isEmpty(); 2100 } 2101 2102 /** 2103 * @param value {@link #referrer} (The requesting/referring physician.) 2104 */ 2105 public ImagingStudy setReferrer(Reference value) { 2106 this.referrer = value; 2107 return this; 2108 } 2109 2110 /** 2111 * @return {@link #referrer} 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 requesting/referring physician.) 2112 */ 2113 public Practitioner getReferrerTarget() { 2114 if (this.referrerTarget == null) 2115 if (Configuration.errorOnAutoCreate()) 2116 throw new Error("Attempt to auto-create ImagingStudy.referrer"); 2117 else if (Configuration.doAutoCreate()) 2118 this.referrerTarget = new Practitioner(); // aa 2119 return this.referrerTarget; 2120 } 2121 2122 /** 2123 * @param value {@link #referrer} 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 requesting/referring physician.) 2124 */ 2125 public ImagingStudy setReferrerTarget(Practitioner value) { 2126 this.referrerTarget = value; 2127 return this; 2128 } 2129 2130 /** 2131 * @return {@link #interpreter} (Who read the study and interpreted the images or other content.) 2132 */ 2133 public List<Reference> getInterpreter() { 2134 if (this.interpreter == null) 2135 this.interpreter = new ArrayList<Reference>(); 2136 return this.interpreter; 2137 } 2138 2139 /** 2140 * @return Returns a reference to <code>this</code> for easy method chaining 2141 */ 2142 public ImagingStudy setInterpreter(List<Reference> theInterpreter) { 2143 this.interpreter = theInterpreter; 2144 return this; 2145 } 2146 2147 public boolean hasInterpreter() { 2148 if (this.interpreter == null) 2149 return false; 2150 for (Reference item : this.interpreter) 2151 if (!item.isEmpty()) 2152 return true; 2153 return false; 2154 } 2155 2156 public Reference addInterpreter() { //3 2157 Reference t = new Reference(); 2158 if (this.interpreter == null) 2159 this.interpreter = new ArrayList<Reference>(); 2160 this.interpreter.add(t); 2161 return t; 2162 } 2163 2164 public ImagingStudy addInterpreter(Reference t) { //3 2165 if (t == null) 2166 return this; 2167 if (this.interpreter == null) 2168 this.interpreter = new ArrayList<Reference>(); 2169 this.interpreter.add(t); 2170 return this; 2171 } 2172 2173 /** 2174 * @return The first repetition of repeating field {@link #interpreter}, creating it if it does not already exist 2175 */ 2176 public Reference getInterpreterFirstRep() { 2177 if (getInterpreter().isEmpty()) { 2178 addInterpreter(); 2179 } 2180 return getInterpreter().get(0); 2181 } 2182 2183 /** 2184 * @return {@link #endpoint} (The network service providing access (e.g., query, view, or retrieval) for the study. See implementation notes for information about using DICOM endpoints. A study-level endpoint applies to each series in the study, unless overridden by a series-level endpoint with the same Endpoint.type.) 2185 */ 2186 public List<Reference> getEndpoint() { 2187 if (this.endpoint == null) 2188 this.endpoint = new ArrayList<Reference>(); 2189 return this.endpoint; 2190 } 2191 2192 /** 2193 * @return Returns a reference to <code>this</code> for easy method chaining 2194 */ 2195 public ImagingStudy setEndpoint(List<Reference> theEndpoint) { 2196 this.endpoint = theEndpoint; 2197 return this; 2198 } 2199 2200 public boolean hasEndpoint() { 2201 if (this.endpoint == null) 2202 return false; 2203 for (Reference item : this.endpoint) 2204 if (!item.isEmpty()) 2205 return true; 2206 return false; 2207 } 2208 2209 public Reference addEndpoint() { //3 2210 Reference t = new Reference(); 2211 if (this.endpoint == null) 2212 this.endpoint = new ArrayList<Reference>(); 2213 this.endpoint.add(t); 2214 return t; 2215 } 2216 2217 public ImagingStudy addEndpoint(Reference t) { //3 2218 if (t == null) 2219 return this; 2220 if (this.endpoint == null) 2221 this.endpoint = new ArrayList<Reference>(); 2222 this.endpoint.add(t); 2223 return this; 2224 } 2225 2226 /** 2227 * @return The first repetition of repeating field {@link #endpoint}, creating it if it does not already exist 2228 */ 2229 public Reference getEndpointFirstRep() { 2230 if (getEndpoint().isEmpty()) { 2231 addEndpoint(); 2232 } 2233 return getEndpoint().get(0); 2234 } 2235 2236 /** 2237 * @return {@link #numberOfSeries} (Number of Series in the Study. This value given may be larger than the number of series elements this Resource contains due to resource availability, security, or other factors. This element should be present if any series elements are present.). This is the underlying object with id, value and extensions. The accessor "getNumberOfSeries" gives direct access to the value 2238 */ 2239 public UnsignedIntType getNumberOfSeriesElement() { 2240 if (this.numberOfSeries == null) 2241 if (Configuration.errorOnAutoCreate()) 2242 throw new Error("Attempt to auto-create ImagingStudy.numberOfSeries"); 2243 else if (Configuration.doAutoCreate()) 2244 this.numberOfSeries = new UnsignedIntType(); // bb 2245 return this.numberOfSeries; 2246 } 2247 2248 public boolean hasNumberOfSeriesElement() { 2249 return this.numberOfSeries != null && !this.numberOfSeries.isEmpty(); 2250 } 2251 2252 public boolean hasNumberOfSeries() { 2253 return this.numberOfSeries != null && !this.numberOfSeries.isEmpty(); 2254 } 2255 2256 /** 2257 * @param value {@link #numberOfSeries} (Number of Series in the Study. This value given may be larger than the number of series elements this Resource contains due to resource availability, security, or other factors. This element should be present if any series elements are present.). This is the underlying object with id, value and extensions. The accessor "getNumberOfSeries" gives direct access to the value 2258 */ 2259 public ImagingStudy setNumberOfSeriesElement(UnsignedIntType value) { 2260 this.numberOfSeries = value; 2261 return this; 2262 } 2263 2264 /** 2265 * @return Number of Series in the Study. This value given may be larger than the number of series elements this Resource contains due to resource availability, security, or other factors. This element should be present if any series elements are present. 2266 */ 2267 public int getNumberOfSeries() { 2268 return this.numberOfSeries == null || this.numberOfSeries.isEmpty() ? 0 : this.numberOfSeries.getValue(); 2269 } 2270 2271 /** 2272 * @param value Number of Series in the Study. This value given may be larger than the number of series elements this Resource contains due to resource availability, security, or other factors. This element should be present if any series elements are present. 2273 */ 2274 public ImagingStudy setNumberOfSeries(int value) { 2275 if (this.numberOfSeries == null) 2276 this.numberOfSeries = new UnsignedIntType(); 2277 this.numberOfSeries.setValue(value); 2278 return this; 2279 } 2280 2281 /** 2282 * @return {@link #numberOfInstances} (Number of SOP Instances in Study. This value given may be larger than the number of instance elements this resource contains due to resource availability, security, or other factors. This element should be present if any instance elements are present.). This is the underlying object with id, value and extensions. The accessor "getNumberOfInstances" gives direct access to the value 2283 */ 2284 public UnsignedIntType getNumberOfInstancesElement() { 2285 if (this.numberOfInstances == null) 2286 if (Configuration.errorOnAutoCreate()) 2287 throw new Error("Attempt to auto-create ImagingStudy.numberOfInstances"); 2288 else if (Configuration.doAutoCreate()) 2289 this.numberOfInstances = new UnsignedIntType(); // bb 2290 return this.numberOfInstances; 2291 } 2292 2293 public boolean hasNumberOfInstancesElement() { 2294 return this.numberOfInstances != null && !this.numberOfInstances.isEmpty(); 2295 } 2296 2297 public boolean hasNumberOfInstances() { 2298 return this.numberOfInstances != null && !this.numberOfInstances.isEmpty(); 2299 } 2300 2301 /** 2302 * @param value {@link #numberOfInstances} (Number of SOP Instances in Study. This value given may be larger than the number of instance elements this resource contains due to resource availability, security, or other factors. This element should be present if any instance elements are present.). This is the underlying object with id, value and extensions. The accessor "getNumberOfInstances" gives direct access to the value 2303 */ 2304 public ImagingStudy setNumberOfInstancesElement(UnsignedIntType value) { 2305 this.numberOfInstances = value; 2306 return this; 2307 } 2308 2309 /** 2310 * @return Number of SOP Instances in Study. This value given may be larger than the number of instance elements this resource contains due to resource availability, security, or other factors. This element should be present if any instance elements are present. 2311 */ 2312 public int getNumberOfInstances() { 2313 return this.numberOfInstances == null || this.numberOfInstances.isEmpty() ? 0 : this.numberOfInstances.getValue(); 2314 } 2315 2316 /** 2317 * @param value Number of SOP Instances in Study. This value given may be larger than the number of instance elements this resource contains due to resource availability, security, or other factors. This element should be present if any instance elements are present. 2318 */ 2319 public ImagingStudy setNumberOfInstances(int value) { 2320 if (this.numberOfInstances == null) 2321 this.numberOfInstances = new UnsignedIntType(); 2322 this.numberOfInstances.setValue(value); 2323 return this; 2324 } 2325 2326 /** 2327 * @return {@link #procedureReference} (A reference to the performed Procedure.) 2328 */ 2329 public List<Reference> getProcedureReference() { 2330 if (this.procedureReference == null) 2331 this.procedureReference = new ArrayList<Reference>(); 2332 return this.procedureReference; 2333 } 2334 2335 /** 2336 * @return Returns a reference to <code>this</code> for easy method chaining 2337 */ 2338 public ImagingStudy setProcedureReference(List<Reference> theProcedureReference) { 2339 this.procedureReference = theProcedureReference; 2340 return this; 2341 } 2342 2343 public boolean hasProcedureReference() { 2344 if (this.procedureReference == null) 2345 return false; 2346 for (Reference item : this.procedureReference) 2347 if (!item.isEmpty()) 2348 return true; 2349 return false; 2350 } 2351 2352 public Reference addProcedureReference() { //3 2353 Reference t = new Reference(); 2354 if (this.procedureReference == null) 2355 this.procedureReference = new ArrayList<Reference>(); 2356 this.procedureReference.add(t); 2357 return t; 2358 } 2359 2360 public ImagingStudy addProcedureReference(Reference t) { //3 2361 if (t == null) 2362 return this; 2363 if (this.procedureReference == null) 2364 this.procedureReference = new ArrayList<Reference>(); 2365 this.procedureReference.add(t); 2366 return this; 2367 } 2368 2369 /** 2370 * @return The first repetition of repeating field {@link #procedureReference}, creating it if it does not already exist 2371 */ 2372 public Reference getProcedureReferenceFirstRep() { 2373 if (getProcedureReference().isEmpty()) { 2374 addProcedureReference(); 2375 } 2376 return getProcedureReference().get(0); 2377 } 2378 2379 /** 2380 * @return {@link #procedureCode} (The code for the performed procedure type.) 2381 */ 2382 public List<CodeableConcept> getProcedureCode() { 2383 if (this.procedureCode == null) 2384 this.procedureCode = new ArrayList<CodeableConcept>(); 2385 return this.procedureCode; 2386 } 2387 2388 /** 2389 * @return Returns a reference to <code>this</code> for easy method chaining 2390 */ 2391 public ImagingStudy setProcedureCode(List<CodeableConcept> theProcedureCode) { 2392 this.procedureCode = theProcedureCode; 2393 return this; 2394 } 2395 2396 public boolean hasProcedureCode() { 2397 if (this.procedureCode == null) 2398 return false; 2399 for (CodeableConcept item : this.procedureCode) 2400 if (!item.isEmpty()) 2401 return true; 2402 return false; 2403 } 2404 2405 public CodeableConcept addProcedureCode() { //3 2406 CodeableConcept t = new CodeableConcept(); 2407 if (this.procedureCode == null) 2408 this.procedureCode = new ArrayList<CodeableConcept>(); 2409 this.procedureCode.add(t); 2410 return t; 2411 } 2412 2413 public ImagingStudy addProcedureCode(CodeableConcept t) { //3 2414 if (t == null) 2415 return this; 2416 if (this.procedureCode == null) 2417 this.procedureCode = new ArrayList<CodeableConcept>(); 2418 this.procedureCode.add(t); 2419 return this; 2420 } 2421 2422 /** 2423 * @return The first repetition of repeating field {@link #procedureCode}, creating it if it does not already exist 2424 */ 2425 public CodeableConcept getProcedureCodeFirstRep() { 2426 if (getProcedureCode().isEmpty()) { 2427 addProcedureCode(); 2428 } 2429 return getProcedureCode().get(0); 2430 } 2431 2432 /** 2433 * @return {@link #reason} (Description of clinical condition indicating why the ImagingStudy was requested.) 2434 */ 2435 public CodeableConcept getReason() { 2436 if (this.reason == null) 2437 if (Configuration.errorOnAutoCreate()) 2438 throw new Error("Attempt to auto-create ImagingStudy.reason"); 2439 else if (Configuration.doAutoCreate()) 2440 this.reason = new CodeableConcept(); // cc 2441 return this.reason; 2442 } 2443 2444 public boolean hasReason() { 2445 return this.reason != null && !this.reason.isEmpty(); 2446 } 2447 2448 /** 2449 * @param value {@link #reason} (Description of clinical condition indicating why the ImagingStudy was requested.) 2450 */ 2451 public ImagingStudy setReason(CodeableConcept value) { 2452 this.reason = value; 2453 return this; 2454 } 2455 2456 /** 2457 * @return {@link #description} (Institution-generated description or classification of the Study performed.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 2458 */ 2459 public StringType getDescriptionElement() { 2460 if (this.description == null) 2461 if (Configuration.errorOnAutoCreate()) 2462 throw new Error("Attempt to auto-create ImagingStudy.description"); 2463 else if (Configuration.doAutoCreate()) 2464 this.description = new StringType(); // bb 2465 return this.description; 2466 } 2467 2468 public boolean hasDescriptionElement() { 2469 return this.description != null && !this.description.isEmpty(); 2470 } 2471 2472 public boolean hasDescription() { 2473 return this.description != null && !this.description.isEmpty(); 2474 } 2475 2476 /** 2477 * @param value {@link #description} (Institution-generated description or classification of the Study performed.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 2478 */ 2479 public ImagingStudy setDescriptionElement(StringType value) { 2480 this.description = value; 2481 return this; 2482 } 2483 2484 /** 2485 * @return Institution-generated description or classification of the Study performed. 2486 */ 2487 public String getDescription() { 2488 return this.description == null ? null : this.description.getValue(); 2489 } 2490 2491 /** 2492 * @param value Institution-generated description or classification of the Study performed. 2493 */ 2494 public ImagingStudy setDescription(String value) { 2495 if (Utilities.noString(value)) 2496 this.description = null; 2497 else { 2498 if (this.description == null) 2499 this.description = new StringType(); 2500 this.description.setValue(value); 2501 } 2502 return this; 2503 } 2504 2505 /** 2506 * @return {@link #series} (Each study has one or more series of images or other content.) 2507 */ 2508 public List<ImagingStudySeriesComponent> getSeries() { 2509 if (this.series == null) 2510 this.series = new ArrayList<ImagingStudySeriesComponent>(); 2511 return this.series; 2512 } 2513 2514 /** 2515 * @return Returns a reference to <code>this</code> for easy method chaining 2516 */ 2517 public ImagingStudy setSeries(List<ImagingStudySeriesComponent> theSeries) { 2518 this.series = theSeries; 2519 return this; 2520 } 2521 2522 public boolean hasSeries() { 2523 if (this.series == null) 2524 return false; 2525 for (ImagingStudySeriesComponent item : this.series) 2526 if (!item.isEmpty()) 2527 return true; 2528 return false; 2529 } 2530 2531 public ImagingStudySeriesComponent addSeries() { //3 2532 ImagingStudySeriesComponent t = new ImagingStudySeriesComponent(); 2533 if (this.series == null) 2534 this.series = new ArrayList<ImagingStudySeriesComponent>(); 2535 this.series.add(t); 2536 return t; 2537 } 2538 2539 public ImagingStudy addSeries(ImagingStudySeriesComponent t) { //3 2540 if (t == null) 2541 return this; 2542 if (this.series == null) 2543 this.series = new ArrayList<ImagingStudySeriesComponent>(); 2544 this.series.add(t); 2545 return this; 2546 } 2547 2548 /** 2549 * @return The first repetition of repeating field {@link #series}, creating it if it does not already exist 2550 */ 2551 public ImagingStudySeriesComponent getSeriesFirstRep() { 2552 if (getSeries().isEmpty()) { 2553 addSeries(); 2554 } 2555 return getSeries().get(0); 2556 } 2557 2558 protected void listChildren(List<Property> children) { 2559 super.listChildren(children); 2560 children.add(new Property("uid", "oid", "Formal identifier for the study.", 0, 1, uid)); 2561 children.add(new Property("accession", "Identifier", "Accession Number is an identifier related to some aspect of imaging workflow and data management. Usage may vary across different institutions. See for instance [IHE Radiology Technical Framework Volume 1 Appendix A](http://www.ihe.net/uploadedFiles/Documents/Radiology/IHE_RAD_TF_Rev13.0_Vol1_FT_2014-07-30.pdf).", 0, 1, accession)); 2562 children.add(new Property("identifier", "Identifier", "Other identifiers for the study.", 0, java.lang.Integer.MAX_VALUE, identifier)); 2563 children.add(new Property("availability", "code", "Availability of study (online, offline, or nearline).", 0, 1, availability)); 2564 children.add(new Property("modalityList", "Coding", "A list of all the Series.ImageModality values that are actual acquisition modalities, i.e. those in the DICOM Context Group 29 (value set OID 1.2.840.10008.6.1.19).", 0, java.lang.Integer.MAX_VALUE, modalityList)); 2565 children.add(new Property("patient", "Reference(Patient)", "The patient imaged in the study.", 0, 1, patient)); 2566 children.add(new Property("context", "Reference(Encounter|EpisodeOfCare)", "The encounter or episode at which the request is initiated.", 0, 1, context)); 2567 children.add(new Property("started", "dateTime", "Date and time the study started.", 0, 1, started)); 2568 children.add(new Property("basedOn", "Reference(ReferralRequest|CarePlan|ProcedureRequest)", "A list of the diagnostic requests that resulted in this imaging study being performed.", 0, java.lang.Integer.MAX_VALUE, basedOn)); 2569 children.add(new Property("referrer", "Reference(Practitioner)", "The requesting/referring physician.", 0, 1, referrer)); 2570 children.add(new Property("interpreter", "Reference(Practitioner)", "Who read the study and interpreted the images or other content.", 0, java.lang.Integer.MAX_VALUE, interpreter)); 2571 children.add(new Property("endpoint", "Reference(Endpoint)", "The network service providing access (e.g., query, view, or retrieval) for the study. See implementation notes for information about using DICOM endpoints. A study-level endpoint applies to each series in the study, unless overridden by a series-level endpoint with the same Endpoint.type.", 0, java.lang.Integer.MAX_VALUE, endpoint)); 2572 children.add(new Property("numberOfSeries", "unsignedInt", "Number of Series in the Study. This value given may be larger than the number of series elements this Resource contains due to resource availability, security, or other factors. This element should be present if any series elements are present.", 0, 1, numberOfSeries)); 2573 children.add(new Property("numberOfInstances", "unsignedInt", "Number of SOP Instances in Study. This value given may be larger than the number of instance elements this resource contains due to resource availability, security, or other factors. This element should be present if any instance elements are present.", 0, 1, numberOfInstances)); 2574 children.add(new Property("procedureReference", "Reference(Procedure)", "A reference to the performed Procedure.", 0, java.lang.Integer.MAX_VALUE, procedureReference)); 2575 children.add(new Property("procedureCode", "CodeableConcept", "The code for the performed procedure type.", 0, java.lang.Integer.MAX_VALUE, procedureCode)); 2576 children.add(new Property("reason", "CodeableConcept", "Description of clinical condition indicating why the ImagingStudy was requested.", 0, 1, reason)); 2577 children.add(new Property("description", "string", "Institution-generated description or classification of the Study performed.", 0, 1, description)); 2578 children.add(new Property("series", "", "Each study has one or more series of images or other content.", 0, java.lang.Integer.MAX_VALUE, series)); 2579 } 2580 2581 @Override 2582 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 2583 switch (_hash) { 2584 case 115792: /*uid*/ return new Property("uid", "oid", "Formal identifier for the study.", 0, 1, uid); 2585 case -2115028956: /*accession*/ return new Property("accession", "Identifier", "Accession Number is an identifier related to some aspect of imaging workflow and data management. Usage may vary across different institutions. See for instance [IHE Radiology Technical Framework Volume 1 Appendix A](http://www.ihe.net/uploadedFiles/Documents/Radiology/IHE_RAD_TF_Rev13.0_Vol1_FT_2014-07-30.pdf).", 0, 1, accession); 2586 case -1618432855: /*identifier*/ return new Property("identifier", "Identifier", "Other identifiers for the study.", 0, java.lang.Integer.MAX_VALUE, identifier); 2587 case 1997542747: /*availability*/ return new Property("availability", "code", "Availability of study (online, offline, or nearline).", 0, 1, availability); 2588 case -1030238433: /*modalityList*/ return new Property("modalityList", "Coding", "A list of all the Series.ImageModality values that are actual acquisition modalities, i.e. those in the DICOM Context Group 29 (value set OID 1.2.840.10008.6.1.19).", 0, java.lang.Integer.MAX_VALUE, modalityList); 2589 case -791418107: /*patient*/ return new Property("patient", "Reference(Patient)", "The patient imaged in the study.", 0, 1, patient); 2590 case 951530927: /*context*/ return new Property("context", "Reference(Encounter|EpisodeOfCare)", "The encounter or episode at which the request is initiated.", 0, 1, context); 2591 case -1897185151: /*started*/ return new Property("started", "dateTime", "Date and time the study started.", 0, 1, started); 2592 case -332612366: /*basedOn*/ return new Property("basedOn", "Reference(ReferralRequest|CarePlan|ProcedureRequest)", "A list of the diagnostic requests that resulted in this imaging study being performed.", 0, java.lang.Integer.MAX_VALUE, basedOn); 2593 case -722568161: /*referrer*/ return new Property("referrer", "Reference(Practitioner)", "The requesting/referring physician.", 0, 1, referrer); 2594 case -2008009094: /*interpreter*/ return new Property("interpreter", "Reference(Practitioner)", "Who read the study and interpreted the images or other content.", 0, java.lang.Integer.MAX_VALUE, interpreter); 2595 case 1741102485: /*endpoint*/ return new Property("endpoint", "Reference(Endpoint)", "The network service providing access (e.g., query, view, or retrieval) for the study. See implementation notes for information about using DICOM endpoints. A study-level endpoint applies to each series in the study, unless overridden by a series-level endpoint with the same Endpoint.type.", 0, java.lang.Integer.MAX_VALUE, endpoint); 2596 case 1920000407: /*numberOfSeries*/ return new Property("numberOfSeries", "unsignedInt", "Number of Series in the Study. This value given may be larger than the number of series elements this Resource contains due to resource availability, security, or other factors. This element should be present if any series elements are present.", 0, 1, numberOfSeries); 2597 case -1043544226: /*numberOfInstances*/ return new Property("numberOfInstances", "unsignedInt", "Number of SOP Instances in Study. This value given may be larger than the number of instance elements this resource contains due to resource availability, security, or other factors. This element should be present if any instance elements are present.", 0, 1, numberOfInstances); 2598 case 881809848: /*procedureReference*/ return new Property("procedureReference", "Reference(Procedure)", "A reference to the performed Procedure.", 0, java.lang.Integer.MAX_VALUE, procedureReference); 2599 case -698023072: /*procedureCode*/ return new Property("procedureCode", "CodeableConcept", "The code for the performed procedure type.", 0, java.lang.Integer.MAX_VALUE, procedureCode); 2600 case -934964668: /*reason*/ return new Property("reason", "CodeableConcept", "Description of clinical condition indicating why the ImagingStudy was requested.", 0, 1, reason); 2601 case -1724546052: /*description*/ return new Property("description", "string", "Institution-generated description or classification of the Study performed.", 0, 1, description); 2602 case -905838985: /*series*/ return new Property("series", "", "Each study has one or more series of images or other content.", 0, java.lang.Integer.MAX_VALUE, series); 2603 default: return super.getNamedProperty(_hash, _name, _checkValid); 2604 } 2605 2606 } 2607 2608 @Override 2609 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2610 switch (hash) { 2611 case 115792: /*uid*/ return this.uid == null ? new Base[0] : new Base[] {this.uid}; // OidType 2612 case -2115028956: /*accession*/ return this.accession == null ? new Base[0] : new Base[] {this.accession}; // Identifier 2613 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 2614 case 1997542747: /*availability*/ return this.availability == null ? new Base[0] : new Base[] {this.availability}; // Enumeration<InstanceAvailability> 2615 case -1030238433: /*modalityList*/ return this.modalityList == null ? new Base[0] : this.modalityList.toArray(new Base[this.modalityList.size()]); // Coding 2616 case -791418107: /*patient*/ return this.patient == null ? new Base[0] : new Base[] {this.patient}; // Reference 2617 case 951530927: /*context*/ return this.context == null ? new Base[0] : new Base[] {this.context}; // Reference 2618 case -1897185151: /*started*/ return this.started == null ? new Base[0] : new Base[] {this.started}; // DateTimeType 2619 case -332612366: /*basedOn*/ return this.basedOn == null ? new Base[0] : this.basedOn.toArray(new Base[this.basedOn.size()]); // Reference 2620 case -722568161: /*referrer*/ return this.referrer == null ? new Base[0] : new Base[] {this.referrer}; // Reference 2621 case -2008009094: /*interpreter*/ return this.interpreter == null ? new Base[0] : this.interpreter.toArray(new Base[this.interpreter.size()]); // Reference 2622 case 1741102485: /*endpoint*/ return this.endpoint == null ? new Base[0] : this.endpoint.toArray(new Base[this.endpoint.size()]); // Reference 2623 case 1920000407: /*numberOfSeries*/ return this.numberOfSeries == null ? new Base[0] : new Base[] {this.numberOfSeries}; // UnsignedIntType 2624 case -1043544226: /*numberOfInstances*/ return this.numberOfInstances == null ? new Base[0] : new Base[] {this.numberOfInstances}; // UnsignedIntType 2625 case 881809848: /*procedureReference*/ return this.procedureReference == null ? new Base[0] : this.procedureReference.toArray(new Base[this.procedureReference.size()]); // Reference 2626 case -698023072: /*procedureCode*/ return this.procedureCode == null ? new Base[0] : this.procedureCode.toArray(new Base[this.procedureCode.size()]); // CodeableConcept 2627 case -934964668: /*reason*/ return this.reason == null ? new Base[0] : new Base[] {this.reason}; // CodeableConcept 2628 case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // StringType 2629 case -905838985: /*series*/ return this.series == null ? new Base[0] : this.series.toArray(new Base[this.series.size()]); // ImagingStudySeriesComponent 2630 default: return super.getProperty(hash, name, checkValid); 2631 } 2632 2633 } 2634 2635 @Override 2636 public Base setProperty(int hash, String name, Base value) throws FHIRException { 2637 switch (hash) { 2638 case 115792: // uid 2639 this.uid = castToOid(value); // OidType 2640 return value; 2641 case -2115028956: // accession 2642 this.accession = castToIdentifier(value); // Identifier 2643 return value; 2644 case -1618432855: // identifier 2645 this.getIdentifier().add(castToIdentifier(value)); // Identifier 2646 return value; 2647 case 1997542747: // availability 2648 value = new InstanceAvailabilityEnumFactory().fromType(castToCode(value)); 2649 this.availability = (Enumeration) value; // Enumeration<InstanceAvailability> 2650 return value; 2651 case -1030238433: // modalityList 2652 this.getModalityList().add(castToCoding(value)); // Coding 2653 return value; 2654 case -791418107: // patient 2655 this.patient = castToReference(value); // Reference 2656 return value; 2657 case 951530927: // context 2658 this.context = castToReference(value); // Reference 2659 return value; 2660 case -1897185151: // started 2661 this.started = castToDateTime(value); // DateTimeType 2662 return value; 2663 case -332612366: // basedOn 2664 this.getBasedOn().add(castToReference(value)); // Reference 2665 return value; 2666 case -722568161: // referrer 2667 this.referrer = castToReference(value); // Reference 2668 return value; 2669 case -2008009094: // interpreter 2670 this.getInterpreter().add(castToReference(value)); // Reference 2671 return value; 2672 case 1741102485: // endpoint 2673 this.getEndpoint().add(castToReference(value)); // Reference 2674 return value; 2675 case 1920000407: // numberOfSeries 2676 this.numberOfSeries = castToUnsignedInt(value); // UnsignedIntType 2677 return value; 2678 case -1043544226: // numberOfInstances 2679 this.numberOfInstances = castToUnsignedInt(value); // UnsignedIntType 2680 return value; 2681 case 881809848: // procedureReference 2682 this.getProcedureReference().add(castToReference(value)); // Reference 2683 return value; 2684 case -698023072: // procedureCode 2685 this.getProcedureCode().add(castToCodeableConcept(value)); // CodeableConcept 2686 return value; 2687 case -934964668: // reason 2688 this.reason = castToCodeableConcept(value); // CodeableConcept 2689 return value; 2690 case -1724546052: // description 2691 this.description = castToString(value); // StringType 2692 return value; 2693 case -905838985: // series 2694 this.getSeries().add((ImagingStudySeriesComponent) value); // ImagingStudySeriesComponent 2695 return value; 2696 default: return super.setProperty(hash, name, value); 2697 } 2698 2699 } 2700 2701 @Override 2702 public Base setProperty(String name, Base value) throws FHIRException { 2703 if (name.equals("uid")) { 2704 this.uid = castToOid(value); // OidType 2705 } else if (name.equals("accession")) { 2706 this.accession = castToIdentifier(value); // Identifier 2707 } else if (name.equals("identifier")) { 2708 this.getIdentifier().add(castToIdentifier(value)); 2709 } else if (name.equals("availability")) { 2710 value = new InstanceAvailabilityEnumFactory().fromType(castToCode(value)); 2711 this.availability = (Enumeration) value; // Enumeration<InstanceAvailability> 2712 } else if (name.equals("modalityList")) { 2713 this.getModalityList().add(castToCoding(value)); 2714 } else if (name.equals("patient")) { 2715 this.patient = castToReference(value); // Reference 2716 } else if (name.equals("context")) { 2717 this.context = castToReference(value); // Reference 2718 } else if (name.equals("started")) { 2719 this.started = castToDateTime(value); // DateTimeType 2720 } else if (name.equals("basedOn")) { 2721 this.getBasedOn().add(castToReference(value)); 2722 } else if (name.equals("referrer")) { 2723 this.referrer = castToReference(value); // Reference 2724 } else if (name.equals("interpreter")) { 2725 this.getInterpreter().add(castToReference(value)); 2726 } else if (name.equals("endpoint")) { 2727 this.getEndpoint().add(castToReference(value)); 2728 } else if (name.equals("numberOfSeries")) { 2729 this.numberOfSeries = castToUnsignedInt(value); // UnsignedIntType 2730 } else if (name.equals("numberOfInstances")) { 2731 this.numberOfInstances = castToUnsignedInt(value); // UnsignedIntType 2732 } else if (name.equals("procedureReference")) { 2733 this.getProcedureReference().add(castToReference(value)); 2734 } else if (name.equals("procedureCode")) { 2735 this.getProcedureCode().add(castToCodeableConcept(value)); 2736 } else if (name.equals("reason")) { 2737 this.reason = castToCodeableConcept(value); // CodeableConcept 2738 } else if (name.equals("description")) { 2739 this.description = castToString(value); // StringType 2740 } else if (name.equals("series")) { 2741 this.getSeries().add((ImagingStudySeriesComponent) value); 2742 } else 2743 return super.setProperty(name, value); 2744 return value; 2745 } 2746 2747 @Override 2748 public Base makeProperty(int hash, String name) throws FHIRException { 2749 switch (hash) { 2750 case 115792: return getUidElement(); 2751 case -2115028956: return getAccession(); 2752 case -1618432855: return addIdentifier(); 2753 case 1997542747: return getAvailabilityElement(); 2754 case -1030238433: return addModalityList(); 2755 case -791418107: return getPatient(); 2756 case 951530927: return getContext(); 2757 case -1897185151: return getStartedElement(); 2758 case -332612366: return addBasedOn(); 2759 case -722568161: return getReferrer(); 2760 case -2008009094: return addInterpreter(); 2761 case 1741102485: return addEndpoint(); 2762 case 1920000407: return getNumberOfSeriesElement(); 2763 case -1043544226: return getNumberOfInstancesElement(); 2764 case 881809848: return addProcedureReference(); 2765 case -698023072: return addProcedureCode(); 2766 case -934964668: return getReason(); 2767 case -1724546052: return getDescriptionElement(); 2768 case -905838985: return addSeries(); 2769 default: return super.makeProperty(hash, name); 2770 } 2771 2772 } 2773 2774 @Override 2775 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2776 switch (hash) { 2777 case 115792: /*uid*/ return new String[] {"oid"}; 2778 case -2115028956: /*accession*/ return new String[] {"Identifier"}; 2779 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 2780 case 1997542747: /*availability*/ return new String[] {"code"}; 2781 case -1030238433: /*modalityList*/ return new String[] {"Coding"}; 2782 case -791418107: /*patient*/ return new String[] {"Reference"}; 2783 case 951530927: /*context*/ return new String[] {"Reference"}; 2784 case -1897185151: /*started*/ return new String[] {"dateTime"}; 2785 case -332612366: /*basedOn*/ return new String[] {"Reference"}; 2786 case -722568161: /*referrer*/ return new String[] {"Reference"}; 2787 case -2008009094: /*interpreter*/ return new String[] {"Reference"}; 2788 case 1741102485: /*endpoint*/ return new String[] {"Reference"}; 2789 case 1920000407: /*numberOfSeries*/ return new String[] {"unsignedInt"}; 2790 case -1043544226: /*numberOfInstances*/ return new String[] {"unsignedInt"}; 2791 case 881809848: /*procedureReference*/ return new String[] {"Reference"}; 2792 case -698023072: /*procedureCode*/ return new String[] {"CodeableConcept"}; 2793 case -934964668: /*reason*/ return new String[] {"CodeableConcept"}; 2794 case -1724546052: /*description*/ return new String[] {"string"}; 2795 case -905838985: /*series*/ return new String[] {}; 2796 default: return super.getTypesForProperty(hash, name); 2797 } 2798 2799 } 2800 2801 @Override 2802 public Base addChild(String name) throws FHIRException { 2803 if (name.equals("uid")) { 2804 throw new FHIRException("Cannot call addChild on a singleton property ImagingStudy.uid"); 2805 } 2806 else if (name.equals("accession")) { 2807 this.accession = new Identifier(); 2808 return this.accession; 2809 } 2810 else if (name.equals("identifier")) { 2811 return addIdentifier(); 2812 } 2813 else if (name.equals("availability")) { 2814 throw new FHIRException("Cannot call addChild on a singleton property ImagingStudy.availability"); 2815 } 2816 else if (name.equals("modalityList")) { 2817 return addModalityList(); 2818 } 2819 else if (name.equals("patient")) { 2820 this.patient = new Reference(); 2821 return this.patient; 2822 } 2823 else if (name.equals("context")) { 2824 this.context = new Reference(); 2825 return this.context; 2826 } 2827 else if (name.equals("started")) { 2828 throw new FHIRException("Cannot call addChild on a singleton property ImagingStudy.started"); 2829 } 2830 else if (name.equals("basedOn")) { 2831 return addBasedOn(); 2832 } 2833 else if (name.equals("referrer")) { 2834 this.referrer = new Reference(); 2835 return this.referrer; 2836 } 2837 else if (name.equals("interpreter")) { 2838 return addInterpreter(); 2839 } 2840 else if (name.equals("endpoint")) { 2841 return addEndpoint(); 2842 } 2843 else if (name.equals("numberOfSeries")) { 2844 throw new FHIRException("Cannot call addChild on a singleton property ImagingStudy.numberOfSeries"); 2845 } 2846 else if (name.equals("numberOfInstances")) { 2847 throw new FHIRException("Cannot call addChild on a singleton property ImagingStudy.numberOfInstances"); 2848 } 2849 else if (name.equals("procedureReference")) { 2850 return addProcedureReference(); 2851 } 2852 else if (name.equals("procedureCode")) { 2853 return addProcedureCode(); 2854 } 2855 else if (name.equals("reason")) { 2856 this.reason = new CodeableConcept(); 2857 return this.reason; 2858 } 2859 else if (name.equals("description")) { 2860 throw new FHIRException("Cannot call addChild on a singleton property ImagingStudy.description"); 2861 } 2862 else if (name.equals("series")) { 2863 return addSeries(); 2864 } 2865 else 2866 return super.addChild(name); 2867 } 2868 2869 public String fhirType() { 2870 return "ImagingStudy"; 2871 2872 } 2873 2874 public ImagingStudy copy() { 2875 ImagingStudy dst = new ImagingStudy(); 2876 copyValues(dst); 2877 dst.uid = uid == null ? null : uid.copy(); 2878 dst.accession = accession == null ? null : accession.copy(); 2879 if (identifier != null) { 2880 dst.identifier = new ArrayList<Identifier>(); 2881 for (Identifier i : identifier) 2882 dst.identifier.add(i.copy()); 2883 }; 2884 dst.availability = availability == null ? null : availability.copy(); 2885 if (modalityList != null) { 2886 dst.modalityList = new ArrayList<Coding>(); 2887 for (Coding i : modalityList) 2888 dst.modalityList.add(i.copy()); 2889 }; 2890 dst.patient = patient == null ? null : patient.copy(); 2891 dst.context = context == null ? null : context.copy(); 2892 dst.started = started == null ? null : started.copy(); 2893 if (basedOn != null) { 2894 dst.basedOn = new ArrayList<Reference>(); 2895 for (Reference i : basedOn) 2896 dst.basedOn.add(i.copy()); 2897 }; 2898 dst.referrer = referrer == null ? null : referrer.copy(); 2899 if (interpreter != null) { 2900 dst.interpreter = new ArrayList<Reference>(); 2901 for (Reference i : interpreter) 2902 dst.interpreter.add(i.copy()); 2903 }; 2904 if (endpoint != null) { 2905 dst.endpoint = new ArrayList<Reference>(); 2906 for (Reference i : endpoint) 2907 dst.endpoint.add(i.copy()); 2908 }; 2909 dst.numberOfSeries = numberOfSeries == null ? null : numberOfSeries.copy(); 2910 dst.numberOfInstances = numberOfInstances == null ? null : numberOfInstances.copy(); 2911 if (procedureReference != null) { 2912 dst.procedureReference = new ArrayList<Reference>(); 2913 for (Reference i : procedureReference) 2914 dst.procedureReference.add(i.copy()); 2915 }; 2916 if (procedureCode != null) { 2917 dst.procedureCode = new ArrayList<CodeableConcept>(); 2918 for (CodeableConcept i : procedureCode) 2919 dst.procedureCode.add(i.copy()); 2920 }; 2921 dst.reason = reason == null ? null : reason.copy(); 2922 dst.description = description == null ? null : description.copy(); 2923 if (series != null) { 2924 dst.series = new ArrayList<ImagingStudySeriesComponent>(); 2925 for (ImagingStudySeriesComponent i : series) 2926 dst.series.add(i.copy()); 2927 }; 2928 return dst; 2929 } 2930 2931 protected ImagingStudy typedCopy() { 2932 return copy(); 2933 } 2934 2935 @Override 2936 public boolean equalsDeep(Base other_) { 2937 if (!super.equalsDeep(other_)) 2938 return false; 2939 if (!(other_ instanceof ImagingStudy)) 2940 return false; 2941 ImagingStudy o = (ImagingStudy) other_; 2942 return compareDeep(uid, o.uid, true) && compareDeep(accession, o.accession, true) && compareDeep(identifier, o.identifier, true) 2943 && compareDeep(availability, o.availability, true) && compareDeep(modalityList, o.modalityList, true) 2944 && compareDeep(patient, o.patient, true) && compareDeep(context, o.context, true) && compareDeep(started, o.started, true) 2945 && compareDeep(basedOn, o.basedOn, true) && compareDeep(referrer, o.referrer, true) && compareDeep(interpreter, o.interpreter, true) 2946 && compareDeep(endpoint, o.endpoint, true) && compareDeep(numberOfSeries, o.numberOfSeries, true) 2947 && compareDeep(numberOfInstances, o.numberOfInstances, true) && compareDeep(procedureReference, o.procedureReference, true) 2948 && compareDeep(procedureCode, o.procedureCode, true) && compareDeep(reason, o.reason, true) && compareDeep(description, o.description, true) 2949 && compareDeep(series, o.series, true); 2950 } 2951 2952 @Override 2953 public boolean equalsShallow(Base other_) { 2954 if (!super.equalsShallow(other_)) 2955 return false; 2956 if (!(other_ instanceof ImagingStudy)) 2957 return false; 2958 ImagingStudy o = (ImagingStudy) other_; 2959 return compareValues(uid, o.uid, true) && compareValues(availability, o.availability, true) && compareValues(started, o.started, true) 2960 && compareValues(numberOfSeries, o.numberOfSeries, true) && compareValues(numberOfInstances, o.numberOfInstances, true) 2961 && compareValues(description, o.description, true); 2962 } 2963 2964 public boolean isEmpty() { 2965 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(uid, accession, identifier 2966 , availability, modalityList, patient, context, started, basedOn, referrer, interpreter 2967 , endpoint, numberOfSeries, numberOfInstances, procedureReference, procedureCode, reason 2968 , description, series); 2969 } 2970 2971 @Override 2972 public ResourceType getResourceType() { 2973 return ResourceType.ImagingStudy; 2974 } 2975 2976 /** 2977 * Search parameter: <b>identifier</b> 2978 * <p> 2979 * Description: <b>Other identifiers for the Study</b><br> 2980 * Type: <b>token</b><br> 2981 * Path: <b>ImagingStudy.identifier</b><br> 2982 * </p> 2983 */ 2984 @SearchParamDefinition(name="identifier", path="ImagingStudy.identifier", description="Other identifiers for the Study", type="token" ) 2985 public static final String SP_IDENTIFIER = "identifier"; 2986 /** 2987 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 2988 * <p> 2989 * Description: <b>Other identifiers for the Study</b><br> 2990 * Type: <b>token</b><br> 2991 * Path: <b>ImagingStudy.identifier</b><br> 2992 * </p> 2993 */ 2994 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 2995 2996 /** 2997 * Search parameter: <b>reason</b> 2998 * <p> 2999 * Description: <b>The reason for the study</b><br> 3000 * Type: <b>token</b><br> 3001 * Path: <b>ImagingStudy.reason</b><br> 3002 * </p> 3003 */ 3004 @SearchParamDefinition(name="reason", path="ImagingStudy.reason", description="The reason for the study", type="token" ) 3005 public static final String SP_REASON = "reason"; 3006 /** 3007 * <b>Fluent Client</b> search parameter constant for <b>reason</b> 3008 * <p> 3009 * Description: <b>The reason for the study</b><br> 3010 * Type: <b>token</b><br> 3011 * Path: <b>ImagingStudy.reason</b><br> 3012 * </p> 3013 */ 3014 public static final ca.uhn.fhir.rest.gclient.TokenClientParam REASON = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_REASON); 3015 3016 /** 3017 * Search parameter: <b>study</b> 3018 * <p> 3019 * Description: <b>The study identifier for the image</b><br> 3020 * Type: <b>uri</b><br> 3021 * Path: <b>ImagingStudy.uid</b><br> 3022 * </p> 3023 */ 3024 @SearchParamDefinition(name="study", path="ImagingStudy.uid", description="The study identifier for the image", type="uri" ) 3025 public static final String SP_STUDY = "study"; 3026 /** 3027 * <b>Fluent Client</b> search parameter constant for <b>study</b> 3028 * <p> 3029 * Description: <b>The study identifier for the image</b><br> 3030 * Type: <b>uri</b><br> 3031 * Path: <b>ImagingStudy.uid</b><br> 3032 * </p> 3033 */ 3034 public static final ca.uhn.fhir.rest.gclient.UriClientParam STUDY = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_STUDY); 3035 3036 /** 3037 * Search parameter: <b>dicom-class</b> 3038 * <p> 3039 * Description: <b>The type of the instance</b><br> 3040 * Type: <b>uri</b><br> 3041 * Path: <b>ImagingStudy.series.instance.sopClass</b><br> 3042 * </p> 3043 */ 3044 @SearchParamDefinition(name="dicom-class", path="ImagingStudy.series.instance.sopClass", description="The type of the instance", type="uri" ) 3045 public static final String SP_DICOM_CLASS = "dicom-class"; 3046 /** 3047 * <b>Fluent Client</b> search parameter constant for <b>dicom-class</b> 3048 * <p> 3049 * Description: <b>The type of the instance</b><br> 3050 * Type: <b>uri</b><br> 3051 * Path: <b>ImagingStudy.series.instance.sopClass</b><br> 3052 * </p> 3053 */ 3054 public static final ca.uhn.fhir.rest.gclient.UriClientParam DICOM_CLASS = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_DICOM_CLASS); 3055 3056 /** 3057 * Search parameter: <b>modality</b> 3058 * <p> 3059 * Description: <b>The modality of the series</b><br> 3060 * Type: <b>token</b><br> 3061 * Path: <b>ImagingStudy.series.modality</b><br> 3062 * </p> 3063 */ 3064 @SearchParamDefinition(name="modality", path="ImagingStudy.series.modality", description="The modality of the series", type="token" ) 3065 public static final String SP_MODALITY = "modality"; 3066 /** 3067 * <b>Fluent Client</b> search parameter constant for <b>modality</b> 3068 * <p> 3069 * Description: <b>The modality of the series</b><br> 3070 * Type: <b>token</b><br> 3071 * Path: <b>ImagingStudy.series.modality</b><br> 3072 * </p> 3073 */ 3074 public static final ca.uhn.fhir.rest.gclient.TokenClientParam MODALITY = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_MODALITY); 3075 3076 /** 3077 * Search parameter: <b>bodysite</b> 3078 * <p> 3079 * Description: <b>The body site studied</b><br> 3080 * Type: <b>token</b><br> 3081 * Path: <b>ImagingStudy.series.bodySite</b><br> 3082 * </p> 3083 */ 3084 @SearchParamDefinition(name="bodysite", path="ImagingStudy.series.bodySite", description="The body site studied", type="token" ) 3085 public static final String SP_BODYSITE = "bodysite"; 3086 /** 3087 * <b>Fluent Client</b> search parameter constant for <b>bodysite</b> 3088 * <p> 3089 * Description: <b>The body site studied</b><br> 3090 * Type: <b>token</b><br> 3091 * Path: <b>ImagingStudy.series.bodySite</b><br> 3092 * </p> 3093 */ 3094 public static final ca.uhn.fhir.rest.gclient.TokenClientParam BODYSITE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_BODYSITE); 3095 3096 /** 3097 * Search parameter: <b>performer</b> 3098 * <p> 3099 * Description: <b>The person who performed the study</b><br> 3100 * Type: <b>reference</b><br> 3101 * Path: <b>ImagingStudy.series.performer</b><br> 3102 * </p> 3103 */ 3104 @SearchParamDefinition(name="performer", path="ImagingStudy.series.performer", description="The person who performed the study", type="reference", target={Practitioner.class } ) 3105 public static final String SP_PERFORMER = "performer"; 3106 /** 3107 * <b>Fluent Client</b> search parameter constant for <b>performer</b> 3108 * <p> 3109 * Description: <b>The person who performed the study</b><br> 3110 * Type: <b>reference</b><br> 3111 * Path: <b>ImagingStudy.series.performer</b><br> 3112 * </p> 3113 */ 3114 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PERFORMER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PERFORMER); 3115 3116/** 3117 * Constant for fluent queries to be used to add include statements. Specifies 3118 * the path value of "<b>ImagingStudy:performer</b>". 3119 */ 3120 public static final ca.uhn.fhir.model.api.Include INCLUDE_PERFORMER = new ca.uhn.fhir.model.api.Include("ImagingStudy:performer").toLocked(); 3121 3122 /** 3123 * Search parameter: <b>started</b> 3124 * <p> 3125 * Description: <b>When the study was started</b><br> 3126 * Type: <b>date</b><br> 3127 * Path: <b>ImagingStudy.started</b><br> 3128 * </p> 3129 */ 3130 @SearchParamDefinition(name="started", path="ImagingStudy.started", description="When the study was started", type="date" ) 3131 public static final String SP_STARTED = "started"; 3132 /** 3133 * <b>Fluent Client</b> search parameter constant for <b>started</b> 3134 * <p> 3135 * Description: <b>When the study was started</b><br> 3136 * Type: <b>date</b><br> 3137 * Path: <b>ImagingStudy.started</b><br> 3138 * </p> 3139 */ 3140 public static final ca.uhn.fhir.rest.gclient.DateClientParam STARTED = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_STARTED); 3141 3142 /** 3143 * Search parameter: <b>accession</b> 3144 * <p> 3145 * Description: <b>The accession identifier for the study</b><br> 3146 * Type: <b>token</b><br> 3147 * Path: <b>ImagingStudy.accession</b><br> 3148 * </p> 3149 */ 3150 @SearchParamDefinition(name="accession", path="ImagingStudy.accession", description="The accession identifier for the study", type="token" ) 3151 public static final String SP_ACCESSION = "accession"; 3152 /** 3153 * <b>Fluent Client</b> search parameter constant for <b>accession</b> 3154 * <p> 3155 * Description: <b>The accession identifier for the study</b><br> 3156 * Type: <b>token</b><br> 3157 * Path: <b>ImagingStudy.accession</b><br> 3158 * </p> 3159 */ 3160 public static final ca.uhn.fhir.rest.gclient.TokenClientParam ACCESSION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_ACCESSION); 3161 3162 /** 3163 * Search parameter: <b>uid</b> 3164 * <p> 3165 * Description: <b>The instance unique identifier</b><br> 3166 * Type: <b>uri</b><br> 3167 * Path: <b>ImagingStudy.series.instance.uid</b><br> 3168 * </p> 3169 */ 3170 @SearchParamDefinition(name="uid", path="ImagingStudy.series.instance.uid", description="The instance unique identifier", type="uri" ) 3171 public static final String SP_UID = "uid"; 3172 /** 3173 * <b>Fluent Client</b> search parameter constant for <b>uid</b> 3174 * <p> 3175 * Description: <b>The instance unique identifier</b><br> 3176 * Type: <b>uri</b><br> 3177 * Path: <b>ImagingStudy.series.instance.uid</b><br> 3178 * </p> 3179 */ 3180 public static final ca.uhn.fhir.rest.gclient.UriClientParam UID = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_UID); 3181 3182 /** 3183 * Search parameter: <b>endpoint</b> 3184 * <p> 3185 * Description: <b>The endpoint for te study or series</b><br> 3186 * Type: <b>reference</b><br> 3187 * Path: <b>ImagingStudy.endpoint, ImagingStudy.series.endpoint</b><br> 3188 * </p> 3189 */ 3190 @SearchParamDefinition(name="endpoint", path="ImagingStudy.endpoint | ImagingStudy.series.endpoint", description="The endpoint for te study or series", type="reference", target={Endpoint.class } ) 3191 public static final String SP_ENDPOINT = "endpoint"; 3192 /** 3193 * <b>Fluent Client</b> search parameter constant for <b>endpoint</b> 3194 * <p> 3195 * Description: <b>The endpoint for te study or series</b><br> 3196 * Type: <b>reference</b><br> 3197 * Path: <b>ImagingStudy.endpoint, ImagingStudy.series.endpoint</b><br> 3198 * </p> 3199 */ 3200 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ENDPOINT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ENDPOINT); 3201 3202/** 3203 * Constant for fluent queries to be used to add include statements. Specifies 3204 * the path value of "<b>ImagingStudy:endpoint</b>". 3205 */ 3206 public static final ca.uhn.fhir.model.api.Include INCLUDE_ENDPOINT = new ca.uhn.fhir.model.api.Include("ImagingStudy:endpoint").toLocked(); 3207 3208 /** 3209 * Search parameter: <b>patient</b> 3210 * <p> 3211 * Description: <b>Who the study is about</b><br> 3212 * Type: <b>reference</b><br> 3213 * Path: <b>ImagingStudy.patient</b><br> 3214 * </p> 3215 */ 3216 @SearchParamDefinition(name="patient", path="ImagingStudy.patient", description="Who the study is about", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Patient") }, target={Patient.class } ) 3217 public static final String SP_PATIENT = "patient"; 3218 /** 3219 * <b>Fluent Client</b> search parameter constant for <b>patient</b> 3220 * <p> 3221 * Description: <b>Who the study is about</b><br> 3222 * Type: <b>reference</b><br> 3223 * Path: <b>ImagingStudy.patient</b><br> 3224 * </p> 3225 */ 3226 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PATIENT); 3227 3228/** 3229 * Constant for fluent queries to be used to add include statements. Specifies 3230 * the path value of "<b>ImagingStudy:patient</b>". 3231 */ 3232 public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("ImagingStudy:patient").toLocked(); 3233 3234 /** 3235 * Search parameter: <b>series</b> 3236 * <p> 3237 * Description: <b>The identifier of the series of images</b><br> 3238 * Type: <b>uri</b><br> 3239 * Path: <b>ImagingStudy.series.uid</b><br> 3240 * </p> 3241 */ 3242 @SearchParamDefinition(name="series", path="ImagingStudy.series.uid", description="The identifier of the series of images", type="uri" ) 3243 public static final String SP_SERIES = "series"; 3244 /** 3245 * <b>Fluent Client</b> search parameter constant for <b>series</b> 3246 * <p> 3247 * Description: <b>The identifier of the series of images</b><br> 3248 * Type: <b>uri</b><br> 3249 * Path: <b>ImagingStudy.series.uid</b><br> 3250 * </p> 3251 */ 3252 public static final ca.uhn.fhir.rest.gclient.UriClientParam SERIES = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_SERIES); 3253 3254 /** 3255 * Search parameter: <b>context</b> 3256 * <p> 3257 * Description: <b>The context of the study</b><br> 3258 * Type: <b>reference</b><br> 3259 * Path: <b>ImagingStudy.context</b><br> 3260 * </p> 3261 */ 3262 @SearchParamDefinition(name="context", path="ImagingStudy.context", description="The context of the study", type="reference", target={Encounter.class, EpisodeOfCare.class } ) 3263 public static final String SP_CONTEXT = "context"; 3264 /** 3265 * <b>Fluent Client</b> search parameter constant for <b>context</b> 3266 * <p> 3267 * Description: <b>The context of the study</b><br> 3268 * Type: <b>reference</b><br> 3269 * Path: <b>ImagingStudy.context</b><br> 3270 * </p> 3271 */ 3272 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam CONTEXT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_CONTEXT); 3273 3274/** 3275 * Constant for fluent queries to be used to add include statements. Specifies 3276 * the path value of "<b>ImagingStudy:context</b>". 3277 */ 3278 public static final ca.uhn.fhir.model.api.Include INCLUDE_CONTEXT = new ca.uhn.fhir.model.api.Include("ImagingStudy:context").toLocked(); 3279 3280 /** 3281 * Search parameter: <b>basedon</b> 3282 * <p> 3283 * Description: <b>The order for the image</b><br> 3284 * Type: <b>reference</b><br> 3285 * Path: <b>ImagingStudy.basedOn</b><br> 3286 * </p> 3287 */ 3288 @SearchParamDefinition(name="basedon", path="ImagingStudy.basedOn", description="The order for the image", type="reference", target={CarePlan.class, ProcedureRequest.class, ReferralRequest.class } ) 3289 public static final String SP_BASEDON = "basedon"; 3290 /** 3291 * <b>Fluent Client</b> search parameter constant for <b>basedon</b> 3292 * <p> 3293 * Description: <b>The order for the image</b><br> 3294 * Type: <b>reference</b><br> 3295 * Path: <b>ImagingStudy.basedOn</b><br> 3296 * </p> 3297 */ 3298 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam BASEDON = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_BASEDON); 3299 3300/** 3301 * Constant for fluent queries to be used to add include statements. Specifies 3302 * the path value of "<b>ImagingStudy:basedon</b>". 3303 */ 3304 public static final ca.uhn.fhir.model.api.Include INCLUDE_BASEDON = new ca.uhn.fhir.model.api.Include("ImagingStudy:basedon").toLocked(); 3305 3306 3307}