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