
001package org.hl7.fhir.r5.model; 002 003 004/* 005 Copyright (c) 2011+, HL7, Inc. 006 All rights reserved. 007 008 Redistribution and use in source and binary forms, with or without modification, \ 009 are permitted provided that the following conditions are met: 010 011 * Redistributions of source code must retain the above copyright notice, this \ 012 list of conditions and the following disclaimer. 013 * Redistributions in binary form must reproduce the above copyright notice, \ 014 this list of conditions and the following disclaimer in the documentation \ 015 and/or other materials provided with the distribution. 016 * Neither the name of HL7 nor the names of its contributors may be used to 017 endorse or promote products derived from this software without specific 018 prior written permission. 019 020 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \ 021 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \ 022 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \ 023 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \ 024 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT \ 025 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR \ 026 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, \ 027 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) \ 028 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE \ 029 POSSIBILITY OF SUCH DAMAGE. 030 */ 031 032// Generated on Tue, Dec 28, 2021 07:16+1100 for FHIR v5.0.0-snapshot1 033 034import java.util.ArrayList; 035import java.util.Date; 036import java.util.List; 037import org.hl7.fhir.utilities.Utilities; 038import org.hl7.fhir.r5.model.Enumerations.*; 039import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 040import org.hl7.fhir.exceptions.FHIRException; 041import org.hl7.fhir.instance.model.api.ICompositeType; 042import ca.uhn.fhir.model.api.annotation.ResourceDef; 043import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 044import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 045import ca.uhn.fhir.model.api.annotation.Child; 046import ca.uhn.fhir.model.api.annotation.ChildOrder; 047import ca.uhn.fhir.model.api.annotation.Description; 048import ca.uhn.fhir.model.api.annotation.Block; 049 050/** 051 * An action that is or was performed on or for a patient, practitioner, device, organization, or location. For example, this can be a physical intervention on a patient like an operation, or less invasive like long term services, counseling, or hypnotherapy. This can be a quality or safety inspection for a location, organization, or device. This can be an accreditation procedure on a practitioner for licensing. 052 */ 053@ResourceDef(name="Procedure", profile="http://hl7.org/fhir/StructureDefinition/Procedure") 054public class Procedure extends DomainResource { 055 056 @Block() 057 public static class ProcedurePerformerComponent extends BackboneElement implements IBaseBackboneElement { 058 /** 059 * Distinguishes the type of involvement of the performer in the procedure. For example, surgeon, anaesthetist, endoscopist. 060 */ 061 @Child(name = "function", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=false, summary=true) 062 @Description(shortDefinition="Type of performance", formalDefinition="Distinguishes the type of involvement of the performer in the procedure. For example, surgeon, anaesthetist, endoscopist." ) 063 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/performer-role") 064 protected CodeableConcept function; 065 066 /** 067 * Indicates who or what performed the procedure. 068 */ 069 @Child(name = "actor", type = {Practitioner.class, PractitionerRole.class, Organization.class, Patient.class, RelatedPerson.class, Device.class, CareTeam.class, HealthcareService.class}, order=2, min=1, max=1, modifier=false, summary=true) 070 @Description(shortDefinition="Who performed the procedure", formalDefinition="Indicates who or what performed the procedure." ) 071 protected Reference actor; 072 073 /** 074 * The organization the device or practitioner was acting on behalf of. 075 */ 076 @Child(name = "onBehalfOf", type = {Organization.class}, order=3, min=0, max=1, modifier=false, summary=false) 077 @Description(shortDefinition="Organization the device or practitioner was acting for", formalDefinition="The organization the device or practitioner was acting on behalf of." ) 078 protected Reference onBehalfOf; 079 080 private static final long serialVersionUID = -1804820116L; 081 082 /** 083 * Constructor 084 */ 085 public ProcedurePerformerComponent() { 086 super(); 087 } 088 089 /** 090 * Constructor 091 */ 092 public ProcedurePerformerComponent(Reference actor) { 093 super(); 094 this.setActor(actor); 095 } 096 097 /** 098 * @return {@link #function} (Distinguishes the type of involvement of the performer in the procedure. For example, surgeon, anaesthetist, endoscopist.) 099 */ 100 public CodeableConcept getFunction() { 101 if (this.function == null) 102 if (Configuration.errorOnAutoCreate()) 103 throw new Error("Attempt to auto-create ProcedurePerformerComponent.function"); 104 else if (Configuration.doAutoCreate()) 105 this.function = new CodeableConcept(); // cc 106 return this.function; 107 } 108 109 public boolean hasFunction() { 110 return this.function != null && !this.function.isEmpty(); 111 } 112 113 /** 114 * @param value {@link #function} (Distinguishes the type of involvement of the performer in the procedure. For example, surgeon, anaesthetist, endoscopist.) 115 */ 116 public ProcedurePerformerComponent setFunction(CodeableConcept value) { 117 this.function = value; 118 return this; 119 } 120 121 /** 122 * @return {@link #actor} (Indicates who or what performed the procedure.) 123 */ 124 public Reference getActor() { 125 if (this.actor == null) 126 if (Configuration.errorOnAutoCreate()) 127 throw new Error("Attempt to auto-create ProcedurePerformerComponent.actor"); 128 else if (Configuration.doAutoCreate()) 129 this.actor = new Reference(); // cc 130 return this.actor; 131 } 132 133 public boolean hasActor() { 134 return this.actor != null && !this.actor.isEmpty(); 135 } 136 137 /** 138 * @param value {@link #actor} (Indicates who or what performed the procedure.) 139 */ 140 public ProcedurePerformerComponent setActor(Reference value) { 141 this.actor = value; 142 return this; 143 } 144 145 /** 146 * @return {@link #onBehalfOf} (The organization the device or practitioner was acting on behalf of.) 147 */ 148 public Reference getOnBehalfOf() { 149 if (this.onBehalfOf == null) 150 if (Configuration.errorOnAutoCreate()) 151 throw new Error("Attempt to auto-create ProcedurePerformerComponent.onBehalfOf"); 152 else if (Configuration.doAutoCreate()) 153 this.onBehalfOf = new Reference(); // cc 154 return this.onBehalfOf; 155 } 156 157 public boolean hasOnBehalfOf() { 158 return this.onBehalfOf != null && !this.onBehalfOf.isEmpty(); 159 } 160 161 /** 162 * @param value {@link #onBehalfOf} (The organization the device or practitioner was acting on behalf of.) 163 */ 164 public ProcedurePerformerComponent setOnBehalfOf(Reference value) { 165 this.onBehalfOf = value; 166 return this; 167 } 168 169 protected void listChildren(List<Property> children) { 170 super.listChildren(children); 171 children.add(new Property("function", "CodeableConcept", "Distinguishes the type of involvement of the performer in the procedure. For example, surgeon, anaesthetist, endoscopist.", 0, 1, function)); 172 children.add(new Property("actor", "Reference(Practitioner|PractitionerRole|Organization|Patient|RelatedPerson|Device|CareTeam|HealthcareService)", "Indicates who or what performed the procedure.", 0, 1, actor)); 173 children.add(new Property("onBehalfOf", "Reference(Organization)", "The organization the device or practitioner was acting on behalf of.", 0, 1, onBehalfOf)); 174 } 175 176 @Override 177 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 178 switch (_hash) { 179 case 1380938712: /*function*/ return new Property("function", "CodeableConcept", "Distinguishes the type of involvement of the performer in the procedure. For example, surgeon, anaesthetist, endoscopist.", 0, 1, function); 180 case 92645877: /*actor*/ return new Property("actor", "Reference(Practitioner|PractitionerRole|Organization|Patient|RelatedPerson|Device|CareTeam|HealthcareService)", "Indicates who or what performed the procedure.", 0, 1, actor); 181 case -14402964: /*onBehalfOf*/ return new Property("onBehalfOf", "Reference(Organization)", "The organization the device or practitioner was acting on behalf of.", 0, 1, onBehalfOf); 182 default: return super.getNamedProperty(_hash, _name, _checkValid); 183 } 184 185 } 186 187 @Override 188 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 189 switch (hash) { 190 case 1380938712: /*function*/ return this.function == null ? new Base[0] : new Base[] {this.function}; // CodeableConcept 191 case 92645877: /*actor*/ return this.actor == null ? new Base[0] : new Base[] {this.actor}; // Reference 192 case -14402964: /*onBehalfOf*/ return this.onBehalfOf == null ? new Base[0] : new Base[] {this.onBehalfOf}; // Reference 193 default: return super.getProperty(hash, name, checkValid); 194 } 195 196 } 197 198 @Override 199 public Base setProperty(int hash, String name, Base value) throws FHIRException { 200 switch (hash) { 201 case 1380938712: // function 202 this.function = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 203 return value; 204 case 92645877: // actor 205 this.actor = TypeConvertor.castToReference(value); // Reference 206 return value; 207 case -14402964: // onBehalfOf 208 this.onBehalfOf = TypeConvertor.castToReference(value); // Reference 209 return value; 210 default: return super.setProperty(hash, name, value); 211 } 212 213 } 214 215 @Override 216 public Base setProperty(String name, Base value) throws FHIRException { 217 if (name.equals("function")) { 218 this.function = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 219 } else if (name.equals("actor")) { 220 this.actor = TypeConvertor.castToReference(value); // Reference 221 } else if (name.equals("onBehalfOf")) { 222 this.onBehalfOf = TypeConvertor.castToReference(value); // Reference 223 } else 224 return super.setProperty(name, value); 225 return value; 226 } 227 228 @Override 229 public Base makeProperty(int hash, String name) throws FHIRException { 230 switch (hash) { 231 case 1380938712: return getFunction(); 232 case 92645877: return getActor(); 233 case -14402964: return getOnBehalfOf(); 234 default: return super.makeProperty(hash, name); 235 } 236 237 } 238 239 @Override 240 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 241 switch (hash) { 242 case 1380938712: /*function*/ return new String[] {"CodeableConcept"}; 243 case 92645877: /*actor*/ return new String[] {"Reference"}; 244 case -14402964: /*onBehalfOf*/ return new String[] {"Reference"}; 245 default: return super.getTypesForProperty(hash, name); 246 } 247 248 } 249 250 @Override 251 public Base addChild(String name) throws FHIRException { 252 if (name.equals("function")) { 253 this.function = new CodeableConcept(); 254 return this.function; 255 } 256 else if (name.equals("actor")) { 257 this.actor = new Reference(); 258 return this.actor; 259 } 260 else if (name.equals("onBehalfOf")) { 261 this.onBehalfOf = new Reference(); 262 return this.onBehalfOf; 263 } 264 else 265 return super.addChild(name); 266 } 267 268 public ProcedurePerformerComponent copy() { 269 ProcedurePerformerComponent dst = new ProcedurePerformerComponent(); 270 copyValues(dst); 271 return dst; 272 } 273 274 public void copyValues(ProcedurePerformerComponent dst) { 275 super.copyValues(dst); 276 dst.function = function == null ? null : function.copy(); 277 dst.actor = actor == null ? null : actor.copy(); 278 dst.onBehalfOf = onBehalfOf == null ? null : onBehalfOf.copy(); 279 } 280 281 @Override 282 public boolean equalsDeep(Base other_) { 283 if (!super.equalsDeep(other_)) 284 return false; 285 if (!(other_ instanceof ProcedurePerformerComponent)) 286 return false; 287 ProcedurePerformerComponent o = (ProcedurePerformerComponent) other_; 288 return compareDeep(function, o.function, true) && compareDeep(actor, o.actor, true) && compareDeep(onBehalfOf, o.onBehalfOf, true) 289 ; 290 } 291 292 @Override 293 public boolean equalsShallow(Base other_) { 294 if (!super.equalsShallow(other_)) 295 return false; 296 if (!(other_ instanceof ProcedurePerformerComponent)) 297 return false; 298 ProcedurePerformerComponent o = (ProcedurePerformerComponent) other_; 299 return true; 300 } 301 302 public boolean isEmpty() { 303 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(function, actor, onBehalfOf 304 ); 305 } 306 307 public String fhirType() { 308 return "Procedure.performer"; 309 310 } 311 312 } 313 314 @Block() 315 public static class ProcedureFocalDeviceComponent extends BackboneElement implements IBaseBackboneElement { 316 /** 317 * The kind of change that happened to the device during the procedure. 318 */ 319 @Child(name = "action", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=false, summary=false) 320 @Description(shortDefinition="Kind of change to device", formalDefinition="The kind of change that happened to the device during the procedure." ) 321 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/device-action") 322 protected CodeableConcept action; 323 324 /** 325 * The device that was manipulated (changed) during the procedure. 326 */ 327 @Child(name = "manipulated", type = {Device.class}, order=2, min=1, max=1, modifier=false, summary=false) 328 @Description(shortDefinition="Device that was changed", formalDefinition="The device that was manipulated (changed) during the procedure." ) 329 protected Reference manipulated; 330 331 private static final long serialVersionUID = -217582010L; 332 333 /** 334 * Constructor 335 */ 336 public ProcedureFocalDeviceComponent() { 337 super(); 338 } 339 340 /** 341 * Constructor 342 */ 343 public ProcedureFocalDeviceComponent(Reference manipulated) { 344 super(); 345 this.setManipulated(manipulated); 346 } 347 348 /** 349 * @return {@link #action} (The kind of change that happened to the device during the procedure.) 350 */ 351 public CodeableConcept getAction() { 352 if (this.action == null) 353 if (Configuration.errorOnAutoCreate()) 354 throw new Error("Attempt to auto-create ProcedureFocalDeviceComponent.action"); 355 else if (Configuration.doAutoCreate()) 356 this.action = new CodeableConcept(); // cc 357 return this.action; 358 } 359 360 public boolean hasAction() { 361 return this.action != null && !this.action.isEmpty(); 362 } 363 364 /** 365 * @param value {@link #action} (The kind of change that happened to the device during the procedure.) 366 */ 367 public ProcedureFocalDeviceComponent setAction(CodeableConcept value) { 368 this.action = value; 369 return this; 370 } 371 372 /** 373 * @return {@link #manipulated} (The device that was manipulated (changed) during the procedure.) 374 */ 375 public Reference getManipulated() { 376 if (this.manipulated == null) 377 if (Configuration.errorOnAutoCreate()) 378 throw new Error("Attempt to auto-create ProcedureFocalDeviceComponent.manipulated"); 379 else if (Configuration.doAutoCreate()) 380 this.manipulated = new Reference(); // cc 381 return this.manipulated; 382 } 383 384 public boolean hasManipulated() { 385 return this.manipulated != null && !this.manipulated.isEmpty(); 386 } 387 388 /** 389 * @param value {@link #manipulated} (The device that was manipulated (changed) during the procedure.) 390 */ 391 public ProcedureFocalDeviceComponent setManipulated(Reference value) { 392 this.manipulated = value; 393 return this; 394 } 395 396 protected void listChildren(List<Property> children) { 397 super.listChildren(children); 398 children.add(new Property("action", "CodeableConcept", "The kind of change that happened to the device during the procedure.", 0, 1, action)); 399 children.add(new Property("manipulated", "Reference(Device)", "The device that was manipulated (changed) during the procedure.", 0, 1, manipulated)); 400 } 401 402 @Override 403 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 404 switch (_hash) { 405 case -1422950858: /*action*/ return new Property("action", "CodeableConcept", "The kind of change that happened to the device during the procedure.", 0, 1, action); 406 case 947372650: /*manipulated*/ return new Property("manipulated", "Reference(Device)", "The device that was manipulated (changed) during the procedure.", 0, 1, manipulated); 407 default: return super.getNamedProperty(_hash, _name, _checkValid); 408 } 409 410 } 411 412 @Override 413 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 414 switch (hash) { 415 case -1422950858: /*action*/ return this.action == null ? new Base[0] : new Base[] {this.action}; // CodeableConcept 416 case 947372650: /*manipulated*/ return this.manipulated == null ? new Base[0] : new Base[] {this.manipulated}; // Reference 417 default: return super.getProperty(hash, name, checkValid); 418 } 419 420 } 421 422 @Override 423 public Base setProperty(int hash, String name, Base value) throws FHIRException { 424 switch (hash) { 425 case -1422950858: // action 426 this.action = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 427 return value; 428 case 947372650: // manipulated 429 this.manipulated = TypeConvertor.castToReference(value); // Reference 430 return value; 431 default: return super.setProperty(hash, name, value); 432 } 433 434 } 435 436 @Override 437 public Base setProperty(String name, Base value) throws FHIRException { 438 if (name.equals("action")) { 439 this.action = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 440 } else if (name.equals("manipulated")) { 441 this.manipulated = TypeConvertor.castToReference(value); // Reference 442 } else 443 return super.setProperty(name, value); 444 return value; 445 } 446 447 @Override 448 public Base makeProperty(int hash, String name) throws FHIRException { 449 switch (hash) { 450 case -1422950858: return getAction(); 451 case 947372650: return getManipulated(); 452 default: return super.makeProperty(hash, name); 453 } 454 455 } 456 457 @Override 458 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 459 switch (hash) { 460 case -1422950858: /*action*/ return new String[] {"CodeableConcept"}; 461 case 947372650: /*manipulated*/ return new String[] {"Reference"}; 462 default: return super.getTypesForProperty(hash, name); 463 } 464 465 } 466 467 @Override 468 public Base addChild(String name) throws FHIRException { 469 if (name.equals("action")) { 470 this.action = new CodeableConcept(); 471 return this.action; 472 } 473 else if (name.equals("manipulated")) { 474 this.manipulated = new Reference(); 475 return this.manipulated; 476 } 477 else 478 return super.addChild(name); 479 } 480 481 public ProcedureFocalDeviceComponent copy() { 482 ProcedureFocalDeviceComponent dst = new ProcedureFocalDeviceComponent(); 483 copyValues(dst); 484 return dst; 485 } 486 487 public void copyValues(ProcedureFocalDeviceComponent dst) { 488 super.copyValues(dst); 489 dst.action = action == null ? null : action.copy(); 490 dst.manipulated = manipulated == null ? null : manipulated.copy(); 491 } 492 493 @Override 494 public boolean equalsDeep(Base other_) { 495 if (!super.equalsDeep(other_)) 496 return false; 497 if (!(other_ instanceof ProcedureFocalDeviceComponent)) 498 return false; 499 ProcedureFocalDeviceComponent o = (ProcedureFocalDeviceComponent) other_; 500 return compareDeep(action, o.action, true) && compareDeep(manipulated, o.manipulated, true); 501 } 502 503 @Override 504 public boolean equalsShallow(Base other_) { 505 if (!super.equalsShallow(other_)) 506 return false; 507 if (!(other_ instanceof ProcedureFocalDeviceComponent)) 508 return false; 509 ProcedureFocalDeviceComponent o = (ProcedureFocalDeviceComponent) other_; 510 return true; 511 } 512 513 public boolean isEmpty() { 514 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(action, manipulated); 515 } 516 517 public String fhirType() { 518 return "Procedure.focalDevice"; 519 520 } 521 522 } 523 524 /** 525 * Business identifiers assigned to this procedure by the performer or other systems which remain constant as the resource is updated and is propagated from server to server. 526 */ 527 @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 528 @Description(shortDefinition="External Identifiers for this procedure", formalDefinition="Business identifiers assigned to this procedure by the performer or other systems which remain constant as the resource is updated and is propagated from server to server." ) 529 protected List<Identifier> identifier; 530 531 /** 532 * The URL pointing to a FHIR-defined protocol, guideline, order set or other definition that is adhered to in whole or in part by this Procedure. 533 */ 534 @Child(name = "instantiatesCanonical", type = {CanonicalType.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 535 @Description(shortDefinition="Instantiates FHIR protocol or definition", formalDefinition="The URL pointing to a FHIR-defined protocol, guideline, order set or other definition that is adhered to in whole or in part by this Procedure." ) 536 protected List<CanonicalType> instantiatesCanonical; 537 538 /** 539 * The URL pointing to an externally maintained protocol, guideline, order set or other definition that is adhered to in whole or in part by this Procedure. 540 */ 541 @Child(name = "instantiatesUri", type = {UriType.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 542 @Description(shortDefinition="Instantiates external protocol or definition", formalDefinition="The URL pointing to an externally maintained protocol, guideline, order set or other definition that is adhered to in whole or in part by this Procedure." ) 543 protected List<UriType> instantiatesUri; 544 545 /** 546 * A reference to a resource that contains details of the request for this procedure. 547 */ 548 @Child(name = "basedOn", type = {CarePlan.class, ServiceRequest.class}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 549 @Description(shortDefinition="A request for this procedure", formalDefinition="A reference to a resource that contains details of the request for this procedure." ) 550 protected List<Reference> basedOn; 551 552 /** 553 * A larger event of which this particular procedure is a component or step. 554 */ 555 @Child(name = "partOf", type = {Procedure.class, Observation.class, MedicationAdministration.class}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 556 @Description(shortDefinition="Part of referenced event", formalDefinition="A larger event of which this particular procedure is a component or step." ) 557 protected List<Reference> partOf; 558 559 /** 560 * A code specifying the state of the procedure. Generally, this will be the in-progress or completed state. 561 */ 562 @Child(name = "status", type = {CodeType.class}, order=5, min=1, max=1, modifier=true, summary=true) 563 @Description(shortDefinition="preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown", formalDefinition="A code specifying the state of the procedure. Generally, this will be the in-progress or completed state." ) 564 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/event-status") 565 protected Enumeration<EventStatus> status; 566 567 /** 568 * Captures the reason for the current state of the procedure. 569 */ 570 @Child(name = "statusReason", type = {CodeableConcept.class}, order=6, min=0, max=1, modifier=false, summary=true) 571 @Description(shortDefinition="Reason for current status", formalDefinition="Captures the reason for the current state of the procedure." ) 572 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/procedure-not-performed-reason") 573 protected CodeableConcept statusReason; 574 575 /** 576 * A code that classifies the procedure for searching, sorting and display purposes (e.g. "Surgical Procedure"). 577 */ 578 @Child(name = "category", type = {CodeableConcept.class}, order=7, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 579 @Description(shortDefinition="Classification of the procedure", formalDefinition="A code that classifies the procedure for searching, sorting and display purposes (e.g. \"Surgical Procedure\")." ) 580 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/procedure-category") 581 protected List<CodeableConcept> category; 582 583 /** 584 * The specific procedure that is performed. Use text if the exact nature of the procedure cannot be coded (e.g. "Laparoscopic Appendectomy"). 585 */ 586 @Child(name = "code", type = {CodeableConcept.class}, order=8, min=0, max=1, modifier=false, summary=true) 587 @Description(shortDefinition="Identification of the procedure", formalDefinition="The specific procedure that is performed. Use text if the exact nature of the procedure cannot be coded (e.g. \"Laparoscopic Appendectomy\")." ) 588 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/procedure-code") 589 protected CodeableConcept code; 590 591 /** 592 * On whom or what the procedure was performed. This is usually an individual human, but can also be performed on animals, groups of humans or animals, organizations or practitioners (for licensing), locations or devices (for safety inspections or regulatory authorizations). 593 */ 594 @Child(name = "subject", type = {Patient.class, Group.class, Device.class, Practitioner.class, Organization.class, Location.class}, order=9, min=1, max=1, modifier=false, summary=true) 595 @Description(shortDefinition="Individual or entity the procedure was performed on", formalDefinition="On whom or what the procedure was performed. This is usually an individual human, but can also be performed on animals, groups of humans or animals, organizations or practitioners (for licensing), locations or devices (for safety inspections or regulatory authorizations)." ) 596 protected Reference subject; 597 598 /** 599 * The Encounter during which this Procedure was created or performed or to which the creation of this record is tightly associated. 600 */ 601 @Child(name = "encounter", type = {Encounter.class}, order=10, min=0, max=1, modifier=false, summary=true) 602 @Description(shortDefinition="The Encounter during which this Procedure was created", formalDefinition="The Encounter during which this Procedure was created or performed or to which the creation of this record is tightly associated." ) 603 protected Reference encounter; 604 605 /** 606 * Estimated or actual date, date-time, period, or age when the procedure did occur or is occurring. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured. 607 */ 608 @Child(name = "occurrence", type = {DateTimeType.class, Period.class, StringType.class, Age.class, Range.class, Timing.class}, order=11, min=0, max=1, modifier=false, summary=true) 609 @Description(shortDefinition="When the procedure occurred or is occurring", formalDefinition="Estimated or actual date, date-time, period, or age when the procedure did occur or is occurring. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured." ) 610 protected DataType occurrence; 611 612 /** 613 * The date the occurrence of the procedure was first captured in the record regardless of Procedure.status (potentially after the occurrence of the event). 614 */ 615 @Child(name = "recorded", type = {DateTimeType.class}, order=12, min=0, max=1, modifier=false, summary=true) 616 @Description(shortDefinition="When the procedure was first captured in the subject's record", formalDefinition="The date the occurrence of the procedure was first captured in the record regardless of Procedure.status (potentially after the occurrence of the event)." ) 617 protected DateTimeType recorded; 618 619 /** 620 * Individual who recorded the record and takes responsibility for its content. 621 */ 622 @Child(name = "recorder", type = {Patient.class, RelatedPerson.class, Practitioner.class, PractitionerRole.class}, order=13, min=0, max=1, modifier=false, summary=true) 623 @Description(shortDefinition="Who recorded the procedure", formalDefinition="Individual who recorded the record and takes responsibility for its content." ) 624 protected Reference recorder; 625 626 /** 627 * Indicates if this record was captured as a secondary 'reported' record rather than as an original primary source-of-truth record. It may also indicate the source of the report. 628 */ 629 @Child(name = "reported", type = {BooleanType.class, Patient.class, RelatedPerson.class, Practitioner.class, PractitionerRole.class, Organization.class}, order=14, min=0, max=1, modifier=false, summary=true) 630 @Description(shortDefinition="Reported rather than primary record", formalDefinition="Indicates if this record was captured as a secondary 'reported' record rather than as an original primary source-of-truth record. It may also indicate the source of the report." ) 631 protected DataType reported; 632 633 /** 634 * Limited to "real" people rather than equipment. 635 */ 636 @Child(name = "performer", type = {}, order=15, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 637 @Description(shortDefinition="The people who performed the procedure", formalDefinition="Limited to \"real\" people rather than equipment." ) 638 protected List<ProcedurePerformerComponent> performer; 639 640 /** 641 * The location where the procedure actually happened. E.g. a newborn at home, a tracheostomy at a restaurant. 642 */ 643 @Child(name = "location", type = {Location.class}, order=16, min=0, max=1, modifier=false, summary=true) 644 @Description(shortDefinition="Where the procedure happened", formalDefinition="The location where the procedure actually happened. E.g. a newborn at home, a tracheostomy at a restaurant." ) 645 protected Reference location; 646 647 /** 648 * The coded reason or reference why the procedure was performed. This may be a coded entity of some type, or may simply be present as text, or may be a reference to one of several resources that justify the procedure. 649 */ 650 @Child(name = "reason", type = {CodeableReference.class}, order=17, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 651 @Description(shortDefinition="The justification that the procedure was performed", formalDefinition="The coded reason or reference why the procedure was performed. This may be a coded entity of some type, or may simply be present as text, or may be a reference to one of several resources that justify the procedure." ) 652 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/procedure-reason") 653 protected List<CodeableReference> reason; 654 655 /** 656 * Detailed and structured anatomical location information. Multiple locations are allowed - e.g. multiple punch biopsies of a lesion. 657 */ 658 @Child(name = "bodySite", type = {CodeableConcept.class}, order=18, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 659 @Description(shortDefinition="Target body sites", formalDefinition="Detailed and structured anatomical location information. Multiple locations are allowed - e.g. multiple punch biopsies of a lesion." ) 660 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/body-site") 661 protected List<CodeableConcept> bodySite; 662 663 /** 664 * The outcome of the procedure - did it resolve the reasons for the procedure being performed? 665 */ 666 @Child(name = "outcome", type = {CodeableConcept.class}, order=19, min=0, max=1, modifier=false, summary=true) 667 @Description(shortDefinition="The result of procedure", formalDefinition="The outcome of the procedure - did it resolve the reasons for the procedure being performed?" ) 668 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/procedure-outcome") 669 protected CodeableConcept outcome; 670 671 /** 672 * This could be a histology result, pathology report, surgical report, etc. 673 */ 674 @Child(name = "report", type = {DiagnosticReport.class, DocumentReference.class, Composition.class}, order=20, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 675 @Description(shortDefinition="Any report resulting from the procedure", formalDefinition="This could be a histology result, pathology report, surgical report, etc." ) 676 protected List<Reference> report; 677 678 /** 679 * Any complications that occurred during the procedure, or in the immediate post-performance period. These are generally tracked separately from the notes, which will typically describe the procedure itself rather than any 'post procedure' issues. 680 */ 681 @Child(name = "complication", type = {CodeableConcept.class}, order=21, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 682 @Description(shortDefinition="Complication following the procedure", formalDefinition="Any complications that occurred during the procedure, or in the immediate post-performance period. These are generally tracked separately from the notes, which will typically describe the procedure itself rather than any 'post procedure' issues." ) 683 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/condition-code") 684 protected List<CodeableConcept> complication; 685 686 /** 687 * Any complications that occurred during the procedure, or in the immediate post-performance period. 688 */ 689 @Child(name = "complicationDetail", type = {Condition.class}, order=22, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 690 @Description(shortDefinition="A condition that is a result of the procedure", formalDefinition="Any complications that occurred during the procedure, or in the immediate post-performance period." ) 691 protected List<Reference> complicationDetail; 692 693 /** 694 * If the procedure required specific follow up - e.g. removal of sutures. The follow up may be represented as a simple note or could potentially be more complex, in which case the CarePlan resource can be used. 695 */ 696 @Child(name = "followUp", type = {CodeableConcept.class}, order=23, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 697 @Description(shortDefinition="Instructions for follow up", formalDefinition="If the procedure required specific follow up - e.g. removal of sutures. The follow up may be represented as a simple note or could potentially be more complex, in which case the CarePlan resource can be used." ) 698 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/procedure-followup") 699 protected List<CodeableConcept> followUp; 700 701 /** 702 * Any other notes and comments about the procedure. 703 */ 704 @Child(name = "note", type = {Annotation.class}, order=24, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 705 @Description(shortDefinition="Additional information about the procedure", formalDefinition="Any other notes and comments about the procedure." ) 706 protected List<Annotation> note; 707 708 /** 709 * A device that is implanted, removed or otherwise manipulated (calibration, battery replacement, fitting a prosthesis, attaching a wound-vac, etc.) as a focal portion of the Procedure. 710 */ 711 @Child(name = "focalDevice", type = {}, order=25, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 712 @Description(shortDefinition="Manipulated, implanted, or removed device", formalDefinition="A device that is implanted, removed or otherwise manipulated (calibration, battery replacement, fitting a prosthesis, attaching a wound-vac, etc.) as a focal portion of the Procedure." ) 713 protected List<ProcedureFocalDeviceComponent> focalDevice; 714 715 /** 716 * Identifies medications, devices and any other substance used as part of the procedure. 717 */ 718 @Child(name = "used", type = {CodeableReference.class}, order=26, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 719 @Description(shortDefinition="Items used during procedure", formalDefinition="Identifies medications, devices and any other substance used as part of the procedure." ) 720 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/device-type") 721 protected List<CodeableReference> used; 722 723 /** 724 * Other resources from the patient record that may be relevant to the procedure. The information from these resources was either used to create the instance or is provided to help with its interpretation. This extension should not be used if more specific inline elements or extensions are available. 725 */ 726 @Child(name = "supportingInfo", type = {Reference.class}, order=27, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 727 @Description(shortDefinition="Extra information relevant to the procedure", formalDefinition="Other resources from the patient record that may be relevant to the procedure. The information from these resources was either used to create the instance or is provided to help with its interpretation. This extension should not be used if more specific inline elements or extensions are available." ) 728 protected List<Reference> supportingInfo; 729 730 private static final long serialVersionUID = -1752782660L; 731 732 /** 733 * Constructor 734 */ 735 public Procedure() { 736 super(); 737 } 738 739 /** 740 * Constructor 741 */ 742 public Procedure(EventStatus status, Reference subject) { 743 super(); 744 this.setStatus(status); 745 this.setSubject(subject); 746 } 747 748 /** 749 * @return {@link #identifier} (Business identifiers assigned to this procedure by the performer or other systems which remain constant as the resource is updated and is propagated from server to server.) 750 */ 751 public List<Identifier> getIdentifier() { 752 if (this.identifier == null) 753 this.identifier = new ArrayList<Identifier>(); 754 return this.identifier; 755 } 756 757 /** 758 * @return Returns a reference to <code>this</code> for easy method chaining 759 */ 760 public Procedure setIdentifier(List<Identifier> theIdentifier) { 761 this.identifier = theIdentifier; 762 return this; 763 } 764 765 public boolean hasIdentifier() { 766 if (this.identifier == null) 767 return false; 768 for (Identifier item : this.identifier) 769 if (!item.isEmpty()) 770 return true; 771 return false; 772 } 773 774 public Identifier addIdentifier() { //3 775 Identifier t = new Identifier(); 776 if (this.identifier == null) 777 this.identifier = new ArrayList<Identifier>(); 778 this.identifier.add(t); 779 return t; 780 } 781 782 public Procedure addIdentifier(Identifier t) { //3 783 if (t == null) 784 return this; 785 if (this.identifier == null) 786 this.identifier = new ArrayList<Identifier>(); 787 this.identifier.add(t); 788 return this; 789 } 790 791 /** 792 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3} 793 */ 794 public Identifier getIdentifierFirstRep() { 795 if (getIdentifier().isEmpty()) { 796 addIdentifier(); 797 } 798 return getIdentifier().get(0); 799 } 800 801 /** 802 * @return {@link #instantiatesCanonical} (The URL pointing to a FHIR-defined protocol, guideline, order set or other definition that is adhered to in whole or in part by this Procedure.) 803 */ 804 public List<CanonicalType> getInstantiatesCanonical() { 805 if (this.instantiatesCanonical == null) 806 this.instantiatesCanonical = new ArrayList<CanonicalType>(); 807 return this.instantiatesCanonical; 808 } 809 810 /** 811 * @return Returns a reference to <code>this</code> for easy method chaining 812 */ 813 public Procedure setInstantiatesCanonical(List<CanonicalType> theInstantiatesCanonical) { 814 this.instantiatesCanonical = theInstantiatesCanonical; 815 return this; 816 } 817 818 public boolean hasInstantiatesCanonical() { 819 if (this.instantiatesCanonical == null) 820 return false; 821 for (CanonicalType item : this.instantiatesCanonical) 822 if (!item.isEmpty()) 823 return true; 824 return false; 825 } 826 827 /** 828 * @return {@link #instantiatesCanonical} (The URL pointing to a FHIR-defined protocol, guideline, order set or other definition that is adhered to in whole or in part by this Procedure.) 829 */ 830 public CanonicalType addInstantiatesCanonicalElement() {//2 831 CanonicalType t = new CanonicalType(); 832 if (this.instantiatesCanonical == null) 833 this.instantiatesCanonical = new ArrayList<CanonicalType>(); 834 this.instantiatesCanonical.add(t); 835 return t; 836 } 837 838 /** 839 * @param value {@link #instantiatesCanonical} (The URL pointing to a FHIR-defined protocol, guideline, order set or other definition that is adhered to in whole or in part by this Procedure.) 840 */ 841 public Procedure addInstantiatesCanonical(String value) { //1 842 CanonicalType t = new CanonicalType(); 843 t.setValue(value); 844 if (this.instantiatesCanonical == null) 845 this.instantiatesCanonical = new ArrayList<CanonicalType>(); 846 this.instantiatesCanonical.add(t); 847 return this; 848 } 849 850 /** 851 * @param value {@link #instantiatesCanonical} (The URL pointing to a FHIR-defined protocol, guideline, order set or other definition that is adhered to in whole or in part by this Procedure.) 852 */ 853 public boolean hasInstantiatesCanonical(String value) { 854 if (this.instantiatesCanonical == null) 855 return false; 856 for (CanonicalType v : this.instantiatesCanonical) 857 if (v.getValue().equals(value)) // canonical 858 return true; 859 return false; 860 } 861 862 /** 863 * @return {@link #instantiatesUri} (The URL pointing to an externally maintained protocol, guideline, order set or other definition that is adhered to in whole or in part by this Procedure.) 864 */ 865 public List<UriType> getInstantiatesUri() { 866 if (this.instantiatesUri == null) 867 this.instantiatesUri = new ArrayList<UriType>(); 868 return this.instantiatesUri; 869 } 870 871 /** 872 * @return Returns a reference to <code>this</code> for easy method chaining 873 */ 874 public Procedure setInstantiatesUri(List<UriType> theInstantiatesUri) { 875 this.instantiatesUri = theInstantiatesUri; 876 return this; 877 } 878 879 public boolean hasInstantiatesUri() { 880 if (this.instantiatesUri == null) 881 return false; 882 for (UriType item : this.instantiatesUri) 883 if (!item.isEmpty()) 884 return true; 885 return false; 886 } 887 888 /** 889 * @return {@link #instantiatesUri} (The URL pointing to an externally maintained protocol, guideline, order set or other definition that is adhered to in whole or in part by this Procedure.) 890 */ 891 public UriType addInstantiatesUriElement() {//2 892 UriType t = new UriType(); 893 if (this.instantiatesUri == null) 894 this.instantiatesUri = new ArrayList<UriType>(); 895 this.instantiatesUri.add(t); 896 return t; 897 } 898 899 /** 900 * @param value {@link #instantiatesUri} (The URL pointing to an externally maintained protocol, guideline, order set or other definition that is adhered to in whole or in part by this Procedure.) 901 */ 902 public Procedure addInstantiatesUri(String value) { //1 903 UriType t = new UriType(); 904 t.setValue(value); 905 if (this.instantiatesUri == null) 906 this.instantiatesUri = new ArrayList<UriType>(); 907 this.instantiatesUri.add(t); 908 return this; 909 } 910 911 /** 912 * @param value {@link #instantiatesUri} (The URL pointing to an externally maintained protocol, guideline, order set or other definition that is adhered to in whole or in part by this Procedure.) 913 */ 914 public boolean hasInstantiatesUri(String value) { 915 if (this.instantiatesUri == null) 916 return false; 917 for (UriType v : this.instantiatesUri) 918 if (v.getValue().equals(value)) // uri 919 return true; 920 return false; 921 } 922 923 /** 924 * @return {@link #basedOn} (A reference to a resource that contains details of the request for this procedure.) 925 */ 926 public List<Reference> getBasedOn() { 927 if (this.basedOn == null) 928 this.basedOn = new ArrayList<Reference>(); 929 return this.basedOn; 930 } 931 932 /** 933 * @return Returns a reference to <code>this</code> for easy method chaining 934 */ 935 public Procedure setBasedOn(List<Reference> theBasedOn) { 936 this.basedOn = theBasedOn; 937 return this; 938 } 939 940 public boolean hasBasedOn() { 941 if (this.basedOn == null) 942 return false; 943 for (Reference item : this.basedOn) 944 if (!item.isEmpty()) 945 return true; 946 return false; 947 } 948 949 public Reference addBasedOn() { //3 950 Reference t = new Reference(); 951 if (this.basedOn == null) 952 this.basedOn = new ArrayList<Reference>(); 953 this.basedOn.add(t); 954 return t; 955 } 956 957 public Procedure addBasedOn(Reference t) { //3 958 if (t == null) 959 return this; 960 if (this.basedOn == null) 961 this.basedOn = new ArrayList<Reference>(); 962 this.basedOn.add(t); 963 return this; 964 } 965 966 /** 967 * @return The first repetition of repeating field {@link #basedOn}, creating it if it does not already exist {3} 968 */ 969 public Reference getBasedOnFirstRep() { 970 if (getBasedOn().isEmpty()) { 971 addBasedOn(); 972 } 973 return getBasedOn().get(0); 974 } 975 976 /** 977 * @return {@link #partOf} (A larger event of which this particular procedure is a component or step.) 978 */ 979 public List<Reference> getPartOf() { 980 if (this.partOf == null) 981 this.partOf = new ArrayList<Reference>(); 982 return this.partOf; 983 } 984 985 /** 986 * @return Returns a reference to <code>this</code> for easy method chaining 987 */ 988 public Procedure setPartOf(List<Reference> thePartOf) { 989 this.partOf = thePartOf; 990 return this; 991 } 992 993 public boolean hasPartOf() { 994 if (this.partOf == null) 995 return false; 996 for (Reference item : this.partOf) 997 if (!item.isEmpty()) 998 return true; 999 return false; 1000 } 1001 1002 public Reference addPartOf() { //3 1003 Reference t = new Reference(); 1004 if (this.partOf == null) 1005 this.partOf = new ArrayList<Reference>(); 1006 this.partOf.add(t); 1007 return t; 1008 } 1009 1010 public Procedure addPartOf(Reference t) { //3 1011 if (t == null) 1012 return this; 1013 if (this.partOf == null) 1014 this.partOf = new ArrayList<Reference>(); 1015 this.partOf.add(t); 1016 return this; 1017 } 1018 1019 /** 1020 * @return The first repetition of repeating field {@link #partOf}, creating it if it does not already exist {3} 1021 */ 1022 public Reference getPartOfFirstRep() { 1023 if (getPartOf().isEmpty()) { 1024 addPartOf(); 1025 } 1026 return getPartOf().get(0); 1027 } 1028 1029 /** 1030 * @return {@link #status} (A code specifying the state of the procedure. Generally, this will be the in-progress or completed state.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 1031 */ 1032 public Enumeration<EventStatus> getStatusElement() { 1033 if (this.status == null) 1034 if (Configuration.errorOnAutoCreate()) 1035 throw new Error("Attempt to auto-create Procedure.status"); 1036 else if (Configuration.doAutoCreate()) 1037 this.status = new Enumeration<EventStatus>(new EventStatusEnumFactory()); // bb 1038 return this.status; 1039 } 1040 1041 public boolean hasStatusElement() { 1042 return this.status != null && !this.status.isEmpty(); 1043 } 1044 1045 public boolean hasStatus() { 1046 return this.status != null && !this.status.isEmpty(); 1047 } 1048 1049 /** 1050 * @param value {@link #status} (A code specifying the state of the procedure. Generally, this will be the in-progress or completed state.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 1051 */ 1052 public Procedure setStatusElement(Enumeration<EventStatus> value) { 1053 this.status = value; 1054 return this; 1055 } 1056 1057 /** 1058 * @return A code specifying the state of the procedure. Generally, this will be the in-progress or completed state. 1059 */ 1060 public EventStatus getStatus() { 1061 return this.status == null ? null : this.status.getValue(); 1062 } 1063 1064 /** 1065 * @param value A code specifying the state of the procedure. Generally, this will be the in-progress or completed state. 1066 */ 1067 public Procedure setStatus(EventStatus value) { 1068 if (this.status == null) 1069 this.status = new Enumeration<EventStatus>(new EventStatusEnumFactory()); 1070 this.status.setValue(value); 1071 return this; 1072 } 1073 1074 /** 1075 * @return {@link #statusReason} (Captures the reason for the current state of the procedure.) 1076 */ 1077 public CodeableConcept getStatusReason() { 1078 if (this.statusReason == null) 1079 if (Configuration.errorOnAutoCreate()) 1080 throw new Error("Attempt to auto-create Procedure.statusReason"); 1081 else if (Configuration.doAutoCreate()) 1082 this.statusReason = new CodeableConcept(); // cc 1083 return this.statusReason; 1084 } 1085 1086 public boolean hasStatusReason() { 1087 return this.statusReason != null && !this.statusReason.isEmpty(); 1088 } 1089 1090 /** 1091 * @param value {@link #statusReason} (Captures the reason for the current state of the procedure.) 1092 */ 1093 public Procedure setStatusReason(CodeableConcept value) { 1094 this.statusReason = value; 1095 return this; 1096 } 1097 1098 /** 1099 * @return {@link #category} (A code that classifies the procedure for searching, sorting and display purposes (e.g. "Surgical Procedure").) 1100 */ 1101 public List<CodeableConcept> getCategory() { 1102 if (this.category == null) 1103 this.category = new ArrayList<CodeableConcept>(); 1104 return this.category; 1105 } 1106 1107 /** 1108 * @return Returns a reference to <code>this</code> for easy method chaining 1109 */ 1110 public Procedure setCategory(List<CodeableConcept> theCategory) { 1111 this.category = theCategory; 1112 return this; 1113 } 1114 1115 public boolean hasCategory() { 1116 if (this.category == null) 1117 return false; 1118 for (CodeableConcept item : this.category) 1119 if (!item.isEmpty()) 1120 return true; 1121 return false; 1122 } 1123 1124 public CodeableConcept addCategory() { //3 1125 CodeableConcept t = new CodeableConcept(); 1126 if (this.category == null) 1127 this.category = new ArrayList<CodeableConcept>(); 1128 this.category.add(t); 1129 return t; 1130 } 1131 1132 public Procedure addCategory(CodeableConcept t) { //3 1133 if (t == null) 1134 return this; 1135 if (this.category == null) 1136 this.category = new ArrayList<CodeableConcept>(); 1137 this.category.add(t); 1138 return this; 1139 } 1140 1141 /** 1142 * @return The first repetition of repeating field {@link #category}, creating it if it does not already exist {3} 1143 */ 1144 public CodeableConcept getCategoryFirstRep() { 1145 if (getCategory().isEmpty()) { 1146 addCategory(); 1147 } 1148 return getCategory().get(0); 1149 } 1150 1151 /** 1152 * @return {@link #code} (The specific procedure that is performed. Use text if the exact nature of the procedure cannot be coded (e.g. "Laparoscopic Appendectomy").) 1153 */ 1154 public CodeableConcept getCode() { 1155 if (this.code == null) 1156 if (Configuration.errorOnAutoCreate()) 1157 throw new Error("Attempt to auto-create Procedure.code"); 1158 else if (Configuration.doAutoCreate()) 1159 this.code = new CodeableConcept(); // cc 1160 return this.code; 1161 } 1162 1163 public boolean hasCode() { 1164 return this.code != null && !this.code.isEmpty(); 1165 } 1166 1167 /** 1168 * @param value {@link #code} (The specific procedure that is performed. Use text if the exact nature of the procedure cannot be coded (e.g. "Laparoscopic Appendectomy").) 1169 */ 1170 public Procedure setCode(CodeableConcept value) { 1171 this.code = value; 1172 return this; 1173 } 1174 1175 /** 1176 * @return {@link #subject} (On whom or what the procedure was performed. This is usually an individual human, but can also be performed on animals, groups of humans or animals, organizations or practitioners (for licensing), locations or devices (for safety inspections or regulatory authorizations).) 1177 */ 1178 public Reference getSubject() { 1179 if (this.subject == null) 1180 if (Configuration.errorOnAutoCreate()) 1181 throw new Error("Attempt to auto-create Procedure.subject"); 1182 else if (Configuration.doAutoCreate()) 1183 this.subject = new Reference(); // cc 1184 return this.subject; 1185 } 1186 1187 public boolean hasSubject() { 1188 return this.subject != null && !this.subject.isEmpty(); 1189 } 1190 1191 /** 1192 * @param value {@link #subject} (On whom or what the procedure was performed. This is usually an individual human, but can also be performed on animals, groups of humans or animals, organizations or practitioners (for licensing), locations or devices (for safety inspections or regulatory authorizations).) 1193 */ 1194 public Procedure setSubject(Reference value) { 1195 this.subject = value; 1196 return this; 1197 } 1198 1199 /** 1200 * @return {@link #encounter} (The Encounter during which this Procedure was created or performed or to which the creation of this record is tightly associated.) 1201 */ 1202 public Reference getEncounter() { 1203 if (this.encounter == null) 1204 if (Configuration.errorOnAutoCreate()) 1205 throw new Error("Attempt to auto-create Procedure.encounter"); 1206 else if (Configuration.doAutoCreate()) 1207 this.encounter = new Reference(); // cc 1208 return this.encounter; 1209 } 1210 1211 public boolean hasEncounter() { 1212 return this.encounter != null && !this.encounter.isEmpty(); 1213 } 1214 1215 /** 1216 * @param value {@link #encounter} (The Encounter during which this Procedure was created or performed or to which the creation of this record is tightly associated.) 1217 */ 1218 public Procedure setEncounter(Reference value) { 1219 this.encounter = value; 1220 return this; 1221 } 1222 1223 /** 1224 * @return {@link #occurrence} (Estimated or actual date, date-time, period, or age when the procedure did occur or is occurring. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured.) 1225 */ 1226 public DataType getOccurrence() { 1227 return this.occurrence; 1228 } 1229 1230 /** 1231 * @return {@link #occurrence} (Estimated or actual date, date-time, period, or age when the procedure did occur or is occurring. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured.) 1232 */ 1233 public DateTimeType getOccurrenceDateTimeType() throws FHIRException { 1234 if (this.occurrence == null) 1235 this.occurrence = new DateTimeType(); 1236 if (!(this.occurrence instanceof DateTimeType)) 1237 throw new FHIRException("Type mismatch: the type DateTimeType was expected, but "+this.occurrence.getClass().getName()+" was encountered"); 1238 return (DateTimeType) this.occurrence; 1239 } 1240 1241 public boolean hasOccurrenceDateTimeType() { 1242 return this != null && this.occurrence instanceof DateTimeType; 1243 } 1244 1245 /** 1246 * @return {@link #occurrence} (Estimated or actual date, date-time, period, or age when the procedure did occur or is occurring. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured.) 1247 */ 1248 public Period getOccurrencePeriod() throws FHIRException { 1249 if (this.occurrence == null) 1250 this.occurrence = new Period(); 1251 if (!(this.occurrence instanceof Period)) 1252 throw new FHIRException("Type mismatch: the type Period was expected, but "+this.occurrence.getClass().getName()+" was encountered"); 1253 return (Period) this.occurrence; 1254 } 1255 1256 public boolean hasOccurrencePeriod() { 1257 return this != null && this.occurrence instanceof Period; 1258 } 1259 1260 /** 1261 * @return {@link #occurrence} (Estimated or actual date, date-time, period, or age when the procedure did occur or is occurring. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured.) 1262 */ 1263 public StringType getOccurrenceStringType() throws FHIRException { 1264 if (this.occurrence == null) 1265 this.occurrence = new StringType(); 1266 if (!(this.occurrence instanceof StringType)) 1267 throw new FHIRException("Type mismatch: the type StringType was expected, but "+this.occurrence.getClass().getName()+" was encountered"); 1268 return (StringType) this.occurrence; 1269 } 1270 1271 public boolean hasOccurrenceStringType() { 1272 return this != null && this.occurrence instanceof StringType; 1273 } 1274 1275 /** 1276 * @return {@link #occurrence} (Estimated or actual date, date-time, period, or age when the procedure did occur or is occurring. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured.) 1277 */ 1278 public Age getOccurrenceAge() throws FHIRException { 1279 if (this.occurrence == null) 1280 this.occurrence = new Age(); 1281 if (!(this.occurrence instanceof Age)) 1282 throw new FHIRException("Type mismatch: the type Age was expected, but "+this.occurrence.getClass().getName()+" was encountered"); 1283 return (Age) this.occurrence; 1284 } 1285 1286 public boolean hasOccurrenceAge() { 1287 return this != null && this.occurrence instanceof Age; 1288 } 1289 1290 /** 1291 * @return {@link #occurrence} (Estimated or actual date, date-time, period, or age when the procedure did occur or is occurring. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured.) 1292 */ 1293 public Range getOccurrenceRange() throws FHIRException { 1294 if (this.occurrence == null) 1295 this.occurrence = new Range(); 1296 if (!(this.occurrence instanceof Range)) 1297 throw new FHIRException("Type mismatch: the type Range was expected, but "+this.occurrence.getClass().getName()+" was encountered"); 1298 return (Range) this.occurrence; 1299 } 1300 1301 public boolean hasOccurrenceRange() { 1302 return this != null && this.occurrence instanceof Range; 1303 } 1304 1305 /** 1306 * @return {@link #occurrence} (Estimated or actual date, date-time, period, or age when the procedure did occur or is occurring. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured.) 1307 */ 1308 public Timing getOccurrenceTiming() throws FHIRException { 1309 if (this.occurrence == null) 1310 this.occurrence = new Timing(); 1311 if (!(this.occurrence instanceof Timing)) 1312 throw new FHIRException("Type mismatch: the type Timing was expected, but "+this.occurrence.getClass().getName()+" was encountered"); 1313 return (Timing) this.occurrence; 1314 } 1315 1316 public boolean hasOccurrenceTiming() { 1317 return this != null && this.occurrence instanceof Timing; 1318 } 1319 1320 public boolean hasOccurrence() { 1321 return this.occurrence != null && !this.occurrence.isEmpty(); 1322 } 1323 1324 /** 1325 * @param value {@link #occurrence} (Estimated or actual date, date-time, period, or age when the procedure did occur or is occurring. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured.) 1326 */ 1327 public Procedure setOccurrence(DataType value) { 1328 if (value != null && !(value instanceof DateTimeType || value instanceof Period || value instanceof StringType || value instanceof Age || value instanceof Range || value instanceof Timing)) 1329 throw new Error("Not the right type for Procedure.occurrence[x]: "+value.fhirType()); 1330 this.occurrence = value; 1331 return this; 1332 } 1333 1334 /** 1335 * @return {@link #recorded} (The date the occurrence of the procedure was first captured in the record regardless of Procedure.status (potentially after the occurrence of the event).). This is the underlying object with id, value and extensions. The accessor "getRecorded" gives direct access to the value 1336 */ 1337 public DateTimeType getRecordedElement() { 1338 if (this.recorded == null) 1339 if (Configuration.errorOnAutoCreate()) 1340 throw new Error("Attempt to auto-create Procedure.recorded"); 1341 else if (Configuration.doAutoCreate()) 1342 this.recorded = new DateTimeType(); // bb 1343 return this.recorded; 1344 } 1345 1346 public boolean hasRecordedElement() { 1347 return this.recorded != null && !this.recorded.isEmpty(); 1348 } 1349 1350 public boolean hasRecorded() { 1351 return this.recorded != null && !this.recorded.isEmpty(); 1352 } 1353 1354 /** 1355 * @param value {@link #recorded} (The date the occurrence of the procedure was first captured in the record regardless of Procedure.status (potentially after the occurrence of the event).). This is the underlying object with id, value and extensions. The accessor "getRecorded" gives direct access to the value 1356 */ 1357 public Procedure setRecordedElement(DateTimeType value) { 1358 this.recorded = value; 1359 return this; 1360 } 1361 1362 /** 1363 * @return The date the occurrence of the procedure was first captured in the record regardless of Procedure.status (potentially after the occurrence of the event). 1364 */ 1365 public Date getRecorded() { 1366 return this.recorded == null ? null : this.recorded.getValue(); 1367 } 1368 1369 /** 1370 * @param value The date the occurrence of the procedure was first captured in the record regardless of Procedure.status (potentially after the occurrence of the event). 1371 */ 1372 public Procedure setRecorded(Date value) { 1373 if (value == null) 1374 this.recorded = null; 1375 else { 1376 if (this.recorded == null) 1377 this.recorded = new DateTimeType(); 1378 this.recorded.setValue(value); 1379 } 1380 return this; 1381 } 1382 1383 /** 1384 * @return {@link #recorder} (Individual who recorded the record and takes responsibility for its content.) 1385 */ 1386 public Reference getRecorder() { 1387 if (this.recorder == null) 1388 if (Configuration.errorOnAutoCreate()) 1389 throw new Error("Attempt to auto-create Procedure.recorder"); 1390 else if (Configuration.doAutoCreate()) 1391 this.recorder = new Reference(); // cc 1392 return this.recorder; 1393 } 1394 1395 public boolean hasRecorder() { 1396 return this.recorder != null && !this.recorder.isEmpty(); 1397 } 1398 1399 /** 1400 * @param value {@link #recorder} (Individual who recorded the record and takes responsibility for its content.) 1401 */ 1402 public Procedure setRecorder(Reference value) { 1403 this.recorder = value; 1404 return this; 1405 } 1406 1407 /** 1408 * @return {@link #reported} (Indicates if this record was captured as a secondary 'reported' record rather than as an original primary source-of-truth record. It may also indicate the source of the report.) 1409 */ 1410 public DataType getReported() { 1411 return this.reported; 1412 } 1413 1414 /** 1415 * @return {@link #reported} (Indicates if this record was captured as a secondary 'reported' record rather than as an original primary source-of-truth record. It may also indicate the source of the report.) 1416 */ 1417 public BooleanType getReportedBooleanType() throws FHIRException { 1418 if (this.reported == null) 1419 this.reported = new BooleanType(); 1420 if (!(this.reported instanceof BooleanType)) 1421 throw new FHIRException("Type mismatch: the type BooleanType was expected, but "+this.reported.getClass().getName()+" was encountered"); 1422 return (BooleanType) this.reported; 1423 } 1424 1425 public boolean hasReportedBooleanType() { 1426 return this != null && this.reported instanceof BooleanType; 1427 } 1428 1429 /** 1430 * @return {@link #reported} (Indicates if this record was captured as a secondary 'reported' record rather than as an original primary source-of-truth record. It may also indicate the source of the report.) 1431 */ 1432 public Reference getReportedReference() throws FHIRException { 1433 if (this.reported == null) 1434 this.reported = new Reference(); 1435 if (!(this.reported instanceof Reference)) 1436 throw new FHIRException("Type mismatch: the type Reference was expected, but "+this.reported.getClass().getName()+" was encountered"); 1437 return (Reference) this.reported; 1438 } 1439 1440 public boolean hasReportedReference() { 1441 return this != null && this.reported instanceof Reference; 1442 } 1443 1444 public boolean hasReported() { 1445 return this.reported != null && !this.reported.isEmpty(); 1446 } 1447 1448 /** 1449 * @param value {@link #reported} (Indicates if this record was captured as a secondary 'reported' record rather than as an original primary source-of-truth record. It may also indicate the source of the report.) 1450 */ 1451 public Procedure setReported(DataType value) { 1452 if (value != null && !(value instanceof BooleanType || value instanceof Reference)) 1453 throw new Error("Not the right type for Procedure.reported[x]: "+value.fhirType()); 1454 this.reported = value; 1455 return this; 1456 } 1457 1458 /** 1459 * @return {@link #performer} (Limited to "real" people rather than equipment.) 1460 */ 1461 public List<ProcedurePerformerComponent> getPerformer() { 1462 if (this.performer == null) 1463 this.performer = new ArrayList<ProcedurePerformerComponent>(); 1464 return this.performer; 1465 } 1466 1467 /** 1468 * @return Returns a reference to <code>this</code> for easy method chaining 1469 */ 1470 public Procedure setPerformer(List<ProcedurePerformerComponent> thePerformer) { 1471 this.performer = thePerformer; 1472 return this; 1473 } 1474 1475 public boolean hasPerformer() { 1476 if (this.performer == null) 1477 return false; 1478 for (ProcedurePerformerComponent item : this.performer) 1479 if (!item.isEmpty()) 1480 return true; 1481 return false; 1482 } 1483 1484 public ProcedurePerformerComponent addPerformer() { //3 1485 ProcedurePerformerComponent t = new ProcedurePerformerComponent(); 1486 if (this.performer == null) 1487 this.performer = new ArrayList<ProcedurePerformerComponent>(); 1488 this.performer.add(t); 1489 return t; 1490 } 1491 1492 public Procedure addPerformer(ProcedurePerformerComponent t) { //3 1493 if (t == null) 1494 return this; 1495 if (this.performer == null) 1496 this.performer = new ArrayList<ProcedurePerformerComponent>(); 1497 this.performer.add(t); 1498 return this; 1499 } 1500 1501 /** 1502 * @return The first repetition of repeating field {@link #performer}, creating it if it does not already exist {3} 1503 */ 1504 public ProcedurePerformerComponent getPerformerFirstRep() { 1505 if (getPerformer().isEmpty()) { 1506 addPerformer(); 1507 } 1508 return getPerformer().get(0); 1509 } 1510 1511 /** 1512 * @return {@link #location} (The location where the procedure actually happened. E.g. a newborn at home, a tracheostomy at a restaurant.) 1513 */ 1514 public Reference getLocation() { 1515 if (this.location == null) 1516 if (Configuration.errorOnAutoCreate()) 1517 throw new Error("Attempt to auto-create Procedure.location"); 1518 else if (Configuration.doAutoCreate()) 1519 this.location = new Reference(); // cc 1520 return this.location; 1521 } 1522 1523 public boolean hasLocation() { 1524 return this.location != null && !this.location.isEmpty(); 1525 } 1526 1527 /** 1528 * @param value {@link #location} (The location where the procedure actually happened. E.g. a newborn at home, a tracheostomy at a restaurant.) 1529 */ 1530 public Procedure setLocation(Reference value) { 1531 this.location = value; 1532 return this; 1533 } 1534 1535 /** 1536 * @return {@link #reason} (The coded reason or reference why the procedure was performed. This may be a coded entity of some type, or may simply be present as text, or may be a reference to one of several resources that justify the procedure.) 1537 */ 1538 public List<CodeableReference> getReason() { 1539 if (this.reason == null) 1540 this.reason = new ArrayList<CodeableReference>(); 1541 return this.reason; 1542 } 1543 1544 /** 1545 * @return Returns a reference to <code>this</code> for easy method chaining 1546 */ 1547 public Procedure setReason(List<CodeableReference> theReason) { 1548 this.reason = theReason; 1549 return this; 1550 } 1551 1552 public boolean hasReason() { 1553 if (this.reason == null) 1554 return false; 1555 for (CodeableReference item : this.reason) 1556 if (!item.isEmpty()) 1557 return true; 1558 return false; 1559 } 1560 1561 public CodeableReference addReason() { //3 1562 CodeableReference t = new CodeableReference(); 1563 if (this.reason == null) 1564 this.reason = new ArrayList<CodeableReference>(); 1565 this.reason.add(t); 1566 return t; 1567 } 1568 1569 public Procedure addReason(CodeableReference t) { //3 1570 if (t == null) 1571 return this; 1572 if (this.reason == null) 1573 this.reason = new ArrayList<CodeableReference>(); 1574 this.reason.add(t); 1575 return this; 1576 } 1577 1578 /** 1579 * @return The first repetition of repeating field {@link #reason}, creating it if it does not already exist {3} 1580 */ 1581 public CodeableReference getReasonFirstRep() { 1582 if (getReason().isEmpty()) { 1583 addReason(); 1584 } 1585 return getReason().get(0); 1586 } 1587 1588 /** 1589 * @return {@link #bodySite} (Detailed and structured anatomical location information. Multiple locations are allowed - e.g. multiple punch biopsies of a lesion.) 1590 */ 1591 public List<CodeableConcept> getBodySite() { 1592 if (this.bodySite == null) 1593 this.bodySite = new ArrayList<CodeableConcept>(); 1594 return this.bodySite; 1595 } 1596 1597 /** 1598 * @return Returns a reference to <code>this</code> for easy method chaining 1599 */ 1600 public Procedure setBodySite(List<CodeableConcept> theBodySite) { 1601 this.bodySite = theBodySite; 1602 return this; 1603 } 1604 1605 public boolean hasBodySite() { 1606 if (this.bodySite == null) 1607 return false; 1608 for (CodeableConcept item : this.bodySite) 1609 if (!item.isEmpty()) 1610 return true; 1611 return false; 1612 } 1613 1614 public CodeableConcept addBodySite() { //3 1615 CodeableConcept t = new CodeableConcept(); 1616 if (this.bodySite == null) 1617 this.bodySite = new ArrayList<CodeableConcept>(); 1618 this.bodySite.add(t); 1619 return t; 1620 } 1621 1622 public Procedure addBodySite(CodeableConcept t) { //3 1623 if (t == null) 1624 return this; 1625 if (this.bodySite == null) 1626 this.bodySite = new ArrayList<CodeableConcept>(); 1627 this.bodySite.add(t); 1628 return this; 1629 } 1630 1631 /** 1632 * @return The first repetition of repeating field {@link #bodySite}, creating it if it does not already exist {3} 1633 */ 1634 public CodeableConcept getBodySiteFirstRep() { 1635 if (getBodySite().isEmpty()) { 1636 addBodySite(); 1637 } 1638 return getBodySite().get(0); 1639 } 1640 1641 /** 1642 * @return {@link #outcome} (The outcome of the procedure - did it resolve the reasons for the procedure being performed?) 1643 */ 1644 public CodeableConcept getOutcome() { 1645 if (this.outcome == null) 1646 if (Configuration.errorOnAutoCreate()) 1647 throw new Error("Attempt to auto-create Procedure.outcome"); 1648 else if (Configuration.doAutoCreate()) 1649 this.outcome = new CodeableConcept(); // cc 1650 return this.outcome; 1651 } 1652 1653 public boolean hasOutcome() { 1654 return this.outcome != null && !this.outcome.isEmpty(); 1655 } 1656 1657 /** 1658 * @param value {@link #outcome} (The outcome of the procedure - did it resolve the reasons for the procedure being performed?) 1659 */ 1660 public Procedure setOutcome(CodeableConcept value) { 1661 this.outcome = value; 1662 return this; 1663 } 1664 1665 /** 1666 * @return {@link #report} (This could be a histology result, pathology report, surgical report, etc.) 1667 */ 1668 public List<Reference> getReport() { 1669 if (this.report == null) 1670 this.report = new ArrayList<Reference>(); 1671 return this.report; 1672 } 1673 1674 /** 1675 * @return Returns a reference to <code>this</code> for easy method chaining 1676 */ 1677 public Procedure setReport(List<Reference> theReport) { 1678 this.report = theReport; 1679 return this; 1680 } 1681 1682 public boolean hasReport() { 1683 if (this.report == null) 1684 return false; 1685 for (Reference item : this.report) 1686 if (!item.isEmpty()) 1687 return true; 1688 return false; 1689 } 1690 1691 public Reference addReport() { //3 1692 Reference t = new Reference(); 1693 if (this.report == null) 1694 this.report = new ArrayList<Reference>(); 1695 this.report.add(t); 1696 return t; 1697 } 1698 1699 public Procedure addReport(Reference t) { //3 1700 if (t == null) 1701 return this; 1702 if (this.report == null) 1703 this.report = new ArrayList<Reference>(); 1704 this.report.add(t); 1705 return this; 1706 } 1707 1708 /** 1709 * @return The first repetition of repeating field {@link #report}, creating it if it does not already exist {3} 1710 */ 1711 public Reference getReportFirstRep() { 1712 if (getReport().isEmpty()) { 1713 addReport(); 1714 } 1715 return getReport().get(0); 1716 } 1717 1718 /** 1719 * @return {@link #complication} (Any complications that occurred during the procedure, or in the immediate post-performance period. These are generally tracked separately from the notes, which will typically describe the procedure itself rather than any 'post procedure' issues.) 1720 */ 1721 public List<CodeableConcept> getComplication() { 1722 if (this.complication == null) 1723 this.complication = new ArrayList<CodeableConcept>(); 1724 return this.complication; 1725 } 1726 1727 /** 1728 * @return Returns a reference to <code>this</code> for easy method chaining 1729 */ 1730 public Procedure setComplication(List<CodeableConcept> theComplication) { 1731 this.complication = theComplication; 1732 return this; 1733 } 1734 1735 public boolean hasComplication() { 1736 if (this.complication == null) 1737 return false; 1738 for (CodeableConcept item : this.complication) 1739 if (!item.isEmpty()) 1740 return true; 1741 return false; 1742 } 1743 1744 public CodeableConcept addComplication() { //3 1745 CodeableConcept t = new CodeableConcept(); 1746 if (this.complication == null) 1747 this.complication = new ArrayList<CodeableConcept>(); 1748 this.complication.add(t); 1749 return t; 1750 } 1751 1752 public Procedure addComplication(CodeableConcept t) { //3 1753 if (t == null) 1754 return this; 1755 if (this.complication == null) 1756 this.complication = new ArrayList<CodeableConcept>(); 1757 this.complication.add(t); 1758 return this; 1759 } 1760 1761 /** 1762 * @return The first repetition of repeating field {@link #complication}, creating it if it does not already exist {3} 1763 */ 1764 public CodeableConcept getComplicationFirstRep() { 1765 if (getComplication().isEmpty()) { 1766 addComplication(); 1767 } 1768 return getComplication().get(0); 1769 } 1770 1771 /** 1772 * @return {@link #complicationDetail} (Any complications that occurred during the procedure, or in the immediate post-performance period.) 1773 */ 1774 public List<Reference> getComplicationDetail() { 1775 if (this.complicationDetail == null) 1776 this.complicationDetail = new ArrayList<Reference>(); 1777 return this.complicationDetail; 1778 } 1779 1780 /** 1781 * @return Returns a reference to <code>this</code> for easy method chaining 1782 */ 1783 public Procedure setComplicationDetail(List<Reference> theComplicationDetail) { 1784 this.complicationDetail = theComplicationDetail; 1785 return this; 1786 } 1787 1788 public boolean hasComplicationDetail() { 1789 if (this.complicationDetail == null) 1790 return false; 1791 for (Reference item : this.complicationDetail) 1792 if (!item.isEmpty()) 1793 return true; 1794 return false; 1795 } 1796 1797 public Reference addComplicationDetail() { //3 1798 Reference t = new Reference(); 1799 if (this.complicationDetail == null) 1800 this.complicationDetail = new ArrayList<Reference>(); 1801 this.complicationDetail.add(t); 1802 return t; 1803 } 1804 1805 public Procedure addComplicationDetail(Reference t) { //3 1806 if (t == null) 1807 return this; 1808 if (this.complicationDetail == null) 1809 this.complicationDetail = new ArrayList<Reference>(); 1810 this.complicationDetail.add(t); 1811 return this; 1812 } 1813 1814 /** 1815 * @return The first repetition of repeating field {@link #complicationDetail}, creating it if it does not already exist {3} 1816 */ 1817 public Reference getComplicationDetailFirstRep() { 1818 if (getComplicationDetail().isEmpty()) { 1819 addComplicationDetail(); 1820 } 1821 return getComplicationDetail().get(0); 1822 } 1823 1824 /** 1825 * @return {@link #followUp} (If the procedure required specific follow up - e.g. removal of sutures. The follow up may be represented as a simple note or could potentially be more complex, in which case the CarePlan resource can be used.) 1826 */ 1827 public List<CodeableConcept> getFollowUp() { 1828 if (this.followUp == null) 1829 this.followUp = new ArrayList<CodeableConcept>(); 1830 return this.followUp; 1831 } 1832 1833 /** 1834 * @return Returns a reference to <code>this</code> for easy method chaining 1835 */ 1836 public Procedure setFollowUp(List<CodeableConcept> theFollowUp) { 1837 this.followUp = theFollowUp; 1838 return this; 1839 } 1840 1841 public boolean hasFollowUp() { 1842 if (this.followUp == null) 1843 return false; 1844 for (CodeableConcept item : this.followUp) 1845 if (!item.isEmpty()) 1846 return true; 1847 return false; 1848 } 1849 1850 public CodeableConcept addFollowUp() { //3 1851 CodeableConcept t = new CodeableConcept(); 1852 if (this.followUp == null) 1853 this.followUp = new ArrayList<CodeableConcept>(); 1854 this.followUp.add(t); 1855 return t; 1856 } 1857 1858 public Procedure addFollowUp(CodeableConcept t) { //3 1859 if (t == null) 1860 return this; 1861 if (this.followUp == null) 1862 this.followUp = new ArrayList<CodeableConcept>(); 1863 this.followUp.add(t); 1864 return this; 1865 } 1866 1867 /** 1868 * @return The first repetition of repeating field {@link #followUp}, creating it if it does not already exist {3} 1869 */ 1870 public CodeableConcept getFollowUpFirstRep() { 1871 if (getFollowUp().isEmpty()) { 1872 addFollowUp(); 1873 } 1874 return getFollowUp().get(0); 1875 } 1876 1877 /** 1878 * @return {@link #note} (Any other notes and comments about the procedure.) 1879 */ 1880 public List<Annotation> getNote() { 1881 if (this.note == null) 1882 this.note = new ArrayList<Annotation>(); 1883 return this.note; 1884 } 1885 1886 /** 1887 * @return Returns a reference to <code>this</code> for easy method chaining 1888 */ 1889 public Procedure setNote(List<Annotation> theNote) { 1890 this.note = theNote; 1891 return this; 1892 } 1893 1894 public boolean hasNote() { 1895 if (this.note == null) 1896 return false; 1897 for (Annotation item : this.note) 1898 if (!item.isEmpty()) 1899 return true; 1900 return false; 1901 } 1902 1903 public Annotation addNote() { //3 1904 Annotation t = new Annotation(); 1905 if (this.note == null) 1906 this.note = new ArrayList<Annotation>(); 1907 this.note.add(t); 1908 return t; 1909 } 1910 1911 public Procedure addNote(Annotation t) { //3 1912 if (t == null) 1913 return this; 1914 if (this.note == null) 1915 this.note = new ArrayList<Annotation>(); 1916 this.note.add(t); 1917 return this; 1918 } 1919 1920 /** 1921 * @return The first repetition of repeating field {@link #note}, creating it if it does not already exist {3} 1922 */ 1923 public Annotation getNoteFirstRep() { 1924 if (getNote().isEmpty()) { 1925 addNote(); 1926 } 1927 return getNote().get(0); 1928 } 1929 1930 /** 1931 * @return {@link #focalDevice} (A device that is implanted, removed or otherwise manipulated (calibration, battery replacement, fitting a prosthesis, attaching a wound-vac, etc.) as a focal portion of the Procedure.) 1932 */ 1933 public List<ProcedureFocalDeviceComponent> getFocalDevice() { 1934 if (this.focalDevice == null) 1935 this.focalDevice = new ArrayList<ProcedureFocalDeviceComponent>(); 1936 return this.focalDevice; 1937 } 1938 1939 /** 1940 * @return Returns a reference to <code>this</code> for easy method chaining 1941 */ 1942 public Procedure setFocalDevice(List<ProcedureFocalDeviceComponent> theFocalDevice) { 1943 this.focalDevice = theFocalDevice; 1944 return this; 1945 } 1946 1947 public boolean hasFocalDevice() { 1948 if (this.focalDevice == null) 1949 return false; 1950 for (ProcedureFocalDeviceComponent item : this.focalDevice) 1951 if (!item.isEmpty()) 1952 return true; 1953 return false; 1954 } 1955 1956 public ProcedureFocalDeviceComponent addFocalDevice() { //3 1957 ProcedureFocalDeviceComponent t = new ProcedureFocalDeviceComponent(); 1958 if (this.focalDevice == null) 1959 this.focalDevice = new ArrayList<ProcedureFocalDeviceComponent>(); 1960 this.focalDevice.add(t); 1961 return t; 1962 } 1963 1964 public Procedure addFocalDevice(ProcedureFocalDeviceComponent t) { //3 1965 if (t == null) 1966 return this; 1967 if (this.focalDevice == null) 1968 this.focalDevice = new ArrayList<ProcedureFocalDeviceComponent>(); 1969 this.focalDevice.add(t); 1970 return this; 1971 } 1972 1973 /** 1974 * @return The first repetition of repeating field {@link #focalDevice}, creating it if it does not already exist {3} 1975 */ 1976 public ProcedureFocalDeviceComponent getFocalDeviceFirstRep() { 1977 if (getFocalDevice().isEmpty()) { 1978 addFocalDevice(); 1979 } 1980 return getFocalDevice().get(0); 1981 } 1982 1983 /** 1984 * @return {@link #used} (Identifies medications, devices and any other substance used as part of the procedure.) 1985 */ 1986 public List<CodeableReference> getUsed() { 1987 if (this.used == null) 1988 this.used = new ArrayList<CodeableReference>(); 1989 return this.used; 1990 } 1991 1992 /** 1993 * @return Returns a reference to <code>this</code> for easy method chaining 1994 */ 1995 public Procedure setUsed(List<CodeableReference> theUsed) { 1996 this.used = theUsed; 1997 return this; 1998 } 1999 2000 public boolean hasUsed() { 2001 if (this.used == null) 2002 return false; 2003 for (CodeableReference item : this.used) 2004 if (!item.isEmpty()) 2005 return true; 2006 return false; 2007 } 2008 2009 public CodeableReference addUsed() { //3 2010 CodeableReference t = new CodeableReference(); 2011 if (this.used == null) 2012 this.used = new ArrayList<CodeableReference>(); 2013 this.used.add(t); 2014 return t; 2015 } 2016 2017 public Procedure addUsed(CodeableReference t) { //3 2018 if (t == null) 2019 return this; 2020 if (this.used == null) 2021 this.used = new ArrayList<CodeableReference>(); 2022 this.used.add(t); 2023 return this; 2024 } 2025 2026 /** 2027 * @return The first repetition of repeating field {@link #used}, creating it if it does not already exist {3} 2028 */ 2029 public CodeableReference getUsedFirstRep() { 2030 if (getUsed().isEmpty()) { 2031 addUsed(); 2032 } 2033 return getUsed().get(0); 2034 } 2035 2036 /** 2037 * @return {@link #supportingInfo} (Other resources from the patient record that may be relevant to the procedure. The information from these resources was either used to create the instance or is provided to help with its interpretation. This extension should not be used if more specific inline elements or extensions are available.) 2038 */ 2039 public List<Reference> getSupportingInfo() { 2040 if (this.supportingInfo == null) 2041 this.supportingInfo = new ArrayList<Reference>(); 2042 return this.supportingInfo; 2043 } 2044 2045 /** 2046 * @return Returns a reference to <code>this</code> for easy method chaining 2047 */ 2048 public Procedure setSupportingInfo(List<Reference> theSupportingInfo) { 2049 this.supportingInfo = theSupportingInfo; 2050 return this; 2051 } 2052 2053 public boolean hasSupportingInfo() { 2054 if (this.supportingInfo == null) 2055 return false; 2056 for (Reference item : this.supportingInfo) 2057 if (!item.isEmpty()) 2058 return true; 2059 return false; 2060 } 2061 2062 public Reference addSupportingInfo() { //3 2063 Reference t = new Reference(); 2064 if (this.supportingInfo == null) 2065 this.supportingInfo = new ArrayList<Reference>(); 2066 this.supportingInfo.add(t); 2067 return t; 2068 } 2069 2070 public Procedure addSupportingInfo(Reference t) { //3 2071 if (t == null) 2072 return this; 2073 if (this.supportingInfo == null) 2074 this.supportingInfo = new ArrayList<Reference>(); 2075 this.supportingInfo.add(t); 2076 return this; 2077 } 2078 2079 /** 2080 * @return The first repetition of repeating field {@link #supportingInfo}, creating it if it does not already exist {3} 2081 */ 2082 public Reference getSupportingInfoFirstRep() { 2083 if (getSupportingInfo().isEmpty()) { 2084 addSupportingInfo(); 2085 } 2086 return getSupportingInfo().get(0); 2087 } 2088 2089 protected void listChildren(List<Property> children) { 2090 super.listChildren(children); 2091 children.add(new Property("identifier", "Identifier", "Business identifiers assigned to this procedure by the performer or other systems which remain constant as the resource is updated and is propagated from server to server.", 0, java.lang.Integer.MAX_VALUE, identifier)); 2092 children.add(new Property("instantiatesCanonical", "canonical(PlanDefinition|ActivityDefinition|Measure|OperationDefinition|Questionnaire)", "The URL pointing to a FHIR-defined protocol, guideline, order set or other definition that is adhered to in whole or in part by this Procedure.", 0, java.lang.Integer.MAX_VALUE, instantiatesCanonical)); 2093 children.add(new Property("instantiatesUri", "uri", "The URL pointing to an externally maintained protocol, guideline, order set or other definition that is adhered to in whole or in part by this Procedure.", 0, java.lang.Integer.MAX_VALUE, instantiatesUri)); 2094 children.add(new Property("basedOn", "Reference(CarePlan|ServiceRequest)", "A reference to a resource that contains details of the request for this procedure.", 0, java.lang.Integer.MAX_VALUE, basedOn)); 2095 children.add(new Property("partOf", "Reference(Procedure|Observation|MedicationAdministration)", "A larger event of which this particular procedure is a component or step.", 0, java.lang.Integer.MAX_VALUE, partOf)); 2096 children.add(new Property("status", "code", "A code specifying the state of the procedure. Generally, this will be the in-progress or completed state.", 0, 1, status)); 2097 children.add(new Property("statusReason", "CodeableConcept", "Captures the reason for the current state of the procedure.", 0, 1, statusReason)); 2098 children.add(new Property("category", "CodeableConcept", "A code that classifies the procedure for searching, sorting and display purposes (e.g. \"Surgical Procedure\").", 0, java.lang.Integer.MAX_VALUE, category)); 2099 children.add(new Property("code", "CodeableConcept", "The specific procedure that is performed. Use text if the exact nature of the procedure cannot be coded (e.g. \"Laparoscopic Appendectomy\").", 0, 1, code)); 2100 children.add(new Property("subject", "Reference(Patient|Group|Device|Practitioner|Organization|Location)", "On whom or what the procedure was performed. This is usually an individual human, but can also be performed on animals, groups of humans or animals, organizations or practitioners (for licensing), locations or devices (for safety inspections or regulatory authorizations).", 0, 1, subject)); 2101 children.add(new Property("encounter", "Reference(Encounter)", "The Encounter during which this Procedure was created or performed or to which the creation of this record is tightly associated.", 0, 1, encounter)); 2102 children.add(new Property("occurrence[x]", "dateTime|Period|string|Age|Range|Timing", "Estimated or actual date, date-time, period, or age when the procedure did occur or is occurring. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured.", 0, 1, occurrence)); 2103 children.add(new Property("recorded", "dateTime", "The date the occurrence of the procedure was first captured in the record regardless of Procedure.status (potentially after the occurrence of the event).", 0, 1, recorded)); 2104 children.add(new Property("recorder", "Reference(Patient|RelatedPerson|Practitioner|PractitionerRole)", "Individual who recorded the record and takes responsibility for its content.", 0, 1, recorder)); 2105 children.add(new Property("reported[x]", "boolean|Reference(Patient|RelatedPerson|Practitioner|PractitionerRole|Organization)", "Indicates if this record was captured as a secondary 'reported' record rather than as an original primary source-of-truth record. It may also indicate the source of the report.", 0, 1, reported)); 2106 children.add(new Property("performer", "", "Limited to \"real\" people rather than equipment.", 0, java.lang.Integer.MAX_VALUE, performer)); 2107 children.add(new Property("location", "Reference(Location)", "The location where the procedure actually happened. E.g. a newborn at home, a tracheostomy at a restaurant.", 0, 1, location)); 2108 children.add(new Property("reason", "CodeableReference(Condition|Observation|Procedure|DiagnosticReport|DocumentReference)", "The coded reason or reference why the procedure was performed. This may be a coded entity of some type, or may simply be present as text, or may be a reference to one of several resources that justify the procedure.", 0, java.lang.Integer.MAX_VALUE, reason)); 2109 children.add(new Property("bodySite", "CodeableConcept", "Detailed and structured anatomical location information. Multiple locations are allowed - e.g. multiple punch biopsies of a lesion.", 0, java.lang.Integer.MAX_VALUE, bodySite)); 2110 children.add(new Property("outcome", "CodeableConcept", "The outcome of the procedure - did it resolve the reasons for the procedure being performed?", 0, 1, outcome)); 2111 children.add(new Property("report", "Reference(DiagnosticReport|DocumentReference|Composition)", "This could be a histology result, pathology report, surgical report, etc.", 0, java.lang.Integer.MAX_VALUE, report)); 2112 children.add(new Property("complication", "CodeableConcept", "Any complications that occurred during the procedure, or in the immediate post-performance period. These are generally tracked separately from the notes, which will typically describe the procedure itself rather than any 'post procedure' issues.", 0, java.lang.Integer.MAX_VALUE, complication)); 2113 children.add(new Property("complicationDetail", "Reference(Condition)", "Any complications that occurred during the procedure, or in the immediate post-performance period.", 0, java.lang.Integer.MAX_VALUE, complicationDetail)); 2114 children.add(new Property("followUp", "CodeableConcept", "If the procedure required specific follow up - e.g. removal of sutures. The follow up may be represented as a simple note or could potentially be more complex, in which case the CarePlan resource can be used.", 0, java.lang.Integer.MAX_VALUE, followUp)); 2115 children.add(new Property("note", "Annotation", "Any other notes and comments about the procedure.", 0, java.lang.Integer.MAX_VALUE, note)); 2116 children.add(new Property("focalDevice", "", "A device that is implanted, removed or otherwise manipulated (calibration, battery replacement, fitting a prosthesis, attaching a wound-vac, etc.) as a focal portion of the Procedure.", 0, java.lang.Integer.MAX_VALUE, focalDevice)); 2117 children.add(new Property("used", "CodeableReference(Device|Medication|Substance|BiologicallyDerivedProduct)", "Identifies medications, devices and any other substance used as part of the procedure.", 0, java.lang.Integer.MAX_VALUE, used)); 2118 children.add(new Property("supportingInfo", "Reference(Any)", "Other resources from the patient record that may be relevant to the procedure. The information from these resources was either used to create the instance or is provided to help with its interpretation. This extension should not be used if more specific inline elements or extensions are available.", 0, java.lang.Integer.MAX_VALUE, supportingInfo)); 2119 } 2120 2121 @Override 2122 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 2123 switch (_hash) { 2124 case -1618432855: /*identifier*/ return new Property("identifier", "Identifier", "Business identifiers assigned to this procedure by the performer or other systems which remain constant as the resource is updated and is propagated from server to server.", 0, java.lang.Integer.MAX_VALUE, identifier); 2125 case 8911915: /*instantiatesCanonical*/ return new Property("instantiatesCanonical", "canonical(PlanDefinition|ActivityDefinition|Measure|OperationDefinition|Questionnaire)", "The URL pointing to a FHIR-defined protocol, guideline, order set or other definition that is adhered to in whole or in part by this Procedure.", 0, java.lang.Integer.MAX_VALUE, instantiatesCanonical); 2126 case -1926393373: /*instantiatesUri*/ return new Property("instantiatesUri", "uri", "The URL pointing to an externally maintained protocol, guideline, order set or other definition that is adhered to in whole or in part by this Procedure.", 0, java.lang.Integer.MAX_VALUE, instantiatesUri); 2127 case -332612366: /*basedOn*/ return new Property("basedOn", "Reference(CarePlan|ServiceRequest)", "A reference to a resource that contains details of the request for this procedure.", 0, java.lang.Integer.MAX_VALUE, basedOn); 2128 case -995410646: /*partOf*/ return new Property("partOf", "Reference(Procedure|Observation|MedicationAdministration)", "A larger event of which this particular procedure is a component or step.", 0, java.lang.Integer.MAX_VALUE, partOf); 2129 case -892481550: /*status*/ return new Property("status", "code", "A code specifying the state of the procedure. Generally, this will be the in-progress or completed state.", 0, 1, status); 2130 case 2051346646: /*statusReason*/ return new Property("statusReason", "CodeableConcept", "Captures the reason for the current state of the procedure.", 0, 1, statusReason); 2131 case 50511102: /*category*/ return new Property("category", "CodeableConcept", "A code that classifies the procedure for searching, sorting and display purposes (e.g. \"Surgical Procedure\").", 0, java.lang.Integer.MAX_VALUE, category); 2132 case 3059181: /*code*/ return new Property("code", "CodeableConcept", "The specific procedure that is performed. Use text if the exact nature of the procedure cannot be coded (e.g. \"Laparoscopic Appendectomy\").", 0, 1, code); 2133 case -1867885268: /*subject*/ return new Property("subject", "Reference(Patient|Group|Device|Practitioner|Organization|Location)", "On whom or what the procedure was performed. This is usually an individual human, but can also be performed on animals, groups of humans or animals, organizations or practitioners (for licensing), locations or devices (for safety inspections or regulatory authorizations).", 0, 1, subject); 2134 case 1524132147: /*encounter*/ return new Property("encounter", "Reference(Encounter)", "The Encounter during which this Procedure was created or performed or to which the creation of this record is tightly associated.", 0, 1, encounter); 2135 case -2022646513: /*occurrence[x]*/ return new Property("occurrence[x]", "dateTime|Period|string|Age|Range|Timing", "Estimated or actual date, date-time, period, or age when the procedure did occur or is occurring. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured.", 0, 1, occurrence); 2136 case 1687874001: /*occurrence*/ return new Property("occurrence[x]", "dateTime|Period|string|Age|Range|Timing", "Estimated or actual date, date-time, period, or age when the procedure did occur or is occurring. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured.", 0, 1, occurrence); 2137 case -298443636: /*occurrenceDateTime*/ return new Property("occurrence[x]", "dateTime", "Estimated or actual date, date-time, period, or age when the procedure did occur or is occurring. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured.", 0, 1, occurrence); 2138 case 1397156594: /*occurrencePeriod*/ return new Property("occurrence[x]", "Period", "Estimated or actual date, date-time, period, or age when the procedure did occur or is occurring. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured.", 0, 1, occurrence); 2139 case 1496896834: /*occurrenceString*/ return new Property("occurrence[x]", "string", "Estimated or actual date, date-time, period, or age when the procedure did occur or is occurring. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured.", 0, 1, occurrence); 2140 case -2022672018: /*occurrenceAge*/ return new Property("occurrence[x]", "Age", "Estimated or actual date, date-time, period, or age when the procedure did occur or is occurring. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured.", 0, 1, occurrence); 2141 case 1847908844: /*occurrenceRange*/ return new Property("occurrence[x]", "Range", "Estimated or actual date, date-time, period, or age when the procedure did occur or is occurring. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured.", 0, 1, occurrence); 2142 case 1515218299: /*occurrenceTiming*/ return new Property("occurrence[x]", "Timing", "Estimated or actual date, date-time, period, or age when the procedure did occur or is occurring. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured.", 0, 1, occurrence); 2143 case -799233872: /*recorded*/ return new Property("recorded", "dateTime", "The date the occurrence of the procedure was first captured in the record regardless of Procedure.status (potentially after the occurrence of the event).", 0, 1, recorded); 2144 case -799233858: /*recorder*/ return new Property("recorder", "Reference(Patient|RelatedPerson|Practitioner|PractitionerRole)", "Individual who recorded the record and takes responsibility for its content.", 0, 1, recorder); 2145 case -241505587: /*reported[x]*/ return new Property("reported[x]", "boolean|Reference(Patient|RelatedPerson|Practitioner|PractitionerRole|Organization)", "Indicates if this record was captured as a secondary 'reported' record rather than as an original primary source-of-truth record. It may also indicate the source of the report.", 0, 1, reported); 2146 case -427039533: /*reported*/ return new Property("reported[x]", "boolean|Reference(Patient|RelatedPerson|Practitioner|PractitionerRole|Organization)", "Indicates if this record was captured as a secondary 'reported' record rather than as an original primary source-of-truth record. It may also indicate the source of the report.", 0, 1, reported); 2147 case 1219992533: /*reportedBoolean*/ return new Property("reported[x]", "boolean", "Indicates if this record was captured as a secondary 'reported' record rather than as an original primary source-of-truth record. It may also indicate the source of the report.", 0, 1, reported); 2148 case 1198143416: /*reportedReference*/ return new Property("reported[x]", "Reference(Patient|RelatedPerson|Practitioner|PractitionerRole|Organization)", "Indicates if this record was captured as a secondary 'reported' record rather than as an original primary source-of-truth record. It may also indicate the source of the report.", 0, 1, reported); 2149 case 481140686: /*performer*/ return new Property("performer", "", "Limited to \"real\" people rather than equipment.", 0, java.lang.Integer.MAX_VALUE, performer); 2150 case 1901043637: /*location*/ return new Property("location", "Reference(Location)", "The location where the procedure actually happened. E.g. a newborn at home, a tracheostomy at a restaurant.", 0, 1, location); 2151 case -934964668: /*reason*/ return new Property("reason", "CodeableReference(Condition|Observation|Procedure|DiagnosticReport|DocumentReference)", "The coded reason or reference why the procedure was performed. This may be a coded entity of some type, or may simply be present as text, or may be a reference to one of several resources that justify the procedure.", 0, java.lang.Integer.MAX_VALUE, reason); 2152 case 1702620169: /*bodySite*/ return new Property("bodySite", "CodeableConcept", "Detailed and structured anatomical location information. Multiple locations are allowed - e.g. multiple punch biopsies of a lesion.", 0, java.lang.Integer.MAX_VALUE, bodySite); 2153 case -1106507950: /*outcome*/ return new Property("outcome", "CodeableConcept", "The outcome of the procedure - did it resolve the reasons for the procedure being performed?", 0, 1, outcome); 2154 case -934521548: /*report*/ return new Property("report", "Reference(DiagnosticReport|DocumentReference|Composition)", "This could be a histology result, pathology report, surgical report, etc.", 0, java.lang.Integer.MAX_VALUE, report); 2155 case -1644401602: /*complication*/ return new Property("complication", "CodeableConcept", "Any complications that occurred during the procedure, or in the immediate post-performance period. These are generally tracked separately from the notes, which will typically describe the procedure itself rather than any 'post procedure' issues.", 0, java.lang.Integer.MAX_VALUE, complication); 2156 case -1685272017: /*complicationDetail*/ return new Property("complicationDetail", "Reference(Condition)", "Any complications that occurred during the procedure, or in the immediate post-performance period.", 0, java.lang.Integer.MAX_VALUE, complicationDetail); 2157 case 301801004: /*followUp*/ return new Property("followUp", "CodeableConcept", "If the procedure required specific follow up - e.g. removal of sutures. The follow up may be represented as a simple note or could potentially be more complex, in which case the CarePlan resource can be used.", 0, java.lang.Integer.MAX_VALUE, followUp); 2158 case 3387378: /*note*/ return new Property("note", "Annotation", "Any other notes and comments about the procedure.", 0, java.lang.Integer.MAX_VALUE, note); 2159 case -1129235173: /*focalDevice*/ return new Property("focalDevice", "", "A device that is implanted, removed or otherwise manipulated (calibration, battery replacement, fitting a prosthesis, attaching a wound-vac, etc.) as a focal portion of the Procedure.", 0, java.lang.Integer.MAX_VALUE, focalDevice); 2160 case 3599293: /*used*/ return new Property("used", "CodeableReference(Device|Medication|Substance|BiologicallyDerivedProduct)", "Identifies medications, devices and any other substance used as part of the procedure.", 0, java.lang.Integer.MAX_VALUE, used); 2161 case 1922406657: /*supportingInfo*/ return new Property("supportingInfo", "Reference(Any)", "Other resources from the patient record that may be relevant to the procedure. The information from these resources was either used to create the instance or is provided to help with its interpretation. This extension should not be used if more specific inline elements or extensions are available.", 0, java.lang.Integer.MAX_VALUE, supportingInfo); 2162 default: return super.getNamedProperty(_hash, _name, _checkValid); 2163 } 2164 2165 } 2166 2167 @Override 2168 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2169 switch (hash) { 2170 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 2171 case 8911915: /*instantiatesCanonical*/ return this.instantiatesCanonical == null ? new Base[0] : this.instantiatesCanonical.toArray(new Base[this.instantiatesCanonical.size()]); // CanonicalType 2172 case -1926393373: /*instantiatesUri*/ return this.instantiatesUri == null ? new Base[0] : this.instantiatesUri.toArray(new Base[this.instantiatesUri.size()]); // UriType 2173 case -332612366: /*basedOn*/ return this.basedOn == null ? new Base[0] : this.basedOn.toArray(new Base[this.basedOn.size()]); // Reference 2174 case -995410646: /*partOf*/ return this.partOf == null ? new Base[0] : this.partOf.toArray(new Base[this.partOf.size()]); // Reference 2175 case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<EventStatus> 2176 case 2051346646: /*statusReason*/ return this.statusReason == null ? new Base[0] : new Base[] {this.statusReason}; // CodeableConcept 2177 case 50511102: /*category*/ return this.category == null ? new Base[0] : this.category.toArray(new Base[this.category.size()]); // CodeableConcept 2178 case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept 2179 case -1867885268: /*subject*/ return this.subject == null ? new Base[0] : new Base[] {this.subject}; // Reference 2180 case 1524132147: /*encounter*/ return this.encounter == null ? new Base[0] : new Base[] {this.encounter}; // Reference 2181 case 1687874001: /*occurrence*/ return this.occurrence == null ? new Base[0] : new Base[] {this.occurrence}; // DataType 2182 case -799233872: /*recorded*/ return this.recorded == null ? new Base[0] : new Base[] {this.recorded}; // DateTimeType 2183 case -799233858: /*recorder*/ return this.recorder == null ? new Base[0] : new Base[] {this.recorder}; // Reference 2184 case -427039533: /*reported*/ return this.reported == null ? new Base[0] : new Base[] {this.reported}; // DataType 2185 case 481140686: /*performer*/ return this.performer == null ? new Base[0] : this.performer.toArray(new Base[this.performer.size()]); // ProcedurePerformerComponent 2186 case 1901043637: /*location*/ return this.location == null ? new Base[0] : new Base[] {this.location}; // Reference 2187 case -934964668: /*reason*/ return this.reason == null ? new Base[0] : this.reason.toArray(new Base[this.reason.size()]); // CodeableReference 2188 case 1702620169: /*bodySite*/ return this.bodySite == null ? new Base[0] : this.bodySite.toArray(new Base[this.bodySite.size()]); // CodeableConcept 2189 case -1106507950: /*outcome*/ return this.outcome == null ? new Base[0] : new Base[] {this.outcome}; // CodeableConcept 2190 case -934521548: /*report*/ return this.report == null ? new Base[0] : this.report.toArray(new Base[this.report.size()]); // Reference 2191 case -1644401602: /*complication*/ return this.complication == null ? new Base[0] : this.complication.toArray(new Base[this.complication.size()]); // CodeableConcept 2192 case -1685272017: /*complicationDetail*/ return this.complicationDetail == null ? new Base[0] : this.complicationDetail.toArray(new Base[this.complicationDetail.size()]); // Reference 2193 case 301801004: /*followUp*/ return this.followUp == null ? new Base[0] : this.followUp.toArray(new Base[this.followUp.size()]); // CodeableConcept 2194 case 3387378: /*note*/ return this.note == null ? new Base[0] : this.note.toArray(new Base[this.note.size()]); // Annotation 2195 case -1129235173: /*focalDevice*/ return this.focalDevice == null ? new Base[0] : this.focalDevice.toArray(new Base[this.focalDevice.size()]); // ProcedureFocalDeviceComponent 2196 case 3599293: /*used*/ return this.used == null ? new Base[0] : this.used.toArray(new Base[this.used.size()]); // CodeableReference 2197 case 1922406657: /*supportingInfo*/ return this.supportingInfo == null ? new Base[0] : this.supportingInfo.toArray(new Base[this.supportingInfo.size()]); // Reference 2198 default: return super.getProperty(hash, name, checkValid); 2199 } 2200 2201 } 2202 2203 @Override 2204 public Base setProperty(int hash, String name, Base value) throws FHIRException { 2205 switch (hash) { 2206 case -1618432855: // identifier 2207 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier 2208 return value; 2209 case 8911915: // instantiatesCanonical 2210 this.getInstantiatesCanonical().add(TypeConvertor.castToCanonical(value)); // CanonicalType 2211 return value; 2212 case -1926393373: // instantiatesUri 2213 this.getInstantiatesUri().add(TypeConvertor.castToUri(value)); // UriType 2214 return value; 2215 case -332612366: // basedOn 2216 this.getBasedOn().add(TypeConvertor.castToReference(value)); // Reference 2217 return value; 2218 case -995410646: // partOf 2219 this.getPartOf().add(TypeConvertor.castToReference(value)); // Reference 2220 return value; 2221 case -892481550: // status 2222 value = new EventStatusEnumFactory().fromType(TypeConvertor.castToCode(value)); 2223 this.status = (Enumeration) value; // Enumeration<EventStatus> 2224 return value; 2225 case 2051346646: // statusReason 2226 this.statusReason = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 2227 return value; 2228 case 50511102: // category 2229 this.getCategory().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 2230 return value; 2231 case 3059181: // code 2232 this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 2233 return value; 2234 case -1867885268: // subject 2235 this.subject = TypeConvertor.castToReference(value); // Reference 2236 return value; 2237 case 1524132147: // encounter 2238 this.encounter = TypeConvertor.castToReference(value); // Reference 2239 return value; 2240 case 1687874001: // occurrence 2241 this.occurrence = TypeConvertor.castToType(value); // DataType 2242 return value; 2243 case -799233872: // recorded 2244 this.recorded = TypeConvertor.castToDateTime(value); // DateTimeType 2245 return value; 2246 case -799233858: // recorder 2247 this.recorder = TypeConvertor.castToReference(value); // Reference 2248 return value; 2249 case -427039533: // reported 2250 this.reported = TypeConvertor.castToType(value); // DataType 2251 return value; 2252 case 481140686: // performer 2253 this.getPerformer().add((ProcedurePerformerComponent) value); // ProcedurePerformerComponent 2254 return value; 2255 case 1901043637: // location 2256 this.location = TypeConvertor.castToReference(value); // Reference 2257 return value; 2258 case -934964668: // reason 2259 this.getReason().add(TypeConvertor.castToCodeableReference(value)); // CodeableReference 2260 return value; 2261 case 1702620169: // bodySite 2262 this.getBodySite().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 2263 return value; 2264 case -1106507950: // outcome 2265 this.outcome = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 2266 return value; 2267 case -934521548: // report 2268 this.getReport().add(TypeConvertor.castToReference(value)); // Reference 2269 return value; 2270 case -1644401602: // complication 2271 this.getComplication().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 2272 return value; 2273 case -1685272017: // complicationDetail 2274 this.getComplicationDetail().add(TypeConvertor.castToReference(value)); // Reference 2275 return value; 2276 case 301801004: // followUp 2277 this.getFollowUp().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 2278 return value; 2279 case 3387378: // note 2280 this.getNote().add(TypeConvertor.castToAnnotation(value)); // Annotation 2281 return value; 2282 case -1129235173: // focalDevice 2283 this.getFocalDevice().add((ProcedureFocalDeviceComponent) value); // ProcedureFocalDeviceComponent 2284 return value; 2285 case 3599293: // used 2286 this.getUsed().add(TypeConvertor.castToCodeableReference(value)); // CodeableReference 2287 return value; 2288 case 1922406657: // supportingInfo 2289 this.getSupportingInfo().add(TypeConvertor.castToReference(value)); // Reference 2290 return value; 2291 default: return super.setProperty(hash, name, value); 2292 } 2293 2294 } 2295 2296 @Override 2297 public Base setProperty(String name, Base value) throws FHIRException { 2298 if (name.equals("identifier")) { 2299 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); 2300 } else if (name.equals("instantiatesCanonical")) { 2301 this.getInstantiatesCanonical().add(TypeConvertor.castToCanonical(value)); 2302 } else if (name.equals("instantiatesUri")) { 2303 this.getInstantiatesUri().add(TypeConvertor.castToUri(value)); 2304 } else if (name.equals("basedOn")) { 2305 this.getBasedOn().add(TypeConvertor.castToReference(value)); 2306 } else if (name.equals("partOf")) { 2307 this.getPartOf().add(TypeConvertor.castToReference(value)); 2308 } else if (name.equals("status")) { 2309 value = new EventStatusEnumFactory().fromType(TypeConvertor.castToCode(value)); 2310 this.status = (Enumeration) value; // Enumeration<EventStatus> 2311 } else if (name.equals("statusReason")) { 2312 this.statusReason = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 2313 } else if (name.equals("category")) { 2314 this.getCategory().add(TypeConvertor.castToCodeableConcept(value)); 2315 } else if (name.equals("code")) { 2316 this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 2317 } else if (name.equals("subject")) { 2318 this.subject = TypeConvertor.castToReference(value); // Reference 2319 } else if (name.equals("encounter")) { 2320 this.encounter = TypeConvertor.castToReference(value); // Reference 2321 } else if (name.equals("occurrence[x]")) { 2322 this.occurrence = TypeConvertor.castToType(value); // DataType 2323 } else if (name.equals("recorded")) { 2324 this.recorded = TypeConvertor.castToDateTime(value); // DateTimeType 2325 } else if (name.equals("recorder")) { 2326 this.recorder = TypeConvertor.castToReference(value); // Reference 2327 } else if (name.equals("reported[x]")) { 2328 this.reported = TypeConvertor.castToType(value); // DataType 2329 } else if (name.equals("performer")) { 2330 this.getPerformer().add((ProcedurePerformerComponent) value); 2331 } else if (name.equals("location")) { 2332 this.location = TypeConvertor.castToReference(value); // Reference 2333 } else if (name.equals("reason")) { 2334 this.getReason().add(TypeConvertor.castToCodeableReference(value)); 2335 } else if (name.equals("bodySite")) { 2336 this.getBodySite().add(TypeConvertor.castToCodeableConcept(value)); 2337 } else if (name.equals("outcome")) { 2338 this.outcome = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 2339 } else if (name.equals("report")) { 2340 this.getReport().add(TypeConvertor.castToReference(value)); 2341 } else if (name.equals("complication")) { 2342 this.getComplication().add(TypeConvertor.castToCodeableConcept(value)); 2343 } else if (name.equals("complicationDetail")) { 2344 this.getComplicationDetail().add(TypeConvertor.castToReference(value)); 2345 } else if (name.equals("followUp")) { 2346 this.getFollowUp().add(TypeConvertor.castToCodeableConcept(value)); 2347 } else if (name.equals("note")) { 2348 this.getNote().add(TypeConvertor.castToAnnotation(value)); 2349 } else if (name.equals("focalDevice")) { 2350 this.getFocalDevice().add((ProcedureFocalDeviceComponent) value); 2351 } else if (name.equals("used")) { 2352 this.getUsed().add(TypeConvertor.castToCodeableReference(value)); 2353 } else if (name.equals("supportingInfo")) { 2354 this.getSupportingInfo().add(TypeConvertor.castToReference(value)); 2355 } else 2356 return super.setProperty(name, value); 2357 return value; 2358 } 2359 2360 @Override 2361 public Base makeProperty(int hash, String name) throws FHIRException { 2362 switch (hash) { 2363 case -1618432855: return addIdentifier(); 2364 case 8911915: return addInstantiatesCanonicalElement(); 2365 case -1926393373: return addInstantiatesUriElement(); 2366 case -332612366: return addBasedOn(); 2367 case -995410646: return addPartOf(); 2368 case -892481550: return getStatusElement(); 2369 case 2051346646: return getStatusReason(); 2370 case 50511102: return addCategory(); 2371 case 3059181: return getCode(); 2372 case -1867885268: return getSubject(); 2373 case 1524132147: return getEncounter(); 2374 case -2022646513: return getOccurrence(); 2375 case 1687874001: return getOccurrence(); 2376 case -799233872: return getRecordedElement(); 2377 case -799233858: return getRecorder(); 2378 case -241505587: return getReported(); 2379 case -427039533: return getReported(); 2380 case 481140686: return addPerformer(); 2381 case 1901043637: return getLocation(); 2382 case -934964668: return addReason(); 2383 case 1702620169: return addBodySite(); 2384 case -1106507950: return getOutcome(); 2385 case -934521548: return addReport(); 2386 case -1644401602: return addComplication(); 2387 case -1685272017: return addComplicationDetail(); 2388 case 301801004: return addFollowUp(); 2389 case 3387378: return addNote(); 2390 case -1129235173: return addFocalDevice(); 2391 case 3599293: return addUsed(); 2392 case 1922406657: return addSupportingInfo(); 2393 default: return super.makeProperty(hash, name); 2394 } 2395 2396 } 2397 2398 @Override 2399 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2400 switch (hash) { 2401 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 2402 case 8911915: /*instantiatesCanonical*/ return new String[] {"canonical"}; 2403 case -1926393373: /*instantiatesUri*/ return new String[] {"uri"}; 2404 case -332612366: /*basedOn*/ return new String[] {"Reference"}; 2405 case -995410646: /*partOf*/ return new String[] {"Reference"}; 2406 case -892481550: /*status*/ return new String[] {"code"}; 2407 case 2051346646: /*statusReason*/ return new String[] {"CodeableConcept"}; 2408 case 50511102: /*category*/ return new String[] {"CodeableConcept"}; 2409 case 3059181: /*code*/ return new String[] {"CodeableConcept"}; 2410 case -1867885268: /*subject*/ return new String[] {"Reference"}; 2411 case 1524132147: /*encounter*/ return new String[] {"Reference"}; 2412 case 1687874001: /*occurrence*/ return new String[] {"dateTime", "Period", "string", "Age", "Range", "Timing"}; 2413 case -799233872: /*recorded*/ return new String[] {"dateTime"}; 2414 case -799233858: /*recorder*/ return new String[] {"Reference"}; 2415 case -427039533: /*reported*/ return new String[] {"boolean", "Reference"}; 2416 case 481140686: /*performer*/ return new String[] {}; 2417 case 1901043637: /*location*/ return new String[] {"Reference"}; 2418 case -934964668: /*reason*/ return new String[] {"CodeableReference"}; 2419 case 1702620169: /*bodySite*/ return new String[] {"CodeableConcept"}; 2420 case -1106507950: /*outcome*/ return new String[] {"CodeableConcept"}; 2421 case -934521548: /*report*/ return new String[] {"Reference"}; 2422 case -1644401602: /*complication*/ return new String[] {"CodeableConcept"}; 2423 case -1685272017: /*complicationDetail*/ return new String[] {"Reference"}; 2424 case 301801004: /*followUp*/ return new String[] {"CodeableConcept"}; 2425 case 3387378: /*note*/ return new String[] {"Annotation"}; 2426 case -1129235173: /*focalDevice*/ return new String[] {}; 2427 case 3599293: /*used*/ return new String[] {"CodeableReference"}; 2428 case 1922406657: /*supportingInfo*/ return new String[] {"Reference"}; 2429 default: return super.getTypesForProperty(hash, name); 2430 } 2431 2432 } 2433 2434 @Override 2435 public Base addChild(String name) throws FHIRException { 2436 if (name.equals("identifier")) { 2437 return addIdentifier(); 2438 } 2439 else if (name.equals("instantiatesCanonical")) { 2440 throw new FHIRException("Cannot call addChild on a primitive type Procedure.instantiatesCanonical"); 2441 } 2442 else if (name.equals("instantiatesUri")) { 2443 throw new FHIRException("Cannot call addChild on a primitive type Procedure.instantiatesUri"); 2444 } 2445 else if (name.equals("basedOn")) { 2446 return addBasedOn(); 2447 } 2448 else if (name.equals("partOf")) { 2449 return addPartOf(); 2450 } 2451 else if (name.equals("status")) { 2452 throw new FHIRException("Cannot call addChild on a primitive type Procedure.status"); 2453 } 2454 else if (name.equals("statusReason")) { 2455 this.statusReason = new CodeableConcept(); 2456 return this.statusReason; 2457 } 2458 else if (name.equals("category")) { 2459 return addCategory(); 2460 } 2461 else if (name.equals("code")) { 2462 this.code = new CodeableConcept(); 2463 return this.code; 2464 } 2465 else if (name.equals("subject")) { 2466 this.subject = new Reference(); 2467 return this.subject; 2468 } 2469 else if (name.equals("encounter")) { 2470 this.encounter = new Reference(); 2471 return this.encounter; 2472 } 2473 else if (name.equals("occurrenceDateTime")) { 2474 this.occurrence = new DateTimeType(); 2475 return this.occurrence; 2476 } 2477 else if (name.equals("occurrencePeriod")) { 2478 this.occurrence = new Period(); 2479 return this.occurrence; 2480 } 2481 else if (name.equals("occurrenceString")) { 2482 this.occurrence = new StringType(); 2483 return this.occurrence; 2484 } 2485 else if (name.equals("occurrenceAge")) { 2486 this.occurrence = new Age(); 2487 return this.occurrence; 2488 } 2489 else if (name.equals("occurrenceRange")) { 2490 this.occurrence = new Range(); 2491 return this.occurrence; 2492 } 2493 else if (name.equals("occurrenceTiming")) { 2494 this.occurrence = new Timing(); 2495 return this.occurrence; 2496 } 2497 else if (name.equals("recorded")) { 2498 throw new FHIRException("Cannot call addChild on a primitive type Procedure.recorded"); 2499 } 2500 else if (name.equals("recorder")) { 2501 this.recorder = new Reference(); 2502 return this.recorder; 2503 } 2504 else if (name.equals("reportedBoolean")) { 2505 this.reported = new BooleanType(); 2506 return this.reported; 2507 } 2508 else if (name.equals("reportedReference")) { 2509 this.reported = new Reference(); 2510 return this.reported; 2511 } 2512 else if (name.equals("performer")) { 2513 return addPerformer(); 2514 } 2515 else if (name.equals("location")) { 2516 this.location = new Reference(); 2517 return this.location; 2518 } 2519 else if (name.equals("reason")) { 2520 return addReason(); 2521 } 2522 else if (name.equals("bodySite")) { 2523 return addBodySite(); 2524 } 2525 else if (name.equals("outcome")) { 2526 this.outcome = new CodeableConcept(); 2527 return this.outcome; 2528 } 2529 else if (name.equals("report")) { 2530 return addReport(); 2531 } 2532 else if (name.equals("complication")) { 2533 return addComplication(); 2534 } 2535 else if (name.equals("complicationDetail")) { 2536 return addComplicationDetail(); 2537 } 2538 else if (name.equals("followUp")) { 2539 return addFollowUp(); 2540 } 2541 else if (name.equals("note")) { 2542 return addNote(); 2543 } 2544 else if (name.equals("focalDevice")) { 2545 return addFocalDevice(); 2546 } 2547 else if (name.equals("used")) { 2548 return addUsed(); 2549 } 2550 else if (name.equals("supportingInfo")) { 2551 return addSupportingInfo(); 2552 } 2553 else 2554 return super.addChild(name); 2555 } 2556 2557 public String fhirType() { 2558 return "Procedure"; 2559 2560 } 2561 2562 public Procedure copy() { 2563 Procedure dst = new Procedure(); 2564 copyValues(dst); 2565 return dst; 2566 } 2567 2568 public void copyValues(Procedure dst) { 2569 super.copyValues(dst); 2570 if (identifier != null) { 2571 dst.identifier = new ArrayList<Identifier>(); 2572 for (Identifier i : identifier) 2573 dst.identifier.add(i.copy()); 2574 }; 2575 if (instantiatesCanonical != null) { 2576 dst.instantiatesCanonical = new ArrayList<CanonicalType>(); 2577 for (CanonicalType i : instantiatesCanonical) 2578 dst.instantiatesCanonical.add(i.copy()); 2579 }; 2580 if (instantiatesUri != null) { 2581 dst.instantiatesUri = new ArrayList<UriType>(); 2582 for (UriType i : instantiatesUri) 2583 dst.instantiatesUri.add(i.copy()); 2584 }; 2585 if (basedOn != null) { 2586 dst.basedOn = new ArrayList<Reference>(); 2587 for (Reference i : basedOn) 2588 dst.basedOn.add(i.copy()); 2589 }; 2590 if (partOf != null) { 2591 dst.partOf = new ArrayList<Reference>(); 2592 for (Reference i : partOf) 2593 dst.partOf.add(i.copy()); 2594 }; 2595 dst.status = status == null ? null : status.copy(); 2596 dst.statusReason = statusReason == null ? null : statusReason.copy(); 2597 if (category != null) { 2598 dst.category = new ArrayList<CodeableConcept>(); 2599 for (CodeableConcept i : category) 2600 dst.category.add(i.copy()); 2601 }; 2602 dst.code = code == null ? null : code.copy(); 2603 dst.subject = subject == null ? null : subject.copy(); 2604 dst.encounter = encounter == null ? null : encounter.copy(); 2605 dst.occurrence = occurrence == null ? null : occurrence.copy(); 2606 dst.recorded = recorded == null ? null : recorded.copy(); 2607 dst.recorder = recorder == null ? null : recorder.copy(); 2608 dst.reported = reported == null ? null : reported.copy(); 2609 if (performer != null) { 2610 dst.performer = new ArrayList<ProcedurePerformerComponent>(); 2611 for (ProcedurePerformerComponent i : performer) 2612 dst.performer.add(i.copy()); 2613 }; 2614 dst.location = location == null ? null : location.copy(); 2615 if (reason != null) { 2616 dst.reason = new ArrayList<CodeableReference>(); 2617 for (CodeableReference i : reason) 2618 dst.reason.add(i.copy()); 2619 }; 2620 if (bodySite != null) { 2621 dst.bodySite = new ArrayList<CodeableConcept>(); 2622 for (CodeableConcept i : bodySite) 2623 dst.bodySite.add(i.copy()); 2624 }; 2625 dst.outcome = outcome == null ? null : outcome.copy(); 2626 if (report != null) { 2627 dst.report = new ArrayList<Reference>(); 2628 for (Reference i : report) 2629 dst.report.add(i.copy()); 2630 }; 2631 if (complication != null) { 2632 dst.complication = new ArrayList<CodeableConcept>(); 2633 for (CodeableConcept i : complication) 2634 dst.complication.add(i.copy()); 2635 }; 2636 if (complicationDetail != null) { 2637 dst.complicationDetail = new ArrayList<Reference>(); 2638 for (Reference i : complicationDetail) 2639 dst.complicationDetail.add(i.copy()); 2640 }; 2641 if (followUp != null) { 2642 dst.followUp = new ArrayList<CodeableConcept>(); 2643 for (CodeableConcept i : followUp) 2644 dst.followUp.add(i.copy()); 2645 }; 2646 if (note != null) { 2647 dst.note = new ArrayList<Annotation>(); 2648 for (Annotation i : note) 2649 dst.note.add(i.copy()); 2650 }; 2651 if (focalDevice != null) { 2652 dst.focalDevice = new ArrayList<ProcedureFocalDeviceComponent>(); 2653 for (ProcedureFocalDeviceComponent i : focalDevice) 2654 dst.focalDevice.add(i.copy()); 2655 }; 2656 if (used != null) { 2657 dst.used = new ArrayList<CodeableReference>(); 2658 for (CodeableReference i : used) 2659 dst.used.add(i.copy()); 2660 }; 2661 if (supportingInfo != null) { 2662 dst.supportingInfo = new ArrayList<Reference>(); 2663 for (Reference i : supportingInfo) 2664 dst.supportingInfo.add(i.copy()); 2665 }; 2666 } 2667 2668 protected Procedure typedCopy() { 2669 return copy(); 2670 } 2671 2672 @Override 2673 public boolean equalsDeep(Base other_) { 2674 if (!super.equalsDeep(other_)) 2675 return false; 2676 if (!(other_ instanceof Procedure)) 2677 return false; 2678 Procedure o = (Procedure) other_; 2679 return compareDeep(identifier, o.identifier, true) && compareDeep(instantiatesCanonical, o.instantiatesCanonical, true) 2680 && compareDeep(instantiatesUri, o.instantiatesUri, true) && compareDeep(basedOn, o.basedOn, true) 2681 && compareDeep(partOf, o.partOf, true) && compareDeep(status, o.status, true) && compareDeep(statusReason, o.statusReason, true) 2682 && compareDeep(category, o.category, true) && compareDeep(code, o.code, true) && compareDeep(subject, o.subject, true) 2683 && compareDeep(encounter, o.encounter, true) && compareDeep(occurrence, o.occurrence, true) && compareDeep(recorded, o.recorded, true) 2684 && compareDeep(recorder, o.recorder, true) && compareDeep(reported, o.reported, true) && compareDeep(performer, o.performer, true) 2685 && compareDeep(location, o.location, true) && compareDeep(reason, o.reason, true) && compareDeep(bodySite, o.bodySite, true) 2686 && compareDeep(outcome, o.outcome, true) && compareDeep(report, o.report, true) && compareDeep(complication, o.complication, true) 2687 && compareDeep(complicationDetail, o.complicationDetail, true) && compareDeep(followUp, o.followUp, true) 2688 && compareDeep(note, o.note, true) && compareDeep(focalDevice, o.focalDevice, true) && compareDeep(used, o.used, true) 2689 && compareDeep(supportingInfo, o.supportingInfo, true); 2690 } 2691 2692 @Override 2693 public boolean equalsShallow(Base other_) { 2694 if (!super.equalsShallow(other_)) 2695 return false; 2696 if (!(other_ instanceof Procedure)) 2697 return false; 2698 Procedure o = (Procedure) other_; 2699 return compareValues(instantiatesCanonical, o.instantiatesCanonical, true) && compareValues(instantiatesUri, o.instantiatesUri, true) 2700 && compareValues(status, o.status, true) && compareValues(recorded, o.recorded, true); 2701 } 2702 2703 public boolean isEmpty() { 2704 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, instantiatesCanonical 2705 , instantiatesUri, basedOn, partOf, status, statusReason, category, code, subject 2706 , encounter, occurrence, recorded, recorder, reported, performer, location, reason 2707 , bodySite, outcome, report, complication, complicationDetail, followUp, note 2708 , focalDevice, used, supportingInfo); 2709 } 2710 2711 @Override 2712 public ResourceType getResourceType() { 2713 return ResourceType.Procedure; 2714 } 2715 2716 /** 2717 * Search parameter: <b>based-on</b> 2718 * <p> 2719 * Description: <b>A request for this procedure</b><br> 2720 * Type: <b>reference</b><br> 2721 * Path: <b>Procedure.basedOn</b><br> 2722 * </p> 2723 */ 2724 @SearchParamDefinition(name="based-on", path="Procedure.basedOn", description="A request for this procedure", type="reference", target={CarePlan.class, ServiceRequest.class } ) 2725 public static final String SP_BASED_ON = "based-on"; 2726 /** 2727 * <b>Fluent Client</b> search parameter constant for <b>based-on</b> 2728 * <p> 2729 * Description: <b>A request for this procedure</b><br> 2730 * Type: <b>reference</b><br> 2731 * Path: <b>Procedure.basedOn</b><br> 2732 * </p> 2733 */ 2734 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam BASED_ON = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_BASED_ON); 2735 2736/** 2737 * Constant for fluent queries to be used to add include statements. Specifies 2738 * the path value of "<b>Procedure:based-on</b>". 2739 */ 2740 public static final ca.uhn.fhir.model.api.Include INCLUDE_BASED_ON = new ca.uhn.fhir.model.api.Include("Procedure:based-on").toLocked(); 2741 2742 /** 2743 * Search parameter: <b>category</b> 2744 * <p> 2745 * Description: <b>Classification of the procedure</b><br> 2746 * Type: <b>token</b><br> 2747 * Path: <b>Procedure.category</b><br> 2748 * </p> 2749 */ 2750 @SearchParamDefinition(name="category", path="Procedure.category", description="Classification of the procedure", type="token" ) 2751 public static final String SP_CATEGORY = "category"; 2752 /** 2753 * <b>Fluent Client</b> search parameter constant for <b>category</b> 2754 * <p> 2755 * Description: <b>Classification of the procedure</b><br> 2756 * Type: <b>token</b><br> 2757 * Path: <b>Procedure.category</b><br> 2758 * </p> 2759 */ 2760 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CATEGORY = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CATEGORY); 2761 2762 /** 2763 * Search parameter: <b>instantiates-canonical</b> 2764 * <p> 2765 * Description: <b>Instantiates FHIR protocol or definition</b><br> 2766 * Type: <b>reference</b><br> 2767 * Path: <b>Procedure.instantiatesCanonical</b><br> 2768 * </p> 2769 */ 2770 @SearchParamDefinition(name="instantiates-canonical", path="Procedure.instantiatesCanonical", description="Instantiates FHIR protocol or definition", type="reference", target={ActivityDefinition.class, Measure.class, OperationDefinition.class, PlanDefinition.class, Questionnaire.class } ) 2771 public static final String SP_INSTANTIATES_CANONICAL = "instantiates-canonical"; 2772 /** 2773 * <b>Fluent Client</b> search parameter constant for <b>instantiates-canonical</b> 2774 * <p> 2775 * Description: <b>Instantiates FHIR protocol or definition</b><br> 2776 * Type: <b>reference</b><br> 2777 * Path: <b>Procedure.instantiatesCanonical</b><br> 2778 * </p> 2779 */ 2780 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam INSTANTIATES_CANONICAL = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_INSTANTIATES_CANONICAL); 2781 2782/** 2783 * Constant for fluent queries to be used to add include statements. Specifies 2784 * the path value of "<b>Procedure:instantiates-canonical</b>". 2785 */ 2786 public static final ca.uhn.fhir.model.api.Include INCLUDE_INSTANTIATES_CANONICAL = new ca.uhn.fhir.model.api.Include("Procedure:instantiates-canonical").toLocked(); 2787 2788 /** 2789 * Search parameter: <b>instantiates-uri</b> 2790 * <p> 2791 * Description: <b>Instantiates external protocol or definition</b><br> 2792 * Type: <b>uri</b><br> 2793 * Path: <b>Procedure.instantiatesUri</b><br> 2794 * </p> 2795 */ 2796 @SearchParamDefinition(name="instantiates-uri", path="Procedure.instantiatesUri", description="Instantiates external protocol or definition", type="uri" ) 2797 public static final String SP_INSTANTIATES_URI = "instantiates-uri"; 2798 /** 2799 * <b>Fluent Client</b> search parameter constant for <b>instantiates-uri</b> 2800 * <p> 2801 * Description: <b>Instantiates external protocol or definition</b><br> 2802 * Type: <b>uri</b><br> 2803 * Path: <b>Procedure.instantiatesUri</b><br> 2804 * </p> 2805 */ 2806 public static final ca.uhn.fhir.rest.gclient.UriClientParam INSTANTIATES_URI = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_INSTANTIATES_URI); 2807 2808 /** 2809 * Search parameter: <b>location</b> 2810 * <p> 2811 * Description: <b>Where the procedure happened</b><br> 2812 * Type: <b>reference</b><br> 2813 * Path: <b>Procedure.location</b><br> 2814 * </p> 2815 */ 2816 @SearchParamDefinition(name="location", path="Procedure.location", description="Where the procedure happened", type="reference", target={Location.class } ) 2817 public static final String SP_LOCATION = "location"; 2818 /** 2819 * <b>Fluent Client</b> search parameter constant for <b>location</b> 2820 * <p> 2821 * Description: <b>Where the procedure happened</b><br> 2822 * Type: <b>reference</b><br> 2823 * Path: <b>Procedure.location</b><br> 2824 * </p> 2825 */ 2826 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam LOCATION = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_LOCATION); 2827 2828/** 2829 * Constant for fluent queries to be used to add include statements. Specifies 2830 * the path value of "<b>Procedure:location</b>". 2831 */ 2832 public static final ca.uhn.fhir.model.api.Include INCLUDE_LOCATION = new ca.uhn.fhir.model.api.Include("Procedure:location").toLocked(); 2833 2834 /** 2835 * Search parameter: <b>part-of</b> 2836 * <p> 2837 * Description: <b>Part of referenced event</b><br> 2838 * Type: <b>reference</b><br> 2839 * Path: <b>Procedure.partOf</b><br> 2840 * </p> 2841 */ 2842 @SearchParamDefinition(name="part-of", path="Procedure.partOf", description="Part of referenced event", type="reference", target={MedicationAdministration.class, Observation.class, Procedure.class } ) 2843 public static final String SP_PART_OF = "part-of"; 2844 /** 2845 * <b>Fluent Client</b> search parameter constant for <b>part-of</b> 2846 * <p> 2847 * Description: <b>Part of referenced event</b><br> 2848 * Type: <b>reference</b><br> 2849 * Path: <b>Procedure.partOf</b><br> 2850 * </p> 2851 */ 2852 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PART_OF = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PART_OF); 2853 2854/** 2855 * Constant for fluent queries to be used to add include statements. Specifies 2856 * the path value of "<b>Procedure:part-of</b>". 2857 */ 2858 public static final ca.uhn.fhir.model.api.Include INCLUDE_PART_OF = new ca.uhn.fhir.model.api.Include("Procedure:part-of").toLocked(); 2859 2860 /** 2861 * Search parameter: <b>performer</b> 2862 * <p> 2863 * Description: <b>Who performed the procedure</b><br> 2864 * Type: <b>reference</b><br> 2865 * Path: <b>Procedure.performer.actor</b><br> 2866 * </p> 2867 */ 2868 @SearchParamDefinition(name="performer", path="Procedure.performer.actor", description="Who performed the procedure", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Patient"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Practitioner"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for RelatedPerson") }, target={CareTeam.class, Device.class, HealthcareService.class, Organization.class, Patient.class, Practitioner.class, PractitionerRole.class, RelatedPerson.class } ) 2869 public static final String SP_PERFORMER = "performer"; 2870 /** 2871 * <b>Fluent Client</b> search parameter constant for <b>performer</b> 2872 * <p> 2873 * Description: <b>Who performed the procedure</b><br> 2874 * Type: <b>reference</b><br> 2875 * Path: <b>Procedure.performer.actor</b><br> 2876 * </p> 2877 */ 2878 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PERFORMER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PERFORMER); 2879 2880/** 2881 * Constant for fluent queries to be used to add include statements. Specifies 2882 * the path value of "<b>Procedure:performer</b>". 2883 */ 2884 public static final ca.uhn.fhir.model.api.Include INCLUDE_PERFORMER = new ca.uhn.fhir.model.api.Include("Procedure:performer").toLocked(); 2885 2886 /** 2887 * Search parameter: <b>reason-code</b> 2888 * <p> 2889 * Description: <b>Reference to a concept (by class)</b><br> 2890 * Type: <b>token</b><br> 2891 * Path: <b>Procedure.reason.concept</b><br> 2892 * </p> 2893 */ 2894 @SearchParamDefinition(name="reason-code", path="Procedure.reason.concept", description="Reference to a concept (by class)", type="token" ) 2895 public static final String SP_REASON_CODE = "reason-code"; 2896 /** 2897 * <b>Fluent Client</b> search parameter constant for <b>reason-code</b> 2898 * <p> 2899 * Description: <b>Reference to a concept (by class)</b><br> 2900 * Type: <b>token</b><br> 2901 * Path: <b>Procedure.reason.concept</b><br> 2902 * </p> 2903 */ 2904 public static final ca.uhn.fhir.rest.gclient.TokenClientParam REASON_CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_REASON_CODE); 2905 2906 /** 2907 * Search parameter: <b>reason-reference</b> 2908 * <p> 2909 * Description: <b>Reference to a resource (by instance)</b><br> 2910 * Type: <b>reference</b><br> 2911 * Path: <b>Procedure.reason.reference</b><br> 2912 * </p> 2913 */ 2914 @SearchParamDefinition(name="reason-reference", path="Procedure.reason.reference", description="Reference to a resource (by instance)", type="reference" ) 2915 public static final String SP_REASON_REFERENCE = "reason-reference"; 2916 /** 2917 * <b>Fluent Client</b> search parameter constant for <b>reason-reference</b> 2918 * <p> 2919 * Description: <b>Reference to a resource (by instance)</b><br> 2920 * Type: <b>reference</b><br> 2921 * Path: <b>Procedure.reason.reference</b><br> 2922 * </p> 2923 */ 2924 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam REASON_REFERENCE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_REASON_REFERENCE); 2925 2926/** 2927 * Constant for fluent queries to be used to add include statements. Specifies 2928 * the path value of "<b>Procedure:reason-reference</b>". 2929 */ 2930 public static final ca.uhn.fhir.model.api.Include INCLUDE_REASON_REFERENCE = new ca.uhn.fhir.model.api.Include("Procedure:reason-reference").toLocked(); 2931 2932 /** 2933 * Search parameter: <b>report</b> 2934 * <p> 2935 * Description: <b>Any report resulting from the procedure</b><br> 2936 * Type: <b>reference</b><br> 2937 * Path: <b>Procedure.report</b><br> 2938 * </p> 2939 */ 2940 @SearchParamDefinition(name="report", path="Procedure.report", description="Any report resulting from the procedure", type="reference", target={Composition.class, DiagnosticReport.class, DocumentReference.class } ) 2941 public static final String SP_REPORT = "report"; 2942 /** 2943 * <b>Fluent Client</b> search parameter constant for <b>report</b> 2944 * <p> 2945 * Description: <b>Any report resulting from the procedure</b><br> 2946 * Type: <b>reference</b><br> 2947 * Path: <b>Procedure.report</b><br> 2948 * </p> 2949 */ 2950 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam REPORT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_REPORT); 2951 2952/** 2953 * Constant for fluent queries to be used to add include statements. Specifies 2954 * the path value of "<b>Procedure:report</b>". 2955 */ 2956 public static final ca.uhn.fhir.model.api.Include INCLUDE_REPORT = new ca.uhn.fhir.model.api.Include("Procedure:report").toLocked(); 2957 2958 /** 2959 * Search parameter: <b>status</b> 2960 * <p> 2961 * Description: <b>preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown</b><br> 2962 * Type: <b>token</b><br> 2963 * Path: <b>Procedure.status</b><br> 2964 * </p> 2965 */ 2966 @SearchParamDefinition(name="status", path="Procedure.status", description="preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown", type="token" ) 2967 public static final String SP_STATUS = "status"; 2968 /** 2969 * <b>Fluent Client</b> search parameter constant for <b>status</b> 2970 * <p> 2971 * Description: <b>preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown</b><br> 2972 * Type: <b>token</b><br> 2973 * Path: <b>Procedure.status</b><br> 2974 * </p> 2975 */ 2976 public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS); 2977 2978 /** 2979 * Search parameter: <b>subject</b> 2980 * <p> 2981 * Description: <b>Search by subject</b><br> 2982 * Type: <b>reference</b><br> 2983 * Path: <b>Procedure.subject</b><br> 2984 * </p> 2985 */ 2986 @SearchParamDefinition(name="subject", path="Procedure.subject", description="Search by subject", type="reference", target={Device.class, Group.class, Location.class, Organization.class, Patient.class, Practitioner.class } ) 2987 public static final String SP_SUBJECT = "subject"; 2988 /** 2989 * <b>Fluent Client</b> search parameter constant for <b>subject</b> 2990 * <p> 2991 * Description: <b>Search by subject</b><br> 2992 * Type: <b>reference</b><br> 2993 * Path: <b>Procedure.subject</b><br> 2994 * </p> 2995 */ 2996 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SUBJECT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SUBJECT); 2997 2998/** 2999 * Constant for fluent queries to be used to add include statements. Specifies 3000 * the path value of "<b>Procedure:subject</b>". 3001 */ 3002 public static final ca.uhn.fhir.model.api.Include INCLUDE_SUBJECT = new ca.uhn.fhir.model.api.Include("Procedure:subject").toLocked(); 3003 3004 /** 3005 * Search parameter: <b>code</b> 3006 * <p> 3007 * Description: <b>Multiple Resources: 3008 3009* [AllergyIntolerance](allergyintolerance.html): Code that identifies the allergy or intolerance 3010* [Condition](condition.html): Code for the condition 3011* [DeviceRequest](devicerequest.html): Code for what is being requested/ordered 3012* [DiagnosticReport](diagnosticreport.html): The code for the report, as opposed to codes for the atomic results, which are the names on the observation resource referred to from the result 3013* [FamilyMemberHistory](familymemberhistory.html): A search by a condition code 3014* [List](list.html): What the purpose of this list is 3015* [Medication](medication.html): Returns medications for a specific code 3016* [MedicationAdministration](medicationadministration.html): Return administrations of this medication code 3017* [MedicationDispense](medicationdispense.html): Returns dispenses of this medicine code 3018* [MedicationRequest](medicationrequest.html): Return prescriptions of this medication code 3019* [MedicationUsage](medicationusage.html): Return statements of this medication code 3020* [Observation](observation.html): The code of the observation type 3021* [Procedure](procedure.html): A code to identify a procedure 3022* [ServiceRequest](servicerequest.html): What is being requested/ordered 3023</b><br> 3024 * Type: <b>token</b><br> 3025 * Path: <b>AllergyIntolerance.code | AllergyIntolerance.reaction.substance | Condition.code | DeviceRequest.code.concept | DiagnosticReport.code | FamilyMemberHistory.condition.code | List.code | Medication.code | MedicationAdministration.medication.concept | MedicationDispense.medication.concept | MedicationRequest.medication.concept | MedicationUsage.medication.concept | Observation.code | Procedure.code | ServiceRequest.code</b><br> 3026 * </p> 3027 */ 3028 @SearchParamDefinition(name="code", path="AllergyIntolerance.code | AllergyIntolerance.reaction.substance | Condition.code | DeviceRequest.code.concept | DiagnosticReport.code | FamilyMemberHistory.condition.code | List.code | Medication.code | MedicationAdministration.medication.concept | MedicationDispense.medication.concept | MedicationRequest.medication.concept | MedicationUsage.medication.concept | Observation.code | Procedure.code | ServiceRequest.code", description="Multiple Resources: \r\n\r\n* [AllergyIntolerance](allergyintolerance.html): Code that identifies the allergy or intolerance\r\n* [Condition](condition.html): Code for the condition\r\n* [DeviceRequest](devicerequest.html): Code for what is being requested/ordered\r\n* [DiagnosticReport](diagnosticreport.html): The code for the report, as opposed to codes for the atomic results, which are the names on the observation resource referred to from the result\r\n* [FamilyMemberHistory](familymemberhistory.html): A search by a condition code\r\n* [List](list.html): What the purpose of this list is\r\n* [Medication](medication.html): Returns medications for a specific code\r\n* [MedicationAdministration](medicationadministration.html): Return administrations of this medication code\r\n* [MedicationDispense](medicationdispense.html): Returns dispenses of this medicine code\r\n* [MedicationRequest](medicationrequest.html): Return prescriptions of this medication code\r\n* [MedicationUsage](medicationusage.html): Return statements of this medication code\r\n* [Observation](observation.html): The code of the observation type\r\n* [Procedure](procedure.html): A code to identify a procedure\r\n* [ServiceRequest](servicerequest.html): What is being requested/ordered\r\n", type="token" ) 3029 public static final String SP_CODE = "code"; 3030 /** 3031 * <b>Fluent Client</b> search parameter constant for <b>code</b> 3032 * <p> 3033 * Description: <b>Multiple Resources: 3034 3035* [AllergyIntolerance](allergyintolerance.html): Code that identifies the allergy or intolerance 3036* [Condition](condition.html): Code for the condition 3037* [DeviceRequest](devicerequest.html): Code for what is being requested/ordered 3038* [DiagnosticReport](diagnosticreport.html): The code for the report, as opposed to codes for the atomic results, which are the names on the observation resource referred to from the result 3039* [FamilyMemberHistory](familymemberhistory.html): A search by a condition code 3040* [List](list.html): What the purpose of this list is 3041* [Medication](medication.html): Returns medications for a specific code 3042* [MedicationAdministration](medicationadministration.html): Return administrations of this medication code 3043* [MedicationDispense](medicationdispense.html): Returns dispenses of this medicine code 3044* [MedicationRequest](medicationrequest.html): Return prescriptions of this medication code 3045* [MedicationUsage](medicationusage.html): Return statements of this medication code 3046* [Observation](observation.html): The code of the observation type 3047* [Procedure](procedure.html): A code to identify a procedure 3048* [ServiceRequest](servicerequest.html): What is being requested/ordered 3049</b><br> 3050 * Type: <b>token</b><br> 3051 * Path: <b>AllergyIntolerance.code | AllergyIntolerance.reaction.substance | Condition.code | DeviceRequest.code.concept | DiagnosticReport.code | FamilyMemberHistory.condition.code | List.code | Medication.code | MedicationAdministration.medication.concept | MedicationDispense.medication.concept | MedicationRequest.medication.concept | MedicationUsage.medication.concept | Observation.code | Procedure.code | ServiceRequest.code</b><br> 3052 * </p> 3053 */ 3054 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CODE); 3055 3056 /** 3057 * Search parameter: <b>date</b> 3058 * <p> 3059 * Description: <b>Multiple Resources: 3060 3061* [AllergyIntolerance](allergyintolerance.html): Date first version of the resource instance was recorded 3062* [CarePlan](careplan.html): Time period plan covers 3063* [CareTeam](careteam.html): A date within the coverage time period. 3064* [ClinicalImpression](clinicalimpression.html): When the assessment was documented 3065* [Composition](composition.html): Composition editing time 3066* [Consent](consent.html): When consent was agreed to 3067* [DiagnosticReport](diagnosticreport.html): The clinically relevant time of the report 3068* [Encounter](encounter.html): A date within the actualPeriod the Encounter lasted 3069* [EpisodeOfCare](episodeofcare.html): The provided date search value falls within the episode of care's period 3070* [FamilyMemberHistory](familymemberhistory.html): When history was recorded or last updated 3071* [Flag](flag.html): Time period when flag is active 3072* [Immunization](immunization.html): Vaccination (non)-Administration Date 3073* [List](list.html): When the list was prepared 3074* [Observation](observation.html): Obtained date/time. If the obtained element is a period, a date that falls in the period 3075* [Procedure](procedure.html): When the procedure occurred or is occurring 3076* [RiskAssessment](riskassessment.html): When was assessment made? 3077* [SupplyRequest](supplyrequest.html): When the request was made 3078</b><br> 3079 * Type: <b>date</b><br> 3080 * Path: <b>AllergyIntolerance.recordedDate | CarePlan.period | ClinicalImpression.date | Composition.date | Consent.dateTime | DiagnosticReport.effective | Encounter.actualPeriod | EpisodeOfCare.period | FamilyMemberHistory.date | Flag.period | (Immunization.occurrence as dateTime) | List.date | Observation.effective | Procedure.occurrence | (RiskAssessment.occurrence as dateTime) | SupplyRequest.authoredOn</b><br> 3081 * </p> 3082 */ 3083 @SearchParamDefinition(name="date", path="AllergyIntolerance.recordedDate | CarePlan.period | ClinicalImpression.date | Composition.date | Consent.dateTime | DiagnosticReport.effective | Encounter.actualPeriod | EpisodeOfCare.period | FamilyMemberHistory.date | Flag.period | (Immunization.occurrence as dateTime) | List.date | Observation.effective | Procedure.occurrence | (RiskAssessment.occurrence as dateTime) | SupplyRequest.authoredOn", description="Multiple Resources: \r\n\r\n* [AllergyIntolerance](allergyintolerance.html): Date first version of the resource instance was recorded\r\n* [CarePlan](careplan.html): Time period plan covers\r\n* [CareTeam](careteam.html): A date within the coverage time period.\r\n* [ClinicalImpression](clinicalimpression.html): When the assessment was documented\r\n* [Composition](composition.html): Composition editing time\r\n* [Consent](consent.html): When consent was agreed to\r\n* [DiagnosticReport](diagnosticreport.html): The clinically relevant time of the report\r\n* [Encounter](encounter.html): A date within the actualPeriod the Encounter lasted\r\n* [EpisodeOfCare](episodeofcare.html): The provided date search value falls within the episode of care's period\r\n* [FamilyMemberHistory](familymemberhistory.html): When history was recorded or last updated\r\n* [Flag](flag.html): Time period when flag is active\r\n* [Immunization](immunization.html): Vaccination (non)-Administration Date\r\n* [List](list.html): When the list was prepared\r\n* [Observation](observation.html): Obtained date/time. If the obtained element is a period, a date that falls in the period\r\n* [Procedure](procedure.html): When the procedure occurred or is occurring\r\n* [RiskAssessment](riskassessment.html): When was assessment made?\r\n* [SupplyRequest](supplyrequest.html): When the request was made\r\n", type="date" ) 3084 public static final String SP_DATE = "date"; 3085 /** 3086 * <b>Fluent Client</b> search parameter constant for <b>date</b> 3087 * <p> 3088 * Description: <b>Multiple Resources: 3089 3090* [AllergyIntolerance](allergyintolerance.html): Date first version of the resource instance was recorded 3091* [CarePlan](careplan.html): Time period plan covers 3092* [CareTeam](careteam.html): A date within the coverage time period. 3093* [ClinicalImpression](clinicalimpression.html): When the assessment was documented 3094* [Composition](composition.html): Composition editing time 3095* [Consent](consent.html): When consent was agreed to 3096* [DiagnosticReport](diagnosticreport.html): The clinically relevant time of the report 3097* [Encounter](encounter.html): A date within the actualPeriod the Encounter lasted 3098* [EpisodeOfCare](episodeofcare.html): The provided date search value falls within the episode of care's period 3099* [FamilyMemberHistory](familymemberhistory.html): When history was recorded or last updated 3100* [Flag](flag.html): Time period when flag is active 3101* [Immunization](immunization.html): Vaccination (non)-Administration Date 3102* [List](list.html): When the list was prepared 3103* [Observation](observation.html): Obtained date/time. If the obtained element is a period, a date that falls in the period 3104* [Procedure](procedure.html): When the procedure occurred or is occurring 3105* [RiskAssessment](riskassessment.html): When was assessment made? 3106* [SupplyRequest](supplyrequest.html): When the request was made 3107</b><br> 3108 * Type: <b>date</b><br> 3109 * Path: <b>AllergyIntolerance.recordedDate | CarePlan.period | ClinicalImpression.date | Composition.date | Consent.dateTime | DiagnosticReport.effective | Encounter.actualPeriod | EpisodeOfCare.period | FamilyMemberHistory.date | Flag.period | (Immunization.occurrence as dateTime) | List.date | Observation.effective | Procedure.occurrence | (RiskAssessment.occurrence as dateTime) | SupplyRequest.authoredOn</b><br> 3110 * </p> 3111 */ 3112 public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE); 3113 3114 /** 3115 * Search parameter: <b>encounter</b> 3116 * <p> 3117 * Description: <b>Multiple Resources: 3118 3119* [Composition](composition.html): Context of the Composition 3120* [DeviceRequest](devicerequest.html): Encounter during which request was created 3121* [DiagnosticReport](diagnosticreport.html): The Encounter when the order was made 3122* [DocumentReference](documentreference.html): Context of the document content 3123* [Flag](flag.html): Alert relevant during encounter 3124* [List](list.html): Context in which list created 3125* [NutritionOrder](nutritionorder.html): Return nutrition orders with this encounter identifier 3126* [Observation](observation.html): Encounter related to the observation 3127* [Procedure](procedure.html): The Encounter during which this Procedure was created 3128* [RiskAssessment](riskassessment.html): Where was assessment performed? 3129* [ServiceRequest](servicerequest.html): An encounter in which this request is made 3130* [VisionPrescription](visionprescription.html): Return prescriptions with this encounter identifier 3131</b><br> 3132 * Type: <b>reference</b><br> 3133 * Path: <b>Composition.encounter | DeviceRequest.encounter | DiagnosticReport.encounter | DocumentReference.encounter | Flag.encounter | List.encounter | NutritionOrder.encounter | Observation.encounter | Procedure.encounter | RiskAssessment.encounter | ServiceRequest.encounter | VisionPrescription.encounter</b><br> 3134 * </p> 3135 */ 3136 @SearchParamDefinition(name="encounter", path="Composition.encounter | DeviceRequest.encounter | DiagnosticReport.encounter | DocumentReference.encounter | Flag.encounter | List.encounter | NutritionOrder.encounter | Observation.encounter | Procedure.encounter | RiskAssessment.encounter | ServiceRequest.encounter | VisionPrescription.encounter", description="Multiple Resources: \r\n\r\n* [Composition](composition.html): Context of the Composition\r\n* [DeviceRequest](devicerequest.html): Encounter during which request was created\r\n* [DiagnosticReport](diagnosticreport.html): The Encounter when the order was made\r\n* [DocumentReference](documentreference.html): Context of the document content\r\n* [Flag](flag.html): Alert relevant during encounter\r\n* [List](list.html): Context in which list created\r\n* [NutritionOrder](nutritionorder.html): Return nutrition orders with this encounter identifier\r\n* [Observation](observation.html): Encounter related to the observation\r\n* [Procedure](procedure.html): The Encounter during which this Procedure was created\r\n* [RiskAssessment](riskassessment.html): Where was assessment performed?\r\n* [ServiceRequest](servicerequest.html): An encounter in which this request is made\r\n* [VisionPrescription](visionprescription.html): Return prescriptions with this encounter identifier\r\n", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Encounter") }, target={Encounter.class } ) 3137 public static final String SP_ENCOUNTER = "encounter"; 3138 /** 3139 * <b>Fluent Client</b> search parameter constant for <b>encounter</b> 3140 * <p> 3141 * Description: <b>Multiple Resources: 3142 3143* [Composition](composition.html): Context of the Composition 3144* [DeviceRequest](devicerequest.html): Encounter during which request was created 3145* [DiagnosticReport](diagnosticreport.html): The Encounter when the order was made 3146* [DocumentReference](documentreference.html): Context of the document content 3147* [Flag](flag.html): Alert relevant during encounter 3148* [List](list.html): Context in which list created 3149* [NutritionOrder](nutritionorder.html): Return nutrition orders with this encounter identifier 3150* [Observation](observation.html): Encounter related to the observation 3151* [Procedure](procedure.html): The Encounter during which this Procedure was created 3152* [RiskAssessment](riskassessment.html): Where was assessment performed? 3153* [ServiceRequest](servicerequest.html): An encounter in which this request is made 3154* [VisionPrescription](visionprescription.html): Return prescriptions with this encounter identifier 3155</b><br> 3156 * Type: <b>reference</b><br> 3157 * Path: <b>Composition.encounter | DeviceRequest.encounter | DiagnosticReport.encounter | DocumentReference.encounter | Flag.encounter | List.encounter | NutritionOrder.encounter | Observation.encounter | Procedure.encounter | RiskAssessment.encounter | ServiceRequest.encounter | VisionPrescription.encounter</b><br> 3158 * </p> 3159 */ 3160 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ENCOUNTER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ENCOUNTER); 3161 3162/** 3163 * Constant for fluent queries to be used to add include statements. Specifies 3164 * the path value of "<b>Procedure:encounter</b>". 3165 */ 3166 public static final ca.uhn.fhir.model.api.Include INCLUDE_ENCOUNTER = new ca.uhn.fhir.model.api.Include("Procedure:encounter").toLocked(); 3167 3168 /** 3169 * Search parameter: <b>identifier</b> 3170 * <p> 3171 * Description: <b>Multiple Resources: 3172 3173* [AllergyIntolerance](allergyintolerance.html): External ids for this item 3174* [CarePlan](careplan.html): External Ids for this plan 3175* [CareTeam](careteam.html): External Ids for this team 3176* [Composition](composition.html): Version-independent identifier for the Composition 3177* [Condition](condition.html): A unique identifier of the condition record 3178* [Consent](consent.html): Identifier for this record (external references) 3179* [DetectedIssue](detectedissue.html): Unique id for the detected issue 3180* [DeviceRequest](devicerequest.html): Business identifier for request/order 3181* [DiagnosticReport](diagnosticreport.html): An identifier for the report 3182* [DocumentManifest](documentmanifest.html): Unique Identifier for the set of documents 3183* [DocumentReference](documentreference.html): Identifier of the attachment binary 3184* [Encounter](encounter.html): Identifier(s) by which this encounter is known 3185* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare 3186* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier 3187* [Goal](goal.html): External Ids for this goal 3188* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID 3189* [Immunization](immunization.html): Business identifier 3190* [List](list.html): Business identifier 3191* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier 3192* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier 3193* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier 3194* [MedicationUsage](medicationusage.html): Return statements with this external identifier 3195* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier 3196* [Observation](observation.html): The unique id for a particular observation 3197* [Procedure](procedure.html): A unique identifier for a procedure 3198* [RiskAssessment](riskassessment.html): Unique identifier for the assessment 3199* [ServiceRequest](servicerequest.html): Identifiers assigned to this order 3200* [SupplyDelivery](supplydelivery.html): External identifier 3201* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest 3202* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier 3203</b><br> 3204 * Type: <b>token</b><br> 3205 * Path: <b>AllergyIntolerance.identifier | CarePlan.identifier | CareTeam.identifier | Composition.identifier | Condition.identifier | Consent.identifier | DetectedIssue.identifier | DeviceRequest.identifier | DiagnosticReport.identifier | DocumentManifest.masterIdentifier | DocumentManifest.identifier | DocumentReference.content.identifier | DocumentReference.identifier | Encounter.identifier | EpisodeOfCare.identifier | FamilyMemberHistory.identifier | Goal.identifier | ImagingStudy.identifier | Immunization.identifier | List.identifier | MedicationAdministration.identifier | MedicationDispense.identifier | MedicationRequest.identifier | MedicationUsage.identifier | NutritionOrder.identifier | Observation.identifier | Procedure.identifier | RiskAssessment.identifier | ServiceRequest.identifier | SupplyDelivery.identifier | SupplyRequest.identifier | VisionPrescription.identifier</b><br> 3206 * </p> 3207 */ 3208 @SearchParamDefinition(name="identifier", path="AllergyIntolerance.identifier | CarePlan.identifier | CareTeam.identifier | Composition.identifier | Condition.identifier | Consent.identifier | DetectedIssue.identifier | DeviceRequest.identifier | DiagnosticReport.identifier | DocumentManifest.masterIdentifier | DocumentManifest.identifier | DocumentReference.content.identifier | DocumentReference.identifier | Encounter.identifier | EpisodeOfCare.identifier | FamilyMemberHistory.identifier | Goal.identifier | ImagingStudy.identifier | Immunization.identifier | List.identifier | MedicationAdministration.identifier | MedicationDispense.identifier | MedicationRequest.identifier | MedicationUsage.identifier | NutritionOrder.identifier | Observation.identifier | Procedure.identifier | RiskAssessment.identifier | ServiceRequest.identifier | SupplyDelivery.identifier | SupplyRequest.identifier | VisionPrescription.identifier", description="Multiple Resources: \r\n\r\n* [AllergyIntolerance](allergyintolerance.html): External ids for this item\r\n* [CarePlan](careplan.html): External Ids for this plan\r\n* [CareTeam](careteam.html): External Ids for this team\r\n* [Composition](composition.html): Version-independent identifier for the Composition\r\n* [Condition](condition.html): A unique identifier of the condition record\r\n* [Consent](consent.html): Identifier for this record (external references)\r\n* [DetectedIssue](detectedissue.html): Unique id for the detected issue\r\n* [DeviceRequest](devicerequest.html): Business identifier for request/order\r\n* [DiagnosticReport](diagnosticreport.html): An identifier for the report\r\n* [DocumentManifest](documentmanifest.html): Unique Identifier for the set of documents\r\n* [DocumentReference](documentreference.html): Identifier of the attachment binary\r\n* [Encounter](encounter.html): Identifier(s) by which this encounter is known\r\n* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare\r\n* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier\r\n* [Goal](goal.html): External Ids for this goal\r\n* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID\r\n* [Immunization](immunization.html): Business identifier\r\n* [List](list.html): Business identifier\r\n* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier\r\n* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier\r\n* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier\r\n* [MedicationUsage](medicationusage.html): Return statements with this external identifier\r\n* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier\r\n* [Observation](observation.html): The unique id for a particular observation\r\n* [Procedure](procedure.html): A unique identifier for a procedure\r\n* [RiskAssessment](riskassessment.html): Unique identifier for the assessment\r\n* [ServiceRequest](servicerequest.html): Identifiers assigned to this order\r\n* [SupplyDelivery](supplydelivery.html): External identifier\r\n* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest\r\n* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier\r\n", type="token" ) 3209 public static final String SP_IDENTIFIER = "identifier"; 3210 /** 3211 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 3212 * <p> 3213 * Description: <b>Multiple Resources: 3214 3215* [AllergyIntolerance](allergyintolerance.html): External ids for this item 3216* [CarePlan](careplan.html): External Ids for this plan 3217* [CareTeam](careteam.html): External Ids for this team 3218* [Composition](composition.html): Version-independent identifier for the Composition 3219* [Condition](condition.html): A unique identifier of the condition record 3220* [Consent](consent.html): Identifier for this record (external references) 3221* [DetectedIssue](detectedissue.html): Unique id for the detected issue 3222* [DeviceRequest](devicerequest.html): Business identifier for request/order 3223* [DiagnosticReport](diagnosticreport.html): An identifier for the report 3224* [DocumentManifest](documentmanifest.html): Unique Identifier for the set of documents 3225* [DocumentReference](documentreference.html): Identifier of the attachment binary 3226* [Encounter](encounter.html): Identifier(s) by which this encounter is known 3227* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare 3228* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier 3229* [Goal](goal.html): External Ids for this goal 3230* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID 3231* [Immunization](immunization.html): Business identifier 3232* [List](list.html): Business identifier 3233* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier 3234* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier 3235* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier 3236* [MedicationUsage](medicationusage.html): Return statements with this external identifier 3237* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier 3238* [Observation](observation.html): The unique id for a particular observation 3239* [Procedure](procedure.html): A unique identifier for a procedure 3240* [RiskAssessment](riskassessment.html): Unique identifier for the assessment 3241* [ServiceRequest](servicerequest.html): Identifiers assigned to this order 3242* [SupplyDelivery](supplydelivery.html): External identifier 3243* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest 3244* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier 3245</b><br> 3246 * Type: <b>token</b><br> 3247 * Path: <b>AllergyIntolerance.identifier | CarePlan.identifier | CareTeam.identifier | Composition.identifier | Condition.identifier | Consent.identifier | DetectedIssue.identifier | DeviceRequest.identifier | DiagnosticReport.identifier | DocumentManifest.masterIdentifier | DocumentManifest.identifier | DocumentReference.content.identifier | DocumentReference.identifier | Encounter.identifier | EpisodeOfCare.identifier | FamilyMemberHistory.identifier | Goal.identifier | ImagingStudy.identifier | Immunization.identifier | List.identifier | MedicationAdministration.identifier | MedicationDispense.identifier | MedicationRequest.identifier | MedicationUsage.identifier | NutritionOrder.identifier | Observation.identifier | Procedure.identifier | RiskAssessment.identifier | ServiceRequest.identifier | SupplyDelivery.identifier | SupplyRequest.identifier | VisionPrescription.identifier</b><br> 3248 * </p> 3249 */ 3250 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 3251 3252 /** 3253 * Search parameter: <b>patient</b> 3254 * <p> 3255 * Description: <b>Multiple Resources: 3256 3257* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for 3258* [CarePlan](careplan.html): Who the care plan is for 3259* [CareTeam](careteam.html): Who care team is for 3260* [ClinicalImpression](clinicalimpression.html): Patient assessed 3261* [Composition](composition.html): Who and/or what the composition is about 3262* [Condition](condition.html): Who has the condition? 3263* [Consent](consent.html): Who the consent applies to 3264* [DetectedIssue](detectedissue.html): Associated patient 3265* [DeviceRequest](devicerequest.html): Individual the service is ordered for 3266* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device 3267* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient 3268* [DocumentManifest](documentmanifest.html): The subject of the set of documents 3269* [DocumentReference](documentreference.html): Who/what is the subject of the document 3270* [Encounter](encounter.html): The patient present at the encounter 3271* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care 3272* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for 3273* [Flag](flag.html): The identity of a subject to list flags for 3274* [Goal](goal.html): Who this goal is intended for 3275* [ImagingStudy](imagingstudy.html): Who the study is about 3276* [Immunization](immunization.html): The patient for the vaccination record 3277* [List](list.html): If all resources have the same subject 3278* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations for 3279* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses for 3280* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient 3281* [MedicationUsage](medicationusage.html): Returns statements for a specific patient. 3282* [NutritionOrder](nutritionorder.html): The identity of the person who requires the diet, formula or nutritional supplement 3283* [Observation](observation.html): The subject that the observation is about (if patient) 3284* [Procedure](procedure.html): Search by subject - a patient 3285* [RiskAssessment](riskassessment.html): Who/what does assessment apply to? 3286* [ServiceRequest](servicerequest.html): Search by subject - a patient 3287* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied 3288* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for 3289</b><br> 3290 * Type: <b>reference</b><br> 3291 * Path: <b>AllergyIntolerance.patient | CarePlan.subject.where(resolve() is Patient) | CareTeam.subject.where(resolve() is Patient) | ClinicalImpression.subject.where(resolve() is Patient) | Composition.subject.where(resolve() is Patient) | Condition.subject.where(resolve() is Patient) | Consent.subject.where(resolve() is Patient) | DetectedIssue.patient | DeviceRequest.subject.where(resolve() is Patient) | DeviceUsage.patient | DiagnosticReport.subject.where(resolve() is Patient) | DocumentManifest.subject.where(resolve() is Patient) | DocumentReference.subject.where(resolve() is Patient) | Encounter.subject.where(resolve() is Patient) | EpisodeOfCare.patient | FamilyMemberHistory.patient | Flag.subject.where(resolve() is Patient) | Goal.subject.where(resolve() is Patient) | ImagingStudy.subject.where(resolve() is Patient) | Immunization.patient | List.subject.where(resolve() is Patient) | MedicationAdministration.subject.where(resolve() is Patient) | MedicationDispense.subject.where(resolve() is Patient) | MedicationRequest.subject.where(resolve() is Patient) | MedicationUsage.subject.where(resolve() is Patient) | NutritionOrder.patient | Observation.subject.where(resolve() is Patient) | Procedure.subject.where(resolve() is Patient) | RiskAssessment.subject.where(resolve() is Patient) | ServiceRequest.subject.where(resolve() is Patient) | SupplyDelivery.patient | VisionPrescription.patient</b><br> 3292 * </p> 3293 */ 3294 @SearchParamDefinition(name="patient", path="AllergyIntolerance.patient | CarePlan.subject.where(resolve() is Patient) | CareTeam.subject.where(resolve() is Patient) | ClinicalImpression.subject.where(resolve() is Patient) | Composition.subject.where(resolve() is Patient) | Condition.subject.where(resolve() is Patient) | Consent.subject.where(resolve() is Patient) | DetectedIssue.patient | DeviceRequest.subject.where(resolve() is Patient) | DeviceUsage.patient | DiagnosticReport.subject.where(resolve() is Patient) | DocumentManifest.subject.where(resolve() is Patient) | DocumentReference.subject.where(resolve() is Patient) | Encounter.subject.where(resolve() is Patient) | EpisodeOfCare.patient | FamilyMemberHistory.patient | Flag.subject.where(resolve() is Patient) | Goal.subject.where(resolve() is Patient) | ImagingStudy.subject.where(resolve() is Patient) | Immunization.patient | List.subject.where(resolve() is Patient) | MedicationAdministration.subject.where(resolve() is Patient) | MedicationDispense.subject.where(resolve() is Patient) | MedicationRequest.subject.where(resolve() is Patient) | MedicationUsage.subject.where(resolve() is Patient) | NutritionOrder.patient | Observation.subject.where(resolve() is Patient) | Procedure.subject.where(resolve() is Patient) | RiskAssessment.subject.where(resolve() is Patient) | ServiceRequest.subject.where(resolve() is Patient) | SupplyDelivery.patient | VisionPrescription.patient", description="Multiple Resources: \r\n\r\n* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for\r\n* [CarePlan](careplan.html): Who the care plan is for\r\n* [CareTeam](careteam.html): Who care team is for\r\n* [ClinicalImpression](clinicalimpression.html): Patient assessed\r\n* [Composition](composition.html): Who and/or what the composition is about\r\n* [Condition](condition.html): Who has the condition?\r\n* [Consent](consent.html): Who the consent applies to\r\n* [DetectedIssue](detectedissue.html): Associated patient\r\n* [DeviceRequest](devicerequest.html): Individual the service is ordered for\r\n* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device\r\n* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient\r\n* [DocumentManifest](documentmanifest.html): The subject of the set of documents\r\n* [DocumentReference](documentreference.html): Who/what is the subject of the document\r\n* [Encounter](encounter.html): The patient present at the encounter\r\n* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care\r\n* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for\r\n* [Flag](flag.html): The identity of a subject to list flags for\r\n* [Goal](goal.html): Who this goal is intended for\r\n* [ImagingStudy](imagingstudy.html): Who the study is about\r\n* [Immunization](immunization.html): The patient for the vaccination record\r\n* [List](list.html): If all resources have the same subject\r\n* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations for\r\n* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses for\r\n* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient\r\n* [MedicationUsage](medicationusage.html): Returns statements for a specific patient.\r\n* [NutritionOrder](nutritionorder.html): The identity of the person who requires the diet, formula or nutritional supplement\r\n* [Observation](observation.html): The subject that the observation is about (if patient)\r\n* [Procedure](procedure.html): Search by subject - a patient\r\n* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?\r\n* [ServiceRequest](servicerequest.html): Search by subject - a patient\r\n* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied\r\n* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for\r\n", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Patient") }, target={Account.class, ActivityDefinition.class, AdministrableProductDefinition.class, AdverseEvent.class, AllergyIntolerance.class, Appointment.class, AppointmentResponse.class, ArtifactAssessment.class, AuditEvent.class, Basic.class, Binary.class, BiologicallyDerivedProduct.class, BodyStructure.class, Bundle.class, CapabilityStatement.class, CapabilityStatement2.class, CarePlan.class, CareTeam.class, ChargeItem.class, ChargeItemDefinition.class, Citation.class, Claim.class, ClaimResponse.class, ClinicalImpression.class, ClinicalUseDefinition.class, ClinicalUseIssue.class, CodeSystem.class, Communication.class, CommunicationRequest.class, CompartmentDefinition.class, Composition.class, ConceptMap.class, ConceptMap2.class, Condition.class, ConditionDefinition.class, Consent.class, Contract.class, Coverage.class, CoverageEligibilityRequest.class, CoverageEligibilityResponse.class, DetectedIssue.class, Device.class, DeviceDefinition.class, DeviceDispense.class, DeviceMetric.class, DeviceRequest.class, DeviceUsage.class, DiagnosticReport.class, DocumentManifest.class, DocumentReference.class, Encounter.class, Endpoint.class, EnrollmentRequest.class, EnrollmentResponse.class, EpisodeOfCare.class, EventDefinition.class, Evidence.class, EvidenceReport.class, EvidenceVariable.class, ExampleScenario.class, ExplanationOfBenefit.class, FamilyMemberHistory.class, Flag.class, Goal.class, GraphDefinition.class, Group.class, GuidanceResponse.class, HealthcareService.class, ImagingSelection.class, ImagingStudy.class, Immunization.class, ImmunizationEvaluation.class, ImmunizationRecommendation.class, ImplementationGuide.class, Ingredient.class, InsurancePlan.class, InventoryReport.class, Invoice.class, Library.class, Linkage.class, ListResource.class, Location.class, ManufacturedItemDefinition.class, Measure.class, MeasureReport.class, Medication.class, MedicationAdministration.class, MedicationDispense.class, MedicationKnowledge.class, MedicationRequest.class, MedicationUsage.class, MedicinalProductDefinition.class, MessageDefinition.class, MessageHeader.class, MolecularSequence.class, NamingSystem.class, NutritionIntake.class, NutritionOrder.class, NutritionProduct.class, Observation.class, ObservationDefinition.class, OperationDefinition.class, OperationOutcome.class, Organization.class, OrganizationAffiliation.class, PackagedProductDefinition.class, Patient.class, PaymentNotice.class, PaymentReconciliation.class, Permission.class, Person.class, PlanDefinition.class, Practitioner.class, PractitionerRole.class, Procedure.class, Provenance.class, Questionnaire.class, QuestionnaireResponse.class, RegulatedAuthorization.class, RelatedPerson.class, RequestGroup.class, ResearchStudy.class, ResearchSubject.class, RiskAssessment.class, Schedule.class, SearchParameter.class, ServiceRequest.class, Slot.class, Specimen.class, SpecimenDefinition.class, StructureDefinition.class, StructureMap.class, Subscription.class, SubscriptionStatus.class, SubscriptionTopic.class, Substance.class, SubstanceDefinition.class, SubstanceNucleicAcid.class, SubstancePolymer.class, SubstanceProtein.class, SubstanceReferenceInformation.class, SubstanceSourceMaterial.class, SupplyDelivery.class, SupplyRequest.class, Task.class, TerminologyCapabilities.class, TestReport.class, TestScript.class, ValueSet.class, VerificationResult.class, VisionPrescription.class } ) 3295 public static final String SP_PATIENT = "patient"; 3296 /** 3297 * <b>Fluent Client</b> search parameter constant for <b>patient</b> 3298 * <p> 3299 * Description: <b>Multiple Resources: 3300 3301* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for 3302* [CarePlan](careplan.html): Who the care plan is for 3303* [CareTeam](careteam.html): Who care team is for 3304* [ClinicalImpression](clinicalimpression.html): Patient assessed 3305* [Composition](composition.html): Who and/or what the composition is about 3306* [Condition](condition.html): Who has the condition? 3307* [Consent](consent.html): Who the consent applies to 3308* [DetectedIssue](detectedissue.html): Associated patient 3309* [DeviceRequest](devicerequest.html): Individual the service is ordered for 3310* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device 3311* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient 3312* [DocumentManifest](documentmanifest.html): The subject of the set of documents 3313* [DocumentReference](documentreference.html): Who/what is the subject of the document 3314* [Encounter](encounter.html): The patient present at the encounter 3315* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care 3316* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for 3317* [Flag](flag.html): The identity of a subject to list flags for 3318* [Goal](goal.html): Who this goal is intended for 3319* [ImagingStudy](imagingstudy.html): Who the study is about 3320* [Immunization](immunization.html): The patient for the vaccination record 3321* [List](list.html): If all resources have the same subject 3322* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations for 3323* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses for 3324* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient 3325* [MedicationUsage](medicationusage.html): Returns statements for a specific patient. 3326* [NutritionOrder](nutritionorder.html): The identity of the person who requires the diet, formula or nutritional supplement 3327* [Observation](observation.html): The subject that the observation is about (if patient) 3328* [Procedure](procedure.html): Search by subject - a patient 3329* [RiskAssessment](riskassessment.html): Who/what does assessment apply to? 3330* [ServiceRequest](servicerequest.html): Search by subject - a patient 3331* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied 3332* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for 3333</b><br> 3334 * Type: <b>reference</b><br> 3335 * Path: <b>AllergyIntolerance.patient | CarePlan.subject.where(resolve() is Patient) | CareTeam.subject.where(resolve() is Patient) | ClinicalImpression.subject.where(resolve() is Patient) | Composition.subject.where(resolve() is Patient) | Condition.subject.where(resolve() is Patient) | Consent.subject.where(resolve() is Patient) | DetectedIssue.patient | DeviceRequest.subject.where(resolve() is Patient) | DeviceUsage.patient | DiagnosticReport.subject.where(resolve() is Patient) | DocumentManifest.subject.where(resolve() is Patient) | DocumentReference.subject.where(resolve() is Patient) | Encounter.subject.where(resolve() is Patient) | EpisodeOfCare.patient | FamilyMemberHistory.patient | Flag.subject.where(resolve() is Patient) | Goal.subject.where(resolve() is Patient) | ImagingStudy.subject.where(resolve() is Patient) | Immunization.patient | List.subject.where(resolve() is Patient) | MedicationAdministration.subject.where(resolve() is Patient) | MedicationDispense.subject.where(resolve() is Patient) | MedicationRequest.subject.where(resolve() is Patient) | MedicationUsage.subject.where(resolve() is Patient) | NutritionOrder.patient | Observation.subject.where(resolve() is Patient) | Procedure.subject.where(resolve() is Patient) | RiskAssessment.subject.where(resolve() is Patient) | ServiceRequest.subject.where(resolve() is Patient) | SupplyDelivery.patient | VisionPrescription.patient</b><br> 3336 * </p> 3337 */ 3338 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PATIENT); 3339 3340/** 3341 * Constant for fluent queries to be used to add include statements. Specifies 3342 * the path value of "<b>Procedure:patient</b>". 3343 */ 3344 public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("Procedure:patient").toLocked(); 3345 3346 3347} 3348