
001package org.hl7.fhir.r5.model; 002 003 004/* 005 Copyright (c) 2011+, HL7, Inc. 006 All rights reserved. 007 008 Redistribution and use in source and binary forms, with or without modification, \ 009 are permitted provided that the following conditions are met: 010 011 * Redistributions of source code must retain the above copyright notice, this \ 012 list of conditions and the following disclaimer. 013 * Redistributions in binary form must reproduce the above copyright notice, \ 014 this list of conditions and the following disclaimer in the documentation \ 015 and/or other materials provided with the distribution. 016 * Neither the name of HL7 nor the names of its contributors may be used to 017 endorse or promote products derived from this software without specific 018 prior written permission. 019 020 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \ 021 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \ 022 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \ 023 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \ 024 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT \ 025 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR \ 026 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, \ 027 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) \ 028 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE \ 029 POSSIBILITY OF SUCH DAMAGE. 030 */ 031 032// Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot 033 034import java.util.ArrayList; 035import java.util.Date; 036import java.util.List; 037import org.hl7.fhir.utilities.Utilities; 038import org.hl7.fhir.r5.model.Enumerations.*; 039import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 040import org.hl7.fhir.exceptions.FHIRException; 041import org.hl7.fhir.instance.model.api.ICompositeType; 042import ca.uhn.fhir.model.api.annotation.ResourceDef; 043import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 044import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 045import ca.uhn.fhir.model.api.annotation.Child; 046import ca.uhn.fhir.model.api.annotation.ChildOrder; 047import ca.uhn.fhir.model.api.annotation.Description; 048import ca.uhn.fhir.model.api.annotation.Block; 049 050/** 051 * Indicates an actual or potential clinical issue with or between one or more active or proposed clinical actions for a patient; e.g. Drug-drug interaction, Ineffective treatment frequency, Procedure-condition conflict, etc. 052 */ 053@ResourceDef(name="DetectedIssue", profile="http://hl7.org/fhir/StructureDefinition/DetectedIssue") 054public class DetectedIssue extends DomainResource { 055 056 public enum DetectedIssueSeverity { 057 /** 058 * Indicates the issue may be life-threatening or has the potential to cause permanent injury. 059 */ 060 HIGH, 061 /** 062 * Indicates the issue may result in noticeable adverse consequences but is unlikely to be life-threatening or cause permanent injury. 063 */ 064 MODERATE, 065 /** 066 * Indicates the issue may result in some adverse consequences but is unlikely to substantially affect the situation of the subject. 067 */ 068 LOW, 069 /** 070 * added to help the parsers with the generic types 071 */ 072 NULL; 073 public static DetectedIssueSeverity fromCode(String codeString) throws FHIRException { 074 if (codeString == null || "".equals(codeString)) 075 return null; 076 if ("high".equals(codeString)) 077 return HIGH; 078 if ("moderate".equals(codeString)) 079 return MODERATE; 080 if ("low".equals(codeString)) 081 return LOW; 082 if (Configuration.isAcceptInvalidEnums()) 083 return null; 084 else 085 throw new FHIRException("Unknown DetectedIssueSeverity code '"+codeString+"'"); 086 } 087 public String toCode() { 088 switch (this) { 089 case HIGH: return "high"; 090 case MODERATE: return "moderate"; 091 case LOW: return "low"; 092 case NULL: return null; 093 default: return "?"; 094 } 095 } 096 public String getSystem() { 097 switch (this) { 098 case HIGH: return "http://hl7.org/fhir/detectedissue-severity"; 099 case MODERATE: return "http://hl7.org/fhir/detectedissue-severity"; 100 case LOW: return "http://hl7.org/fhir/detectedissue-severity"; 101 case NULL: return null; 102 default: return "?"; 103 } 104 } 105 public String getDefinition() { 106 switch (this) { 107 case HIGH: return "Indicates the issue may be life-threatening or has the potential to cause permanent injury."; 108 case MODERATE: return "Indicates the issue may result in noticeable adverse consequences but is unlikely to be life-threatening or cause permanent injury."; 109 case LOW: return "Indicates the issue may result in some adverse consequences but is unlikely to substantially affect the situation of the subject."; 110 case NULL: return null; 111 default: return "?"; 112 } 113 } 114 public String getDisplay() { 115 switch (this) { 116 case HIGH: return "High"; 117 case MODERATE: return "Moderate"; 118 case LOW: return "Low"; 119 case NULL: return null; 120 default: return "?"; 121 } 122 } 123 } 124 125 public static class DetectedIssueSeverityEnumFactory implements EnumFactory<DetectedIssueSeverity> { 126 public DetectedIssueSeverity fromCode(String codeString) throws IllegalArgumentException { 127 if (codeString == null || "".equals(codeString)) 128 if (codeString == null || "".equals(codeString)) 129 return null; 130 if ("high".equals(codeString)) 131 return DetectedIssueSeverity.HIGH; 132 if ("moderate".equals(codeString)) 133 return DetectedIssueSeverity.MODERATE; 134 if ("low".equals(codeString)) 135 return DetectedIssueSeverity.LOW; 136 throw new IllegalArgumentException("Unknown DetectedIssueSeverity code '"+codeString+"'"); 137 } 138 public Enumeration<DetectedIssueSeverity> fromType(Base code) throws FHIRException { 139 if (code == null) 140 return null; 141 if (code.isEmpty()) 142 return new Enumeration<DetectedIssueSeverity>(this); 143 String codeString = ((PrimitiveType) code).asStringValue(); 144 if (codeString == null || "".equals(codeString)) 145 return null; 146 if ("high".equals(codeString)) 147 return new Enumeration<DetectedIssueSeverity>(this, DetectedIssueSeverity.HIGH); 148 if ("moderate".equals(codeString)) 149 return new Enumeration<DetectedIssueSeverity>(this, DetectedIssueSeverity.MODERATE); 150 if ("low".equals(codeString)) 151 return new Enumeration<DetectedIssueSeverity>(this, DetectedIssueSeverity.LOW); 152 throw new FHIRException("Unknown DetectedIssueSeverity code '"+codeString+"'"); 153 } 154 public String toCode(DetectedIssueSeverity code) { 155 if (code == DetectedIssueSeverity.HIGH) 156 return "high"; 157 if (code == DetectedIssueSeverity.MODERATE) 158 return "moderate"; 159 if (code == DetectedIssueSeverity.LOW) 160 return "low"; 161 return "?"; 162 } 163 public String toSystem(DetectedIssueSeverity code) { 164 return code.getSystem(); 165 } 166 } 167 168 public enum DetectedIssueStatus { 169 /** 170 * This is an initial or interim observation: data may be incomplete or unverified. 171 */ 172 PRELIMINARY, 173 /** 174 * The observation is complete and there are no further actions needed. Additional information such \"released\", \"signed\", etc would be represented using [Provenance](provenance.html) which provides not only the act but also the actors and dates and other related data. These act states would be associated with an observation status of `preliminary` until they are all completed and then a status of `final` would be applied. 175 */ 176 FINAL, 177 /** 178 * The observation has been withdrawn following previous final release. This electronic record should never have existed, though it is possible that real-world decisions were based on it. (If real-world activity has occurred, the status should be \"cancelled\" rather than \"entered-in-error\".). 179 */ 180 ENTEREDINERROR, 181 /** 182 * Indicates the detected issue has been mitigated 183 */ 184 MITIGATED, 185 /** 186 * added to help the parsers with the generic types 187 */ 188 NULL; 189 public static DetectedIssueStatus fromCode(String codeString) throws FHIRException { 190 if (codeString == null || "".equals(codeString)) 191 return null; 192 if ("preliminary".equals(codeString)) 193 return PRELIMINARY; 194 if ("final".equals(codeString)) 195 return FINAL; 196 if ("entered-in-error".equals(codeString)) 197 return ENTEREDINERROR; 198 if ("mitigated".equals(codeString)) 199 return MITIGATED; 200 if (Configuration.isAcceptInvalidEnums()) 201 return null; 202 else 203 throw new FHIRException("Unknown DetectedIssueStatus code '"+codeString+"'"); 204 } 205 public String toCode() { 206 switch (this) { 207 case PRELIMINARY: return "preliminary"; 208 case FINAL: return "final"; 209 case ENTEREDINERROR: return "entered-in-error"; 210 case MITIGATED: return "mitigated"; 211 case NULL: return null; 212 default: return "?"; 213 } 214 } 215 public String getSystem() { 216 switch (this) { 217 case PRELIMINARY: return "http://hl7.org/fhir/observation-status"; 218 case FINAL: return "http://hl7.org/fhir/observation-status"; 219 case ENTEREDINERROR: return "http://hl7.org/fhir/observation-status"; 220 case MITIGATED: return "http://hl7.org/fhir/detectedissue-status"; 221 case NULL: return null; 222 default: return "?"; 223 } 224 } 225 public String getDefinition() { 226 switch (this) { 227 case PRELIMINARY: return "This is an initial or interim observation: data may be incomplete or unverified."; 228 case FINAL: return "The observation is complete and there are no further actions needed. Additional information such \"released\", \"signed\", etc would be represented using [Provenance](provenance.html) which provides not only the act but also the actors and dates and other related data. These act states would be associated with an observation status of `preliminary` until they are all completed and then a status of `final` would be applied."; 229 case ENTEREDINERROR: return "The observation has been withdrawn following previous final release. This electronic record should never have existed, though it is possible that real-world decisions were based on it. (If real-world activity has occurred, the status should be \"cancelled\" rather than \"entered-in-error\".)."; 230 case MITIGATED: return "Indicates the detected issue has been mitigated"; 231 case NULL: return null; 232 default: return "?"; 233 } 234 } 235 public String getDisplay() { 236 switch (this) { 237 case PRELIMINARY: return "Preliminary"; 238 case FINAL: return "Final"; 239 case ENTEREDINERROR: return "Entered in Error"; 240 case MITIGATED: return "Mitigated"; 241 case NULL: return null; 242 default: return "?"; 243 } 244 } 245 } 246 247 public static class DetectedIssueStatusEnumFactory implements EnumFactory<DetectedIssueStatus> { 248 public DetectedIssueStatus fromCode(String codeString) throws IllegalArgumentException { 249 if (codeString == null || "".equals(codeString)) 250 if (codeString == null || "".equals(codeString)) 251 return null; 252 if ("preliminary".equals(codeString)) 253 return DetectedIssueStatus.PRELIMINARY; 254 if ("final".equals(codeString)) 255 return DetectedIssueStatus.FINAL; 256 if ("entered-in-error".equals(codeString)) 257 return DetectedIssueStatus.ENTEREDINERROR; 258 if ("mitigated".equals(codeString)) 259 return DetectedIssueStatus.MITIGATED; 260 throw new IllegalArgumentException("Unknown DetectedIssueStatus code '"+codeString+"'"); 261 } 262 public Enumeration<DetectedIssueStatus> fromType(Base code) throws FHIRException { 263 if (code == null) 264 return null; 265 if (code.isEmpty()) 266 return new Enumeration<DetectedIssueStatus>(this); 267 String codeString = ((PrimitiveType) code).asStringValue(); 268 if (codeString == null || "".equals(codeString)) 269 return null; 270 if ("preliminary".equals(codeString)) 271 return new Enumeration<DetectedIssueStatus>(this, DetectedIssueStatus.PRELIMINARY); 272 if ("final".equals(codeString)) 273 return new Enumeration<DetectedIssueStatus>(this, DetectedIssueStatus.FINAL); 274 if ("entered-in-error".equals(codeString)) 275 return new Enumeration<DetectedIssueStatus>(this, DetectedIssueStatus.ENTEREDINERROR); 276 if ("mitigated".equals(codeString)) 277 return new Enumeration<DetectedIssueStatus>(this, DetectedIssueStatus.MITIGATED); 278 throw new FHIRException("Unknown DetectedIssueStatus code '"+codeString+"'"); 279 } 280 public String toCode(DetectedIssueStatus code) { 281 if (code == DetectedIssueStatus.PRELIMINARY) 282 return "preliminary"; 283 if (code == DetectedIssueStatus.FINAL) 284 return "final"; 285 if (code == DetectedIssueStatus.ENTEREDINERROR) 286 return "entered-in-error"; 287 if (code == DetectedIssueStatus.MITIGATED) 288 return "mitigated"; 289 return "?"; 290 } 291 public String toSystem(DetectedIssueStatus code) { 292 return code.getSystem(); 293 } 294 } 295 296 @Block() 297 public static class DetectedIssueEvidenceComponent extends BackboneElement implements IBaseBackboneElement { 298 /** 299 * A manifestation that led to the recording of this detected issue. 300 */ 301 @Child(name = "code", type = {CodeableConcept.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 302 @Description(shortDefinition="Manifestation", formalDefinition="A manifestation that led to the recording of this detected issue." ) 303 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/manifestation-or-symptom") 304 protected List<CodeableConcept> code; 305 306 /** 307 * Links to resources that constitute evidence for the detected issue such as a GuidanceResponse or MeasureReport. 308 */ 309 @Child(name = "detail", type = {Reference.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 310 @Description(shortDefinition="Supporting information", formalDefinition="Links to resources that constitute evidence for the detected issue such as a GuidanceResponse or MeasureReport." ) 311 protected List<Reference> detail; 312 313 private static final long serialVersionUID = -672691342L; 314 315 /** 316 * Constructor 317 */ 318 public DetectedIssueEvidenceComponent() { 319 super(); 320 } 321 322 /** 323 * @return {@link #code} (A manifestation that led to the recording of this detected issue.) 324 */ 325 public List<CodeableConcept> getCode() { 326 if (this.code == null) 327 this.code = new ArrayList<CodeableConcept>(); 328 return this.code; 329 } 330 331 /** 332 * @return Returns a reference to <code>this</code> for easy method chaining 333 */ 334 public DetectedIssueEvidenceComponent setCode(List<CodeableConcept> theCode) { 335 this.code = theCode; 336 return this; 337 } 338 339 public boolean hasCode() { 340 if (this.code == null) 341 return false; 342 for (CodeableConcept item : this.code) 343 if (!item.isEmpty()) 344 return true; 345 return false; 346 } 347 348 public CodeableConcept addCode() { //3 349 CodeableConcept t = new CodeableConcept(); 350 if (this.code == null) 351 this.code = new ArrayList<CodeableConcept>(); 352 this.code.add(t); 353 return t; 354 } 355 356 public DetectedIssueEvidenceComponent addCode(CodeableConcept t) { //3 357 if (t == null) 358 return this; 359 if (this.code == null) 360 this.code = new ArrayList<CodeableConcept>(); 361 this.code.add(t); 362 return this; 363 } 364 365 /** 366 * @return The first repetition of repeating field {@link #code}, creating it if it does not already exist {3} 367 */ 368 public CodeableConcept getCodeFirstRep() { 369 if (getCode().isEmpty()) { 370 addCode(); 371 } 372 return getCode().get(0); 373 } 374 375 /** 376 * @return {@link #detail} (Links to resources that constitute evidence for the detected issue such as a GuidanceResponse or MeasureReport.) 377 */ 378 public List<Reference> getDetail() { 379 if (this.detail == null) 380 this.detail = new ArrayList<Reference>(); 381 return this.detail; 382 } 383 384 /** 385 * @return Returns a reference to <code>this</code> for easy method chaining 386 */ 387 public DetectedIssueEvidenceComponent setDetail(List<Reference> theDetail) { 388 this.detail = theDetail; 389 return this; 390 } 391 392 public boolean hasDetail() { 393 if (this.detail == null) 394 return false; 395 for (Reference item : this.detail) 396 if (!item.isEmpty()) 397 return true; 398 return false; 399 } 400 401 public Reference addDetail() { //3 402 Reference t = new Reference(); 403 if (this.detail == null) 404 this.detail = new ArrayList<Reference>(); 405 this.detail.add(t); 406 return t; 407 } 408 409 public DetectedIssueEvidenceComponent addDetail(Reference t) { //3 410 if (t == null) 411 return this; 412 if (this.detail == null) 413 this.detail = new ArrayList<Reference>(); 414 this.detail.add(t); 415 return this; 416 } 417 418 /** 419 * @return The first repetition of repeating field {@link #detail}, creating it if it does not already exist {3} 420 */ 421 public Reference getDetailFirstRep() { 422 if (getDetail().isEmpty()) { 423 addDetail(); 424 } 425 return getDetail().get(0); 426 } 427 428 protected void listChildren(List<Property> children) { 429 super.listChildren(children); 430 children.add(new Property("code", "CodeableConcept", "A manifestation that led to the recording of this detected issue.", 0, java.lang.Integer.MAX_VALUE, code)); 431 children.add(new Property("detail", "Reference(Any)", "Links to resources that constitute evidence for the detected issue such as a GuidanceResponse or MeasureReport.", 0, java.lang.Integer.MAX_VALUE, detail)); 432 } 433 434 @Override 435 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 436 switch (_hash) { 437 case 3059181: /*code*/ return new Property("code", "CodeableConcept", "A manifestation that led to the recording of this detected issue.", 0, java.lang.Integer.MAX_VALUE, code); 438 case -1335224239: /*detail*/ return new Property("detail", "Reference(Any)", "Links to resources that constitute evidence for the detected issue such as a GuidanceResponse or MeasureReport.", 0, java.lang.Integer.MAX_VALUE, detail); 439 default: return super.getNamedProperty(_hash, _name, _checkValid); 440 } 441 442 } 443 444 @Override 445 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 446 switch (hash) { 447 case 3059181: /*code*/ return this.code == null ? new Base[0] : this.code.toArray(new Base[this.code.size()]); // CodeableConcept 448 case -1335224239: /*detail*/ return this.detail == null ? new Base[0] : this.detail.toArray(new Base[this.detail.size()]); // Reference 449 default: return super.getProperty(hash, name, checkValid); 450 } 451 452 } 453 454 @Override 455 public Base setProperty(int hash, String name, Base value) throws FHIRException { 456 switch (hash) { 457 case 3059181: // code 458 this.getCode().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 459 return value; 460 case -1335224239: // detail 461 this.getDetail().add(TypeConvertor.castToReference(value)); // Reference 462 return value; 463 default: return super.setProperty(hash, name, value); 464 } 465 466 } 467 468 @Override 469 public Base setProperty(String name, Base value) throws FHIRException { 470 if (name.equals("code")) { 471 this.getCode().add(TypeConvertor.castToCodeableConcept(value)); 472 } else if (name.equals("detail")) { 473 this.getDetail().add(TypeConvertor.castToReference(value)); 474 } else 475 return super.setProperty(name, value); 476 return value; 477 } 478 479 @Override 480 public Base makeProperty(int hash, String name) throws FHIRException { 481 switch (hash) { 482 case 3059181: return addCode(); 483 case -1335224239: return addDetail(); 484 default: return super.makeProperty(hash, name); 485 } 486 487 } 488 489 @Override 490 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 491 switch (hash) { 492 case 3059181: /*code*/ return new String[] {"CodeableConcept"}; 493 case -1335224239: /*detail*/ return new String[] {"Reference"}; 494 default: return super.getTypesForProperty(hash, name); 495 } 496 497 } 498 499 @Override 500 public Base addChild(String name) throws FHIRException { 501 if (name.equals("code")) { 502 return addCode(); 503 } 504 else if (name.equals("detail")) { 505 return addDetail(); 506 } 507 else 508 return super.addChild(name); 509 } 510 511 public DetectedIssueEvidenceComponent copy() { 512 DetectedIssueEvidenceComponent dst = new DetectedIssueEvidenceComponent(); 513 copyValues(dst); 514 return dst; 515 } 516 517 public void copyValues(DetectedIssueEvidenceComponent dst) { 518 super.copyValues(dst); 519 if (code != null) { 520 dst.code = new ArrayList<CodeableConcept>(); 521 for (CodeableConcept i : code) 522 dst.code.add(i.copy()); 523 }; 524 if (detail != null) { 525 dst.detail = new ArrayList<Reference>(); 526 for (Reference i : detail) 527 dst.detail.add(i.copy()); 528 }; 529 } 530 531 @Override 532 public boolean equalsDeep(Base other_) { 533 if (!super.equalsDeep(other_)) 534 return false; 535 if (!(other_ instanceof DetectedIssueEvidenceComponent)) 536 return false; 537 DetectedIssueEvidenceComponent o = (DetectedIssueEvidenceComponent) other_; 538 return compareDeep(code, o.code, true) && compareDeep(detail, o.detail, true); 539 } 540 541 @Override 542 public boolean equalsShallow(Base other_) { 543 if (!super.equalsShallow(other_)) 544 return false; 545 if (!(other_ instanceof DetectedIssueEvidenceComponent)) 546 return false; 547 DetectedIssueEvidenceComponent o = (DetectedIssueEvidenceComponent) other_; 548 return true; 549 } 550 551 public boolean isEmpty() { 552 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, detail); 553 } 554 555 public String fhirType() { 556 return "DetectedIssue.evidence"; 557 558 } 559 560 } 561 562 @Block() 563 public static class DetectedIssueMitigationComponent extends BackboneElement implements IBaseBackboneElement { 564 /** 565 * Describes the action that was taken or the observation that was made that reduces/eliminates the risk associated with the identified issue. 566 */ 567 @Child(name = "action", type = {CodeableConcept.class}, order=1, min=1, max=1, modifier=false, summary=false) 568 @Description(shortDefinition="What mitigation?", formalDefinition="Describes the action that was taken or the observation that was made that reduces/eliminates the risk associated with the identified issue." ) 569 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/detectedissue-mitigation-action") 570 protected CodeableConcept action; 571 572 /** 573 * Indicates when the mitigating action was documented. 574 */ 575 @Child(name = "date", type = {DateTimeType.class}, order=2, min=0, max=1, modifier=false, summary=false) 576 @Description(shortDefinition="Date committed", formalDefinition="Indicates when the mitigating action was documented." ) 577 protected DateTimeType date; 578 579 /** 580 * Identifies the practitioner who determined the mitigation and takes responsibility for the mitigation step occurring. 581 */ 582 @Child(name = "author", type = {Practitioner.class, PractitionerRole.class}, order=3, min=0, max=1, modifier=false, summary=false) 583 @Description(shortDefinition="Who is committing?", formalDefinition="Identifies the practitioner who determined the mitigation and takes responsibility for the mitigation step occurring." ) 584 protected Reference author; 585 586 private static final long serialVersionUID = -1797436956L; 587 588 /** 589 * Constructor 590 */ 591 public DetectedIssueMitigationComponent() { 592 super(); 593 } 594 595 /** 596 * Constructor 597 */ 598 public DetectedIssueMitigationComponent(CodeableConcept action) { 599 super(); 600 this.setAction(action); 601 } 602 603 /** 604 * @return {@link #action} (Describes the action that was taken or the observation that was made that reduces/eliminates the risk associated with the identified issue.) 605 */ 606 public CodeableConcept getAction() { 607 if (this.action == null) 608 if (Configuration.errorOnAutoCreate()) 609 throw new Error("Attempt to auto-create DetectedIssueMitigationComponent.action"); 610 else if (Configuration.doAutoCreate()) 611 this.action = new CodeableConcept(); // cc 612 return this.action; 613 } 614 615 public boolean hasAction() { 616 return this.action != null && !this.action.isEmpty(); 617 } 618 619 /** 620 * @param value {@link #action} (Describes the action that was taken or the observation that was made that reduces/eliminates the risk associated with the identified issue.) 621 */ 622 public DetectedIssueMitigationComponent setAction(CodeableConcept value) { 623 this.action = value; 624 return this; 625 } 626 627 /** 628 * @return {@link #date} (Indicates when the mitigating action was documented.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value 629 */ 630 public DateTimeType getDateElement() { 631 if (this.date == null) 632 if (Configuration.errorOnAutoCreate()) 633 throw new Error("Attempt to auto-create DetectedIssueMitigationComponent.date"); 634 else if (Configuration.doAutoCreate()) 635 this.date = new DateTimeType(); // bb 636 return this.date; 637 } 638 639 public boolean hasDateElement() { 640 return this.date != null && !this.date.isEmpty(); 641 } 642 643 public boolean hasDate() { 644 return this.date != null && !this.date.isEmpty(); 645 } 646 647 /** 648 * @param value {@link #date} (Indicates when the mitigating action was documented.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value 649 */ 650 public DetectedIssueMitigationComponent setDateElement(DateTimeType value) { 651 this.date = value; 652 return this; 653 } 654 655 /** 656 * @return Indicates when the mitigating action was documented. 657 */ 658 public Date getDate() { 659 return this.date == null ? null : this.date.getValue(); 660 } 661 662 /** 663 * @param value Indicates when the mitigating action was documented. 664 */ 665 public DetectedIssueMitigationComponent setDate(Date value) { 666 if (value == null) 667 this.date = null; 668 else { 669 if (this.date == null) 670 this.date = new DateTimeType(); 671 this.date.setValue(value); 672 } 673 return this; 674 } 675 676 /** 677 * @return {@link #author} (Identifies the practitioner who determined the mitigation and takes responsibility for the mitigation step occurring.) 678 */ 679 public Reference getAuthor() { 680 if (this.author == null) 681 if (Configuration.errorOnAutoCreate()) 682 throw new Error("Attempt to auto-create DetectedIssueMitigationComponent.author"); 683 else if (Configuration.doAutoCreate()) 684 this.author = new Reference(); // cc 685 return this.author; 686 } 687 688 public boolean hasAuthor() { 689 return this.author != null && !this.author.isEmpty(); 690 } 691 692 /** 693 * @param value {@link #author} (Identifies the practitioner who determined the mitigation and takes responsibility for the mitigation step occurring.) 694 */ 695 public DetectedIssueMitigationComponent setAuthor(Reference value) { 696 this.author = value; 697 return this; 698 } 699 700 protected void listChildren(List<Property> children) { 701 super.listChildren(children); 702 children.add(new Property("action", "CodeableConcept", "Describes the action that was taken or the observation that was made that reduces/eliminates the risk associated with the identified issue.", 0, 1, action)); 703 children.add(new Property("date", "dateTime", "Indicates when the mitigating action was documented.", 0, 1, date)); 704 children.add(new Property("author", "Reference(Practitioner|PractitionerRole)", "Identifies the practitioner who determined the mitigation and takes responsibility for the mitigation step occurring.", 0, 1, author)); 705 } 706 707 @Override 708 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 709 switch (_hash) { 710 case -1422950858: /*action*/ return new Property("action", "CodeableConcept", "Describes the action that was taken or the observation that was made that reduces/eliminates the risk associated with the identified issue.", 0, 1, action); 711 case 3076014: /*date*/ return new Property("date", "dateTime", "Indicates when the mitigating action was documented.", 0, 1, date); 712 case -1406328437: /*author*/ return new Property("author", "Reference(Practitioner|PractitionerRole)", "Identifies the practitioner who determined the mitigation and takes responsibility for the mitigation step occurring.", 0, 1, author); 713 default: return super.getNamedProperty(_hash, _name, _checkValid); 714 } 715 716 } 717 718 @Override 719 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 720 switch (hash) { 721 case -1422950858: /*action*/ return this.action == null ? new Base[0] : new Base[] {this.action}; // CodeableConcept 722 case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType 723 case -1406328437: /*author*/ return this.author == null ? new Base[0] : new Base[] {this.author}; // Reference 724 default: return super.getProperty(hash, name, checkValid); 725 } 726 727 } 728 729 @Override 730 public Base setProperty(int hash, String name, Base value) throws FHIRException { 731 switch (hash) { 732 case -1422950858: // action 733 this.action = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 734 return value; 735 case 3076014: // date 736 this.date = TypeConvertor.castToDateTime(value); // DateTimeType 737 return value; 738 case -1406328437: // author 739 this.author = TypeConvertor.castToReference(value); // Reference 740 return value; 741 default: return super.setProperty(hash, name, value); 742 } 743 744 } 745 746 @Override 747 public Base setProperty(String name, Base value) throws FHIRException { 748 if (name.equals("action")) { 749 this.action = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 750 } else if (name.equals("date")) { 751 this.date = TypeConvertor.castToDateTime(value); // DateTimeType 752 } else if (name.equals("author")) { 753 this.author = TypeConvertor.castToReference(value); // Reference 754 } else 755 return super.setProperty(name, value); 756 return value; 757 } 758 759 @Override 760 public Base makeProperty(int hash, String name) throws FHIRException { 761 switch (hash) { 762 case -1422950858: return getAction(); 763 case 3076014: return getDateElement(); 764 case -1406328437: return getAuthor(); 765 default: return super.makeProperty(hash, name); 766 } 767 768 } 769 770 @Override 771 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 772 switch (hash) { 773 case -1422950858: /*action*/ return new String[] {"CodeableConcept"}; 774 case 3076014: /*date*/ return new String[] {"dateTime"}; 775 case -1406328437: /*author*/ return new String[] {"Reference"}; 776 default: return super.getTypesForProperty(hash, name); 777 } 778 779 } 780 781 @Override 782 public Base addChild(String name) throws FHIRException { 783 if (name.equals("action")) { 784 this.action = new CodeableConcept(); 785 return this.action; 786 } 787 else if (name.equals("date")) { 788 throw new FHIRException("Cannot call addChild on a primitive type DetectedIssue.mitigation.date"); 789 } 790 else if (name.equals("author")) { 791 this.author = new Reference(); 792 return this.author; 793 } 794 else 795 return super.addChild(name); 796 } 797 798 public DetectedIssueMitigationComponent copy() { 799 DetectedIssueMitigationComponent dst = new DetectedIssueMitigationComponent(); 800 copyValues(dst); 801 return dst; 802 } 803 804 public void copyValues(DetectedIssueMitigationComponent dst) { 805 super.copyValues(dst); 806 dst.action = action == null ? null : action.copy(); 807 dst.date = date == null ? null : date.copy(); 808 dst.author = author == null ? null : author.copy(); 809 } 810 811 @Override 812 public boolean equalsDeep(Base other_) { 813 if (!super.equalsDeep(other_)) 814 return false; 815 if (!(other_ instanceof DetectedIssueMitigationComponent)) 816 return false; 817 DetectedIssueMitigationComponent o = (DetectedIssueMitigationComponent) other_; 818 return compareDeep(action, o.action, true) && compareDeep(date, o.date, true) && compareDeep(author, o.author, true) 819 ; 820 } 821 822 @Override 823 public boolean equalsShallow(Base other_) { 824 if (!super.equalsShallow(other_)) 825 return false; 826 if (!(other_ instanceof DetectedIssueMitigationComponent)) 827 return false; 828 DetectedIssueMitigationComponent o = (DetectedIssueMitigationComponent) other_; 829 return compareValues(date, o.date, true); 830 } 831 832 public boolean isEmpty() { 833 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(action, date, author); 834 } 835 836 public String fhirType() { 837 return "DetectedIssue.mitigation"; 838 839 } 840 841 } 842 843 /** 844 * Business identifier associated with the detected issue record. 845 */ 846 @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 847 @Description(shortDefinition="Unique id for the detected issue", formalDefinition="Business identifier associated with the detected issue record." ) 848 protected List<Identifier> identifier; 849 850 /** 851 * Indicates the status of the detected issue. 852 */ 853 @Child(name = "status", type = {CodeType.class}, order=1, min=1, max=1, modifier=true, summary=true) 854 @Description(shortDefinition="preliminary | final | entered-in-error | mitigated", formalDefinition="Indicates the status of the detected issue." ) 855 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/detectedissue-status") 856 protected Enumeration<DetectedIssueStatus> status; 857 858 /** 859 * A code that classifies the general type of detected issue. 860 */ 861 @Child(name = "category", type = {CodeableConcept.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 862 @Description(shortDefinition="Type of detected issue, e.g. drug-drug, duplicate therapy, etc.", formalDefinition="A code that classifies the general type of detected issue." ) 863 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/detectedissue-category") 864 protected List<CodeableConcept> category; 865 866 /** 867 * Identifies the specific type of issue identified. 868 */ 869 @Child(name = "code", type = {CodeableConcept.class}, order=3, min=0, max=1, modifier=false, summary=true) 870 @Description(shortDefinition="Specific type of detected issue, e.g. drug-drug, duplicate therapy, etc.", formalDefinition="Identifies the specific type of issue identified." ) 871 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/detectedissue-category") 872 protected CodeableConcept code; 873 874 /** 875 * Indicates the degree of importance associated with the identified issue based on the potential impact on the patient. 876 */ 877 @Child(name = "severity", type = {CodeType.class}, order=4, min=0, max=1, modifier=false, summary=true) 878 @Description(shortDefinition="high | moderate | low", formalDefinition="Indicates the degree of importance associated with the identified issue based on the potential impact on the patient." ) 879 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/detectedissue-severity") 880 protected Enumeration<DetectedIssueSeverity> severity; 881 882 /** 883 * Indicates the subject whose record the detected issue is associated with. 884 */ 885 @Child(name = "subject", type = {Patient.class, Group.class, Device.class, Location.class, Organization.class, Procedure.class, Practitioner.class, Medication.class, Substance.class, BiologicallyDerivedProduct.class, NutritionProduct.class}, order=5, min=0, max=1, modifier=false, summary=true) 886 @Description(shortDefinition="Associated subject", formalDefinition="Indicates the subject whose record the detected issue is associated with." ) 887 protected Reference subject; 888 889 /** 890 * The date or period when the detected issue was initially identified. 891 */ 892 @Child(name = "identified", type = {DateTimeType.class, Period.class}, order=6, min=0, max=1, modifier=false, summary=true) 893 @Description(shortDefinition="When identified", formalDefinition="The date or period when the detected issue was initially identified." ) 894 protected DataType identified; 895 896 /** 897 * Individual or device responsible for the issue being raised. For example, a decision support application or a pharmacist conducting a medication review. 898 */ 899 @Child(name = "author", type = {Patient.class, RelatedPerson.class, Practitioner.class, PractitionerRole.class, Device.class}, order=7, min=0, max=1, modifier=false, summary=true) 900 @Description(shortDefinition="The provider or device that identified the issue", formalDefinition="Individual or device responsible for the issue being raised. For example, a decision support application or a pharmacist conducting a medication review." ) 901 protected Reference author; 902 903 /** 904 * Indicates the resource representing the current activity or proposed activity that is potentially problematic. 905 */ 906 @Child(name = "implicated", type = {Reference.class}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 907 @Description(shortDefinition="Problem resource", formalDefinition="Indicates the resource representing the current activity or proposed activity that is potentially problematic." ) 908 protected List<Reference> implicated; 909 910 /** 911 * Supporting evidence or manifestations that provide the basis for identifying the detected issue such as a GuidanceResponse or MeasureReport. 912 */ 913 @Child(name = "evidence", type = {}, order=9, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 914 @Description(shortDefinition="Supporting evidence", formalDefinition="Supporting evidence or manifestations that provide the basis for identifying the detected issue such as a GuidanceResponse or MeasureReport." ) 915 protected List<DetectedIssueEvidenceComponent> evidence; 916 917 /** 918 * A textual explanation of the detected issue. 919 */ 920 @Child(name = "detail", type = {StringType.class}, order=10, min=0, max=1, modifier=false, summary=false) 921 @Description(shortDefinition="Description and context", formalDefinition="A textual explanation of the detected issue." ) 922 protected StringType detail; 923 924 /** 925 * The literature, knowledge-base or similar reference that describes the propensity for the detected issue identified. 926 */ 927 @Child(name = "reference", type = {UriType.class}, order=11, min=0, max=1, modifier=false, summary=false) 928 @Description(shortDefinition="Authority for issue", formalDefinition="The literature, knowledge-base or similar reference that describes the propensity for the detected issue identified." ) 929 protected UriType reference; 930 931 /** 932 * Indicates an action that has been taken or is committed to reduce or eliminate the likelihood of the risk identified by the detected issue from manifesting. Can also reflect an observation of known mitigating factors that may reduce/eliminate the need for any action. 933 */ 934 @Child(name = "mitigation", type = {}, order=12, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 935 @Description(shortDefinition="Step taken to address", formalDefinition="Indicates an action that has been taken or is committed to reduce or eliminate the likelihood of the risk identified by the detected issue from manifesting. Can also reflect an observation of known mitigating factors that may reduce/eliminate the need for any action." ) 936 protected List<DetectedIssueMitigationComponent> mitigation; 937 938 private static final long serialVersionUID = -101003859L; 939 940 /** 941 * Constructor 942 */ 943 public DetectedIssue() { 944 super(); 945 } 946 947 /** 948 * Constructor 949 */ 950 public DetectedIssue(DetectedIssueStatus status) { 951 super(); 952 this.setStatus(status); 953 } 954 955 /** 956 * @return {@link #identifier} (Business identifier associated with the detected issue record.) 957 */ 958 public List<Identifier> getIdentifier() { 959 if (this.identifier == null) 960 this.identifier = new ArrayList<Identifier>(); 961 return this.identifier; 962 } 963 964 /** 965 * @return Returns a reference to <code>this</code> for easy method chaining 966 */ 967 public DetectedIssue setIdentifier(List<Identifier> theIdentifier) { 968 this.identifier = theIdentifier; 969 return this; 970 } 971 972 public boolean hasIdentifier() { 973 if (this.identifier == null) 974 return false; 975 for (Identifier item : this.identifier) 976 if (!item.isEmpty()) 977 return true; 978 return false; 979 } 980 981 public Identifier addIdentifier() { //3 982 Identifier t = new Identifier(); 983 if (this.identifier == null) 984 this.identifier = new ArrayList<Identifier>(); 985 this.identifier.add(t); 986 return t; 987 } 988 989 public DetectedIssue addIdentifier(Identifier t) { //3 990 if (t == null) 991 return this; 992 if (this.identifier == null) 993 this.identifier = new ArrayList<Identifier>(); 994 this.identifier.add(t); 995 return this; 996 } 997 998 /** 999 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3} 1000 */ 1001 public Identifier getIdentifierFirstRep() { 1002 if (getIdentifier().isEmpty()) { 1003 addIdentifier(); 1004 } 1005 return getIdentifier().get(0); 1006 } 1007 1008 /** 1009 * @return {@link #status} (Indicates the status of the detected issue.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 1010 */ 1011 public Enumeration<DetectedIssueStatus> getStatusElement() { 1012 if (this.status == null) 1013 if (Configuration.errorOnAutoCreate()) 1014 throw new Error("Attempt to auto-create DetectedIssue.status"); 1015 else if (Configuration.doAutoCreate()) 1016 this.status = new Enumeration<DetectedIssueStatus>(new DetectedIssueStatusEnumFactory()); // bb 1017 return this.status; 1018 } 1019 1020 public boolean hasStatusElement() { 1021 return this.status != null && !this.status.isEmpty(); 1022 } 1023 1024 public boolean hasStatus() { 1025 return this.status != null && !this.status.isEmpty(); 1026 } 1027 1028 /** 1029 * @param value {@link #status} (Indicates the status of the detected issue.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 1030 */ 1031 public DetectedIssue setStatusElement(Enumeration<DetectedIssueStatus> value) { 1032 this.status = value; 1033 return this; 1034 } 1035 1036 /** 1037 * @return Indicates the status of the detected issue. 1038 */ 1039 public DetectedIssueStatus getStatus() { 1040 return this.status == null ? null : this.status.getValue(); 1041 } 1042 1043 /** 1044 * @param value Indicates the status of the detected issue. 1045 */ 1046 public DetectedIssue setStatus(DetectedIssueStatus value) { 1047 if (this.status == null) 1048 this.status = new Enumeration<DetectedIssueStatus>(new DetectedIssueStatusEnumFactory()); 1049 this.status.setValue(value); 1050 return this; 1051 } 1052 1053 /** 1054 * @return {@link #category} (A code that classifies the general type of detected issue.) 1055 */ 1056 public List<CodeableConcept> getCategory() { 1057 if (this.category == null) 1058 this.category = new ArrayList<CodeableConcept>(); 1059 return this.category; 1060 } 1061 1062 /** 1063 * @return Returns a reference to <code>this</code> for easy method chaining 1064 */ 1065 public DetectedIssue setCategory(List<CodeableConcept> theCategory) { 1066 this.category = theCategory; 1067 return this; 1068 } 1069 1070 public boolean hasCategory() { 1071 if (this.category == null) 1072 return false; 1073 for (CodeableConcept item : this.category) 1074 if (!item.isEmpty()) 1075 return true; 1076 return false; 1077 } 1078 1079 public CodeableConcept addCategory() { //3 1080 CodeableConcept t = new CodeableConcept(); 1081 if (this.category == null) 1082 this.category = new ArrayList<CodeableConcept>(); 1083 this.category.add(t); 1084 return t; 1085 } 1086 1087 public DetectedIssue addCategory(CodeableConcept t) { //3 1088 if (t == null) 1089 return this; 1090 if (this.category == null) 1091 this.category = new ArrayList<CodeableConcept>(); 1092 this.category.add(t); 1093 return this; 1094 } 1095 1096 /** 1097 * @return The first repetition of repeating field {@link #category}, creating it if it does not already exist {3} 1098 */ 1099 public CodeableConcept getCategoryFirstRep() { 1100 if (getCategory().isEmpty()) { 1101 addCategory(); 1102 } 1103 return getCategory().get(0); 1104 } 1105 1106 /** 1107 * @return {@link #code} (Identifies the specific type of issue identified.) 1108 */ 1109 public CodeableConcept getCode() { 1110 if (this.code == null) 1111 if (Configuration.errorOnAutoCreate()) 1112 throw new Error("Attempt to auto-create DetectedIssue.code"); 1113 else if (Configuration.doAutoCreate()) 1114 this.code = new CodeableConcept(); // cc 1115 return this.code; 1116 } 1117 1118 public boolean hasCode() { 1119 return this.code != null && !this.code.isEmpty(); 1120 } 1121 1122 /** 1123 * @param value {@link #code} (Identifies the specific type of issue identified.) 1124 */ 1125 public DetectedIssue setCode(CodeableConcept value) { 1126 this.code = value; 1127 return this; 1128 } 1129 1130 /** 1131 * @return {@link #severity} (Indicates the degree of importance associated with the identified issue based on the potential impact on the patient.). This is the underlying object with id, value and extensions. The accessor "getSeverity" gives direct access to the value 1132 */ 1133 public Enumeration<DetectedIssueSeverity> getSeverityElement() { 1134 if (this.severity == null) 1135 if (Configuration.errorOnAutoCreate()) 1136 throw new Error("Attempt to auto-create DetectedIssue.severity"); 1137 else if (Configuration.doAutoCreate()) 1138 this.severity = new Enumeration<DetectedIssueSeverity>(new DetectedIssueSeverityEnumFactory()); // bb 1139 return this.severity; 1140 } 1141 1142 public boolean hasSeverityElement() { 1143 return this.severity != null && !this.severity.isEmpty(); 1144 } 1145 1146 public boolean hasSeverity() { 1147 return this.severity != null && !this.severity.isEmpty(); 1148 } 1149 1150 /** 1151 * @param value {@link #severity} (Indicates the degree of importance associated with the identified issue based on the potential impact on the patient.). This is the underlying object with id, value and extensions. The accessor "getSeverity" gives direct access to the value 1152 */ 1153 public DetectedIssue setSeverityElement(Enumeration<DetectedIssueSeverity> value) { 1154 this.severity = value; 1155 return this; 1156 } 1157 1158 /** 1159 * @return Indicates the degree of importance associated with the identified issue based on the potential impact on the patient. 1160 */ 1161 public DetectedIssueSeverity getSeverity() { 1162 return this.severity == null ? null : this.severity.getValue(); 1163 } 1164 1165 /** 1166 * @param value Indicates the degree of importance associated with the identified issue based on the potential impact on the patient. 1167 */ 1168 public DetectedIssue setSeverity(DetectedIssueSeverity value) { 1169 if (value == null) 1170 this.severity = null; 1171 else { 1172 if (this.severity == null) 1173 this.severity = new Enumeration<DetectedIssueSeverity>(new DetectedIssueSeverityEnumFactory()); 1174 this.severity.setValue(value); 1175 } 1176 return this; 1177 } 1178 1179 /** 1180 * @return {@link #subject} (Indicates the subject whose record the detected issue is associated with.) 1181 */ 1182 public Reference getSubject() { 1183 if (this.subject == null) 1184 if (Configuration.errorOnAutoCreate()) 1185 throw new Error("Attempt to auto-create DetectedIssue.subject"); 1186 else if (Configuration.doAutoCreate()) 1187 this.subject = new Reference(); // cc 1188 return this.subject; 1189 } 1190 1191 public boolean hasSubject() { 1192 return this.subject != null && !this.subject.isEmpty(); 1193 } 1194 1195 /** 1196 * @param value {@link #subject} (Indicates the subject whose record the detected issue is associated with.) 1197 */ 1198 public DetectedIssue setSubject(Reference value) { 1199 this.subject = value; 1200 return this; 1201 } 1202 1203 /** 1204 * @return {@link #identified} (The date or period when the detected issue was initially identified.) 1205 */ 1206 public DataType getIdentified() { 1207 return this.identified; 1208 } 1209 1210 /** 1211 * @return {@link #identified} (The date or period when the detected issue was initially identified.) 1212 */ 1213 public DateTimeType getIdentifiedDateTimeType() throws FHIRException { 1214 if (this.identified == null) 1215 this.identified = new DateTimeType(); 1216 if (!(this.identified instanceof DateTimeType)) 1217 throw new FHIRException("Type mismatch: the type DateTimeType was expected, but "+this.identified.getClass().getName()+" was encountered"); 1218 return (DateTimeType) this.identified; 1219 } 1220 1221 public boolean hasIdentifiedDateTimeType() { 1222 return this != null && this.identified instanceof DateTimeType; 1223 } 1224 1225 /** 1226 * @return {@link #identified} (The date or period when the detected issue was initially identified.) 1227 */ 1228 public Period getIdentifiedPeriod() throws FHIRException { 1229 if (this.identified == null) 1230 this.identified = new Period(); 1231 if (!(this.identified instanceof Period)) 1232 throw new FHIRException("Type mismatch: the type Period was expected, but "+this.identified.getClass().getName()+" was encountered"); 1233 return (Period) this.identified; 1234 } 1235 1236 public boolean hasIdentifiedPeriod() { 1237 return this != null && this.identified instanceof Period; 1238 } 1239 1240 public boolean hasIdentified() { 1241 return this.identified != null && !this.identified.isEmpty(); 1242 } 1243 1244 /** 1245 * @param value {@link #identified} (The date or period when the detected issue was initially identified.) 1246 */ 1247 public DetectedIssue setIdentified(DataType value) { 1248 if (value != null && !(value instanceof DateTimeType || value instanceof Period)) 1249 throw new Error("Not the right type for DetectedIssue.identified[x]: "+value.fhirType()); 1250 this.identified = value; 1251 return this; 1252 } 1253 1254 /** 1255 * @return {@link #author} (Individual or device responsible for the issue being raised. For example, a decision support application or a pharmacist conducting a medication review.) 1256 */ 1257 public Reference getAuthor() { 1258 if (this.author == null) 1259 if (Configuration.errorOnAutoCreate()) 1260 throw new Error("Attempt to auto-create DetectedIssue.author"); 1261 else if (Configuration.doAutoCreate()) 1262 this.author = new Reference(); // cc 1263 return this.author; 1264 } 1265 1266 public boolean hasAuthor() { 1267 return this.author != null && !this.author.isEmpty(); 1268 } 1269 1270 /** 1271 * @param value {@link #author} (Individual or device responsible for the issue being raised. For example, a decision support application or a pharmacist conducting a medication review.) 1272 */ 1273 public DetectedIssue setAuthor(Reference value) { 1274 this.author = value; 1275 return this; 1276 } 1277 1278 /** 1279 * @return {@link #implicated} (Indicates the resource representing the current activity or proposed activity that is potentially problematic.) 1280 */ 1281 public List<Reference> getImplicated() { 1282 if (this.implicated == null) 1283 this.implicated = new ArrayList<Reference>(); 1284 return this.implicated; 1285 } 1286 1287 /** 1288 * @return Returns a reference to <code>this</code> for easy method chaining 1289 */ 1290 public DetectedIssue setImplicated(List<Reference> theImplicated) { 1291 this.implicated = theImplicated; 1292 return this; 1293 } 1294 1295 public boolean hasImplicated() { 1296 if (this.implicated == null) 1297 return false; 1298 for (Reference item : this.implicated) 1299 if (!item.isEmpty()) 1300 return true; 1301 return false; 1302 } 1303 1304 public Reference addImplicated() { //3 1305 Reference t = new Reference(); 1306 if (this.implicated == null) 1307 this.implicated = new ArrayList<Reference>(); 1308 this.implicated.add(t); 1309 return t; 1310 } 1311 1312 public DetectedIssue addImplicated(Reference t) { //3 1313 if (t == null) 1314 return this; 1315 if (this.implicated == null) 1316 this.implicated = new ArrayList<Reference>(); 1317 this.implicated.add(t); 1318 return this; 1319 } 1320 1321 /** 1322 * @return The first repetition of repeating field {@link #implicated}, creating it if it does not already exist {3} 1323 */ 1324 public Reference getImplicatedFirstRep() { 1325 if (getImplicated().isEmpty()) { 1326 addImplicated(); 1327 } 1328 return getImplicated().get(0); 1329 } 1330 1331 /** 1332 * @return {@link #evidence} (Supporting evidence or manifestations that provide the basis for identifying the detected issue such as a GuidanceResponse or MeasureReport.) 1333 */ 1334 public List<DetectedIssueEvidenceComponent> getEvidence() { 1335 if (this.evidence == null) 1336 this.evidence = new ArrayList<DetectedIssueEvidenceComponent>(); 1337 return this.evidence; 1338 } 1339 1340 /** 1341 * @return Returns a reference to <code>this</code> for easy method chaining 1342 */ 1343 public DetectedIssue setEvidence(List<DetectedIssueEvidenceComponent> theEvidence) { 1344 this.evidence = theEvidence; 1345 return this; 1346 } 1347 1348 public boolean hasEvidence() { 1349 if (this.evidence == null) 1350 return false; 1351 for (DetectedIssueEvidenceComponent item : this.evidence) 1352 if (!item.isEmpty()) 1353 return true; 1354 return false; 1355 } 1356 1357 public DetectedIssueEvidenceComponent addEvidence() { //3 1358 DetectedIssueEvidenceComponent t = new DetectedIssueEvidenceComponent(); 1359 if (this.evidence == null) 1360 this.evidence = new ArrayList<DetectedIssueEvidenceComponent>(); 1361 this.evidence.add(t); 1362 return t; 1363 } 1364 1365 public DetectedIssue addEvidence(DetectedIssueEvidenceComponent t) { //3 1366 if (t == null) 1367 return this; 1368 if (this.evidence == null) 1369 this.evidence = new ArrayList<DetectedIssueEvidenceComponent>(); 1370 this.evidence.add(t); 1371 return this; 1372 } 1373 1374 /** 1375 * @return The first repetition of repeating field {@link #evidence}, creating it if it does not already exist {3} 1376 */ 1377 public DetectedIssueEvidenceComponent getEvidenceFirstRep() { 1378 if (getEvidence().isEmpty()) { 1379 addEvidence(); 1380 } 1381 return getEvidence().get(0); 1382 } 1383 1384 /** 1385 * @return {@link #detail} (A textual explanation of the detected issue.). This is the underlying object with id, value and extensions. The accessor "getDetail" gives direct access to the value 1386 */ 1387 public StringType getDetailElement() { 1388 if (this.detail == null) 1389 if (Configuration.errorOnAutoCreate()) 1390 throw new Error("Attempt to auto-create DetectedIssue.detail"); 1391 else if (Configuration.doAutoCreate()) 1392 this.detail = new StringType(); // bb 1393 return this.detail; 1394 } 1395 1396 public boolean hasDetailElement() { 1397 return this.detail != null && !this.detail.isEmpty(); 1398 } 1399 1400 public boolean hasDetail() { 1401 return this.detail != null && !this.detail.isEmpty(); 1402 } 1403 1404 /** 1405 * @param value {@link #detail} (A textual explanation of the detected issue.). This is the underlying object with id, value and extensions. The accessor "getDetail" gives direct access to the value 1406 */ 1407 public DetectedIssue setDetailElement(StringType value) { 1408 this.detail = value; 1409 return this; 1410 } 1411 1412 /** 1413 * @return A textual explanation of the detected issue. 1414 */ 1415 public String getDetail() { 1416 return this.detail == null ? null : this.detail.getValue(); 1417 } 1418 1419 /** 1420 * @param value A textual explanation of the detected issue. 1421 */ 1422 public DetectedIssue setDetail(String value) { 1423 if (Utilities.noString(value)) 1424 this.detail = null; 1425 else { 1426 if (this.detail == null) 1427 this.detail = new StringType(); 1428 this.detail.setValue(value); 1429 } 1430 return this; 1431 } 1432 1433 /** 1434 * @return {@link #reference} (The literature, knowledge-base or similar reference that describes the propensity for the detected issue identified.). This is the underlying object with id, value and extensions. The accessor "getReference" gives direct access to the value 1435 */ 1436 public UriType getReferenceElement() { 1437 if (this.reference == null) 1438 if (Configuration.errorOnAutoCreate()) 1439 throw new Error("Attempt to auto-create DetectedIssue.reference"); 1440 else if (Configuration.doAutoCreate()) 1441 this.reference = new UriType(); // bb 1442 return this.reference; 1443 } 1444 1445 public boolean hasReferenceElement() { 1446 return this.reference != null && !this.reference.isEmpty(); 1447 } 1448 1449 public boolean hasReference() { 1450 return this.reference != null && !this.reference.isEmpty(); 1451 } 1452 1453 /** 1454 * @param value {@link #reference} (The literature, knowledge-base or similar reference that describes the propensity for the detected issue identified.). This is the underlying object with id, value and extensions. The accessor "getReference" gives direct access to the value 1455 */ 1456 public DetectedIssue setReferenceElement(UriType value) { 1457 this.reference = value; 1458 return this; 1459 } 1460 1461 /** 1462 * @return The literature, knowledge-base or similar reference that describes the propensity for the detected issue identified. 1463 */ 1464 public String getReference() { 1465 return this.reference == null ? null : this.reference.getValue(); 1466 } 1467 1468 /** 1469 * @param value The literature, knowledge-base or similar reference that describes the propensity for the detected issue identified. 1470 */ 1471 public DetectedIssue setReference(String value) { 1472 if (Utilities.noString(value)) 1473 this.reference = null; 1474 else { 1475 if (this.reference == null) 1476 this.reference = new UriType(); 1477 this.reference.setValue(value); 1478 } 1479 return this; 1480 } 1481 1482 /** 1483 * @return {@link #mitigation} (Indicates an action that has been taken or is committed to reduce or eliminate the likelihood of the risk identified by the detected issue from manifesting. Can also reflect an observation of known mitigating factors that may reduce/eliminate the need for any action.) 1484 */ 1485 public List<DetectedIssueMitigationComponent> getMitigation() { 1486 if (this.mitigation == null) 1487 this.mitigation = new ArrayList<DetectedIssueMitigationComponent>(); 1488 return this.mitigation; 1489 } 1490 1491 /** 1492 * @return Returns a reference to <code>this</code> for easy method chaining 1493 */ 1494 public DetectedIssue setMitigation(List<DetectedIssueMitigationComponent> theMitigation) { 1495 this.mitigation = theMitigation; 1496 return this; 1497 } 1498 1499 public boolean hasMitigation() { 1500 if (this.mitigation == null) 1501 return false; 1502 for (DetectedIssueMitigationComponent item : this.mitigation) 1503 if (!item.isEmpty()) 1504 return true; 1505 return false; 1506 } 1507 1508 public DetectedIssueMitigationComponent addMitigation() { //3 1509 DetectedIssueMitigationComponent t = new DetectedIssueMitigationComponent(); 1510 if (this.mitigation == null) 1511 this.mitigation = new ArrayList<DetectedIssueMitigationComponent>(); 1512 this.mitigation.add(t); 1513 return t; 1514 } 1515 1516 public DetectedIssue addMitigation(DetectedIssueMitigationComponent t) { //3 1517 if (t == null) 1518 return this; 1519 if (this.mitigation == null) 1520 this.mitigation = new ArrayList<DetectedIssueMitigationComponent>(); 1521 this.mitigation.add(t); 1522 return this; 1523 } 1524 1525 /** 1526 * @return The first repetition of repeating field {@link #mitigation}, creating it if it does not already exist {3} 1527 */ 1528 public DetectedIssueMitigationComponent getMitigationFirstRep() { 1529 if (getMitigation().isEmpty()) { 1530 addMitigation(); 1531 } 1532 return getMitigation().get(0); 1533 } 1534 1535 protected void listChildren(List<Property> children) { 1536 super.listChildren(children); 1537 children.add(new Property("identifier", "Identifier", "Business identifier associated with the detected issue record.", 0, java.lang.Integer.MAX_VALUE, identifier)); 1538 children.add(new Property("status", "code", "Indicates the status of the detected issue.", 0, 1, status)); 1539 children.add(new Property("category", "CodeableConcept", "A code that classifies the general type of detected issue.", 0, java.lang.Integer.MAX_VALUE, category)); 1540 children.add(new Property("code", "CodeableConcept", "Identifies the specific type of issue identified.", 0, 1, code)); 1541 children.add(new Property("severity", "code", "Indicates the degree of importance associated with the identified issue based on the potential impact on the patient.", 0, 1, severity)); 1542 children.add(new Property("subject", "Reference(Patient|Group|Device|Location|Organization|Procedure|Practitioner|Medication|Substance|BiologicallyDerivedProduct|NutritionProduct)", "Indicates the subject whose record the detected issue is associated with.", 0, 1, subject)); 1543 children.add(new Property("identified[x]", "dateTime|Period", "The date or period when the detected issue was initially identified.", 0, 1, identified)); 1544 children.add(new Property("author", "Reference(Patient|RelatedPerson|Practitioner|PractitionerRole|Device)", "Individual or device responsible for the issue being raised. For example, a decision support application or a pharmacist conducting a medication review.", 0, 1, author)); 1545 children.add(new Property("implicated", "Reference(Any)", "Indicates the resource representing the current activity or proposed activity that is potentially problematic.", 0, java.lang.Integer.MAX_VALUE, implicated)); 1546 children.add(new Property("evidence", "", "Supporting evidence or manifestations that provide the basis for identifying the detected issue such as a GuidanceResponse or MeasureReport.", 0, java.lang.Integer.MAX_VALUE, evidence)); 1547 children.add(new Property("detail", "string", "A textual explanation of the detected issue.", 0, 1, detail)); 1548 children.add(new Property("reference", "uri", "The literature, knowledge-base or similar reference that describes the propensity for the detected issue identified.", 0, 1, reference)); 1549 children.add(new Property("mitigation", "", "Indicates an action that has been taken or is committed to reduce or eliminate the likelihood of the risk identified by the detected issue from manifesting. Can also reflect an observation of known mitigating factors that may reduce/eliminate the need for any action.", 0, java.lang.Integer.MAX_VALUE, mitigation)); 1550 } 1551 1552 @Override 1553 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1554 switch (_hash) { 1555 case -1618432855: /*identifier*/ return new Property("identifier", "Identifier", "Business identifier associated with the detected issue record.", 0, java.lang.Integer.MAX_VALUE, identifier); 1556 case -892481550: /*status*/ return new Property("status", "code", "Indicates the status of the detected issue.", 0, 1, status); 1557 case 50511102: /*category*/ return new Property("category", "CodeableConcept", "A code that classifies the general type of detected issue.", 0, java.lang.Integer.MAX_VALUE, category); 1558 case 3059181: /*code*/ return new Property("code", "CodeableConcept", "Identifies the specific type of issue identified.", 0, 1, code); 1559 case 1478300413: /*severity*/ return new Property("severity", "code", "Indicates the degree of importance associated with the identified issue based on the potential impact on the patient.", 0, 1, severity); 1560 case -1867885268: /*subject*/ return new Property("subject", "Reference(Patient|Group|Device|Location|Organization|Procedure|Practitioner|Medication|Substance|BiologicallyDerivedProduct|NutritionProduct)", "Indicates the subject whose record the detected issue is associated with.", 0, 1, subject); 1561 case 569355781: /*identified[x]*/ return new Property("identified[x]", "dateTime|Period", "The date or period when the detected issue was initially identified.", 0, 1, identified); 1562 case -1618432869: /*identified*/ return new Property("identified[x]", "dateTime|Period", "The date or period when the detected issue was initially identified.", 0, 1, identified); 1563 case -968788650: /*identifiedDateTime*/ return new Property("identified[x]", "dateTime", "The date or period when the detected issue was initially identified.", 0, 1, identified); 1564 case 520482364: /*identifiedPeriod*/ return new Property("identified[x]", "Period", "The date or period when the detected issue was initially identified.", 0, 1, identified); 1565 case -1406328437: /*author*/ return new Property("author", "Reference(Patient|RelatedPerson|Practitioner|PractitionerRole|Device)", "Individual or device responsible for the issue being raised. For example, a decision support application or a pharmacist conducting a medication review.", 0, 1, author); 1566 case -810216884: /*implicated*/ return new Property("implicated", "Reference(Any)", "Indicates the resource representing the current activity or proposed activity that is potentially problematic.", 0, java.lang.Integer.MAX_VALUE, implicated); 1567 case 382967383: /*evidence*/ return new Property("evidence", "", "Supporting evidence or manifestations that provide the basis for identifying the detected issue such as a GuidanceResponse or MeasureReport.", 0, java.lang.Integer.MAX_VALUE, evidence); 1568 case -1335224239: /*detail*/ return new Property("detail", "string", "A textual explanation of the detected issue.", 0, 1, detail); 1569 case -925155509: /*reference*/ return new Property("reference", "uri", "The literature, knowledge-base or similar reference that describes the propensity for the detected issue identified.", 0, 1, reference); 1570 case 1293793087: /*mitigation*/ return new Property("mitigation", "", "Indicates an action that has been taken or is committed to reduce or eliminate the likelihood of the risk identified by the detected issue from manifesting. Can also reflect an observation of known mitigating factors that may reduce/eliminate the need for any action.", 0, java.lang.Integer.MAX_VALUE, mitigation); 1571 default: return super.getNamedProperty(_hash, _name, _checkValid); 1572 } 1573 1574 } 1575 1576 @Override 1577 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1578 switch (hash) { 1579 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 1580 case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<DetectedIssueStatus> 1581 case 50511102: /*category*/ return this.category == null ? new Base[0] : this.category.toArray(new Base[this.category.size()]); // CodeableConcept 1582 case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept 1583 case 1478300413: /*severity*/ return this.severity == null ? new Base[0] : new Base[] {this.severity}; // Enumeration<DetectedIssueSeverity> 1584 case -1867885268: /*subject*/ return this.subject == null ? new Base[0] : new Base[] {this.subject}; // Reference 1585 case -1618432869: /*identified*/ return this.identified == null ? new Base[0] : new Base[] {this.identified}; // DataType 1586 case -1406328437: /*author*/ return this.author == null ? new Base[0] : new Base[] {this.author}; // Reference 1587 case -810216884: /*implicated*/ return this.implicated == null ? new Base[0] : this.implicated.toArray(new Base[this.implicated.size()]); // Reference 1588 case 382967383: /*evidence*/ return this.evidence == null ? new Base[0] : this.evidence.toArray(new Base[this.evidence.size()]); // DetectedIssueEvidenceComponent 1589 case -1335224239: /*detail*/ return this.detail == null ? new Base[0] : new Base[] {this.detail}; // StringType 1590 case -925155509: /*reference*/ return this.reference == null ? new Base[0] : new Base[] {this.reference}; // UriType 1591 case 1293793087: /*mitigation*/ return this.mitigation == null ? new Base[0] : this.mitigation.toArray(new Base[this.mitigation.size()]); // DetectedIssueMitigationComponent 1592 default: return super.getProperty(hash, name, checkValid); 1593 } 1594 1595 } 1596 1597 @Override 1598 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1599 switch (hash) { 1600 case -1618432855: // identifier 1601 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier 1602 return value; 1603 case -892481550: // status 1604 value = new DetectedIssueStatusEnumFactory().fromType(TypeConvertor.castToCode(value)); 1605 this.status = (Enumeration) value; // Enumeration<DetectedIssueStatus> 1606 return value; 1607 case 50511102: // category 1608 this.getCategory().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 1609 return value; 1610 case 3059181: // code 1611 this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1612 return value; 1613 case 1478300413: // severity 1614 value = new DetectedIssueSeverityEnumFactory().fromType(TypeConvertor.castToCode(value)); 1615 this.severity = (Enumeration) value; // Enumeration<DetectedIssueSeverity> 1616 return value; 1617 case -1867885268: // subject 1618 this.subject = TypeConvertor.castToReference(value); // Reference 1619 return value; 1620 case -1618432869: // identified 1621 this.identified = TypeConvertor.castToType(value); // DataType 1622 return value; 1623 case -1406328437: // author 1624 this.author = TypeConvertor.castToReference(value); // Reference 1625 return value; 1626 case -810216884: // implicated 1627 this.getImplicated().add(TypeConvertor.castToReference(value)); // Reference 1628 return value; 1629 case 382967383: // evidence 1630 this.getEvidence().add((DetectedIssueEvidenceComponent) value); // DetectedIssueEvidenceComponent 1631 return value; 1632 case -1335224239: // detail 1633 this.detail = TypeConvertor.castToString(value); // StringType 1634 return value; 1635 case -925155509: // reference 1636 this.reference = TypeConvertor.castToUri(value); // UriType 1637 return value; 1638 case 1293793087: // mitigation 1639 this.getMitigation().add((DetectedIssueMitigationComponent) value); // DetectedIssueMitigationComponent 1640 return value; 1641 default: return super.setProperty(hash, name, value); 1642 } 1643 1644 } 1645 1646 @Override 1647 public Base setProperty(String name, Base value) throws FHIRException { 1648 if (name.equals("identifier")) { 1649 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); 1650 } else if (name.equals("status")) { 1651 value = new DetectedIssueStatusEnumFactory().fromType(TypeConvertor.castToCode(value)); 1652 this.status = (Enumeration) value; // Enumeration<DetectedIssueStatus> 1653 } else if (name.equals("category")) { 1654 this.getCategory().add(TypeConvertor.castToCodeableConcept(value)); 1655 } else if (name.equals("code")) { 1656 this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1657 } else if (name.equals("severity")) { 1658 value = new DetectedIssueSeverityEnumFactory().fromType(TypeConvertor.castToCode(value)); 1659 this.severity = (Enumeration) value; // Enumeration<DetectedIssueSeverity> 1660 } else if (name.equals("subject")) { 1661 this.subject = TypeConvertor.castToReference(value); // Reference 1662 } else if (name.equals("identified[x]")) { 1663 this.identified = TypeConvertor.castToType(value); // DataType 1664 } else if (name.equals("author")) { 1665 this.author = TypeConvertor.castToReference(value); // Reference 1666 } else if (name.equals("implicated")) { 1667 this.getImplicated().add(TypeConvertor.castToReference(value)); 1668 } else if (name.equals("evidence")) { 1669 this.getEvidence().add((DetectedIssueEvidenceComponent) value); 1670 } else if (name.equals("detail")) { 1671 this.detail = TypeConvertor.castToString(value); // StringType 1672 } else if (name.equals("reference")) { 1673 this.reference = TypeConvertor.castToUri(value); // UriType 1674 } else if (name.equals("mitigation")) { 1675 this.getMitigation().add((DetectedIssueMitigationComponent) value); 1676 } else 1677 return super.setProperty(name, value); 1678 return value; 1679 } 1680 1681 @Override 1682 public Base makeProperty(int hash, String name) throws FHIRException { 1683 switch (hash) { 1684 case -1618432855: return addIdentifier(); 1685 case -892481550: return getStatusElement(); 1686 case 50511102: return addCategory(); 1687 case 3059181: return getCode(); 1688 case 1478300413: return getSeverityElement(); 1689 case -1867885268: return getSubject(); 1690 case 569355781: return getIdentified(); 1691 case -1618432869: return getIdentified(); 1692 case -1406328437: return getAuthor(); 1693 case -810216884: return addImplicated(); 1694 case 382967383: return addEvidence(); 1695 case -1335224239: return getDetailElement(); 1696 case -925155509: return getReferenceElement(); 1697 case 1293793087: return addMitigation(); 1698 default: return super.makeProperty(hash, name); 1699 } 1700 1701 } 1702 1703 @Override 1704 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1705 switch (hash) { 1706 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 1707 case -892481550: /*status*/ return new String[] {"code"}; 1708 case 50511102: /*category*/ return new String[] {"CodeableConcept"}; 1709 case 3059181: /*code*/ return new String[] {"CodeableConcept"}; 1710 case 1478300413: /*severity*/ return new String[] {"code"}; 1711 case -1867885268: /*subject*/ return new String[] {"Reference"}; 1712 case -1618432869: /*identified*/ return new String[] {"dateTime", "Period"}; 1713 case -1406328437: /*author*/ return new String[] {"Reference"}; 1714 case -810216884: /*implicated*/ return new String[] {"Reference"}; 1715 case 382967383: /*evidence*/ return new String[] {}; 1716 case -1335224239: /*detail*/ return new String[] {"string"}; 1717 case -925155509: /*reference*/ return new String[] {"uri"}; 1718 case 1293793087: /*mitigation*/ return new String[] {}; 1719 default: return super.getTypesForProperty(hash, name); 1720 } 1721 1722 } 1723 1724 @Override 1725 public Base addChild(String name) throws FHIRException { 1726 if (name.equals("identifier")) { 1727 return addIdentifier(); 1728 } 1729 else if (name.equals("status")) { 1730 throw new FHIRException("Cannot call addChild on a primitive type DetectedIssue.status"); 1731 } 1732 else if (name.equals("category")) { 1733 return addCategory(); 1734 } 1735 else if (name.equals("code")) { 1736 this.code = new CodeableConcept(); 1737 return this.code; 1738 } 1739 else if (name.equals("severity")) { 1740 throw new FHIRException("Cannot call addChild on a primitive type DetectedIssue.severity"); 1741 } 1742 else if (name.equals("subject")) { 1743 this.subject = new Reference(); 1744 return this.subject; 1745 } 1746 else if (name.equals("identifiedDateTime")) { 1747 this.identified = new DateTimeType(); 1748 return this.identified; 1749 } 1750 else if (name.equals("identifiedPeriod")) { 1751 this.identified = new Period(); 1752 return this.identified; 1753 } 1754 else if (name.equals("author")) { 1755 this.author = new Reference(); 1756 return this.author; 1757 } 1758 else if (name.equals("implicated")) { 1759 return addImplicated(); 1760 } 1761 else if (name.equals("evidence")) { 1762 return addEvidence(); 1763 } 1764 else if (name.equals("detail")) { 1765 throw new FHIRException("Cannot call addChild on a primitive type DetectedIssue.detail"); 1766 } 1767 else if (name.equals("reference")) { 1768 throw new FHIRException("Cannot call addChild on a primitive type DetectedIssue.reference"); 1769 } 1770 else if (name.equals("mitigation")) { 1771 return addMitigation(); 1772 } 1773 else 1774 return super.addChild(name); 1775 } 1776 1777 public String fhirType() { 1778 return "DetectedIssue"; 1779 1780 } 1781 1782 public DetectedIssue copy() { 1783 DetectedIssue dst = new DetectedIssue(); 1784 copyValues(dst); 1785 return dst; 1786 } 1787 1788 public void copyValues(DetectedIssue dst) { 1789 super.copyValues(dst); 1790 if (identifier != null) { 1791 dst.identifier = new ArrayList<Identifier>(); 1792 for (Identifier i : identifier) 1793 dst.identifier.add(i.copy()); 1794 }; 1795 dst.status = status == null ? null : status.copy(); 1796 if (category != null) { 1797 dst.category = new ArrayList<CodeableConcept>(); 1798 for (CodeableConcept i : category) 1799 dst.category.add(i.copy()); 1800 }; 1801 dst.code = code == null ? null : code.copy(); 1802 dst.severity = severity == null ? null : severity.copy(); 1803 dst.subject = subject == null ? null : subject.copy(); 1804 dst.identified = identified == null ? null : identified.copy(); 1805 dst.author = author == null ? null : author.copy(); 1806 if (implicated != null) { 1807 dst.implicated = new ArrayList<Reference>(); 1808 for (Reference i : implicated) 1809 dst.implicated.add(i.copy()); 1810 }; 1811 if (evidence != null) { 1812 dst.evidence = new ArrayList<DetectedIssueEvidenceComponent>(); 1813 for (DetectedIssueEvidenceComponent i : evidence) 1814 dst.evidence.add(i.copy()); 1815 }; 1816 dst.detail = detail == null ? null : detail.copy(); 1817 dst.reference = reference == null ? null : reference.copy(); 1818 if (mitigation != null) { 1819 dst.mitigation = new ArrayList<DetectedIssueMitigationComponent>(); 1820 for (DetectedIssueMitigationComponent i : mitigation) 1821 dst.mitigation.add(i.copy()); 1822 }; 1823 } 1824 1825 protected DetectedIssue typedCopy() { 1826 return copy(); 1827 } 1828 1829 @Override 1830 public boolean equalsDeep(Base other_) { 1831 if (!super.equalsDeep(other_)) 1832 return false; 1833 if (!(other_ instanceof DetectedIssue)) 1834 return false; 1835 DetectedIssue o = (DetectedIssue) other_; 1836 return compareDeep(identifier, o.identifier, true) && compareDeep(status, o.status, true) && compareDeep(category, o.category, true) 1837 && compareDeep(code, o.code, true) && compareDeep(severity, o.severity, true) && compareDeep(subject, o.subject, true) 1838 && compareDeep(identified, o.identified, true) && compareDeep(author, o.author, true) && compareDeep(implicated, o.implicated, true) 1839 && compareDeep(evidence, o.evidence, true) && compareDeep(detail, o.detail, true) && compareDeep(reference, o.reference, true) 1840 && compareDeep(mitigation, o.mitigation, true); 1841 } 1842 1843 @Override 1844 public boolean equalsShallow(Base other_) { 1845 if (!super.equalsShallow(other_)) 1846 return false; 1847 if (!(other_ instanceof DetectedIssue)) 1848 return false; 1849 DetectedIssue o = (DetectedIssue) other_; 1850 return compareValues(status, o.status, true) && compareValues(severity, o.severity, true) && compareValues(detail, o.detail, true) 1851 && compareValues(reference, o.reference, true); 1852 } 1853 1854 public boolean isEmpty() { 1855 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, status, category 1856 , code, severity, subject, identified, author, implicated, evidence, detail 1857 , reference, mitigation); 1858 } 1859 1860 @Override 1861 public ResourceType getResourceType() { 1862 return ResourceType.DetectedIssue; 1863 } 1864 1865 /** 1866 * Search parameter: <b>author</b> 1867 * <p> 1868 * Description: <b>The provider or device that identified the issue</b><br> 1869 * Type: <b>reference</b><br> 1870 * Path: <b>DetectedIssue.author</b><br> 1871 * </p> 1872 */ 1873 @SearchParamDefinition(name="author", path="DetectedIssue.author", description="The provider or device that identified the issue", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Device"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Practitioner") }, target={Device.class, Patient.class, Practitioner.class, PractitionerRole.class, RelatedPerson.class } ) 1874 public static final String SP_AUTHOR = "author"; 1875 /** 1876 * <b>Fluent Client</b> search parameter constant for <b>author</b> 1877 * <p> 1878 * Description: <b>The provider or device that identified the issue</b><br> 1879 * Type: <b>reference</b><br> 1880 * Path: <b>DetectedIssue.author</b><br> 1881 * </p> 1882 */ 1883 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam AUTHOR = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_AUTHOR); 1884 1885/** 1886 * Constant for fluent queries to be used to add include statements. Specifies 1887 * the path value of "<b>DetectedIssue:author</b>". 1888 */ 1889 public static final ca.uhn.fhir.model.api.Include INCLUDE_AUTHOR = new ca.uhn.fhir.model.api.Include("DetectedIssue:author").toLocked(); 1890 1891 /** 1892 * Search parameter: <b>category</b> 1893 * <p> 1894 * Description: <b>Issue Category, e.g. drug-drug, duplicate therapy, etc.</b><br> 1895 * Type: <b>token</b><br> 1896 * Path: <b>DetectedIssue.category</b><br> 1897 * </p> 1898 */ 1899 @SearchParamDefinition(name="category", path="DetectedIssue.category", description="Issue Category, e.g. drug-drug, duplicate therapy, etc.", type="token" ) 1900 public static final String SP_CATEGORY = "category"; 1901 /** 1902 * <b>Fluent Client</b> search parameter constant for <b>category</b> 1903 * <p> 1904 * Description: <b>Issue Category, e.g. drug-drug, duplicate therapy, etc.</b><br> 1905 * Type: <b>token</b><br> 1906 * Path: <b>DetectedIssue.category</b><br> 1907 * </p> 1908 */ 1909 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CATEGORY = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CATEGORY); 1910 1911 /** 1912 * Search parameter: <b>code</b> 1913 * <p> 1914 * Description: <b>Issue Type, e.g. drug-drug, duplicate therapy, etc.</b><br> 1915 * Type: <b>token</b><br> 1916 * Path: <b>DetectedIssue.code</b><br> 1917 * </p> 1918 */ 1919 @SearchParamDefinition(name="code", path="DetectedIssue.code", description="Issue Type, e.g. drug-drug, duplicate therapy, etc.", type="token" ) 1920 public static final String SP_CODE = "code"; 1921 /** 1922 * <b>Fluent Client</b> search parameter constant for <b>code</b> 1923 * <p> 1924 * Description: <b>Issue Type, e.g. drug-drug, duplicate therapy, etc.</b><br> 1925 * Type: <b>token</b><br> 1926 * Path: <b>DetectedIssue.code</b><br> 1927 * </p> 1928 */ 1929 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CODE); 1930 1931 /** 1932 * Search parameter: <b>identified</b> 1933 * <p> 1934 * Description: <b>When identified</b><br> 1935 * Type: <b>date</b><br> 1936 * Path: <b>DetectedIssue.identified</b><br> 1937 * </p> 1938 */ 1939 @SearchParamDefinition(name="identified", path="DetectedIssue.identified", description="When identified", type="date" ) 1940 public static final String SP_IDENTIFIED = "identified"; 1941 /** 1942 * <b>Fluent Client</b> search parameter constant for <b>identified</b> 1943 * <p> 1944 * Description: <b>When identified</b><br> 1945 * Type: <b>date</b><br> 1946 * Path: <b>DetectedIssue.identified</b><br> 1947 * </p> 1948 */ 1949 public static final ca.uhn.fhir.rest.gclient.DateClientParam IDENTIFIED = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_IDENTIFIED); 1950 1951 /** 1952 * Search parameter: <b>implicated</b> 1953 * <p> 1954 * Description: <b>Problem resource</b><br> 1955 * Type: <b>reference</b><br> 1956 * Path: <b>DetectedIssue.implicated</b><br> 1957 * </p> 1958 */ 1959 @SearchParamDefinition(name="implicated", path="DetectedIssue.implicated", description="Problem resource", type="reference", target={Account.class, ActivityDefinition.class, ActorDefinition.class, AdministrableProductDefinition.class, AdverseEvent.class, AllergyIntolerance.class, Appointment.class, AppointmentResponse.class, ArtifactAssessment.class, AuditEvent.class, Basic.class, Binary.class, BiologicallyDerivedProduct.class, BodyStructure.class, Bundle.class, CapabilityStatement.class, CarePlan.class, CareTeam.class, ChargeItem.class, ChargeItemDefinition.class, Citation.class, Claim.class, ClaimResponse.class, ClinicalImpression.class, ClinicalUseDefinition.class, CodeSystem.class, Communication.class, CommunicationRequest.class, CompartmentDefinition.class, Composition.class, ConceptMap.class, Condition.class, ConditionDefinition.class, Consent.class, Contract.class, Coverage.class, CoverageEligibilityRequest.class, CoverageEligibilityResponse.class, DetectedIssue.class, Device.class, DeviceDefinition.class, DeviceDispense.class, DeviceMetric.class, DeviceRequest.class, DeviceUsage.class, DiagnosticReport.class, DocumentManifest.class, DocumentReference.class, Encounter.class, Endpoint.class, EnrollmentRequest.class, EnrollmentResponse.class, EpisodeOfCare.class, EventDefinition.class, Evidence.class, EvidenceReport.class, EvidenceVariable.class, ExampleScenario.class, ExplanationOfBenefit.class, FamilyMemberHistory.class, Flag.class, FormularyItem.class, GenomicStudy.class, Goal.class, GraphDefinition.class, Group.class, GuidanceResponse.class, HealthcareService.class, ImagingSelection.class, ImagingStudy.class, Immunization.class, ImmunizationEvaluation.class, ImmunizationRecommendation.class, ImplementationGuide.class, Ingredient.class, InsurancePlan.class, InventoryReport.class, Invoice.class, Library.class, Linkage.class, ListResource.class, Location.class, ManufacturedItemDefinition.class, Measure.class, MeasureReport.class, Medication.class, MedicationAdministration.class, MedicationDispense.class, MedicationKnowledge.class, MedicationRequest.class, MedicationUsage.class, MedicinalProductDefinition.class, MessageDefinition.class, MessageHeader.class, MolecularSequence.class, NamingSystem.class, NutritionIntake.class, NutritionOrder.class, NutritionProduct.class, Observation.class, ObservationDefinition.class, OperationDefinition.class, OperationOutcome.class, Organization.class, OrganizationAffiliation.class, PackagedProductDefinition.class, Patient.class, PaymentNotice.class, PaymentReconciliation.class, Permission.class, Person.class, PlanDefinition.class, Practitioner.class, PractitionerRole.class, Procedure.class, Provenance.class, Questionnaire.class, QuestionnaireResponse.class, RegulatedAuthorization.class, RelatedPerson.class, RequestOrchestration.class, Requirements.class, ResearchStudy.class, ResearchSubject.class, RiskAssessment.class, Schedule.class, SearchParameter.class, ServiceRequest.class, Slot.class, Specimen.class, SpecimenDefinition.class, StructureDefinition.class, StructureMap.class, Subscription.class, SubscriptionStatus.class, SubscriptionTopic.class, Substance.class, SubstanceDefinition.class, SubstanceNucleicAcid.class, SubstancePolymer.class, SubstanceProtein.class, SubstanceReferenceInformation.class, SubstanceSourceMaterial.class, SupplyDelivery.class, SupplyRequest.class, Task.class, TerminologyCapabilities.class, TestReport.class, TestScript.class, Transport.class, ValueSet.class, VerificationResult.class, VisionPrescription.class } ) 1960 public static final String SP_IMPLICATED = "implicated"; 1961 /** 1962 * <b>Fluent Client</b> search parameter constant for <b>implicated</b> 1963 * <p> 1964 * Description: <b>Problem resource</b><br> 1965 * Type: <b>reference</b><br> 1966 * Path: <b>DetectedIssue.implicated</b><br> 1967 * </p> 1968 */ 1969 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam IMPLICATED = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_IMPLICATED); 1970 1971/** 1972 * Constant for fluent queries to be used to add include statements. Specifies 1973 * the path value of "<b>DetectedIssue:implicated</b>". 1974 */ 1975 public static final ca.uhn.fhir.model.api.Include INCLUDE_IMPLICATED = new ca.uhn.fhir.model.api.Include("DetectedIssue:implicated").toLocked(); 1976 1977 /** 1978 * Search parameter: <b>status</b> 1979 * <p> 1980 * Description: <b>The status of the issue</b><br> 1981 * Type: <b>token</b><br> 1982 * Path: <b>DetectedIssue.status</b><br> 1983 * </p> 1984 */ 1985 @SearchParamDefinition(name="status", path="DetectedIssue.status", description="The status of the issue", type="token" ) 1986 public static final String SP_STATUS = "status"; 1987 /** 1988 * <b>Fluent Client</b> search parameter constant for <b>status</b> 1989 * <p> 1990 * Description: <b>The status of the issue</b><br> 1991 * Type: <b>token</b><br> 1992 * Path: <b>DetectedIssue.status</b><br> 1993 * </p> 1994 */ 1995 public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS); 1996 1997 /** 1998 * Search parameter: <b>subject</b> 1999 * <p> 2000 * Description: <b>Associated subject</b><br> 2001 * Type: <b>reference</b><br> 2002 * Path: <b>DetectedIssue.subject</b><br> 2003 * </p> 2004 */ 2005 @SearchParamDefinition(name="subject", path="DetectedIssue.subject", description="Associated subject", type="reference", target={BiologicallyDerivedProduct.class, Device.class, Group.class, Location.class, Medication.class, NutritionProduct.class, Organization.class, Patient.class, Practitioner.class, Procedure.class, Substance.class } ) 2006 public static final String SP_SUBJECT = "subject"; 2007 /** 2008 * <b>Fluent Client</b> search parameter constant for <b>subject</b> 2009 * <p> 2010 * Description: <b>Associated subject</b><br> 2011 * Type: <b>reference</b><br> 2012 * Path: <b>DetectedIssue.subject</b><br> 2013 * </p> 2014 */ 2015 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SUBJECT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SUBJECT); 2016 2017/** 2018 * Constant for fluent queries to be used to add include statements. Specifies 2019 * the path value of "<b>DetectedIssue:subject</b>". 2020 */ 2021 public static final ca.uhn.fhir.model.api.Include INCLUDE_SUBJECT = new ca.uhn.fhir.model.api.Include("DetectedIssue:subject").toLocked(); 2022 2023 /** 2024 * Search parameter: <b>identifier</b> 2025 * <p> 2026 * Description: <b>Multiple Resources: 2027 2028* [AllergyIntolerance](allergyintolerance.html): External ids for this item 2029* [CarePlan](careplan.html): External Ids for this plan 2030* [CareTeam](careteam.html): External Ids for this team 2031* [Composition](composition.html): Version-independent identifier for the Composition 2032* [Condition](condition.html): A unique identifier of the condition record 2033* [Consent](consent.html): Identifier for this record (external references) 2034* [DetectedIssue](detectedissue.html): Unique id for the detected issue 2035* [DeviceRequest](devicerequest.html): Business identifier for request/order 2036* [DiagnosticReport](diagnosticreport.html): An identifier for the report 2037* [DocumentManifest](documentmanifest.html): Unique Identifier for the set of documents 2038* [DocumentReference](documentreference.html): Identifier of the attachment binary 2039* [Encounter](encounter.html): Identifier(s) by which this encounter is known 2040* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare 2041* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier 2042* [Goal](goal.html): External Ids for this goal 2043* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID 2044* [Immunization](immunization.html): Business identifier 2045* [List](list.html): Business identifier 2046* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier 2047* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier 2048* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier 2049* [MedicationUsage](medicationusage.html): Return statements with this external identifier 2050* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier 2051* [Observation](observation.html): The unique id for a particular observation 2052* [Procedure](procedure.html): A unique identifier for a procedure 2053* [RiskAssessment](riskassessment.html): Unique identifier for the assessment 2054* [ServiceRequest](servicerequest.html): Identifiers assigned to this order 2055* [SupplyDelivery](supplydelivery.html): External identifier 2056* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest 2057* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier 2058</b><br> 2059 * Type: <b>token</b><br> 2060 * Path: <b>AllergyIntolerance.identifier | CarePlan.identifier | CareTeam.identifier | Composition.identifier | Condition.identifier | Consent.identifier | DetectedIssue.identifier | DeviceRequest.identifier | DiagnosticReport.identifier | DocumentManifest.masterIdentifier | DocumentManifest.identifier | DocumentReference.identifier | Encounter.identifier | EpisodeOfCare.identifier | FamilyMemberHistory.identifier | Goal.identifier | ImagingStudy.identifier | Immunization.identifier | List.identifier | MedicationAdministration.identifier | MedicationDispense.identifier | MedicationRequest.identifier | MedicationUsage.identifier | NutritionOrder.identifier | Observation.identifier | Procedure.identifier | RiskAssessment.identifier | ServiceRequest.identifier | SupplyDelivery.identifier | SupplyRequest.identifier | VisionPrescription.identifier</b><br> 2061 * </p> 2062 */ 2063 @SearchParamDefinition(name="identifier", path="AllergyIntolerance.identifier | CarePlan.identifier | CareTeam.identifier | Composition.identifier | Condition.identifier | Consent.identifier | DetectedIssue.identifier | DeviceRequest.identifier | DiagnosticReport.identifier | DocumentManifest.masterIdentifier | DocumentManifest.identifier | DocumentReference.identifier | Encounter.identifier | EpisodeOfCare.identifier | FamilyMemberHistory.identifier | Goal.identifier | ImagingStudy.identifier | Immunization.identifier | List.identifier | MedicationAdministration.identifier | MedicationDispense.identifier | MedicationRequest.identifier | MedicationUsage.identifier | NutritionOrder.identifier | Observation.identifier | Procedure.identifier | RiskAssessment.identifier | ServiceRequest.identifier | SupplyDelivery.identifier | SupplyRequest.identifier | VisionPrescription.identifier", description="Multiple Resources: \r\n\r\n* [AllergyIntolerance](allergyintolerance.html): External ids for this item\r\n* [CarePlan](careplan.html): External Ids for this plan\r\n* [CareTeam](careteam.html): External Ids for this team\r\n* [Composition](composition.html): Version-independent identifier for the Composition\r\n* [Condition](condition.html): A unique identifier of the condition record\r\n* [Consent](consent.html): Identifier for this record (external references)\r\n* [DetectedIssue](detectedissue.html): Unique id for the detected issue\r\n* [DeviceRequest](devicerequest.html): Business identifier for request/order\r\n* [DiagnosticReport](diagnosticreport.html): An identifier for the report\r\n* [DocumentManifest](documentmanifest.html): Unique Identifier for the set of documents\r\n* [DocumentReference](documentreference.html): Identifier of the attachment binary\r\n* [Encounter](encounter.html): Identifier(s) by which this encounter is known\r\n* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare\r\n* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier\r\n* [Goal](goal.html): External Ids for this goal\r\n* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID\r\n* [Immunization](immunization.html): Business identifier\r\n* [List](list.html): Business identifier\r\n* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier\r\n* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier\r\n* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier\r\n* [MedicationUsage](medicationusage.html): Return statements with this external identifier\r\n* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier\r\n* [Observation](observation.html): The unique id for a particular observation\r\n* [Procedure](procedure.html): A unique identifier for a procedure\r\n* [RiskAssessment](riskassessment.html): Unique identifier for the assessment\r\n* [ServiceRequest](servicerequest.html): Identifiers assigned to this order\r\n* [SupplyDelivery](supplydelivery.html): External identifier\r\n* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest\r\n* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier\r\n", type="token" ) 2064 public static final String SP_IDENTIFIER = "identifier"; 2065 /** 2066 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 2067 * <p> 2068 * Description: <b>Multiple Resources: 2069 2070* [AllergyIntolerance](allergyintolerance.html): External ids for this item 2071* [CarePlan](careplan.html): External Ids for this plan 2072* [CareTeam](careteam.html): External Ids for this team 2073* [Composition](composition.html): Version-independent identifier for the Composition 2074* [Condition](condition.html): A unique identifier of the condition record 2075* [Consent](consent.html): Identifier for this record (external references) 2076* [DetectedIssue](detectedissue.html): Unique id for the detected issue 2077* [DeviceRequest](devicerequest.html): Business identifier for request/order 2078* [DiagnosticReport](diagnosticreport.html): An identifier for the report 2079* [DocumentManifest](documentmanifest.html): Unique Identifier for the set of documents 2080* [DocumentReference](documentreference.html): Identifier of the attachment binary 2081* [Encounter](encounter.html): Identifier(s) by which this encounter is known 2082* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare 2083* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier 2084* [Goal](goal.html): External Ids for this goal 2085* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID 2086* [Immunization](immunization.html): Business identifier 2087* [List](list.html): Business identifier 2088* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier 2089* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier 2090* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier 2091* [MedicationUsage](medicationusage.html): Return statements with this external identifier 2092* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier 2093* [Observation](observation.html): The unique id for a particular observation 2094* [Procedure](procedure.html): A unique identifier for a procedure 2095* [RiskAssessment](riskassessment.html): Unique identifier for the assessment 2096* [ServiceRequest](servicerequest.html): Identifiers assigned to this order 2097* [SupplyDelivery](supplydelivery.html): External identifier 2098* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest 2099* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier 2100</b><br> 2101 * Type: <b>token</b><br> 2102 * Path: <b>AllergyIntolerance.identifier | CarePlan.identifier | CareTeam.identifier | Composition.identifier | Condition.identifier | Consent.identifier | DetectedIssue.identifier | DeviceRequest.identifier | DiagnosticReport.identifier | DocumentManifest.masterIdentifier | DocumentManifest.identifier | DocumentReference.identifier | Encounter.identifier | EpisodeOfCare.identifier | FamilyMemberHistory.identifier | Goal.identifier | ImagingStudy.identifier | Immunization.identifier | List.identifier | MedicationAdministration.identifier | MedicationDispense.identifier | MedicationRequest.identifier | MedicationUsage.identifier | NutritionOrder.identifier | Observation.identifier | Procedure.identifier | RiskAssessment.identifier | ServiceRequest.identifier | SupplyDelivery.identifier | SupplyRequest.identifier | VisionPrescription.identifier</b><br> 2103 * </p> 2104 */ 2105 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 2106 2107 /** 2108 * Search parameter: <b>patient</b> 2109 * <p> 2110 * Description: <b>Multiple Resources: 2111 2112* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for 2113* [CarePlan](careplan.html): Who the care plan is for 2114* [CareTeam](careteam.html): Who care team is for 2115* [ClinicalImpression](clinicalimpression.html): Patient assessed 2116* [Composition](composition.html): Who and/or what the composition is about 2117* [Condition](condition.html): Who has the condition? 2118* [Consent](consent.html): Who the consent applies to 2119* [DetectedIssue](detectedissue.html): Associated patient 2120* [DeviceRequest](devicerequest.html): Individual the service is ordered for 2121* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device 2122* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient 2123* [DocumentManifest](documentmanifest.html): The subject of the set of documents 2124* [DocumentReference](documentreference.html): Who/what is the subject of the document 2125* [Encounter](encounter.html): The patient present at the encounter 2126* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care 2127* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for 2128* [Flag](flag.html): The identity of a subject to list flags for 2129* [Goal](goal.html): Who this goal is intended for 2130* [ImagingStudy](imagingstudy.html): Who the study is about 2131* [Immunization](immunization.html): The patient for the vaccination record 2132* [List](list.html): If all resources have the same subject 2133* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations for 2134* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses for 2135* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient 2136* [MedicationUsage](medicationusage.html): Returns statements for a specific patient. 2137* [NutritionOrder](nutritionorder.html): The identity of the individual or set of individuals who requires the diet, formula or nutritional supplement 2138* [Observation](observation.html): The subject that the observation is about (if patient) 2139* [Procedure](procedure.html): Search by subject - a patient 2140* [RiskAssessment](riskassessment.html): Who/what does assessment apply to? 2141* [ServiceRequest](servicerequest.html): Search by subject - a patient 2142* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied 2143* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for 2144</b><br> 2145 * Type: <b>reference</b><br> 2146 * Path: <b>AllergyIntolerance.patient | CarePlan.subject.where(resolve() is Patient) | CareTeam.subject.where(resolve() is Patient) | ClinicalImpression.subject.where(resolve() is Patient) | Composition.subject.where(resolve() is Patient) | Condition.subject.where(resolve() is Patient) | Consent.subject.where(resolve() is Patient) | DetectedIssue.subject | DeviceRequest.subject.where(resolve() is Patient) | DeviceUsage.patient | DiagnosticReport.subject.where(resolve() is Patient) | DocumentManifest.subject.where(resolve() is Patient) | DocumentReference.subject.where(resolve() is Patient) | Encounter.subject.where(resolve() is Patient) | EpisodeOfCare.patient | FamilyMemberHistory.patient | Flag.subject.where(resolve() is Patient) | Goal.subject.where(resolve() is Patient) | ImagingStudy.subject.where(resolve() is Patient) | Immunization.patient | List.subject.where(resolve() is Patient) | MedicationAdministration.subject.where(resolve() is Patient) | MedicationDispense.subject.where(resolve() is Patient) | MedicationRequest.subject.where(resolve() is Patient) | MedicationUsage.subject.where(resolve() is Patient) | NutritionOrder.subject.where(resolve() is Patient) | Observation.subject.where(resolve() is Patient) | Procedure.subject.where(resolve() is Patient) | RiskAssessment.subject.where(resolve() is Patient) | ServiceRequest.subject.where(resolve() is Patient) | SupplyDelivery.patient | VisionPrescription.patient</b><br> 2147 * </p> 2148 */ 2149 @SearchParamDefinition(name="patient", path="AllergyIntolerance.patient | CarePlan.subject.where(resolve() is Patient) | CareTeam.subject.where(resolve() is Patient) | ClinicalImpression.subject.where(resolve() is Patient) | Composition.subject.where(resolve() is Patient) | Condition.subject.where(resolve() is Patient) | Consent.subject.where(resolve() is Patient) | DetectedIssue.subject | DeviceRequest.subject.where(resolve() is Patient) | DeviceUsage.patient | DiagnosticReport.subject.where(resolve() is Patient) | DocumentManifest.subject.where(resolve() is Patient) | DocumentReference.subject.where(resolve() is Patient) | Encounter.subject.where(resolve() is Patient) | EpisodeOfCare.patient | FamilyMemberHistory.patient | Flag.subject.where(resolve() is Patient) | Goal.subject.where(resolve() is Patient) | ImagingStudy.subject.where(resolve() is Patient) | Immunization.patient | List.subject.where(resolve() is Patient) | MedicationAdministration.subject.where(resolve() is Patient) | MedicationDispense.subject.where(resolve() is Patient) | MedicationRequest.subject.where(resolve() is Patient) | MedicationUsage.subject.where(resolve() is Patient) | NutritionOrder.subject.where(resolve() is Patient) | Observation.subject.where(resolve() is Patient) | Procedure.subject.where(resolve() is Patient) | RiskAssessment.subject.where(resolve() is Patient) | ServiceRequest.subject.where(resolve() is Patient) | SupplyDelivery.patient | VisionPrescription.patient", description="Multiple Resources: \r\n\r\n* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for\r\n* [CarePlan](careplan.html): Who the care plan is for\r\n* [CareTeam](careteam.html): Who care team is for\r\n* [ClinicalImpression](clinicalimpression.html): Patient assessed\r\n* [Composition](composition.html): Who and/or what the composition is about\r\n* [Condition](condition.html): Who has the condition?\r\n* [Consent](consent.html): Who the consent applies to\r\n* [DetectedIssue](detectedissue.html): Associated patient\r\n* [DeviceRequest](devicerequest.html): Individual the service is ordered for\r\n* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device\r\n* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient\r\n* [DocumentManifest](documentmanifest.html): The subject of the set of documents\r\n* [DocumentReference](documentreference.html): Who/what is the subject of the document\r\n* [Encounter](encounter.html): The patient present at the encounter\r\n* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care\r\n* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for\r\n* [Flag](flag.html): The identity of a subject to list flags for\r\n* [Goal](goal.html): Who this goal is intended for\r\n* [ImagingStudy](imagingstudy.html): Who the study is about\r\n* [Immunization](immunization.html): The patient for the vaccination record\r\n* [List](list.html): If all resources have the same subject\r\n* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations for\r\n* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses for\r\n* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient\r\n* [MedicationUsage](medicationusage.html): Returns statements for a specific patient.\r\n* [NutritionOrder](nutritionorder.html): The identity of the individual or set of individuals who requires the diet, formula or nutritional supplement\r\n* [Observation](observation.html): The subject that the observation is about (if patient)\r\n* [Procedure](procedure.html): Search by subject - a patient\r\n* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?\r\n* [ServiceRequest](servicerequest.html): Search by subject - a patient\r\n* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied\r\n* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for\r\n", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Patient") }, target={BiologicallyDerivedProduct.class, Device.class, Group.class, Location.class, Medication.class, NutritionProduct.class, Organization.class, Patient.class, Practitioner.class, Procedure.class, Substance.class } ) 2150 public static final String SP_PATIENT = "patient"; 2151 /** 2152 * <b>Fluent Client</b> search parameter constant for <b>patient</b> 2153 * <p> 2154 * Description: <b>Multiple Resources: 2155 2156* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for 2157* [CarePlan](careplan.html): Who the care plan is for 2158* [CareTeam](careteam.html): Who care team is for 2159* [ClinicalImpression](clinicalimpression.html): Patient assessed 2160* [Composition](composition.html): Who and/or what the composition is about 2161* [Condition](condition.html): Who has the condition? 2162* [Consent](consent.html): Who the consent applies to 2163* [DetectedIssue](detectedissue.html): Associated patient 2164* [DeviceRequest](devicerequest.html): Individual the service is ordered for 2165* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device 2166* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient 2167* [DocumentManifest](documentmanifest.html): The subject of the set of documents 2168* [DocumentReference](documentreference.html): Who/what is the subject of the document 2169* [Encounter](encounter.html): The patient present at the encounter 2170* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care 2171* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for 2172* [Flag](flag.html): The identity of a subject to list flags for 2173* [Goal](goal.html): Who this goal is intended for 2174* [ImagingStudy](imagingstudy.html): Who the study is about 2175* [Immunization](immunization.html): The patient for the vaccination record 2176* [List](list.html): If all resources have the same subject 2177* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations for 2178* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses for 2179* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient 2180* [MedicationUsage](medicationusage.html): Returns statements for a specific patient. 2181* [NutritionOrder](nutritionorder.html): The identity of the individual or set of individuals who requires the diet, formula or nutritional supplement 2182* [Observation](observation.html): The subject that the observation is about (if patient) 2183* [Procedure](procedure.html): Search by subject - a patient 2184* [RiskAssessment](riskassessment.html): Who/what does assessment apply to? 2185* [ServiceRequest](servicerequest.html): Search by subject - a patient 2186* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied 2187* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for 2188</b><br> 2189 * Type: <b>reference</b><br> 2190 * Path: <b>AllergyIntolerance.patient | CarePlan.subject.where(resolve() is Patient) | CareTeam.subject.where(resolve() is Patient) | ClinicalImpression.subject.where(resolve() is Patient) | Composition.subject.where(resolve() is Patient) | Condition.subject.where(resolve() is Patient) | Consent.subject.where(resolve() is Patient) | DetectedIssue.subject | DeviceRequest.subject.where(resolve() is Patient) | DeviceUsage.patient | DiagnosticReport.subject.where(resolve() is Patient) | DocumentManifest.subject.where(resolve() is Patient) | DocumentReference.subject.where(resolve() is Patient) | Encounter.subject.where(resolve() is Patient) | EpisodeOfCare.patient | FamilyMemberHistory.patient | Flag.subject.where(resolve() is Patient) | Goal.subject.where(resolve() is Patient) | ImagingStudy.subject.where(resolve() is Patient) | Immunization.patient | List.subject.where(resolve() is Patient) | MedicationAdministration.subject.where(resolve() is Patient) | MedicationDispense.subject.where(resolve() is Patient) | MedicationRequest.subject.where(resolve() is Patient) | MedicationUsage.subject.where(resolve() is Patient) | NutritionOrder.subject.where(resolve() is Patient) | Observation.subject.where(resolve() is Patient) | Procedure.subject.where(resolve() is Patient) | RiskAssessment.subject.where(resolve() is Patient) | ServiceRequest.subject.where(resolve() is Patient) | SupplyDelivery.patient | VisionPrescription.patient</b><br> 2191 * </p> 2192 */ 2193 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PATIENT); 2194 2195/** 2196 * Constant for fluent queries to be used to add include statements. Specifies 2197 * the path value of "<b>DetectedIssue:patient</b>". 2198 */ 2199 public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("DetectedIssue:patient").toLocked(); 2200 2201 2202} 2203