![](/hapi-fhir/images/logos/raccoon-forwards.png)
001package org.hl7.fhir.r4.model; 002 003/* 004 Copyright (c) 2011+, HL7, Inc. 005 All rights reserved. 006 007 Redistribution and use in source and binary forms, with or without modification, 008 are permitted provided that the following conditions are met: 009 010 * Redistributions of source code must retain the above copyright notice, this 011 list of conditions and the following disclaimer. 012 * Redistributions in binary form must reproduce the above copyright notice, 013 this list of conditions and the following disclaimer in the documentation 014 and/or other materials provided with the distribution. 015 * Neither the name of HL7 nor the names of its contributors may be used to 016 endorse or promote products derived from this software without specific 017 prior written permission. 018 019 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 020 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 021 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 022 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 023 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 024 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 025 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 026 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 027 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 028 POSSIBILITY OF SUCH DAMAGE. 029 030*/ 031 032// Generated on Tue, May 12, 2020 07:26+1000 for FHIR v4.0.1 033import java.util.ArrayList; 034import java.util.Date; 035import java.util.List; 036 037import org.hl7.fhir.exceptions.FHIRException; 038import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 039import org.hl7.fhir.utilities.Utilities; 040 041import ca.uhn.fhir.model.api.annotation.Block; 042import ca.uhn.fhir.model.api.annotation.Child; 043import ca.uhn.fhir.model.api.annotation.Description; 044import ca.uhn.fhir.model.api.annotation.ResourceDef; 045import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 046 047/** 048 * A record of a clinical assessment performed to determine what problem(s) may 049 * affect the patient and before planning the treatments or management 050 * strategies that are best to manage a patient's condition. Assessments are 051 * often 1:1 with a clinical consultation / encounter, but this varies greatly 052 * depending on the clinical workflow. This resource is called 053 * "ClinicalImpression" rather than "ClinicalAssessment" to avoid confusion with 054 * the recording of assessment tools such as Apgar score. 055 */ 056@ResourceDef(name = "ClinicalImpression", profile = "http://hl7.org/fhir/StructureDefinition/ClinicalImpression") 057public class ClinicalImpression extends DomainResource { 058 059 public enum ClinicalImpressionStatus { 060 /** 061 * null 062 */ 063 INPROGRESS, 064 /** 065 * null 066 */ 067 COMPLETED, 068 /** 069 * null 070 */ 071 ENTEREDINERROR, 072 /** 073 * added to help the parsers with the generic types 074 */ 075 NULL; 076 077 public static ClinicalImpressionStatus fromCode(String codeString) throws FHIRException { 078 if (codeString == null || "".equals(codeString)) 079 return null; 080 if ("in-progress".equals(codeString)) 081 return INPROGRESS; 082 if ("completed".equals(codeString)) 083 return COMPLETED; 084 if ("entered-in-error".equals(codeString)) 085 return ENTEREDINERROR; 086 if (Configuration.isAcceptInvalidEnums()) 087 return null; 088 else 089 throw new FHIRException("Unknown ClinicalImpressionStatus code '" + codeString + "'"); 090 } 091 092 public String toCode() { 093 switch (this) { 094 case INPROGRESS: 095 return "in-progress"; 096 case COMPLETED: 097 return "completed"; 098 case ENTEREDINERROR: 099 return "entered-in-error"; 100 case NULL: 101 return null; 102 default: 103 return "?"; 104 } 105 } 106 107 public String getSystem() { 108 switch (this) { 109 case INPROGRESS: 110 return "http://hl7.org/fhir/event-status"; 111 case COMPLETED: 112 return "http://hl7.org/fhir/event-status"; 113 case ENTEREDINERROR: 114 return "http://hl7.org/fhir/event-status"; 115 case NULL: 116 return null; 117 default: 118 return "?"; 119 } 120 } 121 122 public String getDefinition() { 123 switch (this) { 124 case INPROGRESS: 125 return ""; 126 case COMPLETED: 127 return ""; 128 case ENTEREDINERROR: 129 return ""; 130 case NULL: 131 return null; 132 default: 133 return "?"; 134 } 135 } 136 137 public String getDisplay() { 138 switch (this) { 139 case INPROGRESS: 140 return "in-progress"; 141 case COMPLETED: 142 return "completed"; 143 case ENTEREDINERROR: 144 return "entered-in-error"; 145 case NULL: 146 return null; 147 default: 148 return "?"; 149 } 150 } 151 } 152 153 public static class ClinicalImpressionStatusEnumFactory implements EnumFactory<ClinicalImpressionStatus> { 154 public ClinicalImpressionStatus fromCode(String codeString) throws IllegalArgumentException { 155 if (codeString == null || "".equals(codeString)) 156 if (codeString == null || "".equals(codeString)) 157 return null; 158 if ("in-progress".equals(codeString)) 159 return ClinicalImpressionStatus.INPROGRESS; 160 if ("completed".equals(codeString)) 161 return ClinicalImpressionStatus.COMPLETED; 162 if ("entered-in-error".equals(codeString)) 163 return ClinicalImpressionStatus.ENTEREDINERROR; 164 throw new IllegalArgumentException("Unknown ClinicalImpressionStatus code '" + codeString + "'"); 165 } 166 167 public Enumeration<ClinicalImpressionStatus> fromType(PrimitiveType<?> code) throws FHIRException { 168 if (code == null) 169 return null; 170 if (code.isEmpty()) 171 return new Enumeration<ClinicalImpressionStatus>(this, ClinicalImpressionStatus.NULL, code); 172 String codeString = code.asStringValue(); 173 if (codeString == null || "".equals(codeString)) 174 return new Enumeration<ClinicalImpressionStatus>(this, ClinicalImpressionStatus.NULL, code); 175 if ("in-progress".equals(codeString)) 176 return new Enumeration<ClinicalImpressionStatus>(this, ClinicalImpressionStatus.INPROGRESS, code); 177 if ("completed".equals(codeString)) 178 return new Enumeration<ClinicalImpressionStatus>(this, ClinicalImpressionStatus.COMPLETED, code); 179 if ("entered-in-error".equals(codeString)) 180 return new Enumeration<ClinicalImpressionStatus>(this, ClinicalImpressionStatus.ENTEREDINERROR, code); 181 throw new FHIRException("Unknown ClinicalImpressionStatus code '" + codeString + "'"); 182 } 183 184 public String toCode(ClinicalImpressionStatus code) { 185 if (code == ClinicalImpressionStatus.INPROGRESS) 186 return "in-progress"; 187 if (code == ClinicalImpressionStatus.COMPLETED) 188 return "completed"; 189 if (code == ClinicalImpressionStatus.ENTEREDINERROR) 190 return "entered-in-error"; 191 return "?"; 192 } 193 194 public String toSystem(ClinicalImpressionStatus code) { 195 return code.getSystem(); 196 } 197 } 198 199 @Block() 200 public static class ClinicalImpressionInvestigationComponent extends BackboneElement implements IBaseBackboneElement { 201 /** 202 * A name/code for the group ("set") of investigations. Typically, this will be 203 * something like "signs", "symptoms", "clinical", "diagnostic", but the list is 204 * not constrained, and others such groups such as 205 * (exposure|family|travel|nutritional) history may be used. 206 */ 207 @Child(name = "code", type = { 208 CodeableConcept.class }, order = 1, min = 1, max = 1, modifier = false, summary = false) 209 @Description(shortDefinition = "A name/code for the set", formalDefinition = "A name/code for the group (\"set\") of investigations. Typically, this will be something like \"signs\", \"symptoms\", \"clinical\", \"diagnostic\", but the list is not constrained, and others such groups such as (exposure|family|travel|nutritional) history may be used.") 210 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/investigation-sets") 211 protected CodeableConcept code; 212 213 /** 214 * A record of a specific investigation that was undertaken. 215 */ 216 @Child(name = "item", type = { Observation.class, QuestionnaireResponse.class, FamilyMemberHistory.class, 217 DiagnosticReport.class, RiskAssessment.class, ImagingStudy.class, 218 Media.class }, order = 2, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 219 @Description(shortDefinition = "Record of a specific investigation", formalDefinition = "A record of a specific investigation that was undertaken.") 220 protected List<Reference> item; 221 /** 222 * The actual objects that are the target of the reference (A record of a 223 * specific investigation that was undertaken.) 224 */ 225 protected List<Resource> itemTarget; 226 227 private static final long serialVersionUID = -301363326L; 228 229 /** 230 * Constructor 231 */ 232 public ClinicalImpressionInvestigationComponent() { 233 super(); 234 } 235 236 /** 237 * Constructor 238 */ 239 public ClinicalImpressionInvestigationComponent(CodeableConcept code) { 240 super(); 241 this.code = code; 242 } 243 244 /** 245 * @return {@link #code} (A name/code for the group ("set") of investigations. 246 * Typically, this will be something like "signs", "symptoms", 247 * "clinical", "diagnostic", but the list is not constrained, and others 248 * such groups such as (exposure|family|travel|nutritional) history may 249 * be used.) 250 */ 251 public CodeableConcept getCode() { 252 if (this.code == null) 253 if (Configuration.errorOnAutoCreate()) 254 throw new Error("Attempt to auto-create ClinicalImpressionInvestigationComponent.code"); 255 else if (Configuration.doAutoCreate()) 256 this.code = new CodeableConcept(); // cc 257 return this.code; 258 } 259 260 public boolean hasCode() { 261 return this.code != null && !this.code.isEmpty(); 262 } 263 264 /** 265 * @param value {@link #code} (A name/code for the group ("set") of 266 * investigations. Typically, this will be something like "signs", 267 * "symptoms", "clinical", "diagnostic", but the list is not 268 * constrained, and others such groups such as 269 * (exposure|family|travel|nutritional) history may be used.) 270 */ 271 public ClinicalImpressionInvestigationComponent setCode(CodeableConcept value) { 272 this.code = value; 273 return this; 274 } 275 276 /** 277 * @return {@link #item} (A record of a specific investigation that was 278 * undertaken.) 279 */ 280 public List<Reference> getItem() { 281 if (this.item == null) 282 this.item = new ArrayList<Reference>(); 283 return this.item; 284 } 285 286 /** 287 * @return Returns a reference to <code>this</code> for easy method chaining 288 */ 289 public ClinicalImpressionInvestigationComponent setItem(List<Reference> theItem) { 290 this.item = theItem; 291 return this; 292 } 293 294 public boolean hasItem() { 295 if (this.item == null) 296 return false; 297 for (Reference item : this.item) 298 if (!item.isEmpty()) 299 return true; 300 return false; 301 } 302 303 public Reference addItem() { // 3 304 Reference t = new Reference(); 305 if (this.item == null) 306 this.item = new ArrayList<Reference>(); 307 this.item.add(t); 308 return t; 309 } 310 311 public ClinicalImpressionInvestigationComponent addItem(Reference t) { // 3 312 if (t == null) 313 return this; 314 if (this.item == null) 315 this.item = new ArrayList<Reference>(); 316 this.item.add(t); 317 return this; 318 } 319 320 /** 321 * @return The first repetition of repeating field {@link #item}, creating it if 322 * it does not already exist 323 */ 324 public Reference getItemFirstRep() { 325 if (getItem().isEmpty()) { 326 addItem(); 327 } 328 return getItem().get(0); 329 } 330 331 /** 332 * @deprecated Use Reference#setResource(IBaseResource) instead 333 */ 334 @Deprecated 335 public List<Resource> getItemTarget() { 336 if (this.itemTarget == null) 337 this.itemTarget = new ArrayList<Resource>(); 338 return this.itemTarget; 339 } 340 341 protected void listChildren(List<Property> children) { 342 super.listChildren(children); 343 children.add(new Property("code", "CodeableConcept", 344 "A name/code for the group (\"set\") of investigations. Typically, this will be something like \"signs\", \"symptoms\", \"clinical\", \"diagnostic\", but the list is not constrained, and others such groups such as (exposure|family|travel|nutritional) history may be used.", 345 0, 1, code)); 346 children.add(new Property("item", 347 "Reference(Observation|QuestionnaireResponse|FamilyMemberHistory|DiagnosticReport|RiskAssessment|ImagingStudy|Media)", 348 "A record of a specific investigation that was undertaken.", 0, java.lang.Integer.MAX_VALUE, item)); 349 } 350 351 @Override 352 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 353 switch (_hash) { 354 case 3059181: 355 /* code */ return new Property("code", "CodeableConcept", 356 "A name/code for the group (\"set\") of investigations. Typically, this will be something like \"signs\", \"symptoms\", \"clinical\", \"diagnostic\", but the list is not constrained, and others such groups such as (exposure|family|travel|nutritional) history may be used.", 357 0, 1, code); 358 case 3242771: 359 /* item */ return new Property("item", 360 "Reference(Observation|QuestionnaireResponse|FamilyMemberHistory|DiagnosticReport|RiskAssessment|ImagingStudy|Media)", 361 "A record of a specific investigation that was undertaken.", 0, java.lang.Integer.MAX_VALUE, item); 362 default: 363 return super.getNamedProperty(_hash, _name, _checkValid); 364 } 365 366 } 367 368 @Override 369 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 370 switch (hash) { 371 case 3059181: 372 /* code */ return this.code == null ? new Base[0] : new Base[] { this.code }; // CodeableConcept 373 case 3242771: 374 /* item */ return this.item == null ? new Base[0] : this.item.toArray(new Base[this.item.size()]); // Reference 375 default: 376 return super.getProperty(hash, name, checkValid); 377 } 378 379 } 380 381 @Override 382 public Base setProperty(int hash, String name, Base value) throws FHIRException { 383 switch (hash) { 384 case 3059181: // code 385 this.code = castToCodeableConcept(value); // CodeableConcept 386 return value; 387 case 3242771: // item 388 this.getItem().add(castToReference(value)); // Reference 389 return value; 390 default: 391 return super.setProperty(hash, name, value); 392 } 393 394 } 395 396 @Override 397 public Base setProperty(String name, Base value) throws FHIRException { 398 if (name.equals("code")) { 399 this.code = castToCodeableConcept(value); // CodeableConcept 400 } else if (name.equals("item")) { 401 this.getItem().add(castToReference(value)); 402 } else 403 return super.setProperty(name, value); 404 return value; 405 } 406 407 @Override 408 public void removeChild(String name, Base value) throws FHIRException { 409 if (name.equals("code")) { 410 this.code = null; 411 } else if (name.equals("item")) { 412 this.getItem().remove(castToReference(value)); 413 } else 414 super.removeChild(name, value); 415 416 } 417 418 @Override 419 public Base makeProperty(int hash, String name) throws FHIRException { 420 switch (hash) { 421 case 3059181: 422 return getCode(); 423 case 3242771: 424 return addItem(); 425 default: 426 return super.makeProperty(hash, name); 427 } 428 429 } 430 431 @Override 432 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 433 switch (hash) { 434 case 3059181: 435 /* code */ return new String[] { "CodeableConcept" }; 436 case 3242771: 437 /* item */ return new String[] { "Reference" }; 438 default: 439 return super.getTypesForProperty(hash, name); 440 } 441 442 } 443 444 @Override 445 public Base addChild(String name) throws FHIRException { 446 if (name.equals("code")) { 447 this.code = new CodeableConcept(); 448 return this.code; 449 } else if (name.equals("item")) { 450 return addItem(); 451 } else 452 return super.addChild(name); 453 } 454 455 public ClinicalImpressionInvestigationComponent copy() { 456 ClinicalImpressionInvestigationComponent dst = new ClinicalImpressionInvestigationComponent(); 457 copyValues(dst); 458 return dst; 459 } 460 461 public void copyValues(ClinicalImpressionInvestigationComponent dst) { 462 super.copyValues(dst); 463 dst.code = code == null ? null : code.copy(); 464 if (item != null) { 465 dst.item = new ArrayList<Reference>(); 466 for (Reference i : item) 467 dst.item.add(i.copy()); 468 } 469 ; 470 } 471 472 @Override 473 public boolean equalsDeep(Base other_) { 474 if (!super.equalsDeep(other_)) 475 return false; 476 if (!(other_ instanceof ClinicalImpressionInvestigationComponent)) 477 return false; 478 ClinicalImpressionInvestigationComponent o = (ClinicalImpressionInvestigationComponent) other_; 479 return compareDeep(code, o.code, true) && compareDeep(item, o.item, true); 480 } 481 482 @Override 483 public boolean equalsShallow(Base other_) { 484 if (!super.equalsShallow(other_)) 485 return false; 486 if (!(other_ instanceof ClinicalImpressionInvestigationComponent)) 487 return false; 488 ClinicalImpressionInvestigationComponent o = (ClinicalImpressionInvestigationComponent) other_; 489 return true; 490 } 491 492 public boolean isEmpty() { 493 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, item); 494 } 495 496 public String fhirType() { 497 return "ClinicalImpression.investigation"; 498 499 } 500 501 } 502 503 @Block() 504 public static class ClinicalImpressionFindingComponent extends BackboneElement implements IBaseBackboneElement { 505 /** 506 * Specific text or code for finding or diagnosis, which may include ruled-out 507 * or resolved conditions. 508 */ 509 @Child(name = "itemCodeableConcept", type = { 510 CodeableConcept.class }, order = 1, min = 0, max = 1, modifier = false, summary = false) 511 @Description(shortDefinition = "What was found", formalDefinition = "Specific text or code for finding or diagnosis, which may include ruled-out or resolved conditions.") 512 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/condition-code") 513 protected CodeableConcept itemCodeableConcept; 514 515 /** 516 * Specific reference for finding or diagnosis, which may include ruled-out or 517 * resolved conditions. 518 */ 519 @Child(name = "itemReference", type = { Condition.class, Observation.class, 520 Media.class }, order = 2, min = 0, max = 1, modifier = false, summary = false) 521 @Description(shortDefinition = "What was found", formalDefinition = "Specific reference for finding or diagnosis, which may include ruled-out or resolved conditions.") 522 protected Reference itemReference; 523 524 /** 525 * The actual object that is the target of the reference (Specific reference for 526 * finding or diagnosis, which may include ruled-out or resolved conditions.) 527 */ 528 protected Resource itemReferenceTarget; 529 530 /** 531 * Which investigations support finding or diagnosis. 532 */ 533 @Child(name = "basis", type = { StringType.class }, order = 3, min = 0, max = 1, modifier = false, summary = false) 534 @Description(shortDefinition = "Which investigations support finding", formalDefinition = "Which investigations support finding or diagnosis.") 535 protected StringType basis; 536 537 private static final long serialVersionUID = -1578446448L; 538 539 /** 540 * Constructor 541 */ 542 public ClinicalImpressionFindingComponent() { 543 super(); 544 } 545 546 /** 547 * @return {@link #itemCodeableConcept} (Specific text or code for finding or 548 * diagnosis, which may include ruled-out or resolved conditions.) 549 */ 550 public CodeableConcept getItemCodeableConcept() { 551 if (this.itemCodeableConcept == null) 552 if (Configuration.errorOnAutoCreate()) 553 throw new Error("Attempt to auto-create ClinicalImpressionFindingComponent.itemCodeableConcept"); 554 else if (Configuration.doAutoCreate()) 555 this.itemCodeableConcept = new CodeableConcept(); // cc 556 return this.itemCodeableConcept; 557 } 558 559 public boolean hasItemCodeableConcept() { 560 return this.itemCodeableConcept != null && !this.itemCodeableConcept.isEmpty(); 561 } 562 563 /** 564 * @param value {@link #itemCodeableConcept} (Specific text or code for finding 565 * or diagnosis, which may include ruled-out or resolved 566 * conditions.) 567 */ 568 public ClinicalImpressionFindingComponent setItemCodeableConcept(CodeableConcept value) { 569 this.itemCodeableConcept = value; 570 return this; 571 } 572 573 /** 574 * @return {@link #itemReference} (Specific reference for finding or diagnosis, 575 * which may include ruled-out or resolved conditions.) 576 */ 577 public Reference getItemReference() { 578 if (this.itemReference == null) 579 if (Configuration.errorOnAutoCreate()) 580 throw new Error("Attempt to auto-create ClinicalImpressionFindingComponent.itemReference"); 581 else if (Configuration.doAutoCreate()) 582 this.itemReference = new Reference(); // cc 583 return this.itemReference; 584 } 585 586 public boolean hasItemReference() { 587 return this.itemReference != null && !this.itemReference.isEmpty(); 588 } 589 590 /** 591 * @param value {@link #itemReference} (Specific reference for finding or 592 * diagnosis, which may include ruled-out or resolved conditions.) 593 */ 594 public ClinicalImpressionFindingComponent setItemReference(Reference value) { 595 this.itemReference = value; 596 return this; 597 } 598 599 /** 600 * @return {@link #itemReference} The actual object that is the target of the 601 * reference. The reference library doesn't populate this, but you can 602 * use it to hold the resource if you resolve it. (Specific reference 603 * for finding or diagnosis, which may include ruled-out or resolved 604 * conditions.) 605 */ 606 public Resource getItemReferenceTarget() { 607 return this.itemReferenceTarget; 608 } 609 610 /** 611 * @param value {@link #itemReference} The actual object that is the target of 612 * the reference. The reference library doesn't use these, but you 613 * can use it to hold the resource if you resolve it. (Specific 614 * reference for finding or diagnosis, which may include ruled-out 615 * or resolved conditions.) 616 */ 617 public ClinicalImpressionFindingComponent setItemReferenceTarget(Resource value) { 618 this.itemReferenceTarget = value; 619 return this; 620 } 621 622 /** 623 * @return {@link #basis} (Which investigations support finding or diagnosis.). 624 * This is the underlying object with id, value and extensions. The 625 * accessor "getBasis" gives direct access to the value 626 */ 627 public StringType getBasisElement() { 628 if (this.basis == null) 629 if (Configuration.errorOnAutoCreate()) 630 throw new Error("Attempt to auto-create ClinicalImpressionFindingComponent.basis"); 631 else if (Configuration.doAutoCreate()) 632 this.basis = new StringType(); // bb 633 return this.basis; 634 } 635 636 public boolean hasBasisElement() { 637 return this.basis != null && !this.basis.isEmpty(); 638 } 639 640 public boolean hasBasis() { 641 return this.basis != null && !this.basis.isEmpty(); 642 } 643 644 /** 645 * @param value {@link #basis} (Which investigations support finding or 646 * diagnosis.). This is the underlying object with id, value and 647 * extensions. The accessor "getBasis" gives direct access to the 648 * value 649 */ 650 public ClinicalImpressionFindingComponent setBasisElement(StringType value) { 651 this.basis = value; 652 return this; 653 } 654 655 /** 656 * @return Which investigations support finding or diagnosis. 657 */ 658 public String getBasis() { 659 return this.basis == null ? null : this.basis.getValue(); 660 } 661 662 /** 663 * @param value Which investigations support finding or diagnosis. 664 */ 665 public ClinicalImpressionFindingComponent setBasis(String value) { 666 if (Utilities.noString(value)) 667 this.basis = null; 668 else { 669 if (this.basis == null) 670 this.basis = new StringType(); 671 this.basis.setValue(value); 672 } 673 return this; 674 } 675 676 protected void listChildren(List<Property> children) { 677 super.listChildren(children); 678 children.add(new Property("itemCodeableConcept", "CodeableConcept", 679 "Specific text or code for finding or diagnosis, which may include ruled-out or resolved conditions.", 0, 1, 680 itemCodeableConcept)); 681 children.add(new Property("itemReference", "Reference(Condition|Observation|Media)", 682 "Specific reference for finding or diagnosis, which may include ruled-out or resolved conditions.", 0, 1, 683 itemReference)); 684 children.add(new Property("basis", "string", "Which investigations support finding or diagnosis.", 0, 1, basis)); 685 } 686 687 @Override 688 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 689 switch (_hash) { 690 case 106644494: 691 /* itemCodeableConcept */ return new Property("itemCodeableConcept", "CodeableConcept", 692 "Specific text or code for finding or diagnosis, which may include ruled-out or resolved conditions.", 0, 1, 693 itemCodeableConcept); 694 case 1376364920: 695 /* itemReference */ return new Property("itemReference", "Reference(Condition|Observation|Media)", 696 "Specific reference for finding or diagnosis, which may include ruled-out or resolved conditions.", 0, 1, 697 itemReference); 698 case 93508670: 699 /* basis */ return new Property("basis", "string", "Which investigations support finding or diagnosis.", 0, 1, 700 basis); 701 default: 702 return super.getNamedProperty(_hash, _name, _checkValid); 703 } 704 705 } 706 707 @Override 708 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 709 switch (hash) { 710 case 106644494: 711 /* itemCodeableConcept */ return this.itemCodeableConcept == null ? new Base[0] 712 : new Base[] { this.itemCodeableConcept }; // CodeableConcept 713 case 1376364920: 714 /* itemReference */ return this.itemReference == null ? new Base[0] : new Base[] { this.itemReference }; // Reference 715 case 93508670: 716 /* basis */ return this.basis == null ? new Base[0] : new Base[] { this.basis }; // StringType 717 default: 718 return super.getProperty(hash, name, checkValid); 719 } 720 721 } 722 723 @Override 724 public Base setProperty(int hash, String name, Base value) throws FHIRException { 725 switch (hash) { 726 case 106644494: // itemCodeableConcept 727 this.itemCodeableConcept = castToCodeableConcept(value); // CodeableConcept 728 return value; 729 case 1376364920: // itemReference 730 this.itemReference = castToReference(value); // Reference 731 return value; 732 case 93508670: // basis 733 this.basis = castToString(value); // StringType 734 return value; 735 default: 736 return super.setProperty(hash, name, value); 737 } 738 739 } 740 741 @Override 742 public Base setProperty(String name, Base value) throws FHIRException { 743 if (name.equals("itemCodeableConcept")) { 744 this.itemCodeableConcept = castToCodeableConcept(value); // CodeableConcept 745 } else if (name.equals("itemReference")) { 746 this.itemReference = castToReference(value); // Reference 747 } else if (name.equals("basis")) { 748 this.basis = castToString(value); // StringType 749 } else 750 return super.setProperty(name, value); 751 return value; 752 } 753 754 @Override 755 public void removeChild(String name, Base value) throws FHIRException { 756 if (name.equals("itemCodeableConcept")) { 757 this.itemCodeableConcept = null; 758 } else if (name.equals("itemReference")) { 759 this.itemReference = null; 760 } else if (name.equals("basis")) { 761 this.basis = null; 762 } else 763 super.removeChild(name, value); 764 765 } 766 767 @Override 768 public Base makeProperty(int hash, String name) throws FHIRException { 769 switch (hash) { 770 case 106644494: 771 return getItemCodeableConcept(); 772 case 1376364920: 773 return getItemReference(); 774 case 93508670: 775 return getBasisElement(); 776 default: 777 return super.makeProperty(hash, name); 778 } 779 780 } 781 782 @Override 783 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 784 switch (hash) { 785 case 106644494: 786 /* itemCodeableConcept */ return new String[] { "CodeableConcept" }; 787 case 1376364920: 788 /* itemReference */ return new String[] { "Reference" }; 789 case 93508670: 790 /* basis */ return new String[] { "string" }; 791 default: 792 return super.getTypesForProperty(hash, name); 793 } 794 795 } 796 797 @Override 798 public Base addChild(String name) throws FHIRException { 799 if (name.equals("itemCodeableConcept")) { 800 this.itemCodeableConcept = new CodeableConcept(); 801 return this.itemCodeableConcept; 802 } else if (name.equals("itemReference")) { 803 this.itemReference = new Reference(); 804 return this.itemReference; 805 } else if (name.equals("basis")) { 806 throw new FHIRException("Cannot call addChild on a singleton property ClinicalImpression.basis"); 807 } else 808 return super.addChild(name); 809 } 810 811 public ClinicalImpressionFindingComponent copy() { 812 ClinicalImpressionFindingComponent dst = new ClinicalImpressionFindingComponent(); 813 copyValues(dst); 814 return dst; 815 } 816 817 public void copyValues(ClinicalImpressionFindingComponent dst) { 818 super.copyValues(dst); 819 dst.itemCodeableConcept = itemCodeableConcept == null ? null : itemCodeableConcept.copy(); 820 dst.itemReference = itemReference == null ? null : itemReference.copy(); 821 dst.basis = basis == null ? null : basis.copy(); 822 } 823 824 @Override 825 public boolean equalsDeep(Base other_) { 826 if (!super.equalsDeep(other_)) 827 return false; 828 if (!(other_ instanceof ClinicalImpressionFindingComponent)) 829 return false; 830 ClinicalImpressionFindingComponent o = (ClinicalImpressionFindingComponent) other_; 831 return compareDeep(itemCodeableConcept, o.itemCodeableConcept, true) 832 && compareDeep(itemReference, o.itemReference, true) && compareDeep(basis, o.basis, true); 833 } 834 835 @Override 836 public boolean equalsShallow(Base other_) { 837 if (!super.equalsShallow(other_)) 838 return false; 839 if (!(other_ instanceof ClinicalImpressionFindingComponent)) 840 return false; 841 ClinicalImpressionFindingComponent o = (ClinicalImpressionFindingComponent) other_; 842 return compareValues(basis, o.basis, true); 843 } 844 845 public boolean isEmpty() { 846 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(itemCodeableConcept, itemReference, basis); 847 } 848 849 public String fhirType() { 850 return "ClinicalImpression.finding"; 851 852 } 853 854 } 855 856 /** 857 * Business identifiers assigned to this clinical impression by the performer or 858 * other systems which remain constant as the resource is updated and propagates 859 * from server to server. 860 */ 861 @Child(name = "identifier", type = { 862 Identifier.class }, order = 0, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = true) 863 @Description(shortDefinition = "Business identifier", formalDefinition = "Business identifiers assigned to this clinical impression by the performer or other systems which remain constant as the resource is updated and propagates from server to server.") 864 protected List<Identifier> identifier; 865 866 /** 867 * Identifies the workflow status of the assessment. 868 */ 869 @Child(name = "status", type = { CodeType.class }, order = 1, min = 1, max = 1, modifier = true, summary = true) 870 @Description(shortDefinition = "in-progress | completed | entered-in-error", formalDefinition = "Identifies the workflow status of the assessment.") 871 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/clinicalimpression-status") 872 protected Enumeration<ClinicalImpressionStatus> status; 873 874 /** 875 * Captures the reason for the current state of the ClinicalImpression. 876 */ 877 @Child(name = "statusReason", type = { 878 CodeableConcept.class }, order = 2, min = 0, max = 1, modifier = false, summary = false) 879 @Description(shortDefinition = "Reason for current status", formalDefinition = "Captures the reason for the current state of the ClinicalImpression.") 880 protected CodeableConcept statusReason; 881 882 /** 883 * Categorizes the type of clinical assessment performed. 884 */ 885 @Child(name = "code", type = { CodeableConcept.class }, order = 3, min = 0, max = 1, modifier = false, summary = true) 886 @Description(shortDefinition = "Kind of assessment performed", formalDefinition = "Categorizes the type of clinical assessment performed.") 887 protected CodeableConcept code; 888 889 /** 890 * A summary of the context and/or cause of the assessment - why / where it was 891 * performed, and what patient events/status prompted it. 892 */ 893 @Child(name = "description", type = { 894 StringType.class }, order = 4, min = 0, max = 1, modifier = false, summary = true) 895 @Description(shortDefinition = "Why/how the assessment was performed", formalDefinition = "A summary of the context and/or cause of the assessment - why / where it was performed, and what patient events/status prompted it.") 896 protected StringType description; 897 898 /** 899 * The patient or group of individuals assessed as part of this record. 900 */ 901 @Child(name = "subject", type = { Patient.class, 902 Group.class }, order = 5, min = 1, max = 1, modifier = false, summary = true) 903 @Description(shortDefinition = "Patient or group assessed", formalDefinition = "The patient or group of individuals assessed as part of this record.") 904 protected Reference subject; 905 906 /** 907 * The actual object that is the target of the reference (The patient or group 908 * of individuals assessed as part of this record.) 909 */ 910 protected Resource subjectTarget; 911 912 /** 913 * The Encounter during which this ClinicalImpression was created or to which 914 * the creation of this record is tightly associated. 915 */ 916 @Child(name = "encounter", type = { Encounter.class }, order = 6, min = 0, max = 1, modifier = false, summary = true) 917 @Description(shortDefinition = "Encounter created as part of", formalDefinition = "The Encounter during which this ClinicalImpression was created or to which the creation of this record is tightly associated.") 918 protected Reference encounter; 919 920 /** 921 * The actual object that is the target of the reference (The Encounter during 922 * which this ClinicalImpression was created or to which the creation of this 923 * record is tightly associated.) 924 */ 925 protected Encounter encounterTarget; 926 927 /** 928 * The point in time or period over which the subject was assessed. 929 */ 930 @Child(name = "effective", type = { DateTimeType.class, 931 Period.class }, order = 7, min = 0, max = 1, modifier = false, summary = true) 932 @Description(shortDefinition = "Time of assessment", formalDefinition = "The point in time or period over which the subject was assessed.") 933 protected Type effective; 934 935 /** 936 * Indicates when the documentation of the assessment was complete. 937 */ 938 @Child(name = "date", type = { DateTimeType.class }, order = 8, min = 0, max = 1, modifier = false, summary = true) 939 @Description(shortDefinition = "When the assessment was documented", formalDefinition = "Indicates when the documentation of the assessment was complete.") 940 protected DateTimeType date; 941 942 /** 943 * The clinician performing the assessment. 944 */ 945 @Child(name = "assessor", type = { Practitioner.class, 946 PractitionerRole.class }, order = 9, min = 0, max = 1, modifier = false, summary = true) 947 @Description(shortDefinition = "The clinician performing the assessment", formalDefinition = "The clinician performing the assessment.") 948 protected Reference assessor; 949 950 /** 951 * The actual object that is the target of the reference (The clinician 952 * performing the assessment.) 953 */ 954 protected Resource assessorTarget; 955 956 /** 957 * A reference to the last assessment that was conducted on this patient. 958 * Assessments are often/usually ongoing in nature; a care provider 959 * (practitioner or team) will make new assessments on an ongoing basis as new 960 * data arises or the patient's conditions changes. 961 */ 962 @Child(name = "previous", type = { 963 ClinicalImpression.class }, order = 10, min = 0, max = 1, modifier = false, summary = false) 964 @Description(shortDefinition = "Reference to last assessment", formalDefinition = "A reference to the last assessment that was conducted on this patient. Assessments are often/usually ongoing in nature; a care provider (practitioner or team) will make new assessments on an ongoing basis as new data arises or the patient's conditions changes.") 965 protected Reference previous; 966 967 /** 968 * The actual object that is the target of the reference (A reference to the 969 * last assessment that was conducted on this patient. Assessments are 970 * often/usually ongoing in nature; a care provider (practitioner or team) will 971 * make new assessments on an ongoing basis as new data arises or the patient's 972 * conditions changes.) 973 */ 974 protected ClinicalImpression previousTarget; 975 976 /** 977 * A list of the relevant problems/conditions for a patient. 978 */ 979 @Child(name = "problem", type = { Condition.class, 980 AllergyIntolerance.class }, order = 11, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = true) 981 @Description(shortDefinition = "Relevant impressions of patient state", formalDefinition = "A list of the relevant problems/conditions for a patient.") 982 protected List<Reference> problem; 983 /** 984 * The actual objects that are the target of the reference (A list of the 985 * relevant problems/conditions for a patient.) 986 */ 987 protected List<Resource> problemTarget; 988 989 /** 990 * One or more sets of investigations (signs, symptoms, etc.). The actual 991 * grouping of investigations varies greatly depending on the type and context 992 * of the assessment. These investigations may include data generated during the 993 * assessment process, or data previously generated and recorded that is 994 * pertinent to the outcomes. 995 */ 996 @Child(name = "investigation", type = {}, order = 12, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 997 @Description(shortDefinition = "One or more sets of investigations (signs, symptoms, etc.)", formalDefinition = "One or more sets of investigations (signs, symptoms, etc.). The actual grouping of investigations varies greatly depending on the type and context of the assessment. These investigations may include data generated during the assessment process, or data previously generated and recorded that is pertinent to the outcomes.") 998 protected List<ClinicalImpressionInvestigationComponent> investigation; 999 1000 /** 1001 * Reference to a specific published clinical protocol that was followed during 1002 * this assessment, and/or that provides evidence in support of the diagnosis. 1003 */ 1004 @Child(name = "protocol", type = { 1005 UriType.class }, order = 13, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 1006 @Description(shortDefinition = "Clinical Protocol followed", formalDefinition = "Reference to a specific published clinical protocol that was followed during this assessment, and/or that provides evidence in support of the diagnosis.") 1007 protected List<UriType> protocol; 1008 1009 /** 1010 * A text summary of the investigations and the diagnosis. 1011 */ 1012 @Child(name = "summary", type = { StringType.class }, order = 14, min = 0, max = 1, modifier = false, summary = false) 1013 @Description(shortDefinition = "Summary of the assessment", formalDefinition = "A text summary of the investigations and the diagnosis.") 1014 protected StringType summary; 1015 1016 /** 1017 * Specific findings or diagnoses that were considered likely or relevant to 1018 * ongoing treatment. 1019 */ 1020 @Child(name = "finding", type = {}, order = 15, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 1021 @Description(shortDefinition = "Possible or likely findings and diagnoses", formalDefinition = "Specific findings or diagnoses that were considered likely or relevant to ongoing treatment.") 1022 protected List<ClinicalImpressionFindingComponent> finding; 1023 1024 /** 1025 * Estimate of likely outcome. 1026 */ 1027 @Child(name = "prognosisCodeableConcept", type = { 1028 CodeableConcept.class }, order = 16, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 1029 @Description(shortDefinition = "Estimate of likely outcome", formalDefinition = "Estimate of likely outcome.") 1030 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/clinicalimpression-prognosis") 1031 protected List<CodeableConcept> prognosisCodeableConcept; 1032 1033 /** 1034 * RiskAssessment expressing likely outcome. 1035 */ 1036 @Child(name = "prognosisReference", type = { 1037 RiskAssessment.class }, order = 17, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 1038 @Description(shortDefinition = "RiskAssessment expressing likely outcome", formalDefinition = "RiskAssessment expressing likely outcome.") 1039 protected List<Reference> prognosisReference; 1040 /** 1041 * The actual objects that are the target of the reference (RiskAssessment 1042 * expressing likely outcome.) 1043 */ 1044 protected List<RiskAssessment> prognosisReferenceTarget; 1045 1046 /** 1047 * Information supporting the clinical impression. 1048 */ 1049 @Child(name = "supportingInfo", type = { 1050 Reference.class }, order = 18, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 1051 @Description(shortDefinition = "Information supporting the clinical impression", formalDefinition = "Information supporting the clinical impression.") 1052 protected List<Reference> supportingInfo; 1053 /** 1054 * The actual objects that are the target of the reference (Information 1055 * supporting the clinical impression.) 1056 */ 1057 protected List<Resource> supportingInfoTarget; 1058 1059 /** 1060 * Commentary about the impression, typically recorded after the impression 1061 * itself was made, though supplemental notes by the original author could also 1062 * appear. 1063 */ 1064 @Child(name = "note", type = { 1065 Annotation.class }, order = 19, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 1066 @Description(shortDefinition = "Comments made about the ClinicalImpression", formalDefinition = "Commentary about the impression, typically recorded after the impression itself was made, though supplemental notes by the original author could also appear.") 1067 protected List<Annotation> note; 1068 1069 private static final long serialVersionUID = 1158874575L; 1070 1071 /** 1072 * Constructor 1073 */ 1074 public ClinicalImpression() { 1075 super(); 1076 } 1077 1078 /** 1079 * Constructor 1080 */ 1081 public ClinicalImpression(Enumeration<ClinicalImpressionStatus> status, Reference subject) { 1082 super(); 1083 this.status = status; 1084 this.subject = subject; 1085 } 1086 1087 /** 1088 * @return {@link #identifier} (Business identifiers assigned to this clinical 1089 * impression by the performer or other systems which remain constant as 1090 * the resource is updated and propagates from server to server.) 1091 */ 1092 public List<Identifier> getIdentifier() { 1093 if (this.identifier == null) 1094 this.identifier = new ArrayList<Identifier>(); 1095 return this.identifier; 1096 } 1097 1098 /** 1099 * @return Returns a reference to <code>this</code> for easy method chaining 1100 */ 1101 public ClinicalImpression setIdentifier(List<Identifier> theIdentifier) { 1102 this.identifier = theIdentifier; 1103 return this; 1104 } 1105 1106 public boolean hasIdentifier() { 1107 if (this.identifier == null) 1108 return false; 1109 for (Identifier item : this.identifier) 1110 if (!item.isEmpty()) 1111 return true; 1112 return false; 1113 } 1114 1115 public Identifier addIdentifier() { // 3 1116 Identifier t = new Identifier(); 1117 if (this.identifier == null) 1118 this.identifier = new ArrayList<Identifier>(); 1119 this.identifier.add(t); 1120 return t; 1121 } 1122 1123 public ClinicalImpression addIdentifier(Identifier t) { // 3 1124 if (t == null) 1125 return this; 1126 if (this.identifier == null) 1127 this.identifier = new ArrayList<Identifier>(); 1128 this.identifier.add(t); 1129 return this; 1130 } 1131 1132 /** 1133 * @return The first repetition of repeating field {@link #identifier}, creating 1134 * it if it does not already exist 1135 */ 1136 public Identifier getIdentifierFirstRep() { 1137 if (getIdentifier().isEmpty()) { 1138 addIdentifier(); 1139 } 1140 return getIdentifier().get(0); 1141 } 1142 1143 /** 1144 * @return {@link #status} (Identifies the workflow status of the assessment.). 1145 * This is the underlying object with id, value and extensions. The 1146 * accessor "getStatus" gives direct access to the value 1147 */ 1148 public Enumeration<ClinicalImpressionStatus> getStatusElement() { 1149 if (this.status == null) 1150 if (Configuration.errorOnAutoCreate()) 1151 throw new Error("Attempt to auto-create ClinicalImpression.status"); 1152 else if (Configuration.doAutoCreate()) 1153 this.status = new Enumeration<ClinicalImpressionStatus>(new ClinicalImpressionStatusEnumFactory()); // bb 1154 return this.status; 1155 } 1156 1157 public boolean hasStatusElement() { 1158 return this.status != null && !this.status.isEmpty(); 1159 } 1160 1161 public boolean hasStatus() { 1162 return this.status != null && !this.status.isEmpty(); 1163 } 1164 1165 /** 1166 * @param value {@link #status} (Identifies the workflow status of the 1167 * assessment.). This is the underlying object with id, value and 1168 * extensions. The accessor "getStatus" gives direct access to the 1169 * value 1170 */ 1171 public ClinicalImpression setStatusElement(Enumeration<ClinicalImpressionStatus> value) { 1172 this.status = value; 1173 return this; 1174 } 1175 1176 /** 1177 * @return Identifies the workflow status of the assessment. 1178 */ 1179 public ClinicalImpressionStatus getStatus() { 1180 return this.status == null ? null : this.status.getValue(); 1181 } 1182 1183 /** 1184 * @param value Identifies the workflow status of the assessment. 1185 */ 1186 public ClinicalImpression setStatus(ClinicalImpressionStatus value) { 1187 if (this.status == null) 1188 this.status = new Enumeration<ClinicalImpressionStatus>(new ClinicalImpressionStatusEnumFactory()); 1189 this.status.setValue(value); 1190 return this; 1191 } 1192 1193 /** 1194 * @return {@link #statusReason} (Captures the reason for the current state of 1195 * the ClinicalImpression.) 1196 */ 1197 public CodeableConcept getStatusReason() { 1198 if (this.statusReason == null) 1199 if (Configuration.errorOnAutoCreate()) 1200 throw new Error("Attempt to auto-create ClinicalImpression.statusReason"); 1201 else if (Configuration.doAutoCreate()) 1202 this.statusReason = new CodeableConcept(); // cc 1203 return this.statusReason; 1204 } 1205 1206 public boolean hasStatusReason() { 1207 return this.statusReason != null && !this.statusReason.isEmpty(); 1208 } 1209 1210 /** 1211 * @param value {@link #statusReason} (Captures the reason for the current state 1212 * of the ClinicalImpression.) 1213 */ 1214 public ClinicalImpression setStatusReason(CodeableConcept value) { 1215 this.statusReason = value; 1216 return this; 1217 } 1218 1219 /** 1220 * @return {@link #code} (Categorizes the type of clinical assessment 1221 * performed.) 1222 */ 1223 public CodeableConcept getCode() { 1224 if (this.code == null) 1225 if (Configuration.errorOnAutoCreate()) 1226 throw new Error("Attempt to auto-create ClinicalImpression.code"); 1227 else if (Configuration.doAutoCreate()) 1228 this.code = new CodeableConcept(); // cc 1229 return this.code; 1230 } 1231 1232 public boolean hasCode() { 1233 return this.code != null && !this.code.isEmpty(); 1234 } 1235 1236 /** 1237 * @param value {@link #code} (Categorizes the type of clinical assessment 1238 * performed.) 1239 */ 1240 public ClinicalImpression setCode(CodeableConcept value) { 1241 this.code = value; 1242 return this; 1243 } 1244 1245 /** 1246 * @return {@link #description} (A summary of the context and/or cause of the 1247 * assessment - why / where it was performed, and what patient 1248 * events/status prompted it.). This is the underlying object with id, 1249 * value and extensions. The accessor "getDescription" gives direct 1250 * access to the value 1251 */ 1252 public StringType getDescriptionElement() { 1253 if (this.description == null) 1254 if (Configuration.errorOnAutoCreate()) 1255 throw new Error("Attempt to auto-create ClinicalImpression.description"); 1256 else if (Configuration.doAutoCreate()) 1257 this.description = new StringType(); // bb 1258 return this.description; 1259 } 1260 1261 public boolean hasDescriptionElement() { 1262 return this.description != null && !this.description.isEmpty(); 1263 } 1264 1265 public boolean hasDescription() { 1266 return this.description != null && !this.description.isEmpty(); 1267 } 1268 1269 /** 1270 * @param value {@link #description} (A summary of the context and/or cause of 1271 * the assessment - why / where it was performed, and what patient 1272 * events/status prompted it.). This is the underlying object with 1273 * id, value and extensions. The accessor "getDescription" gives 1274 * direct access to the value 1275 */ 1276 public ClinicalImpression setDescriptionElement(StringType value) { 1277 this.description = value; 1278 return this; 1279 } 1280 1281 /** 1282 * @return A summary of the context and/or cause of the assessment - why / where 1283 * it was performed, and what patient events/status prompted it. 1284 */ 1285 public String getDescription() { 1286 return this.description == null ? null : this.description.getValue(); 1287 } 1288 1289 /** 1290 * @param value A summary of the context and/or cause of the assessment - why / 1291 * where it was performed, and what patient events/status prompted 1292 * it. 1293 */ 1294 public ClinicalImpression setDescription(String value) { 1295 if (Utilities.noString(value)) 1296 this.description = null; 1297 else { 1298 if (this.description == null) 1299 this.description = new StringType(); 1300 this.description.setValue(value); 1301 } 1302 return this; 1303 } 1304 1305 /** 1306 * @return {@link #subject} (The patient or group of individuals assessed as 1307 * part of this record.) 1308 */ 1309 public Reference getSubject() { 1310 if (this.subject == null) 1311 if (Configuration.errorOnAutoCreate()) 1312 throw new Error("Attempt to auto-create ClinicalImpression.subject"); 1313 else if (Configuration.doAutoCreate()) 1314 this.subject = new Reference(); // cc 1315 return this.subject; 1316 } 1317 1318 public boolean hasSubject() { 1319 return this.subject != null && !this.subject.isEmpty(); 1320 } 1321 1322 /** 1323 * @param value {@link #subject} (The patient or group of individuals assessed 1324 * as part of this record.) 1325 */ 1326 public ClinicalImpression setSubject(Reference value) { 1327 this.subject = value; 1328 return this; 1329 } 1330 1331 /** 1332 * @return {@link #subject} The actual object that is the target of the 1333 * reference. The reference library doesn't populate this, but you can 1334 * use it to hold the resource if you resolve it. (The patient or group 1335 * of individuals assessed as part of this record.) 1336 */ 1337 public Resource getSubjectTarget() { 1338 return this.subjectTarget; 1339 } 1340 1341 /** 1342 * @param value {@link #subject} The actual object that is the target of the 1343 * reference. The reference library doesn't use these, but you can 1344 * use it to hold the resource if you resolve it. (The patient or 1345 * group of individuals assessed as part of this record.) 1346 */ 1347 public ClinicalImpression setSubjectTarget(Resource value) { 1348 this.subjectTarget = value; 1349 return this; 1350 } 1351 1352 /** 1353 * @return {@link #encounter} (The Encounter during which this 1354 * ClinicalImpression was created or to which the creation of this 1355 * record is tightly associated.) 1356 */ 1357 public Reference getEncounter() { 1358 if (this.encounter == null) 1359 if (Configuration.errorOnAutoCreate()) 1360 throw new Error("Attempt to auto-create ClinicalImpression.encounter"); 1361 else if (Configuration.doAutoCreate()) 1362 this.encounter = new Reference(); // cc 1363 return this.encounter; 1364 } 1365 1366 public boolean hasEncounter() { 1367 return this.encounter != null && !this.encounter.isEmpty(); 1368 } 1369 1370 /** 1371 * @param value {@link #encounter} (The Encounter during which this 1372 * ClinicalImpression was created or to which the creation of this 1373 * record is tightly associated.) 1374 */ 1375 public ClinicalImpression setEncounter(Reference value) { 1376 this.encounter = value; 1377 return this; 1378 } 1379 1380 /** 1381 * @return {@link #encounter} The actual object that is the target of the 1382 * reference. The reference library doesn't populate this, but you can 1383 * use it to hold the resource if you resolve it. (The Encounter during 1384 * which this ClinicalImpression was created or to which the creation of 1385 * this record is tightly associated.) 1386 */ 1387 public Encounter getEncounterTarget() { 1388 if (this.encounterTarget == null) 1389 if (Configuration.errorOnAutoCreate()) 1390 throw new Error("Attempt to auto-create ClinicalImpression.encounter"); 1391 else if (Configuration.doAutoCreate()) 1392 this.encounterTarget = new Encounter(); // aa 1393 return this.encounterTarget; 1394 } 1395 1396 /** 1397 * @param value {@link #encounter} The actual object that is the target of the 1398 * reference. The reference library doesn't use these, but you can 1399 * use it to hold the resource if you resolve it. (The Encounter 1400 * during which this ClinicalImpression was created or to which the 1401 * creation of this record is tightly associated.) 1402 */ 1403 public ClinicalImpression setEncounterTarget(Encounter value) { 1404 this.encounterTarget = value; 1405 return this; 1406 } 1407 1408 /** 1409 * @return {@link #effective} (The point in time or period over which the 1410 * subject was assessed.) 1411 */ 1412 public Type getEffective() { 1413 return this.effective; 1414 } 1415 1416 /** 1417 * @return {@link #effective} (The point in time or period over which the 1418 * subject was assessed.) 1419 */ 1420 public DateTimeType getEffectiveDateTimeType() throws FHIRException { 1421 if (this.effective == null) 1422 this.effective = new DateTimeType(); 1423 if (!(this.effective instanceof DateTimeType)) 1424 throw new FHIRException("Type mismatch: the type DateTimeType was expected, but " 1425 + this.effective.getClass().getName() + " was encountered"); 1426 return (DateTimeType) this.effective; 1427 } 1428 1429 public boolean hasEffectiveDateTimeType() { 1430 return this != null && this.effective instanceof DateTimeType; 1431 } 1432 1433 /** 1434 * @return {@link #effective} (The point in time or period over which the 1435 * subject was assessed.) 1436 */ 1437 public Period getEffectivePeriod() throws FHIRException { 1438 if (this.effective == null) 1439 this.effective = new Period(); 1440 if (!(this.effective instanceof Period)) 1441 throw new FHIRException("Type mismatch: the type Period was expected, but " + this.effective.getClass().getName() 1442 + " was encountered"); 1443 return (Period) this.effective; 1444 } 1445 1446 public boolean hasEffectivePeriod() { 1447 return this != null && this.effective instanceof Period; 1448 } 1449 1450 public boolean hasEffective() { 1451 return this.effective != null && !this.effective.isEmpty(); 1452 } 1453 1454 /** 1455 * @param value {@link #effective} (The point in time or period over which the 1456 * subject was assessed.) 1457 */ 1458 public ClinicalImpression setEffective(Type value) { 1459 if (value != null && !(value instanceof DateTimeType || value instanceof Period)) 1460 throw new Error("Not the right type for ClinicalImpression.effective[x]: " + value.fhirType()); 1461 this.effective = value; 1462 return this; 1463 } 1464 1465 /** 1466 * @return {@link #date} (Indicates when the documentation of the assessment was 1467 * complete.). This is the underlying object with id, value and 1468 * extensions. The accessor "getDate" gives direct access to the value 1469 */ 1470 public DateTimeType getDateElement() { 1471 if (this.date == null) 1472 if (Configuration.errorOnAutoCreate()) 1473 throw new Error("Attempt to auto-create ClinicalImpression.date"); 1474 else if (Configuration.doAutoCreate()) 1475 this.date = new DateTimeType(); // bb 1476 return this.date; 1477 } 1478 1479 public boolean hasDateElement() { 1480 return this.date != null && !this.date.isEmpty(); 1481 } 1482 1483 public boolean hasDate() { 1484 return this.date != null && !this.date.isEmpty(); 1485 } 1486 1487 /** 1488 * @param value {@link #date} (Indicates when the documentation of the 1489 * assessment was complete.). This is the underlying object with 1490 * id, value and extensions. The accessor "getDate" gives direct 1491 * access to the value 1492 */ 1493 public ClinicalImpression setDateElement(DateTimeType value) { 1494 this.date = value; 1495 return this; 1496 } 1497 1498 /** 1499 * @return Indicates when the documentation of the assessment was complete. 1500 */ 1501 public Date getDate() { 1502 return this.date == null ? null : this.date.getValue(); 1503 } 1504 1505 /** 1506 * @param value Indicates when the documentation of the assessment was complete. 1507 */ 1508 public ClinicalImpression setDate(Date value) { 1509 if (value == null) 1510 this.date = null; 1511 else { 1512 if (this.date == null) 1513 this.date = new DateTimeType(); 1514 this.date.setValue(value); 1515 } 1516 return this; 1517 } 1518 1519 /** 1520 * @return {@link #assessor} (The clinician performing the assessment.) 1521 */ 1522 public Reference getAssessor() { 1523 if (this.assessor == null) 1524 if (Configuration.errorOnAutoCreate()) 1525 throw new Error("Attempt to auto-create ClinicalImpression.assessor"); 1526 else if (Configuration.doAutoCreate()) 1527 this.assessor = new Reference(); // cc 1528 return this.assessor; 1529 } 1530 1531 public boolean hasAssessor() { 1532 return this.assessor != null && !this.assessor.isEmpty(); 1533 } 1534 1535 /** 1536 * @param value {@link #assessor} (The clinician performing the assessment.) 1537 */ 1538 public ClinicalImpression setAssessor(Reference value) { 1539 this.assessor = value; 1540 return this; 1541 } 1542 1543 /** 1544 * @return {@link #assessor} The actual object that is the target of the 1545 * reference. The reference library doesn't populate this, but you can 1546 * use it to hold the resource if you resolve it. (The clinician 1547 * performing the assessment.) 1548 */ 1549 public Resource getAssessorTarget() { 1550 return this.assessorTarget; 1551 } 1552 1553 /** 1554 * @param value {@link #assessor} The actual object that is the target of the 1555 * reference. The reference library doesn't use these, but you can 1556 * use it to hold the resource if you resolve it. (The clinician 1557 * performing the assessment.) 1558 */ 1559 public ClinicalImpression setAssessorTarget(Resource value) { 1560 this.assessorTarget = value; 1561 return this; 1562 } 1563 1564 /** 1565 * @return {@link #previous} (A reference to the last assessment that was 1566 * conducted on this patient. Assessments are often/usually ongoing in 1567 * nature; a care provider (practitioner or team) will make new 1568 * assessments on an ongoing basis as new data arises or the patient's 1569 * conditions changes.) 1570 */ 1571 public Reference getPrevious() { 1572 if (this.previous == null) 1573 if (Configuration.errorOnAutoCreate()) 1574 throw new Error("Attempt to auto-create ClinicalImpression.previous"); 1575 else if (Configuration.doAutoCreate()) 1576 this.previous = new Reference(); // cc 1577 return this.previous; 1578 } 1579 1580 public boolean hasPrevious() { 1581 return this.previous != null && !this.previous.isEmpty(); 1582 } 1583 1584 /** 1585 * @param value {@link #previous} (A reference to the last assessment that was 1586 * conducted on this patient. Assessments are often/usually ongoing 1587 * in nature; a care provider (practitioner or team) will make new 1588 * assessments on an ongoing basis as new data arises or the 1589 * patient's conditions changes.) 1590 */ 1591 public ClinicalImpression setPrevious(Reference value) { 1592 this.previous = value; 1593 return this; 1594 } 1595 1596 /** 1597 * @return {@link #previous} The actual object that is the target of the 1598 * reference. The reference library doesn't populate this, but you can 1599 * use it to hold the resource if you resolve it. (A reference to the 1600 * last assessment that was conducted on this patient. Assessments are 1601 * often/usually ongoing in nature; a care provider (practitioner or 1602 * team) will make new assessments on an ongoing basis as new data 1603 * arises or the patient's conditions changes.) 1604 */ 1605 public ClinicalImpression getPreviousTarget() { 1606 if (this.previousTarget == null) 1607 if (Configuration.errorOnAutoCreate()) 1608 throw new Error("Attempt to auto-create ClinicalImpression.previous"); 1609 else if (Configuration.doAutoCreate()) 1610 this.previousTarget = new ClinicalImpression(); // aa 1611 return this.previousTarget; 1612 } 1613 1614 /** 1615 * @param value {@link #previous} The actual object that is the target of the 1616 * reference. The reference library doesn't use these, but you can 1617 * use it to hold the resource if you resolve it. (A reference to 1618 * the last assessment that was conducted on this patient. 1619 * Assessments are often/usually ongoing in nature; a care provider 1620 * (practitioner or team) will make new assessments on an ongoing 1621 * basis as new data arises or the patient's conditions changes.) 1622 */ 1623 public ClinicalImpression setPreviousTarget(ClinicalImpression value) { 1624 this.previousTarget = value; 1625 return this; 1626 } 1627 1628 /** 1629 * @return {@link #problem} (A list of the relevant problems/conditions for a 1630 * patient.) 1631 */ 1632 public List<Reference> getProblem() { 1633 if (this.problem == null) 1634 this.problem = new ArrayList<Reference>(); 1635 return this.problem; 1636 } 1637 1638 /** 1639 * @return Returns a reference to <code>this</code> for easy method chaining 1640 */ 1641 public ClinicalImpression setProblem(List<Reference> theProblem) { 1642 this.problem = theProblem; 1643 return this; 1644 } 1645 1646 public boolean hasProblem() { 1647 if (this.problem == null) 1648 return false; 1649 for (Reference item : this.problem) 1650 if (!item.isEmpty()) 1651 return true; 1652 return false; 1653 } 1654 1655 public Reference addProblem() { // 3 1656 Reference t = new Reference(); 1657 if (this.problem == null) 1658 this.problem = new ArrayList<Reference>(); 1659 this.problem.add(t); 1660 return t; 1661 } 1662 1663 public ClinicalImpression addProblem(Reference t) { // 3 1664 if (t == null) 1665 return this; 1666 if (this.problem == null) 1667 this.problem = new ArrayList<Reference>(); 1668 this.problem.add(t); 1669 return this; 1670 } 1671 1672 /** 1673 * @return The first repetition of repeating field {@link #problem}, creating it 1674 * if it does not already exist 1675 */ 1676 public Reference getProblemFirstRep() { 1677 if (getProblem().isEmpty()) { 1678 addProblem(); 1679 } 1680 return getProblem().get(0); 1681 } 1682 1683 /** 1684 * @deprecated Use Reference#setResource(IBaseResource) instead 1685 */ 1686 @Deprecated 1687 public List<Resource> getProblemTarget() { 1688 if (this.problemTarget == null) 1689 this.problemTarget = new ArrayList<Resource>(); 1690 return this.problemTarget; 1691 } 1692 1693 /** 1694 * @return {@link #investigation} (One or more sets of investigations (signs, 1695 * symptoms, etc.). The actual grouping of investigations varies greatly 1696 * depending on the type and context of the assessment. These 1697 * investigations may include data generated during the assessment 1698 * process, or data previously generated and recorded that is pertinent 1699 * to the outcomes.) 1700 */ 1701 public List<ClinicalImpressionInvestigationComponent> getInvestigation() { 1702 if (this.investigation == null) 1703 this.investigation = new ArrayList<ClinicalImpressionInvestigationComponent>(); 1704 return this.investigation; 1705 } 1706 1707 /** 1708 * @return Returns a reference to <code>this</code> for easy method chaining 1709 */ 1710 public ClinicalImpression setInvestigation(List<ClinicalImpressionInvestigationComponent> theInvestigation) { 1711 this.investigation = theInvestigation; 1712 return this; 1713 } 1714 1715 public boolean hasInvestigation() { 1716 if (this.investigation == null) 1717 return false; 1718 for (ClinicalImpressionInvestigationComponent item : this.investigation) 1719 if (!item.isEmpty()) 1720 return true; 1721 return false; 1722 } 1723 1724 public ClinicalImpressionInvestigationComponent addInvestigation() { // 3 1725 ClinicalImpressionInvestigationComponent t = new ClinicalImpressionInvestigationComponent(); 1726 if (this.investigation == null) 1727 this.investigation = new ArrayList<ClinicalImpressionInvestigationComponent>(); 1728 this.investigation.add(t); 1729 return t; 1730 } 1731 1732 public ClinicalImpression addInvestigation(ClinicalImpressionInvestigationComponent t) { // 3 1733 if (t == null) 1734 return this; 1735 if (this.investigation == null) 1736 this.investigation = new ArrayList<ClinicalImpressionInvestigationComponent>(); 1737 this.investigation.add(t); 1738 return this; 1739 } 1740 1741 /** 1742 * @return The first repetition of repeating field {@link #investigation}, 1743 * creating it if it does not already exist 1744 */ 1745 public ClinicalImpressionInvestigationComponent getInvestigationFirstRep() { 1746 if (getInvestigation().isEmpty()) { 1747 addInvestigation(); 1748 } 1749 return getInvestigation().get(0); 1750 } 1751 1752 /** 1753 * @return {@link #protocol} (Reference to a specific published clinical 1754 * protocol that was followed during this assessment, and/or that 1755 * provides evidence in support of the diagnosis.) 1756 */ 1757 public List<UriType> getProtocol() { 1758 if (this.protocol == null) 1759 this.protocol = new ArrayList<UriType>(); 1760 return this.protocol; 1761 } 1762 1763 /** 1764 * @return Returns a reference to <code>this</code> for easy method chaining 1765 */ 1766 public ClinicalImpression setProtocol(List<UriType> theProtocol) { 1767 this.protocol = theProtocol; 1768 return this; 1769 } 1770 1771 public boolean hasProtocol() { 1772 if (this.protocol == null) 1773 return false; 1774 for (UriType item : this.protocol) 1775 if (!item.isEmpty()) 1776 return true; 1777 return false; 1778 } 1779 1780 /** 1781 * @return {@link #protocol} (Reference to a specific published clinical 1782 * protocol that was followed during this assessment, and/or that 1783 * provides evidence in support of the diagnosis.) 1784 */ 1785 public UriType addProtocolElement() {// 2 1786 UriType t = new UriType(); 1787 if (this.protocol == null) 1788 this.protocol = new ArrayList<UriType>(); 1789 this.protocol.add(t); 1790 return t; 1791 } 1792 1793 /** 1794 * @param value {@link #protocol} (Reference to a specific published clinical 1795 * protocol that was followed during this assessment, and/or that 1796 * provides evidence in support of the diagnosis.) 1797 */ 1798 public ClinicalImpression addProtocol(String value) { // 1 1799 UriType t = new UriType(); 1800 t.setValue(value); 1801 if (this.protocol == null) 1802 this.protocol = new ArrayList<UriType>(); 1803 this.protocol.add(t); 1804 return this; 1805 } 1806 1807 /** 1808 * @param value {@link #protocol} (Reference to a specific published clinical 1809 * protocol that was followed during this assessment, and/or that 1810 * provides evidence in support of the diagnosis.) 1811 */ 1812 public boolean hasProtocol(String value) { 1813 if (this.protocol == null) 1814 return false; 1815 for (UriType v : this.protocol) 1816 if (v.getValue().equals(value)) // uri 1817 return true; 1818 return false; 1819 } 1820 1821 /** 1822 * @return {@link #summary} (A text summary of the investigations and the 1823 * diagnosis.). This is the underlying object with id, value and 1824 * extensions. The accessor "getSummary" gives direct access to the 1825 * value 1826 */ 1827 public StringType getSummaryElement() { 1828 if (this.summary == null) 1829 if (Configuration.errorOnAutoCreate()) 1830 throw new Error("Attempt to auto-create ClinicalImpression.summary"); 1831 else if (Configuration.doAutoCreate()) 1832 this.summary = new StringType(); // bb 1833 return this.summary; 1834 } 1835 1836 public boolean hasSummaryElement() { 1837 return this.summary != null && !this.summary.isEmpty(); 1838 } 1839 1840 public boolean hasSummary() { 1841 return this.summary != null && !this.summary.isEmpty(); 1842 } 1843 1844 /** 1845 * @param value {@link #summary} (A text summary of the investigations and the 1846 * diagnosis.). This is the underlying object with id, value and 1847 * extensions. The accessor "getSummary" gives direct access to the 1848 * value 1849 */ 1850 public ClinicalImpression setSummaryElement(StringType value) { 1851 this.summary = value; 1852 return this; 1853 } 1854 1855 /** 1856 * @return A text summary of the investigations and the diagnosis. 1857 */ 1858 public String getSummary() { 1859 return this.summary == null ? null : this.summary.getValue(); 1860 } 1861 1862 /** 1863 * @param value A text summary of the investigations and the diagnosis. 1864 */ 1865 public ClinicalImpression setSummary(String value) { 1866 if (Utilities.noString(value)) 1867 this.summary = null; 1868 else { 1869 if (this.summary == null) 1870 this.summary = new StringType(); 1871 this.summary.setValue(value); 1872 } 1873 return this; 1874 } 1875 1876 /** 1877 * @return {@link #finding} (Specific findings or diagnoses that were considered 1878 * likely or relevant to ongoing treatment.) 1879 */ 1880 public List<ClinicalImpressionFindingComponent> getFinding() { 1881 if (this.finding == null) 1882 this.finding = new ArrayList<ClinicalImpressionFindingComponent>(); 1883 return this.finding; 1884 } 1885 1886 /** 1887 * @return Returns a reference to <code>this</code> for easy method chaining 1888 */ 1889 public ClinicalImpression setFinding(List<ClinicalImpressionFindingComponent> theFinding) { 1890 this.finding = theFinding; 1891 return this; 1892 } 1893 1894 public boolean hasFinding() { 1895 if (this.finding == null) 1896 return false; 1897 for (ClinicalImpressionFindingComponent item : this.finding) 1898 if (!item.isEmpty()) 1899 return true; 1900 return false; 1901 } 1902 1903 public ClinicalImpressionFindingComponent addFinding() { // 3 1904 ClinicalImpressionFindingComponent t = new ClinicalImpressionFindingComponent(); 1905 if (this.finding == null) 1906 this.finding = new ArrayList<ClinicalImpressionFindingComponent>(); 1907 this.finding.add(t); 1908 return t; 1909 } 1910 1911 public ClinicalImpression addFinding(ClinicalImpressionFindingComponent t) { // 3 1912 if (t == null) 1913 return this; 1914 if (this.finding == null) 1915 this.finding = new ArrayList<ClinicalImpressionFindingComponent>(); 1916 this.finding.add(t); 1917 return this; 1918 } 1919 1920 /** 1921 * @return The first repetition of repeating field {@link #finding}, creating it 1922 * if it does not already exist 1923 */ 1924 public ClinicalImpressionFindingComponent getFindingFirstRep() { 1925 if (getFinding().isEmpty()) { 1926 addFinding(); 1927 } 1928 return getFinding().get(0); 1929 } 1930 1931 /** 1932 * @return {@link #prognosisCodeableConcept} (Estimate of likely outcome.) 1933 */ 1934 public List<CodeableConcept> getPrognosisCodeableConcept() { 1935 if (this.prognosisCodeableConcept == null) 1936 this.prognosisCodeableConcept = new ArrayList<CodeableConcept>(); 1937 return this.prognosisCodeableConcept; 1938 } 1939 1940 /** 1941 * @return Returns a reference to <code>this</code> for easy method chaining 1942 */ 1943 public ClinicalImpression setPrognosisCodeableConcept(List<CodeableConcept> thePrognosisCodeableConcept) { 1944 this.prognosisCodeableConcept = thePrognosisCodeableConcept; 1945 return this; 1946 } 1947 1948 public boolean hasPrognosisCodeableConcept() { 1949 if (this.prognosisCodeableConcept == null) 1950 return false; 1951 for (CodeableConcept item : this.prognosisCodeableConcept) 1952 if (!item.isEmpty()) 1953 return true; 1954 return false; 1955 } 1956 1957 public CodeableConcept addPrognosisCodeableConcept() { // 3 1958 CodeableConcept t = new CodeableConcept(); 1959 if (this.prognosisCodeableConcept == null) 1960 this.prognosisCodeableConcept = new ArrayList<CodeableConcept>(); 1961 this.prognosisCodeableConcept.add(t); 1962 return t; 1963 } 1964 1965 public ClinicalImpression addPrognosisCodeableConcept(CodeableConcept t) { // 3 1966 if (t == null) 1967 return this; 1968 if (this.prognosisCodeableConcept == null) 1969 this.prognosisCodeableConcept = new ArrayList<CodeableConcept>(); 1970 this.prognosisCodeableConcept.add(t); 1971 return this; 1972 } 1973 1974 /** 1975 * @return The first repetition of repeating field 1976 * {@link #prognosisCodeableConcept}, creating it if it does not already 1977 * exist 1978 */ 1979 public CodeableConcept getPrognosisCodeableConceptFirstRep() { 1980 if (getPrognosisCodeableConcept().isEmpty()) { 1981 addPrognosisCodeableConcept(); 1982 } 1983 return getPrognosisCodeableConcept().get(0); 1984 } 1985 1986 /** 1987 * @return {@link #prognosisReference} (RiskAssessment expressing likely 1988 * outcome.) 1989 */ 1990 public List<Reference> getPrognosisReference() { 1991 if (this.prognosisReference == null) 1992 this.prognosisReference = new ArrayList<Reference>(); 1993 return this.prognosisReference; 1994 } 1995 1996 /** 1997 * @return Returns a reference to <code>this</code> for easy method chaining 1998 */ 1999 public ClinicalImpression setPrognosisReference(List<Reference> thePrognosisReference) { 2000 this.prognosisReference = thePrognosisReference; 2001 return this; 2002 } 2003 2004 public boolean hasPrognosisReference() { 2005 if (this.prognosisReference == null) 2006 return false; 2007 for (Reference item : this.prognosisReference) 2008 if (!item.isEmpty()) 2009 return true; 2010 return false; 2011 } 2012 2013 public Reference addPrognosisReference() { // 3 2014 Reference t = new Reference(); 2015 if (this.prognosisReference == null) 2016 this.prognosisReference = new ArrayList<Reference>(); 2017 this.prognosisReference.add(t); 2018 return t; 2019 } 2020 2021 public ClinicalImpression addPrognosisReference(Reference t) { // 3 2022 if (t == null) 2023 return this; 2024 if (this.prognosisReference == null) 2025 this.prognosisReference = new ArrayList<Reference>(); 2026 this.prognosisReference.add(t); 2027 return this; 2028 } 2029 2030 /** 2031 * @return The first repetition of repeating field {@link #prognosisReference}, 2032 * creating it if it does not already exist 2033 */ 2034 public Reference getPrognosisReferenceFirstRep() { 2035 if (getPrognosisReference().isEmpty()) { 2036 addPrognosisReference(); 2037 } 2038 return getPrognosisReference().get(0); 2039 } 2040 2041 /** 2042 * @deprecated Use Reference#setResource(IBaseResource) instead 2043 */ 2044 @Deprecated 2045 public List<RiskAssessment> getPrognosisReferenceTarget() { 2046 if (this.prognosisReferenceTarget == null) 2047 this.prognosisReferenceTarget = new ArrayList<RiskAssessment>(); 2048 return this.prognosisReferenceTarget; 2049 } 2050 2051 /** 2052 * @deprecated Use Reference#setResource(IBaseResource) instead 2053 */ 2054 @Deprecated 2055 public RiskAssessment addPrognosisReferenceTarget() { 2056 RiskAssessment r = new RiskAssessment(); 2057 if (this.prognosisReferenceTarget == null) 2058 this.prognosisReferenceTarget = new ArrayList<RiskAssessment>(); 2059 this.prognosisReferenceTarget.add(r); 2060 return r; 2061 } 2062 2063 /** 2064 * @return {@link #supportingInfo} (Information supporting the clinical 2065 * impression.) 2066 */ 2067 public List<Reference> getSupportingInfo() { 2068 if (this.supportingInfo == null) 2069 this.supportingInfo = new ArrayList<Reference>(); 2070 return this.supportingInfo; 2071 } 2072 2073 /** 2074 * @return Returns a reference to <code>this</code> for easy method chaining 2075 */ 2076 public ClinicalImpression setSupportingInfo(List<Reference> theSupportingInfo) { 2077 this.supportingInfo = theSupportingInfo; 2078 return this; 2079 } 2080 2081 public boolean hasSupportingInfo() { 2082 if (this.supportingInfo == null) 2083 return false; 2084 for (Reference item : this.supportingInfo) 2085 if (!item.isEmpty()) 2086 return true; 2087 return false; 2088 } 2089 2090 public Reference addSupportingInfo() { // 3 2091 Reference t = new Reference(); 2092 if (this.supportingInfo == null) 2093 this.supportingInfo = new ArrayList<Reference>(); 2094 this.supportingInfo.add(t); 2095 return t; 2096 } 2097 2098 public ClinicalImpression addSupportingInfo(Reference t) { // 3 2099 if (t == null) 2100 return this; 2101 if (this.supportingInfo == null) 2102 this.supportingInfo = new ArrayList<Reference>(); 2103 this.supportingInfo.add(t); 2104 return this; 2105 } 2106 2107 /** 2108 * @return The first repetition of repeating field {@link #supportingInfo}, 2109 * creating it if it does not already exist 2110 */ 2111 public Reference getSupportingInfoFirstRep() { 2112 if (getSupportingInfo().isEmpty()) { 2113 addSupportingInfo(); 2114 } 2115 return getSupportingInfo().get(0); 2116 } 2117 2118 /** 2119 * @deprecated Use Reference#setResource(IBaseResource) instead 2120 */ 2121 @Deprecated 2122 public List<Resource> getSupportingInfoTarget() { 2123 if (this.supportingInfoTarget == null) 2124 this.supportingInfoTarget = new ArrayList<Resource>(); 2125 return this.supportingInfoTarget; 2126 } 2127 2128 /** 2129 * @return {@link #note} (Commentary about the impression, typically recorded 2130 * after the impression itself was made, though supplemental notes by 2131 * the original author could also appear.) 2132 */ 2133 public List<Annotation> getNote() { 2134 if (this.note == null) 2135 this.note = new ArrayList<Annotation>(); 2136 return this.note; 2137 } 2138 2139 /** 2140 * @return Returns a reference to <code>this</code> for easy method chaining 2141 */ 2142 public ClinicalImpression setNote(List<Annotation> theNote) { 2143 this.note = theNote; 2144 return this; 2145 } 2146 2147 public boolean hasNote() { 2148 if (this.note == null) 2149 return false; 2150 for (Annotation item : this.note) 2151 if (!item.isEmpty()) 2152 return true; 2153 return false; 2154 } 2155 2156 public Annotation addNote() { // 3 2157 Annotation t = new Annotation(); 2158 if (this.note == null) 2159 this.note = new ArrayList<Annotation>(); 2160 this.note.add(t); 2161 return t; 2162 } 2163 2164 public ClinicalImpression addNote(Annotation t) { // 3 2165 if (t == null) 2166 return this; 2167 if (this.note == null) 2168 this.note = new ArrayList<Annotation>(); 2169 this.note.add(t); 2170 return this; 2171 } 2172 2173 /** 2174 * @return The first repetition of repeating field {@link #note}, creating it if 2175 * it does not already exist 2176 */ 2177 public Annotation getNoteFirstRep() { 2178 if (getNote().isEmpty()) { 2179 addNote(); 2180 } 2181 return getNote().get(0); 2182 } 2183 2184 protected void listChildren(List<Property> children) { 2185 super.listChildren(children); 2186 children.add(new Property("identifier", "Identifier", 2187 "Business identifiers assigned to this clinical impression by the performer or other systems which remain constant as the resource is updated and propagates from server to server.", 2188 0, java.lang.Integer.MAX_VALUE, identifier)); 2189 children.add(new Property("status", "code", "Identifies the workflow status of the assessment.", 0, 1, status)); 2190 children.add(new Property("statusReason", "CodeableConcept", 2191 "Captures the reason for the current state of the ClinicalImpression.", 0, 1, statusReason)); 2192 children.add( 2193 new Property("code", "CodeableConcept", "Categorizes the type of clinical assessment performed.", 0, 1, code)); 2194 children.add(new Property("description", "string", 2195 "A summary of the context and/or cause of the assessment - why / where it was performed, and what patient events/status prompted it.", 2196 0, 1, description)); 2197 children.add(new Property("subject", "Reference(Patient|Group)", 2198 "The patient or group of individuals assessed as part of this record.", 0, 1, subject)); 2199 children.add(new Property("encounter", "Reference(Encounter)", 2200 "The Encounter during which this ClinicalImpression was created or to which the creation of this record is tightly associated.", 2201 0, 1, encounter)); 2202 children.add(new Property("effective[x]", "dateTime|Period", 2203 "The point in time or period over which the subject was assessed.", 0, 1, effective)); 2204 children.add(new Property("date", "dateTime", "Indicates when the documentation of the assessment was complete.", 0, 2205 1, date)); 2206 children.add(new Property("assessor", "Reference(Practitioner|PractitionerRole)", 2207 "The clinician performing the assessment.", 0, 1, assessor)); 2208 children.add(new Property("previous", "Reference(ClinicalImpression)", 2209 "A reference to the last assessment that was conducted on this patient. Assessments are often/usually ongoing in nature; a care provider (practitioner or team) will make new assessments on an ongoing basis as new data arises or the patient's conditions changes.", 2210 0, 1, previous)); 2211 children.add(new Property("problem", "Reference(Condition|AllergyIntolerance)", 2212 "A list of the relevant problems/conditions for a patient.", 0, java.lang.Integer.MAX_VALUE, problem)); 2213 children.add(new Property("investigation", "", 2214 "One or more sets of investigations (signs, symptoms, etc.). The actual grouping of investigations varies greatly depending on the type and context of the assessment. These investigations may include data generated during the assessment process, or data previously generated and recorded that is pertinent to the outcomes.", 2215 0, java.lang.Integer.MAX_VALUE, investigation)); 2216 children.add(new Property("protocol", "uri", 2217 "Reference to a specific published clinical protocol that was followed during this assessment, and/or that provides evidence in support of the diagnosis.", 2218 0, java.lang.Integer.MAX_VALUE, protocol)); 2219 children.add( 2220 new Property("summary", "string", "A text summary of the investigations and the diagnosis.", 0, 1, summary)); 2221 children.add(new Property("finding", "", 2222 "Specific findings or diagnoses that were considered likely or relevant to ongoing treatment.", 0, 2223 java.lang.Integer.MAX_VALUE, finding)); 2224 children.add(new Property("prognosisCodeableConcept", "CodeableConcept", "Estimate of likely outcome.", 0, 2225 java.lang.Integer.MAX_VALUE, prognosisCodeableConcept)); 2226 children.add(new Property("prognosisReference", "Reference(RiskAssessment)", 2227 "RiskAssessment expressing likely outcome.", 0, java.lang.Integer.MAX_VALUE, prognosisReference)); 2228 children.add(new Property("supportingInfo", "Reference(Any)", "Information supporting the clinical impression.", 0, 2229 java.lang.Integer.MAX_VALUE, supportingInfo)); 2230 children.add(new Property("note", "Annotation", 2231 "Commentary about the impression, typically recorded after the impression itself was made, though supplemental notes by the original author could also appear.", 2232 0, java.lang.Integer.MAX_VALUE, note)); 2233 } 2234 2235 @Override 2236 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 2237 switch (_hash) { 2238 case -1618432855: 2239 /* identifier */ return new Property("identifier", "Identifier", 2240 "Business identifiers assigned to this clinical impression by the performer or other systems which remain constant as the resource is updated and propagates from server to server.", 2241 0, java.lang.Integer.MAX_VALUE, identifier); 2242 case -892481550: 2243 /* status */ return new Property("status", "code", "Identifies the workflow status of the assessment.", 0, 1, 2244 status); 2245 case 2051346646: 2246 /* statusReason */ return new Property("statusReason", "CodeableConcept", 2247 "Captures the reason for the current state of the ClinicalImpression.", 0, 1, statusReason); 2248 case 3059181: 2249 /* code */ return new Property("code", "CodeableConcept", 2250 "Categorizes the type of clinical assessment performed.", 0, 1, code); 2251 case -1724546052: 2252 /* description */ return new Property("description", "string", 2253 "A summary of the context and/or cause of the assessment - why / where it was performed, and what patient events/status prompted it.", 2254 0, 1, description); 2255 case -1867885268: 2256 /* subject */ return new Property("subject", "Reference(Patient|Group)", 2257 "The patient or group of individuals assessed as part of this record.", 0, 1, subject); 2258 case 1524132147: 2259 /* encounter */ return new Property("encounter", "Reference(Encounter)", 2260 "The Encounter during which this ClinicalImpression was created or to which the creation of this record is tightly associated.", 2261 0, 1, encounter); 2262 case 247104889: 2263 /* effective[x] */ return new Property("effective[x]", "dateTime|Period", 2264 "The point in time or period over which the subject was assessed.", 0, 1, effective); 2265 case -1468651097: 2266 /* effective */ return new Property("effective[x]", "dateTime|Period", 2267 "The point in time or period over which the subject was assessed.", 0, 1, effective); 2268 case -275306910: 2269 /* effectiveDateTime */ return new Property("effective[x]", "dateTime|Period", 2270 "The point in time or period over which the subject was assessed.", 0, 1, effective); 2271 case -403934648: 2272 /* effectivePeriod */ return new Property("effective[x]", "dateTime|Period", 2273 "The point in time or period over which the subject was assessed.", 0, 1, effective); 2274 case 3076014: 2275 /* date */ return new Property("date", "dateTime", 2276 "Indicates when the documentation of the assessment was complete.", 0, 1, date); 2277 case -373213113: 2278 /* assessor */ return new Property("assessor", "Reference(Practitioner|PractitionerRole)", 2279 "The clinician performing the assessment.", 0, 1, assessor); 2280 case -1273775369: 2281 /* previous */ return new Property("previous", "Reference(ClinicalImpression)", 2282 "A reference to the last assessment that was conducted on this patient. Assessments are often/usually ongoing in nature; a care provider (practitioner or team) will make new assessments on an ongoing basis as new data arises or the patient's conditions changes.", 2283 0, 1, previous); 2284 case -309542241: 2285 /* problem */ return new Property("problem", "Reference(Condition|AllergyIntolerance)", 2286 "A list of the relevant problems/conditions for a patient.", 0, java.lang.Integer.MAX_VALUE, problem); 2287 case 956015362: 2288 /* investigation */ return new Property("investigation", "", 2289 "One or more sets of investigations (signs, symptoms, etc.). The actual grouping of investigations varies greatly depending on the type and context of the assessment. These investigations may include data generated during the assessment process, or data previously generated and recorded that is pertinent to the outcomes.", 2290 0, java.lang.Integer.MAX_VALUE, investigation); 2291 case -989163880: 2292 /* protocol */ return new Property("protocol", "uri", 2293 "Reference to a specific published clinical protocol that was followed during this assessment, and/or that provides evidence in support of the diagnosis.", 2294 0, java.lang.Integer.MAX_VALUE, protocol); 2295 case -1857640538: 2296 /* summary */ return new Property("summary", "string", "A text summary of the investigations and the diagnosis.", 2297 0, 1, summary); 2298 case -853173367: 2299 /* finding */ return new Property("finding", "", 2300 "Specific findings or diagnoses that were considered likely or relevant to ongoing treatment.", 0, 2301 java.lang.Integer.MAX_VALUE, finding); 2302 case -676337953: 2303 /* prognosisCodeableConcept */ return new Property("prognosisCodeableConcept", "CodeableConcept", 2304 "Estimate of likely outcome.", 0, java.lang.Integer.MAX_VALUE, prognosisCodeableConcept); 2305 case -587137783: 2306 /* prognosisReference */ return new Property("prognosisReference", "Reference(RiskAssessment)", 2307 "RiskAssessment expressing likely outcome.", 0, java.lang.Integer.MAX_VALUE, prognosisReference); 2308 case 1922406657: 2309 /* supportingInfo */ return new Property("supportingInfo", "Reference(Any)", 2310 "Information supporting the clinical impression.", 0, java.lang.Integer.MAX_VALUE, supportingInfo); 2311 case 3387378: 2312 /* note */ return new Property("note", "Annotation", 2313 "Commentary about the impression, typically recorded after the impression itself was made, though supplemental notes by the original author could also appear.", 2314 0, java.lang.Integer.MAX_VALUE, note); 2315 default: 2316 return super.getNamedProperty(_hash, _name, _checkValid); 2317 } 2318 2319 } 2320 2321 @Override 2322 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2323 switch (hash) { 2324 case -1618432855: 2325 /* identifier */ return this.identifier == null ? new Base[0] 2326 : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 2327 case -892481550: 2328 /* status */ return this.status == null ? new Base[0] : new Base[] { this.status }; // Enumeration<ClinicalImpressionStatus> 2329 case 2051346646: 2330 /* statusReason */ return this.statusReason == null ? new Base[0] : new Base[] { this.statusReason }; // CodeableConcept 2331 case 3059181: 2332 /* code */ return this.code == null ? new Base[0] : new Base[] { this.code }; // CodeableConcept 2333 case -1724546052: 2334 /* description */ return this.description == null ? new Base[0] : new Base[] { this.description }; // StringType 2335 case -1867885268: 2336 /* subject */ return this.subject == null ? new Base[0] : new Base[] { this.subject }; // Reference 2337 case 1524132147: 2338 /* encounter */ return this.encounter == null ? new Base[0] : new Base[] { this.encounter }; // Reference 2339 case -1468651097: 2340 /* effective */ return this.effective == null ? new Base[0] : new Base[] { this.effective }; // Type 2341 case 3076014: 2342 /* date */ return this.date == null ? new Base[0] : new Base[] { this.date }; // DateTimeType 2343 case -373213113: 2344 /* assessor */ return this.assessor == null ? new Base[0] : new Base[] { this.assessor }; // Reference 2345 case -1273775369: 2346 /* previous */ return this.previous == null ? new Base[0] : new Base[] { this.previous }; // Reference 2347 case -309542241: 2348 /* problem */ return this.problem == null ? new Base[0] : this.problem.toArray(new Base[this.problem.size()]); // Reference 2349 case 956015362: 2350 /* investigation */ return this.investigation == null ? new Base[0] 2351 : this.investigation.toArray(new Base[this.investigation.size()]); // ClinicalImpressionInvestigationComponent 2352 case -989163880: 2353 /* protocol */ return this.protocol == null ? new Base[0] : this.protocol.toArray(new Base[this.protocol.size()]); // UriType 2354 case -1857640538: 2355 /* summary */ return this.summary == null ? new Base[0] : new Base[] { this.summary }; // StringType 2356 case -853173367: 2357 /* finding */ return this.finding == null ? new Base[0] : this.finding.toArray(new Base[this.finding.size()]); // ClinicalImpressionFindingComponent 2358 case -676337953: 2359 /* prognosisCodeableConcept */ return this.prognosisCodeableConcept == null ? new Base[0] 2360 : this.prognosisCodeableConcept.toArray(new Base[this.prognosisCodeableConcept.size()]); // CodeableConcept 2361 case -587137783: 2362 /* prognosisReference */ return this.prognosisReference == null ? new Base[0] 2363 : this.prognosisReference.toArray(new Base[this.prognosisReference.size()]); // Reference 2364 case 1922406657: 2365 /* supportingInfo */ return this.supportingInfo == null ? new Base[0] 2366 : this.supportingInfo.toArray(new Base[this.supportingInfo.size()]); // Reference 2367 case 3387378: 2368 /* note */ return this.note == null ? new Base[0] : this.note.toArray(new Base[this.note.size()]); // Annotation 2369 default: 2370 return super.getProperty(hash, name, checkValid); 2371 } 2372 2373 } 2374 2375 @Override 2376 public Base setProperty(int hash, String name, Base value) throws FHIRException { 2377 switch (hash) { 2378 case -1618432855: // identifier 2379 this.getIdentifier().add(castToIdentifier(value)); // Identifier 2380 return value; 2381 case -892481550: // status 2382 value = new ClinicalImpressionStatusEnumFactory().fromType(castToCode(value)); 2383 this.status = (Enumeration) value; // Enumeration<ClinicalImpressionStatus> 2384 return value; 2385 case 2051346646: // statusReason 2386 this.statusReason = castToCodeableConcept(value); // CodeableConcept 2387 return value; 2388 case 3059181: // code 2389 this.code = castToCodeableConcept(value); // CodeableConcept 2390 return value; 2391 case -1724546052: // description 2392 this.description = castToString(value); // StringType 2393 return value; 2394 case -1867885268: // subject 2395 this.subject = castToReference(value); // Reference 2396 return value; 2397 case 1524132147: // encounter 2398 this.encounter = castToReference(value); // Reference 2399 return value; 2400 case -1468651097: // effective 2401 this.effective = castToType(value); // Type 2402 return value; 2403 case 3076014: // date 2404 this.date = castToDateTime(value); // DateTimeType 2405 return value; 2406 case -373213113: // assessor 2407 this.assessor = castToReference(value); // Reference 2408 return value; 2409 case -1273775369: // previous 2410 this.previous = castToReference(value); // Reference 2411 return value; 2412 case -309542241: // problem 2413 this.getProblem().add(castToReference(value)); // Reference 2414 return value; 2415 case 956015362: // investigation 2416 this.getInvestigation().add((ClinicalImpressionInvestigationComponent) value); // ClinicalImpressionInvestigationComponent 2417 return value; 2418 case -989163880: // protocol 2419 this.getProtocol().add(castToUri(value)); // UriType 2420 return value; 2421 case -1857640538: // summary 2422 this.summary = castToString(value); // StringType 2423 return value; 2424 case -853173367: // finding 2425 this.getFinding().add((ClinicalImpressionFindingComponent) value); // ClinicalImpressionFindingComponent 2426 return value; 2427 case -676337953: // prognosisCodeableConcept 2428 this.getPrognosisCodeableConcept().add(castToCodeableConcept(value)); // CodeableConcept 2429 return value; 2430 case -587137783: // prognosisReference 2431 this.getPrognosisReference().add(castToReference(value)); // Reference 2432 return value; 2433 case 1922406657: // supportingInfo 2434 this.getSupportingInfo().add(castToReference(value)); // Reference 2435 return value; 2436 case 3387378: // note 2437 this.getNote().add(castToAnnotation(value)); // Annotation 2438 return value; 2439 default: 2440 return super.setProperty(hash, name, value); 2441 } 2442 2443 } 2444 2445 @Override 2446 public Base setProperty(String name, Base value) throws FHIRException { 2447 if (name.equals("identifier")) { 2448 this.getIdentifier().add(castToIdentifier(value)); 2449 } else if (name.equals("status")) { 2450 value = new ClinicalImpressionStatusEnumFactory().fromType(castToCode(value)); 2451 this.status = (Enumeration) value; // Enumeration<ClinicalImpressionStatus> 2452 } else if (name.equals("statusReason")) { 2453 this.statusReason = castToCodeableConcept(value); // CodeableConcept 2454 } else if (name.equals("code")) { 2455 this.code = castToCodeableConcept(value); // CodeableConcept 2456 } else if (name.equals("description")) { 2457 this.description = castToString(value); // StringType 2458 } else if (name.equals("subject")) { 2459 this.subject = castToReference(value); // Reference 2460 } else if (name.equals("encounter")) { 2461 this.encounter = castToReference(value); // Reference 2462 } else if (name.equals("effective[x]")) { 2463 this.effective = castToType(value); // Type 2464 } else if (name.equals("date")) { 2465 this.date = castToDateTime(value); // DateTimeType 2466 } else if (name.equals("assessor")) { 2467 this.assessor = castToReference(value); // Reference 2468 } else if (name.equals("previous")) { 2469 this.previous = castToReference(value); // Reference 2470 } else if (name.equals("problem")) { 2471 this.getProblem().add(castToReference(value)); 2472 } else if (name.equals("investigation")) { 2473 this.getInvestigation().add((ClinicalImpressionInvestigationComponent) value); 2474 } else if (name.equals("protocol")) { 2475 this.getProtocol().add(castToUri(value)); 2476 } else if (name.equals("summary")) { 2477 this.summary = castToString(value); // StringType 2478 } else if (name.equals("finding")) { 2479 this.getFinding().add((ClinicalImpressionFindingComponent) value); 2480 } else if (name.equals("prognosisCodeableConcept")) { 2481 this.getPrognosisCodeableConcept().add(castToCodeableConcept(value)); 2482 } else if (name.equals("prognosisReference")) { 2483 this.getPrognosisReference().add(castToReference(value)); 2484 } else if (name.equals("supportingInfo")) { 2485 this.getSupportingInfo().add(castToReference(value)); 2486 } else if (name.equals("note")) { 2487 this.getNote().add(castToAnnotation(value)); 2488 } else 2489 return super.setProperty(name, value); 2490 return value; 2491 } 2492 2493 @Override 2494 public void removeChild(String name, Base value) throws FHIRException { 2495 if (name.equals("identifier")) { 2496 this.getIdentifier().remove(castToIdentifier(value)); 2497 } else if (name.equals("status")) { 2498 this.status = null; 2499 } else if (name.equals("statusReason")) { 2500 this.statusReason = null; 2501 } else if (name.equals("code")) { 2502 this.code = null; 2503 } else if (name.equals("description")) { 2504 this.description = null; 2505 } else if (name.equals("subject")) { 2506 this.subject = null; 2507 } else if (name.equals("encounter")) { 2508 this.encounter = null; 2509 } else if (name.equals("effective[x]")) { 2510 this.effective = null; 2511 } else if (name.equals("date")) { 2512 this.date = null; 2513 } else if (name.equals("assessor")) { 2514 this.assessor = null; 2515 } else if (name.equals("previous")) { 2516 this.previous = null; 2517 } else if (name.equals("problem")) { 2518 this.getProblem().remove(castToReference(value)); 2519 } else if (name.equals("investigation")) { 2520 this.getInvestigation().remove((ClinicalImpressionInvestigationComponent) value); 2521 } else if (name.equals("protocol")) { 2522 this.getProtocol().remove(castToUri(value)); 2523 } else if (name.equals("summary")) { 2524 this.summary = null; 2525 } else if (name.equals("finding")) { 2526 this.getFinding().remove((ClinicalImpressionFindingComponent) value); 2527 } else if (name.equals("prognosisCodeableConcept")) { 2528 this.getPrognosisCodeableConcept().remove(castToCodeableConcept(value)); 2529 } else if (name.equals("prognosisReference")) { 2530 this.getPrognosisReference().remove(castToReference(value)); 2531 } else if (name.equals("supportingInfo")) { 2532 this.getSupportingInfo().remove(castToReference(value)); 2533 } else if (name.equals("note")) { 2534 this.getNote().remove(castToAnnotation(value)); 2535 } else 2536 super.removeChild(name, value); 2537 2538 } 2539 2540 @Override 2541 public Base makeProperty(int hash, String name) throws FHIRException { 2542 switch (hash) { 2543 case -1618432855: 2544 return addIdentifier(); 2545 case -892481550: 2546 return getStatusElement(); 2547 case 2051346646: 2548 return getStatusReason(); 2549 case 3059181: 2550 return getCode(); 2551 case -1724546052: 2552 return getDescriptionElement(); 2553 case -1867885268: 2554 return getSubject(); 2555 case 1524132147: 2556 return getEncounter(); 2557 case 247104889: 2558 return getEffective(); 2559 case -1468651097: 2560 return getEffective(); 2561 case 3076014: 2562 return getDateElement(); 2563 case -373213113: 2564 return getAssessor(); 2565 case -1273775369: 2566 return getPrevious(); 2567 case -309542241: 2568 return addProblem(); 2569 case 956015362: 2570 return addInvestigation(); 2571 case -989163880: 2572 return addProtocolElement(); 2573 case -1857640538: 2574 return getSummaryElement(); 2575 case -853173367: 2576 return addFinding(); 2577 case -676337953: 2578 return addPrognosisCodeableConcept(); 2579 case -587137783: 2580 return addPrognosisReference(); 2581 case 1922406657: 2582 return addSupportingInfo(); 2583 case 3387378: 2584 return addNote(); 2585 default: 2586 return super.makeProperty(hash, name); 2587 } 2588 2589 } 2590 2591 @Override 2592 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2593 switch (hash) { 2594 case -1618432855: 2595 /* identifier */ return new String[] { "Identifier" }; 2596 case -892481550: 2597 /* status */ return new String[] { "code" }; 2598 case 2051346646: 2599 /* statusReason */ return new String[] { "CodeableConcept" }; 2600 case 3059181: 2601 /* code */ return new String[] { "CodeableConcept" }; 2602 case -1724546052: 2603 /* description */ return new String[] { "string" }; 2604 case -1867885268: 2605 /* subject */ return new String[] { "Reference" }; 2606 case 1524132147: 2607 /* encounter */ return new String[] { "Reference" }; 2608 case -1468651097: 2609 /* effective */ return new String[] { "dateTime", "Period" }; 2610 case 3076014: 2611 /* date */ return new String[] { "dateTime" }; 2612 case -373213113: 2613 /* assessor */ return new String[] { "Reference" }; 2614 case -1273775369: 2615 /* previous */ return new String[] { "Reference" }; 2616 case -309542241: 2617 /* problem */ return new String[] { "Reference" }; 2618 case 956015362: 2619 /* investigation */ return new String[] {}; 2620 case -989163880: 2621 /* protocol */ return new String[] { "uri" }; 2622 case -1857640538: 2623 /* summary */ return new String[] { "string" }; 2624 case -853173367: 2625 /* finding */ return new String[] {}; 2626 case -676337953: 2627 /* prognosisCodeableConcept */ return new String[] { "CodeableConcept" }; 2628 case -587137783: 2629 /* prognosisReference */ return new String[] { "Reference" }; 2630 case 1922406657: 2631 /* supportingInfo */ return new String[] { "Reference" }; 2632 case 3387378: 2633 /* note */ return new String[] { "Annotation" }; 2634 default: 2635 return super.getTypesForProperty(hash, name); 2636 } 2637 2638 } 2639 2640 @Override 2641 public Base addChild(String name) throws FHIRException { 2642 if (name.equals("identifier")) { 2643 return addIdentifier(); 2644 } else if (name.equals("status")) { 2645 throw new FHIRException("Cannot call addChild on a singleton property ClinicalImpression.status"); 2646 } else if (name.equals("statusReason")) { 2647 this.statusReason = new CodeableConcept(); 2648 return this.statusReason; 2649 } else if (name.equals("code")) { 2650 this.code = new CodeableConcept(); 2651 return this.code; 2652 } else if (name.equals("description")) { 2653 throw new FHIRException("Cannot call addChild on a singleton property ClinicalImpression.description"); 2654 } else if (name.equals("subject")) { 2655 this.subject = new Reference(); 2656 return this.subject; 2657 } else if (name.equals("encounter")) { 2658 this.encounter = new Reference(); 2659 return this.encounter; 2660 } else if (name.equals("effectiveDateTime")) { 2661 this.effective = new DateTimeType(); 2662 return this.effective; 2663 } else if (name.equals("effectivePeriod")) { 2664 this.effective = new Period(); 2665 return this.effective; 2666 } else if (name.equals("date")) { 2667 throw new FHIRException("Cannot call addChild on a singleton property ClinicalImpression.date"); 2668 } else if (name.equals("assessor")) { 2669 this.assessor = new Reference(); 2670 return this.assessor; 2671 } else if (name.equals("previous")) { 2672 this.previous = new Reference(); 2673 return this.previous; 2674 } else if (name.equals("problem")) { 2675 return addProblem(); 2676 } else if (name.equals("investigation")) { 2677 return addInvestigation(); 2678 } else if (name.equals("protocol")) { 2679 throw new FHIRException("Cannot call addChild on a singleton property ClinicalImpression.protocol"); 2680 } else if (name.equals("summary")) { 2681 throw new FHIRException("Cannot call addChild on a singleton property ClinicalImpression.summary"); 2682 } else if (name.equals("finding")) { 2683 return addFinding(); 2684 } else if (name.equals("prognosisCodeableConcept")) { 2685 return addPrognosisCodeableConcept(); 2686 } else if (name.equals("prognosisReference")) { 2687 return addPrognosisReference(); 2688 } else if (name.equals("supportingInfo")) { 2689 return addSupportingInfo(); 2690 } else if (name.equals("note")) { 2691 return addNote(); 2692 } else 2693 return super.addChild(name); 2694 } 2695 2696 public String fhirType() { 2697 return "ClinicalImpression"; 2698 2699 } 2700 2701 public ClinicalImpression copy() { 2702 ClinicalImpression dst = new ClinicalImpression(); 2703 copyValues(dst); 2704 return dst; 2705 } 2706 2707 public void copyValues(ClinicalImpression dst) { 2708 super.copyValues(dst); 2709 if (identifier != null) { 2710 dst.identifier = new ArrayList<Identifier>(); 2711 for (Identifier i : identifier) 2712 dst.identifier.add(i.copy()); 2713 } 2714 ; 2715 dst.status = status == null ? null : status.copy(); 2716 dst.statusReason = statusReason == null ? null : statusReason.copy(); 2717 dst.code = code == null ? null : code.copy(); 2718 dst.description = description == null ? null : description.copy(); 2719 dst.subject = subject == null ? null : subject.copy(); 2720 dst.encounter = encounter == null ? null : encounter.copy(); 2721 dst.effective = effective == null ? null : effective.copy(); 2722 dst.date = date == null ? null : date.copy(); 2723 dst.assessor = assessor == null ? null : assessor.copy(); 2724 dst.previous = previous == null ? null : previous.copy(); 2725 if (problem != null) { 2726 dst.problem = new ArrayList<Reference>(); 2727 for (Reference i : problem) 2728 dst.problem.add(i.copy()); 2729 } 2730 ; 2731 if (investigation != null) { 2732 dst.investigation = new ArrayList<ClinicalImpressionInvestigationComponent>(); 2733 for (ClinicalImpressionInvestigationComponent i : investigation) 2734 dst.investigation.add(i.copy()); 2735 } 2736 ; 2737 if (protocol != null) { 2738 dst.protocol = new ArrayList<UriType>(); 2739 for (UriType i : protocol) 2740 dst.protocol.add(i.copy()); 2741 } 2742 ; 2743 dst.summary = summary == null ? null : summary.copy(); 2744 if (finding != null) { 2745 dst.finding = new ArrayList<ClinicalImpressionFindingComponent>(); 2746 for (ClinicalImpressionFindingComponent i : finding) 2747 dst.finding.add(i.copy()); 2748 } 2749 ; 2750 if (prognosisCodeableConcept != null) { 2751 dst.prognosisCodeableConcept = new ArrayList<CodeableConcept>(); 2752 for (CodeableConcept i : prognosisCodeableConcept) 2753 dst.prognosisCodeableConcept.add(i.copy()); 2754 } 2755 ; 2756 if (prognosisReference != null) { 2757 dst.prognosisReference = new ArrayList<Reference>(); 2758 for (Reference i : prognosisReference) 2759 dst.prognosisReference.add(i.copy()); 2760 } 2761 ; 2762 if (supportingInfo != null) { 2763 dst.supportingInfo = new ArrayList<Reference>(); 2764 for (Reference i : supportingInfo) 2765 dst.supportingInfo.add(i.copy()); 2766 } 2767 ; 2768 if (note != null) { 2769 dst.note = new ArrayList<Annotation>(); 2770 for (Annotation i : note) 2771 dst.note.add(i.copy()); 2772 } 2773 ; 2774 } 2775 2776 protected ClinicalImpression typedCopy() { 2777 return copy(); 2778 } 2779 2780 @Override 2781 public boolean equalsDeep(Base other_) { 2782 if (!super.equalsDeep(other_)) 2783 return false; 2784 if (!(other_ instanceof ClinicalImpression)) 2785 return false; 2786 ClinicalImpression o = (ClinicalImpression) other_; 2787 return compareDeep(identifier, o.identifier, true) && compareDeep(status, o.status, true) 2788 && compareDeep(statusReason, o.statusReason, true) && compareDeep(code, o.code, true) 2789 && compareDeep(description, o.description, true) && compareDeep(subject, o.subject, true) 2790 && compareDeep(encounter, o.encounter, true) && compareDeep(effective, o.effective, true) 2791 && compareDeep(date, o.date, true) && compareDeep(assessor, o.assessor, true) 2792 && compareDeep(previous, o.previous, true) && compareDeep(problem, o.problem, true) 2793 && compareDeep(investigation, o.investigation, true) && compareDeep(protocol, o.protocol, true) 2794 && compareDeep(summary, o.summary, true) && compareDeep(finding, o.finding, true) 2795 && compareDeep(prognosisCodeableConcept, o.prognosisCodeableConcept, true) 2796 && compareDeep(prognosisReference, o.prognosisReference, true) 2797 && compareDeep(supportingInfo, o.supportingInfo, true) && compareDeep(note, o.note, true); 2798 } 2799 2800 @Override 2801 public boolean equalsShallow(Base other_) { 2802 if (!super.equalsShallow(other_)) 2803 return false; 2804 if (!(other_ instanceof ClinicalImpression)) 2805 return false; 2806 ClinicalImpression o = (ClinicalImpression) other_; 2807 return compareValues(status, o.status, true) && compareValues(description, o.description, true) 2808 && compareValues(date, o.date, true) && compareValues(protocol, o.protocol, true) 2809 && compareValues(summary, o.summary, true); 2810 } 2811 2812 public boolean isEmpty() { 2813 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, status, statusReason, code, description, 2814 subject, encounter, effective, date, assessor, previous, problem, investigation, protocol, summary, finding, 2815 prognosisCodeableConcept, prognosisReference, supportingInfo, note); 2816 } 2817 2818 @Override 2819 public ResourceType getResourceType() { 2820 return ResourceType.ClinicalImpression; 2821 } 2822 2823 /** 2824 * Search parameter: <b>date</b> 2825 * <p> 2826 * Description: <b>When the assessment was documented</b><br> 2827 * Type: <b>date</b><br> 2828 * Path: <b>ClinicalImpression.date</b><br> 2829 * </p> 2830 */ 2831 @SearchParamDefinition(name = "date", path = "ClinicalImpression.date", description = "When the assessment was documented", type = "date") 2832 public static final String SP_DATE = "date"; 2833 /** 2834 * <b>Fluent Client</b> search parameter constant for <b>date</b> 2835 * <p> 2836 * Description: <b>When the assessment was documented</b><br> 2837 * Type: <b>date</b><br> 2838 * Path: <b>ClinicalImpression.date</b><br> 2839 * </p> 2840 */ 2841 public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam( 2842 SP_DATE); 2843 2844 /** 2845 * Search parameter: <b>identifier</b> 2846 * <p> 2847 * Description: <b>Business identifier</b><br> 2848 * Type: <b>token</b><br> 2849 * Path: <b>ClinicalImpression.identifier</b><br> 2850 * </p> 2851 */ 2852 @SearchParamDefinition(name = "identifier", path = "ClinicalImpression.identifier", description = "Business identifier", type = "token") 2853 public static final String SP_IDENTIFIER = "identifier"; 2854 /** 2855 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 2856 * <p> 2857 * Description: <b>Business identifier</b><br> 2858 * Type: <b>token</b><br> 2859 * Path: <b>ClinicalImpression.identifier</b><br> 2860 * </p> 2861 */ 2862 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam( 2863 SP_IDENTIFIER); 2864 2865 /** 2866 * Search parameter: <b>previous</b> 2867 * <p> 2868 * Description: <b>Reference to last assessment</b><br> 2869 * Type: <b>reference</b><br> 2870 * Path: <b>ClinicalImpression.previous</b><br> 2871 * </p> 2872 */ 2873 @SearchParamDefinition(name = "previous", path = "ClinicalImpression.previous", description = "Reference to last assessment", type = "reference", target = { 2874 ClinicalImpression.class }) 2875 public static final String SP_PREVIOUS = "previous"; 2876 /** 2877 * <b>Fluent Client</b> search parameter constant for <b>previous</b> 2878 * <p> 2879 * Description: <b>Reference to last assessment</b><br> 2880 * Type: <b>reference</b><br> 2881 * Path: <b>ClinicalImpression.previous</b><br> 2882 * </p> 2883 */ 2884 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PREVIOUS = new ca.uhn.fhir.rest.gclient.ReferenceClientParam( 2885 SP_PREVIOUS); 2886 2887 /** 2888 * Constant for fluent queries to be used to add include statements. Specifies 2889 * the path value of "<b>ClinicalImpression:previous</b>". 2890 */ 2891 public static final ca.uhn.fhir.model.api.Include INCLUDE_PREVIOUS = new ca.uhn.fhir.model.api.Include( 2892 "ClinicalImpression:previous").toLocked(); 2893 2894 /** 2895 * Search parameter: <b>finding-code</b> 2896 * <p> 2897 * Description: <b>What was found</b><br> 2898 * Type: <b>token</b><br> 2899 * Path: <b>ClinicalImpression.finding.itemCodeableConcept</b><br> 2900 * </p> 2901 */ 2902 @SearchParamDefinition(name = "finding-code", path = "ClinicalImpression.finding.itemCodeableConcept", description = "What was found", type = "token") 2903 public static final String SP_FINDING_CODE = "finding-code"; 2904 /** 2905 * <b>Fluent Client</b> search parameter constant for <b>finding-code</b> 2906 * <p> 2907 * Description: <b>What was found</b><br> 2908 * Type: <b>token</b><br> 2909 * Path: <b>ClinicalImpression.finding.itemCodeableConcept</b><br> 2910 * </p> 2911 */ 2912 public static final ca.uhn.fhir.rest.gclient.TokenClientParam FINDING_CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam( 2913 SP_FINDING_CODE); 2914 2915 /** 2916 * Search parameter: <b>assessor</b> 2917 * <p> 2918 * Description: <b>The clinician performing the assessment</b><br> 2919 * Type: <b>reference</b><br> 2920 * Path: <b>ClinicalImpression.assessor</b><br> 2921 * </p> 2922 */ 2923 @SearchParamDefinition(name = "assessor", path = "ClinicalImpression.assessor", description = "The clinician performing the assessment", type = "reference", providesMembershipIn = { 2924 @ca.uhn.fhir.model.api.annotation.Compartment(name = "Practitioner") }, target = { Practitioner.class, 2925 PractitionerRole.class }) 2926 public static final String SP_ASSESSOR = "assessor"; 2927 /** 2928 * <b>Fluent Client</b> search parameter constant for <b>assessor</b> 2929 * <p> 2930 * Description: <b>The clinician performing the assessment</b><br> 2931 * Type: <b>reference</b><br> 2932 * Path: <b>ClinicalImpression.assessor</b><br> 2933 * </p> 2934 */ 2935 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ASSESSOR = new ca.uhn.fhir.rest.gclient.ReferenceClientParam( 2936 SP_ASSESSOR); 2937 2938 /** 2939 * Constant for fluent queries to be used to add include statements. Specifies 2940 * the path value of "<b>ClinicalImpression:assessor</b>". 2941 */ 2942 public static final ca.uhn.fhir.model.api.Include INCLUDE_ASSESSOR = new ca.uhn.fhir.model.api.Include( 2943 "ClinicalImpression:assessor").toLocked(); 2944 2945 /** 2946 * Search parameter: <b>subject</b> 2947 * <p> 2948 * Description: <b>Patient or group assessed</b><br> 2949 * Type: <b>reference</b><br> 2950 * Path: <b>ClinicalImpression.subject</b><br> 2951 * </p> 2952 */ 2953 @SearchParamDefinition(name = "subject", path = "ClinicalImpression.subject", description = "Patient or group assessed", type = "reference", providesMembershipIn = { 2954 @ca.uhn.fhir.model.api.annotation.Compartment(name = "Patient") }, target = { Group.class, Patient.class }) 2955 public static final String SP_SUBJECT = "subject"; 2956 /** 2957 * <b>Fluent Client</b> search parameter constant for <b>subject</b> 2958 * <p> 2959 * Description: <b>Patient or group assessed</b><br> 2960 * Type: <b>reference</b><br> 2961 * Path: <b>ClinicalImpression.subject</b><br> 2962 * </p> 2963 */ 2964 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SUBJECT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam( 2965 SP_SUBJECT); 2966 2967 /** 2968 * Constant for fluent queries to be used to add include statements. Specifies 2969 * the path value of "<b>ClinicalImpression:subject</b>". 2970 */ 2971 public static final ca.uhn.fhir.model.api.Include INCLUDE_SUBJECT = new ca.uhn.fhir.model.api.Include( 2972 "ClinicalImpression:subject").toLocked(); 2973 2974 /** 2975 * Search parameter: <b>encounter</b> 2976 * <p> 2977 * Description: <b>Encounter created as part of</b><br> 2978 * Type: <b>reference</b><br> 2979 * Path: <b>ClinicalImpression.encounter</b><br> 2980 * </p> 2981 */ 2982 @SearchParamDefinition(name = "encounter", path = "ClinicalImpression.encounter", description = "Encounter created as part of", type = "reference", providesMembershipIn = { 2983 @ca.uhn.fhir.model.api.annotation.Compartment(name = "Encounter") }, target = { Encounter.class }) 2984 public static final String SP_ENCOUNTER = "encounter"; 2985 /** 2986 * <b>Fluent Client</b> search parameter constant for <b>encounter</b> 2987 * <p> 2988 * Description: <b>Encounter created as part of</b><br> 2989 * Type: <b>reference</b><br> 2990 * Path: <b>ClinicalImpression.encounter</b><br> 2991 * </p> 2992 */ 2993 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ENCOUNTER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam( 2994 SP_ENCOUNTER); 2995 2996 /** 2997 * Constant for fluent queries to be used to add include statements. Specifies 2998 * the path value of "<b>ClinicalImpression:encounter</b>". 2999 */ 3000 public static final ca.uhn.fhir.model.api.Include INCLUDE_ENCOUNTER = new ca.uhn.fhir.model.api.Include( 3001 "ClinicalImpression:encounter").toLocked(); 3002 3003 /** 3004 * Search parameter: <b>finding-ref</b> 3005 * <p> 3006 * Description: <b>What was found</b><br> 3007 * Type: <b>reference</b><br> 3008 * Path: <b>ClinicalImpression.finding.itemReference</b><br> 3009 * </p> 3010 */ 3011 @SearchParamDefinition(name = "finding-ref", path = "ClinicalImpression.finding.itemReference", description = "What was found", type = "reference", target = { 3012 Condition.class, Media.class, Observation.class }) 3013 public static final String SP_FINDING_REF = "finding-ref"; 3014 /** 3015 * <b>Fluent Client</b> search parameter constant for <b>finding-ref</b> 3016 * <p> 3017 * Description: <b>What was found</b><br> 3018 * Type: <b>reference</b><br> 3019 * Path: <b>ClinicalImpression.finding.itemReference</b><br> 3020 * </p> 3021 */ 3022 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam FINDING_REF = new ca.uhn.fhir.rest.gclient.ReferenceClientParam( 3023 SP_FINDING_REF); 3024 3025 /** 3026 * Constant for fluent queries to be used to add include statements. Specifies 3027 * the path value of "<b>ClinicalImpression:finding-ref</b>". 3028 */ 3029 public static final ca.uhn.fhir.model.api.Include INCLUDE_FINDING_REF = new ca.uhn.fhir.model.api.Include( 3030 "ClinicalImpression:finding-ref").toLocked(); 3031 3032 /** 3033 * Search parameter: <b>problem</b> 3034 * <p> 3035 * Description: <b>Relevant impressions of patient state</b><br> 3036 * Type: <b>reference</b><br> 3037 * Path: <b>ClinicalImpression.problem</b><br> 3038 * </p> 3039 */ 3040 @SearchParamDefinition(name = "problem", path = "ClinicalImpression.problem", description = "Relevant impressions of patient state", type = "reference", target = { 3041 AllergyIntolerance.class, Condition.class }) 3042 public static final String SP_PROBLEM = "problem"; 3043 /** 3044 * <b>Fluent Client</b> search parameter constant for <b>problem</b> 3045 * <p> 3046 * Description: <b>Relevant impressions of patient state</b><br> 3047 * Type: <b>reference</b><br> 3048 * Path: <b>ClinicalImpression.problem</b><br> 3049 * </p> 3050 */ 3051 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PROBLEM = new ca.uhn.fhir.rest.gclient.ReferenceClientParam( 3052 SP_PROBLEM); 3053 3054 /** 3055 * Constant for fluent queries to be used to add include statements. Specifies 3056 * the path value of "<b>ClinicalImpression:problem</b>". 3057 */ 3058 public static final ca.uhn.fhir.model.api.Include INCLUDE_PROBLEM = new ca.uhn.fhir.model.api.Include( 3059 "ClinicalImpression:problem").toLocked(); 3060 3061 /** 3062 * Search parameter: <b>patient</b> 3063 * <p> 3064 * Description: <b>Patient or group assessed</b><br> 3065 * Type: <b>reference</b><br> 3066 * Path: <b>ClinicalImpression.subject</b><br> 3067 * </p> 3068 */ 3069 @SearchParamDefinition(name = "patient", path = "ClinicalImpression.subject.where(resolve() is Patient)", description = "Patient or group assessed", type = "reference", target = { 3070 Patient.class }) 3071 public static final String SP_PATIENT = "patient"; 3072 /** 3073 * <b>Fluent Client</b> search parameter constant for <b>patient</b> 3074 * <p> 3075 * Description: <b>Patient or group assessed</b><br> 3076 * Type: <b>reference</b><br> 3077 * Path: <b>ClinicalImpression.subject</b><br> 3078 * </p> 3079 */ 3080 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam( 3081 SP_PATIENT); 3082 3083 /** 3084 * Constant for fluent queries to be used to add include statements. Specifies 3085 * the path value of "<b>ClinicalImpression:patient</b>". 3086 */ 3087 public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include( 3088 "ClinicalImpression:patient").toLocked(); 3089 3090 /** 3091 * Search parameter: <b>supporting-info</b> 3092 * <p> 3093 * Description: <b>Information supporting the clinical impression</b><br> 3094 * Type: <b>reference</b><br> 3095 * Path: <b>ClinicalImpression.supportingInfo</b><br> 3096 * </p> 3097 */ 3098 @SearchParamDefinition(name = "supporting-info", path = "ClinicalImpression.supportingInfo", description = "Information supporting the clinical impression", type = "reference") 3099 public static final String SP_SUPPORTING_INFO = "supporting-info"; 3100 /** 3101 * <b>Fluent Client</b> search parameter constant for <b>supporting-info</b> 3102 * <p> 3103 * Description: <b>Information supporting the clinical impression</b><br> 3104 * Type: <b>reference</b><br> 3105 * Path: <b>ClinicalImpression.supportingInfo</b><br> 3106 * </p> 3107 */ 3108 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SUPPORTING_INFO = new ca.uhn.fhir.rest.gclient.ReferenceClientParam( 3109 SP_SUPPORTING_INFO); 3110 3111 /** 3112 * Constant for fluent queries to be used to add include statements. Specifies 3113 * the path value of "<b>ClinicalImpression:supporting-info</b>". 3114 */ 3115 public static final ca.uhn.fhir.model.api.Include INCLUDE_SUPPORTING_INFO = new ca.uhn.fhir.model.api.Include( 3116 "ClinicalImpression:supporting-info").toLocked(); 3117 3118 /** 3119 * Search parameter: <b>investigation</b> 3120 * <p> 3121 * Description: <b>Record of a specific investigation</b><br> 3122 * Type: <b>reference</b><br> 3123 * Path: <b>ClinicalImpression.investigation.item</b><br> 3124 * </p> 3125 */ 3126 @SearchParamDefinition(name = "investigation", path = "ClinicalImpression.investigation.item", description = "Record of a specific investigation", type = "reference", target = { 3127 DiagnosticReport.class, FamilyMemberHistory.class, ImagingStudy.class, Media.class, Observation.class, 3128 QuestionnaireResponse.class, RiskAssessment.class }) 3129 public static final String SP_INVESTIGATION = "investigation"; 3130 /** 3131 * <b>Fluent Client</b> search parameter constant for <b>investigation</b> 3132 * <p> 3133 * Description: <b>Record of a specific investigation</b><br> 3134 * Type: <b>reference</b><br> 3135 * Path: <b>ClinicalImpression.investigation.item</b><br> 3136 * </p> 3137 */ 3138 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam INVESTIGATION = new ca.uhn.fhir.rest.gclient.ReferenceClientParam( 3139 SP_INVESTIGATION); 3140 3141 /** 3142 * Constant for fluent queries to be used to add include statements. Specifies 3143 * the path value of "<b>ClinicalImpression:investigation</b>". 3144 */ 3145 public static final ca.uhn.fhir.model.api.Include INCLUDE_INVESTIGATION = new ca.uhn.fhir.model.api.Include( 3146 "ClinicalImpression:investigation").toLocked(); 3147 3148 /** 3149 * Search parameter: <b>status</b> 3150 * <p> 3151 * Description: <b>in-progress | completed | entered-in-error</b><br> 3152 * Type: <b>token</b><br> 3153 * Path: <b>ClinicalImpression.status</b><br> 3154 * </p> 3155 */ 3156 @SearchParamDefinition(name = "status", path = "ClinicalImpression.status", description = "in-progress | completed | entered-in-error", type = "token") 3157 public static final String SP_STATUS = "status"; 3158 /** 3159 * <b>Fluent Client</b> search parameter constant for <b>status</b> 3160 * <p> 3161 * Description: <b>in-progress | completed | entered-in-error</b><br> 3162 * Type: <b>token</b><br> 3163 * Path: <b>ClinicalImpression.status</b><br> 3164 * </p> 3165 */ 3166 public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam( 3167 SP_STATUS); 3168 3169}