![](/hapi-fhir/images/logos/raccoon-forwards.png)
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 Thu, Mar 23, 2023 19:59+1100 for FHIR v5.0.0 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 * A record of an event relevant for purposes such as operations, privacy, security, maintenance, and performance analysis. 052 */ 053@ResourceDef(name="AuditEvent", profile="http://hl7.org/fhir/StructureDefinition/AuditEvent") 054public class AuditEvent extends DomainResource { 055 056 public enum AuditEventAction { 057 /** 058 * Create a new database object, such as placing an order. 059 */ 060 C, 061 /** 062 * Read data, such as to print or display to a doctor. 063 */ 064 R, 065 /** 066 * Update data, such as revise patient information. 067 */ 068 U, 069 /** 070 * Delete items, such as a doctor master file record. 071 */ 072 D, 073 /** 074 * Perform a system or application function such as log-on, program execution or use of an object's method, or perform a query/search operation. 075 */ 076 E, 077 /** 078 * added to help the parsers with the generic types 079 */ 080 NULL; 081 public static AuditEventAction fromCode(String codeString) throws FHIRException { 082 if (codeString == null || "".equals(codeString)) 083 return null; 084 if ("C".equals(codeString)) 085 return C; 086 if ("R".equals(codeString)) 087 return R; 088 if ("U".equals(codeString)) 089 return U; 090 if ("D".equals(codeString)) 091 return D; 092 if ("E".equals(codeString)) 093 return E; 094 if (Configuration.isAcceptInvalidEnums()) 095 return null; 096 else 097 throw new FHIRException("Unknown AuditEventAction code '"+codeString+"'"); 098 } 099 public String toCode() { 100 switch (this) { 101 case C: return "C"; 102 case R: return "R"; 103 case U: return "U"; 104 case D: return "D"; 105 case E: return "E"; 106 case NULL: return null; 107 default: return "?"; 108 } 109 } 110 public String getSystem() { 111 switch (this) { 112 case C: return "http://hl7.org/fhir/audit-event-action"; 113 case R: return "http://hl7.org/fhir/audit-event-action"; 114 case U: return "http://hl7.org/fhir/audit-event-action"; 115 case D: return "http://hl7.org/fhir/audit-event-action"; 116 case E: return "http://hl7.org/fhir/audit-event-action"; 117 case NULL: return null; 118 default: return "?"; 119 } 120 } 121 public String getDefinition() { 122 switch (this) { 123 case C: return "Create a new database object, such as placing an order."; 124 case R: return "Read data, such as to print or display to a doctor."; 125 case U: return "Update data, such as revise patient information."; 126 case D: return "Delete items, such as a doctor master file record."; 127 case E: return "Perform a system or application function such as log-on, program execution or use of an object's method, or perform a query/search operation."; 128 case NULL: return null; 129 default: return "?"; 130 } 131 } 132 public String getDisplay() { 133 switch (this) { 134 case C: return "Create"; 135 case R: return "Read"; 136 case U: return "Update"; 137 case D: return "Delete"; 138 case E: return "Execute"; 139 case NULL: return null; 140 default: return "?"; 141 } 142 } 143 } 144 145 public static class AuditEventActionEnumFactory implements EnumFactory<AuditEventAction> { 146 public AuditEventAction fromCode(String codeString) throws IllegalArgumentException { 147 if (codeString == null || "".equals(codeString)) 148 if (codeString == null || "".equals(codeString)) 149 return null; 150 if ("C".equals(codeString)) 151 return AuditEventAction.C; 152 if ("R".equals(codeString)) 153 return AuditEventAction.R; 154 if ("U".equals(codeString)) 155 return AuditEventAction.U; 156 if ("D".equals(codeString)) 157 return AuditEventAction.D; 158 if ("E".equals(codeString)) 159 return AuditEventAction.E; 160 throw new IllegalArgumentException("Unknown AuditEventAction code '"+codeString+"'"); 161 } 162 public Enumeration<AuditEventAction> fromType(PrimitiveType<?> code) throws FHIRException { 163 if (code == null) 164 return null; 165 if (code.isEmpty()) 166 return new Enumeration<AuditEventAction>(this, AuditEventAction.NULL, code); 167 String codeString = ((PrimitiveType) code).asStringValue(); 168 if (codeString == null || "".equals(codeString)) 169 return new Enumeration<AuditEventAction>(this, AuditEventAction.NULL, code); 170 if ("C".equals(codeString)) 171 return new Enumeration<AuditEventAction>(this, AuditEventAction.C, code); 172 if ("R".equals(codeString)) 173 return new Enumeration<AuditEventAction>(this, AuditEventAction.R, code); 174 if ("U".equals(codeString)) 175 return new Enumeration<AuditEventAction>(this, AuditEventAction.U, code); 176 if ("D".equals(codeString)) 177 return new Enumeration<AuditEventAction>(this, AuditEventAction.D, code); 178 if ("E".equals(codeString)) 179 return new Enumeration<AuditEventAction>(this, AuditEventAction.E, code); 180 throw new FHIRException("Unknown AuditEventAction code '"+codeString+"'"); 181 } 182 public String toCode(AuditEventAction code) { 183 if (code == AuditEventAction.C) 184 return "C"; 185 if (code == AuditEventAction.R) 186 return "R"; 187 if (code == AuditEventAction.U) 188 return "U"; 189 if (code == AuditEventAction.D) 190 return "D"; 191 if (code == AuditEventAction.E) 192 return "E"; 193 return "?"; 194 } 195 public String toSystem(AuditEventAction code) { 196 return code.getSystem(); 197 } 198 } 199 200 public enum AuditEventSeverity { 201 /** 202 * System is unusable. e.g., This level should only be reported by infrastructure and should not be used by applications. 203 */ 204 EMERGENCY, 205 /** 206 * Notification should be sent to trigger action be taken. e.g., Loss of the primary network connection needing attention. 207 */ 208 ALERT, 209 /** 210 * Critical conditions. e.g., A failure in the system's primary application that will reset automatically. 211 */ 212 CRITICAL, 213 /** 214 * Error conditions. e.g., An application has exceeded its file storage limit and attempts to write are failing. 215 */ 216 ERROR, 217 /** 218 * Warning conditions. May indicate that an error will occur if action is not taken. e.g., A non-root file system has only 2GB remaining. 219 */ 220 WARNING, 221 /** 222 * Notice messages. Normal but significant condition. Events that are unusual, but not error conditions. 223 */ 224 NOTICE, 225 /** 226 * Normal operational messages that require no action. e.g., An application has started, paused, or ended successfully. 227 */ 228 INFORMATIONAL, 229 /** 230 * Debug-level messages. Information useful to developers for debugging the application. 231 */ 232 DEBUG, 233 /** 234 * added to help the parsers with the generic types 235 */ 236 NULL; 237 public static AuditEventSeverity fromCode(String codeString) throws FHIRException { 238 if (codeString == null || "".equals(codeString)) 239 return null; 240 if ("emergency".equals(codeString)) 241 return EMERGENCY; 242 if ("alert".equals(codeString)) 243 return ALERT; 244 if ("critical".equals(codeString)) 245 return CRITICAL; 246 if ("error".equals(codeString)) 247 return ERROR; 248 if ("warning".equals(codeString)) 249 return WARNING; 250 if ("notice".equals(codeString)) 251 return NOTICE; 252 if ("informational".equals(codeString)) 253 return INFORMATIONAL; 254 if ("debug".equals(codeString)) 255 return DEBUG; 256 if (Configuration.isAcceptInvalidEnums()) 257 return null; 258 else 259 throw new FHIRException("Unknown AuditEventSeverity code '"+codeString+"'"); 260 } 261 public String toCode() { 262 switch (this) { 263 case EMERGENCY: return "emergency"; 264 case ALERT: return "alert"; 265 case CRITICAL: return "critical"; 266 case ERROR: return "error"; 267 case WARNING: return "warning"; 268 case NOTICE: return "notice"; 269 case INFORMATIONAL: return "informational"; 270 case DEBUG: return "debug"; 271 case NULL: return null; 272 default: return "?"; 273 } 274 } 275 public String getSystem() { 276 switch (this) { 277 case EMERGENCY: return "http://hl7.org/fhir/audit-event-severity"; 278 case ALERT: return "http://hl7.org/fhir/audit-event-severity"; 279 case CRITICAL: return "http://hl7.org/fhir/audit-event-severity"; 280 case ERROR: return "http://hl7.org/fhir/audit-event-severity"; 281 case WARNING: return "http://hl7.org/fhir/audit-event-severity"; 282 case NOTICE: return "http://hl7.org/fhir/audit-event-severity"; 283 case INFORMATIONAL: return "http://hl7.org/fhir/audit-event-severity"; 284 case DEBUG: return "http://hl7.org/fhir/audit-event-severity"; 285 case NULL: return null; 286 default: return "?"; 287 } 288 } 289 public String getDefinition() { 290 switch (this) { 291 case EMERGENCY: return "System is unusable. e.g., This level should only be reported by infrastructure and should not be used by applications."; 292 case ALERT: return "Notification should be sent to trigger action be taken. e.g., Loss of the primary network connection needing attention."; 293 case CRITICAL: return "Critical conditions. e.g., A failure in the system's primary application that will reset automatically."; 294 case ERROR: return "Error conditions. e.g., An application has exceeded its file storage limit and attempts to write are failing. "; 295 case WARNING: return "Warning conditions. May indicate that an error will occur if action is not taken. e.g., A non-root file system has only 2GB remaining."; 296 case NOTICE: return "Notice messages. Normal but significant condition. Events that are unusual, but not error conditions."; 297 case INFORMATIONAL: return "Normal operational messages that require no action. e.g., An application has started, paused, or ended successfully."; 298 case DEBUG: return "Debug-level messages. Information useful to developers for debugging the application."; 299 case NULL: return null; 300 default: return "?"; 301 } 302 } 303 public String getDisplay() { 304 switch (this) { 305 case EMERGENCY: return "Emergency"; 306 case ALERT: return "Alert"; 307 case CRITICAL: return "Critical"; 308 case ERROR: return "Error"; 309 case WARNING: return "Warning"; 310 case NOTICE: return "Notice"; 311 case INFORMATIONAL: return "Informational"; 312 case DEBUG: return "Debug"; 313 case NULL: return null; 314 default: return "?"; 315 } 316 } 317 } 318 319 public static class AuditEventSeverityEnumFactory implements EnumFactory<AuditEventSeverity> { 320 public AuditEventSeverity fromCode(String codeString) throws IllegalArgumentException { 321 if (codeString == null || "".equals(codeString)) 322 if (codeString == null || "".equals(codeString)) 323 return null; 324 if ("emergency".equals(codeString)) 325 return AuditEventSeverity.EMERGENCY; 326 if ("alert".equals(codeString)) 327 return AuditEventSeverity.ALERT; 328 if ("critical".equals(codeString)) 329 return AuditEventSeverity.CRITICAL; 330 if ("error".equals(codeString)) 331 return AuditEventSeverity.ERROR; 332 if ("warning".equals(codeString)) 333 return AuditEventSeverity.WARNING; 334 if ("notice".equals(codeString)) 335 return AuditEventSeverity.NOTICE; 336 if ("informational".equals(codeString)) 337 return AuditEventSeverity.INFORMATIONAL; 338 if ("debug".equals(codeString)) 339 return AuditEventSeverity.DEBUG; 340 throw new IllegalArgumentException("Unknown AuditEventSeverity code '"+codeString+"'"); 341 } 342 public Enumeration<AuditEventSeverity> fromType(PrimitiveType<?> code) throws FHIRException { 343 if (code == null) 344 return null; 345 if (code.isEmpty()) 346 return new Enumeration<AuditEventSeverity>(this, AuditEventSeverity.NULL, code); 347 String codeString = ((PrimitiveType) code).asStringValue(); 348 if (codeString == null || "".equals(codeString)) 349 return new Enumeration<AuditEventSeverity>(this, AuditEventSeverity.NULL, code); 350 if ("emergency".equals(codeString)) 351 return new Enumeration<AuditEventSeverity>(this, AuditEventSeverity.EMERGENCY, code); 352 if ("alert".equals(codeString)) 353 return new Enumeration<AuditEventSeverity>(this, AuditEventSeverity.ALERT, code); 354 if ("critical".equals(codeString)) 355 return new Enumeration<AuditEventSeverity>(this, AuditEventSeverity.CRITICAL, code); 356 if ("error".equals(codeString)) 357 return new Enumeration<AuditEventSeverity>(this, AuditEventSeverity.ERROR, code); 358 if ("warning".equals(codeString)) 359 return new Enumeration<AuditEventSeverity>(this, AuditEventSeverity.WARNING, code); 360 if ("notice".equals(codeString)) 361 return new Enumeration<AuditEventSeverity>(this, AuditEventSeverity.NOTICE, code); 362 if ("informational".equals(codeString)) 363 return new Enumeration<AuditEventSeverity>(this, AuditEventSeverity.INFORMATIONAL, code); 364 if ("debug".equals(codeString)) 365 return new Enumeration<AuditEventSeverity>(this, AuditEventSeverity.DEBUG, code); 366 throw new FHIRException("Unknown AuditEventSeverity code '"+codeString+"'"); 367 } 368 public String toCode(AuditEventSeverity code) { 369 if (code == AuditEventSeverity.EMERGENCY) 370 return "emergency"; 371 if (code == AuditEventSeverity.ALERT) 372 return "alert"; 373 if (code == AuditEventSeverity.CRITICAL) 374 return "critical"; 375 if (code == AuditEventSeverity.ERROR) 376 return "error"; 377 if (code == AuditEventSeverity.WARNING) 378 return "warning"; 379 if (code == AuditEventSeverity.NOTICE) 380 return "notice"; 381 if (code == AuditEventSeverity.INFORMATIONAL) 382 return "informational"; 383 if (code == AuditEventSeverity.DEBUG) 384 return "debug"; 385 return "?"; 386 } 387 public String toSystem(AuditEventSeverity code) { 388 return code.getSystem(); 389 } 390 } 391 392 @Block() 393 public static class AuditEventOutcomeComponent extends BackboneElement implements IBaseBackboneElement { 394 /** 395 * Indicates whether the event succeeded or failed. 396 */ 397 @Child(name = "code", type = {Coding.class}, order=1, min=1, max=1, modifier=false, summary=true) 398 @Description(shortDefinition="Whether the event succeeded or failed", formalDefinition="Indicates whether the event succeeded or failed." ) 399 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/audit-event-outcome") 400 protected Coding code; 401 402 /** 403 * Additional details about the error. This may be a text description of the error or a system code that identifies the error. 404 */ 405 @Child(name = "detail", type = {CodeableConcept.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 406 @Description(shortDefinition="Additional outcome detail", formalDefinition="Additional details about the error. This may be a text description of the error or a system code that identifies the error." ) 407 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/audit-event-outcome-detail") 408 protected List<CodeableConcept> detail; 409 410 private static final long serialVersionUID = -1108329559L; 411 412 /** 413 * Constructor 414 */ 415 public AuditEventOutcomeComponent() { 416 super(); 417 } 418 419 /** 420 * Constructor 421 */ 422 public AuditEventOutcomeComponent(Coding code) { 423 super(); 424 this.setCode(code); 425 } 426 427 /** 428 * @return {@link #code} (Indicates whether the event succeeded or failed.) 429 */ 430 public Coding getCode() { 431 if (this.code == null) 432 if (Configuration.errorOnAutoCreate()) 433 throw new Error("Attempt to auto-create AuditEventOutcomeComponent.code"); 434 else if (Configuration.doAutoCreate()) 435 this.code = new Coding(); // cc 436 return this.code; 437 } 438 439 public boolean hasCode() { 440 return this.code != null && !this.code.isEmpty(); 441 } 442 443 /** 444 * @param value {@link #code} (Indicates whether the event succeeded or failed.) 445 */ 446 public AuditEventOutcomeComponent setCode(Coding value) { 447 this.code = value; 448 return this; 449 } 450 451 /** 452 * @return {@link #detail} (Additional details about the error. This may be a text description of the error or a system code that identifies the error.) 453 */ 454 public List<CodeableConcept> getDetail() { 455 if (this.detail == null) 456 this.detail = new ArrayList<CodeableConcept>(); 457 return this.detail; 458 } 459 460 /** 461 * @return Returns a reference to <code>this</code> for easy method chaining 462 */ 463 public AuditEventOutcomeComponent setDetail(List<CodeableConcept> theDetail) { 464 this.detail = theDetail; 465 return this; 466 } 467 468 public boolean hasDetail() { 469 if (this.detail == null) 470 return false; 471 for (CodeableConcept item : this.detail) 472 if (!item.isEmpty()) 473 return true; 474 return false; 475 } 476 477 public CodeableConcept addDetail() { //3 478 CodeableConcept t = new CodeableConcept(); 479 if (this.detail == null) 480 this.detail = new ArrayList<CodeableConcept>(); 481 this.detail.add(t); 482 return t; 483 } 484 485 public AuditEventOutcomeComponent addDetail(CodeableConcept t) { //3 486 if (t == null) 487 return this; 488 if (this.detail == null) 489 this.detail = new ArrayList<CodeableConcept>(); 490 this.detail.add(t); 491 return this; 492 } 493 494 /** 495 * @return The first repetition of repeating field {@link #detail}, creating it if it does not already exist {3} 496 */ 497 public CodeableConcept getDetailFirstRep() { 498 if (getDetail().isEmpty()) { 499 addDetail(); 500 } 501 return getDetail().get(0); 502 } 503 504 protected void listChildren(List<Property> children) { 505 super.listChildren(children); 506 children.add(new Property("code", "Coding", "Indicates whether the event succeeded or failed.", 0, 1, code)); 507 children.add(new Property("detail", "CodeableConcept", "Additional details about the error. This may be a text description of the error or a system code that identifies the error.", 0, java.lang.Integer.MAX_VALUE, detail)); 508 } 509 510 @Override 511 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 512 switch (_hash) { 513 case 3059181: /*code*/ return new Property("code", "Coding", "Indicates whether the event succeeded or failed.", 0, 1, code); 514 case -1335224239: /*detail*/ return new Property("detail", "CodeableConcept", "Additional details about the error. This may be a text description of the error or a system code that identifies the error.", 0, java.lang.Integer.MAX_VALUE, detail); 515 default: return super.getNamedProperty(_hash, _name, _checkValid); 516 } 517 518 } 519 520 @Override 521 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 522 switch (hash) { 523 case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // Coding 524 case -1335224239: /*detail*/ return this.detail == null ? new Base[0] : this.detail.toArray(new Base[this.detail.size()]); // CodeableConcept 525 default: return super.getProperty(hash, name, checkValid); 526 } 527 528 } 529 530 @Override 531 public Base setProperty(int hash, String name, Base value) throws FHIRException { 532 switch (hash) { 533 case 3059181: // code 534 this.code = TypeConvertor.castToCoding(value); // Coding 535 return value; 536 case -1335224239: // detail 537 this.getDetail().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 538 return value; 539 default: return super.setProperty(hash, name, value); 540 } 541 542 } 543 544 @Override 545 public Base setProperty(String name, Base value) throws FHIRException { 546 if (name.equals("code")) { 547 this.code = TypeConvertor.castToCoding(value); // Coding 548 } else if (name.equals("detail")) { 549 this.getDetail().add(TypeConvertor.castToCodeableConcept(value)); 550 } else 551 return super.setProperty(name, value); 552 return value; 553 } 554 555 @Override 556 public void removeChild(String name, Base value) throws FHIRException { 557 if (name.equals("code")) { 558 this.code = null; 559 } else if (name.equals("detail")) { 560 this.getDetail().remove(value); 561 } else 562 super.removeChild(name, value); 563 564 } 565 566 @Override 567 public Base makeProperty(int hash, String name) throws FHIRException { 568 switch (hash) { 569 case 3059181: return getCode(); 570 case -1335224239: return addDetail(); 571 default: return super.makeProperty(hash, name); 572 } 573 574 } 575 576 @Override 577 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 578 switch (hash) { 579 case 3059181: /*code*/ return new String[] {"Coding"}; 580 case -1335224239: /*detail*/ return new String[] {"CodeableConcept"}; 581 default: return super.getTypesForProperty(hash, name); 582 } 583 584 } 585 586 @Override 587 public Base addChild(String name) throws FHIRException { 588 if (name.equals("code")) { 589 this.code = new Coding(); 590 return this.code; 591 } 592 else if (name.equals("detail")) { 593 return addDetail(); 594 } 595 else 596 return super.addChild(name); 597 } 598 599 public AuditEventOutcomeComponent copy() { 600 AuditEventOutcomeComponent dst = new AuditEventOutcomeComponent(); 601 copyValues(dst); 602 return dst; 603 } 604 605 public void copyValues(AuditEventOutcomeComponent dst) { 606 super.copyValues(dst); 607 dst.code = code == null ? null : code.copy(); 608 if (detail != null) { 609 dst.detail = new ArrayList<CodeableConcept>(); 610 for (CodeableConcept i : detail) 611 dst.detail.add(i.copy()); 612 }; 613 } 614 615 @Override 616 public boolean equalsDeep(Base other_) { 617 if (!super.equalsDeep(other_)) 618 return false; 619 if (!(other_ instanceof AuditEventOutcomeComponent)) 620 return false; 621 AuditEventOutcomeComponent o = (AuditEventOutcomeComponent) other_; 622 return compareDeep(code, o.code, true) && compareDeep(detail, o.detail, true); 623 } 624 625 @Override 626 public boolean equalsShallow(Base other_) { 627 if (!super.equalsShallow(other_)) 628 return false; 629 if (!(other_ instanceof AuditEventOutcomeComponent)) 630 return false; 631 AuditEventOutcomeComponent o = (AuditEventOutcomeComponent) other_; 632 return true; 633 } 634 635 public boolean isEmpty() { 636 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, detail); 637 } 638 639 public String fhirType() { 640 return "AuditEvent.outcome"; 641 642 } 643 644 } 645 646 @Block() 647 public static class AuditEventAgentComponent extends BackboneElement implements IBaseBackboneElement { 648 /** 649 * The Functional Role of the user when performing the event. 650 */ 651 @Child(name = "type", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=false, summary=false) 652 @Description(shortDefinition="How agent participated", formalDefinition="The Functional Role of the user when performing the event." ) 653 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/participation-role-type") 654 protected CodeableConcept type; 655 656 /** 657 * The structural roles of the agent indicating the agent's competency. The security role enabling the agent with respect to the activity. 658 */ 659 @Child(name = "role", type = {CodeableConcept.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 660 @Description(shortDefinition="Agent role in the event", formalDefinition="The structural roles of the agent indicating the agent's competency. The security role enabling the agent with respect to the activity." ) 661 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/security-role-type") 662 protected List<CodeableConcept> role; 663 664 /** 665 * Reference to who this agent is that was involved in the event. 666 */ 667 @Child(name = "who", type = {Practitioner.class, PractitionerRole.class, Organization.class, CareTeam.class, Patient.class, Device.class, RelatedPerson.class}, order=3, min=1, max=1, modifier=false, summary=true) 668 @Description(shortDefinition="Identifier of who", formalDefinition="Reference to who this agent is that was involved in the event." ) 669 protected Reference who; 670 671 /** 672 * Indicator that the user is or is not the requestor, or initiator, for the event being audited. 673 */ 674 @Child(name = "requestor", type = {BooleanType.class}, order=4, min=0, max=1, modifier=false, summary=true) 675 @Description(shortDefinition="Whether user is initiator", formalDefinition="Indicator that the user is or is not the requestor, or initiator, for the event being audited." ) 676 protected BooleanType requestor; 677 678 /** 679 * Where the agent location is known, the agent location when the event occurred. 680 */ 681 @Child(name = "location", type = {Location.class}, order=5, min=0, max=1, modifier=false, summary=false) 682 @Description(shortDefinition="The agent location when the event occurred", formalDefinition="Where the agent location is known, the agent location when the event occurred." ) 683 protected Reference location; 684 685 /** 686 * Where the policy(ies) are known that authorized the agent participation in the event. Typically, a single activity may have multiple applicable policies, such as patient consent, guarantor funding, etc. The policy would also indicate the security token used. 687 */ 688 @Child(name = "policy", type = {UriType.class}, order=6, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 689 @Description(shortDefinition="Policy that authorized the agent participation in the event", formalDefinition="Where the policy(ies) are known that authorized the agent participation in the event. Typically, a single activity may have multiple applicable policies, such as patient consent, guarantor funding, etc. The policy would also indicate the security token used." ) 690 protected List<UriType> policy; 691 692 /** 693 * When the event utilizes a network there should be an agent describing the local system, and an agent describing remote system, with the network interface details. 694 */ 695 @Child(name = "network", type = {Endpoint.class, UriType.class, StringType.class}, order=7, min=0, max=1, modifier=false, summary=false) 696 @Description(shortDefinition="This agent network location for the activity", formalDefinition="When the event utilizes a network there should be an agent describing the local system, and an agent describing remote system, with the network interface details." ) 697 protected DataType network; 698 699 /** 700 * The authorization (e.g., PurposeOfUse) that was used during the event being recorded. 701 */ 702 @Child(name = "authorization", type = {CodeableConcept.class}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 703 @Description(shortDefinition="Allowable authorization for this agent", formalDefinition="The authorization (e.g., PurposeOfUse) that was used during the event being recorded." ) 704 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://terminology.hl7.org/ValueSet/v3-PurposeOfUse") 705 protected List<CodeableConcept> authorization; 706 707 private static final long serialVersionUID = 509129255L; 708 709 /** 710 * Constructor 711 */ 712 public AuditEventAgentComponent() { 713 super(); 714 } 715 716 /** 717 * Constructor 718 */ 719 public AuditEventAgentComponent(Reference who) { 720 super(); 721 this.setWho(who); 722 } 723 724 /** 725 * @return {@link #type} (The Functional Role of the user when performing the event.) 726 */ 727 public CodeableConcept getType() { 728 if (this.type == null) 729 if (Configuration.errorOnAutoCreate()) 730 throw new Error("Attempt to auto-create AuditEventAgentComponent.type"); 731 else if (Configuration.doAutoCreate()) 732 this.type = new CodeableConcept(); // cc 733 return this.type; 734 } 735 736 public boolean hasType() { 737 return this.type != null && !this.type.isEmpty(); 738 } 739 740 /** 741 * @param value {@link #type} (The Functional Role of the user when performing the event.) 742 */ 743 public AuditEventAgentComponent setType(CodeableConcept value) { 744 this.type = value; 745 return this; 746 } 747 748 /** 749 * @return {@link #role} (The structural roles of the agent indicating the agent's competency. The security role enabling the agent with respect to the activity.) 750 */ 751 public List<CodeableConcept> getRole() { 752 if (this.role == null) 753 this.role = new ArrayList<CodeableConcept>(); 754 return this.role; 755 } 756 757 /** 758 * @return Returns a reference to <code>this</code> for easy method chaining 759 */ 760 public AuditEventAgentComponent setRole(List<CodeableConcept> theRole) { 761 this.role = theRole; 762 return this; 763 } 764 765 public boolean hasRole() { 766 if (this.role == null) 767 return false; 768 for (CodeableConcept item : this.role) 769 if (!item.isEmpty()) 770 return true; 771 return false; 772 } 773 774 public CodeableConcept addRole() { //3 775 CodeableConcept t = new CodeableConcept(); 776 if (this.role == null) 777 this.role = new ArrayList<CodeableConcept>(); 778 this.role.add(t); 779 return t; 780 } 781 782 public AuditEventAgentComponent addRole(CodeableConcept t) { //3 783 if (t == null) 784 return this; 785 if (this.role == null) 786 this.role = new ArrayList<CodeableConcept>(); 787 this.role.add(t); 788 return this; 789 } 790 791 /** 792 * @return The first repetition of repeating field {@link #role}, creating it if it does not already exist {3} 793 */ 794 public CodeableConcept getRoleFirstRep() { 795 if (getRole().isEmpty()) { 796 addRole(); 797 } 798 return getRole().get(0); 799 } 800 801 /** 802 * @return {@link #who} (Reference to who this agent is that was involved in the event.) 803 */ 804 public Reference getWho() { 805 if (this.who == null) 806 if (Configuration.errorOnAutoCreate()) 807 throw new Error("Attempt to auto-create AuditEventAgentComponent.who"); 808 else if (Configuration.doAutoCreate()) 809 this.who = new Reference(); // cc 810 return this.who; 811 } 812 813 public boolean hasWho() { 814 return this.who != null && !this.who.isEmpty(); 815 } 816 817 /** 818 * @param value {@link #who} (Reference to who this agent is that was involved in the event.) 819 */ 820 public AuditEventAgentComponent setWho(Reference value) { 821 this.who = value; 822 return this; 823 } 824 825 /** 826 * @return {@link #requestor} (Indicator that the user is or is not the requestor, or initiator, for the event being audited.). This is the underlying object with id, value and extensions. The accessor "getRequestor" gives direct access to the value 827 */ 828 public BooleanType getRequestorElement() { 829 if (this.requestor == null) 830 if (Configuration.errorOnAutoCreate()) 831 throw new Error("Attempt to auto-create AuditEventAgentComponent.requestor"); 832 else if (Configuration.doAutoCreate()) 833 this.requestor = new BooleanType(); // bb 834 return this.requestor; 835 } 836 837 public boolean hasRequestorElement() { 838 return this.requestor != null && !this.requestor.isEmpty(); 839 } 840 841 public boolean hasRequestor() { 842 return this.requestor != null && !this.requestor.isEmpty(); 843 } 844 845 /** 846 * @param value {@link #requestor} (Indicator that the user is or is not the requestor, or initiator, for the event being audited.). This is the underlying object with id, value and extensions. The accessor "getRequestor" gives direct access to the value 847 */ 848 public AuditEventAgentComponent setRequestorElement(BooleanType value) { 849 this.requestor = value; 850 return this; 851 } 852 853 /** 854 * @return Indicator that the user is or is not the requestor, or initiator, for the event being audited. 855 */ 856 public boolean getRequestor() { 857 return this.requestor == null || this.requestor.isEmpty() ? false : this.requestor.getValue(); 858 } 859 860 /** 861 * @param value Indicator that the user is or is not the requestor, or initiator, for the event being audited. 862 */ 863 public AuditEventAgentComponent setRequestor(boolean value) { 864 if (this.requestor == null) 865 this.requestor = new BooleanType(); 866 this.requestor.setValue(value); 867 return this; 868 } 869 870 /** 871 * @return {@link #location} (Where the agent location is known, the agent location when the event occurred.) 872 */ 873 public Reference getLocation() { 874 if (this.location == null) 875 if (Configuration.errorOnAutoCreate()) 876 throw new Error("Attempt to auto-create AuditEventAgentComponent.location"); 877 else if (Configuration.doAutoCreate()) 878 this.location = new Reference(); // cc 879 return this.location; 880 } 881 882 public boolean hasLocation() { 883 return this.location != null && !this.location.isEmpty(); 884 } 885 886 /** 887 * @param value {@link #location} (Where the agent location is known, the agent location when the event occurred.) 888 */ 889 public AuditEventAgentComponent setLocation(Reference value) { 890 this.location = value; 891 return this; 892 } 893 894 /** 895 * @return {@link #policy} (Where the policy(ies) are known that authorized the agent participation in the event. Typically, a single activity may have multiple applicable policies, such as patient consent, guarantor funding, etc. The policy would also indicate the security token used.) 896 */ 897 public List<UriType> getPolicy() { 898 if (this.policy == null) 899 this.policy = new ArrayList<UriType>(); 900 return this.policy; 901 } 902 903 /** 904 * @return Returns a reference to <code>this</code> for easy method chaining 905 */ 906 public AuditEventAgentComponent setPolicy(List<UriType> thePolicy) { 907 this.policy = thePolicy; 908 return this; 909 } 910 911 public boolean hasPolicy() { 912 if (this.policy == null) 913 return false; 914 for (UriType item : this.policy) 915 if (!item.isEmpty()) 916 return true; 917 return false; 918 } 919 920 /** 921 * @return {@link #policy} (Where the policy(ies) are known that authorized the agent participation in the event. Typically, a single activity may have multiple applicable policies, such as patient consent, guarantor funding, etc. The policy would also indicate the security token used.) 922 */ 923 public UriType addPolicyElement() {//2 924 UriType t = new UriType(); 925 if (this.policy == null) 926 this.policy = new ArrayList<UriType>(); 927 this.policy.add(t); 928 return t; 929 } 930 931 /** 932 * @param value {@link #policy} (Where the policy(ies) are known that authorized the agent participation in the event. Typically, a single activity may have multiple applicable policies, such as patient consent, guarantor funding, etc. The policy would also indicate the security token used.) 933 */ 934 public AuditEventAgentComponent addPolicy(String value) { //1 935 UriType t = new UriType(); 936 t.setValue(value); 937 if (this.policy == null) 938 this.policy = new ArrayList<UriType>(); 939 this.policy.add(t); 940 return this; 941 } 942 943 /** 944 * @param value {@link #policy} (Where the policy(ies) are known that authorized the agent participation in the event. Typically, a single activity may have multiple applicable policies, such as patient consent, guarantor funding, etc. The policy would also indicate the security token used.) 945 */ 946 public boolean hasPolicy(String value) { 947 if (this.policy == null) 948 return false; 949 for (UriType v : this.policy) 950 if (v.getValue().equals(value)) // uri 951 return true; 952 return false; 953 } 954 955 /** 956 * @return {@link #network} (When the event utilizes a network there should be an agent describing the local system, and an agent describing remote system, with the network interface details.) 957 */ 958 public DataType getNetwork() { 959 return this.network; 960 } 961 962 /** 963 * @return {@link #network} (When the event utilizes a network there should be an agent describing the local system, and an agent describing remote system, with the network interface details.) 964 */ 965 public Reference getNetworkReference() throws FHIRException { 966 if (this.network == null) 967 this.network = new Reference(); 968 if (!(this.network instanceof Reference)) 969 throw new FHIRException("Type mismatch: the type Reference was expected, but "+this.network.getClass().getName()+" was encountered"); 970 return (Reference) this.network; 971 } 972 973 public boolean hasNetworkReference() { 974 return this != null && this.network instanceof Reference; 975 } 976 977 /** 978 * @return {@link #network} (When the event utilizes a network there should be an agent describing the local system, and an agent describing remote system, with the network interface details.) 979 */ 980 public UriType getNetworkUriType() throws FHIRException { 981 if (this.network == null) 982 this.network = new UriType(); 983 if (!(this.network instanceof UriType)) 984 throw new FHIRException("Type mismatch: the type UriType was expected, but "+this.network.getClass().getName()+" was encountered"); 985 return (UriType) this.network; 986 } 987 988 public boolean hasNetworkUriType() { 989 return this != null && this.network instanceof UriType; 990 } 991 992 /** 993 * @return {@link #network} (When the event utilizes a network there should be an agent describing the local system, and an agent describing remote system, with the network interface details.) 994 */ 995 public StringType getNetworkStringType() throws FHIRException { 996 if (this.network == null) 997 this.network = new StringType(); 998 if (!(this.network instanceof StringType)) 999 throw new FHIRException("Type mismatch: the type StringType was expected, but "+this.network.getClass().getName()+" was encountered"); 1000 return (StringType) this.network; 1001 } 1002 1003 public boolean hasNetworkStringType() { 1004 return this != null && this.network instanceof StringType; 1005 } 1006 1007 public boolean hasNetwork() { 1008 return this.network != null && !this.network.isEmpty(); 1009 } 1010 1011 /** 1012 * @param value {@link #network} (When the event utilizes a network there should be an agent describing the local system, and an agent describing remote system, with the network interface details.) 1013 */ 1014 public AuditEventAgentComponent setNetwork(DataType value) { 1015 if (value != null && !(value instanceof Reference || value instanceof UriType || value instanceof StringType)) 1016 throw new FHIRException("Not the right type for AuditEvent.agent.network[x]: "+value.fhirType()); 1017 this.network = value; 1018 return this; 1019 } 1020 1021 /** 1022 * @return {@link #authorization} (The authorization (e.g., PurposeOfUse) that was used during the event being recorded.) 1023 */ 1024 public List<CodeableConcept> getAuthorization() { 1025 if (this.authorization == null) 1026 this.authorization = new ArrayList<CodeableConcept>(); 1027 return this.authorization; 1028 } 1029 1030 /** 1031 * @return Returns a reference to <code>this</code> for easy method chaining 1032 */ 1033 public AuditEventAgentComponent setAuthorization(List<CodeableConcept> theAuthorization) { 1034 this.authorization = theAuthorization; 1035 return this; 1036 } 1037 1038 public boolean hasAuthorization() { 1039 if (this.authorization == null) 1040 return false; 1041 for (CodeableConcept item : this.authorization) 1042 if (!item.isEmpty()) 1043 return true; 1044 return false; 1045 } 1046 1047 public CodeableConcept addAuthorization() { //3 1048 CodeableConcept t = new CodeableConcept(); 1049 if (this.authorization == null) 1050 this.authorization = new ArrayList<CodeableConcept>(); 1051 this.authorization.add(t); 1052 return t; 1053 } 1054 1055 public AuditEventAgentComponent addAuthorization(CodeableConcept t) { //3 1056 if (t == null) 1057 return this; 1058 if (this.authorization == null) 1059 this.authorization = new ArrayList<CodeableConcept>(); 1060 this.authorization.add(t); 1061 return this; 1062 } 1063 1064 /** 1065 * @return The first repetition of repeating field {@link #authorization}, creating it if it does not already exist {3} 1066 */ 1067 public CodeableConcept getAuthorizationFirstRep() { 1068 if (getAuthorization().isEmpty()) { 1069 addAuthorization(); 1070 } 1071 return getAuthorization().get(0); 1072 } 1073 1074 protected void listChildren(List<Property> children) { 1075 super.listChildren(children); 1076 children.add(new Property("type", "CodeableConcept", "The Functional Role of the user when performing the event.", 0, 1, type)); 1077 children.add(new Property("role", "CodeableConcept", "The structural roles of the agent indicating the agent's competency. The security role enabling the agent with respect to the activity.", 0, java.lang.Integer.MAX_VALUE, role)); 1078 children.add(new Property("who", "Reference(Practitioner|PractitionerRole|Organization|CareTeam|Patient|Device|RelatedPerson)", "Reference to who this agent is that was involved in the event.", 0, 1, who)); 1079 children.add(new Property("requestor", "boolean", "Indicator that the user is or is not the requestor, or initiator, for the event being audited.", 0, 1, requestor)); 1080 children.add(new Property("location", "Reference(Location)", "Where the agent location is known, the agent location when the event occurred.", 0, 1, location)); 1081 children.add(new Property("policy", "uri", "Where the policy(ies) are known that authorized the agent participation in the event. Typically, a single activity may have multiple applicable policies, such as patient consent, guarantor funding, etc. The policy would also indicate the security token used.", 0, java.lang.Integer.MAX_VALUE, policy)); 1082 children.add(new Property("network[x]", "Reference(Endpoint)|uri|string", "When the event utilizes a network there should be an agent describing the local system, and an agent describing remote system, with the network interface details.", 0, 1, network)); 1083 children.add(new Property("authorization", "CodeableConcept", "The authorization (e.g., PurposeOfUse) that was used during the event being recorded.", 0, java.lang.Integer.MAX_VALUE, authorization)); 1084 } 1085 1086 @Override 1087 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1088 switch (_hash) { 1089 case 3575610: /*type*/ return new Property("type", "CodeableConcept", "The Functional Role of the user when performing the event.", 0, 1, type); 1090 case 3506294: /*role*/ return new Property("role", "CodeableConcept", "The structural roles of the agent indicating the agent's competency. The security role enabling the agent with respect to the activity.", 0, java.lang.Integer.MAX_VALUE, role); 1091 case 117694: /*who*/ return new Property("who", "Reference(Practitioner|PractitionerRole|Organization|CareTeam|Patient|Device|RelatedPerson)", "Reference to who this agent is that was involved in the event.", 0, 1, who); 1092 case 693934258: /*requestor*/ return new Property("requestor", "boolean", "Indicator that the user is or is not the requestor, or initiator, for the event being audited.", 0, 1, requestor); 1093 case 1901043637: /*location*/ return new Property("location", "Reference(Location)", "Where the agent location is known, the agent location when the event occurred.", 0, 1, location); 1094 case -982670030: /*policy*/ return new Property("policy", "uri", "Where the policy(ies) are known that authorized the agent participation in the event. Typically, a single activity may have multiple applicable policies, such as patient consent, guarantor funding, etc. The policy would also indicate the security token used.", 0, java.lang.Integer.MAX_VALUE, policy); 1095 case -478235758: /*network[x]*/ return new Property("network[x]", "Reference(Endpoint)|uri|string", "When the event utilizes a network there should be an agent describing the local system, and an agent describing remote system, with the network interface details.", 0, 1, network); 1096 case 1843485230: /*network*/ return new Property("network[x]", "Reference(Endpoint)|uri|string", "When the event utilizes a network there should be an agent describing the local system, and an agent describing remote system, with the network interface details.", 0, 1, network); 1097 case -1769760579: /*networkReference*/ return new Property("network[x]", "Reference(Endpoint)", "When the event utilizes a network there should be an agent describing the local system, and an agent describing remote system, with the network interface details.", 0, 1, network); 1098 case -478241698: /*networkUri*/ return new Property("network[x]", "uri", "When the event utilizes a network there should be an agent describing the local system, and an agent describing remote system, with the network interface details.", 0, 1, network); 1099 case -946943009: /*networkString*/ return new Property("network[x]", "string", "When the event utilizes a network there should be an agent describing the local system, and an agent describing remote system, with the network interface details.", 0, 1, network); 1100 case -1385570183: /*authorization*/ return new Property("authorization", "CodeableConcept", "The authorization (e.g., PurposeOfUse) that was used during the event being recorded.", 0, java.lang.Integer.MAX_VALUE, authorization); 1101 default: return super.getNamedProperty(_hash, _name, _checkValid); 1102 } 1103 1104 } 1105 1106 @Override 1107 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1108 switch (hash) { 1109 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // CodeableConcept 1110 case 3506294: /*role*/ return this.role == null ? new Base[0] : this.role.toArray(new Base[this.role.size()]); // CodeableConcept 1111 case 117694: /*who*/ return this.who == null ? new Base[0] : new Base[] {this.who}; // Reference 1112 case 693934258: /*requestor*/ return this.requestor == null ? new Base[0] : new Base[] {this.requestor}; // BooleanType 1113 case 1901043637: /*location*/ return this.location == null ? new Base[0] : new Base[] {this.location}; // Reference 1114 case -982670030: /*policy*/ return this.policy == null ? new Base[0] : this.policy.toArray(new Base[this.policy.size()]); // UriType 1115 case 1843485230: /*network*/ return this.network == null ? new Base[0] : new Base[] {this.network}; // DataType 1116 case -1385570183: /*authorization*/ return this.authorization == null ? new Base[0] : this.authorization.toArray(new Base[this.authorization.size()]); // CodeableConcept 1117 default: return super.getProperty(hash, name, checkValid); 1118 } 1119 1120 } 1121 1122 @Override 1123 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1124 switch (hash) { 1125 case 3575610: // type 1126 this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1127 return value; 1128 case 3506294: // role 1129 this.getRole().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 1130 return value; 1131 case 117694: // who 1132 this.who = TypeConvertor.castToReference(value); // Reference 1133 return value; 1134 case 693934258: // requestor 1135 this.requestor = TypeConvertor.castToBoolean(value); // BooleanType 1136 return value; 1137 case 1901043637: // location 1138 this.location = TypeConvertor.castToReference(value); // Reference 1139 return value; 1140 case -982670030: // policy 1141 this.getPolicy().add(TypeConvertor.castToUri(value)); // UriType 1142 return value; 1143 case 1843485230: // network 1144 this.network = TypeConvertor.castToType(value); // DataType 1145 return value; 1146 case -1385570183: // authorization 1147 this.getAuthorization().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 1148 return value; 1149 default: return super.setProperty(hash, name, value); 1150 } 1151 1152 } 1153 1154 @Override 1155 public Base setProperty(String name, Base value) throws FHIRException { 1156 if (name.equals("type")) { 1157 this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1158 } else if (name.equals("role")) { 1159 this.getRole().add(TypeConvertor.castToCodeableConcept(value)); 1160 } else if (name.equals("who")) { 1161 this.who = TypeConvertor.castToReference(value); // Reference 1162 } else if (name.equals("requestor")) { 1163 this.requestor = TypeConvertor.castToBoolean(value); // BooleanType 1164 } else if (name.equals("location")) { 1165 this.location = TypeConvertor.castToReference(value); // Reference 1166 } else if (name.equals("policy")) { 1167 this.getPolicy().add(TypeConvertor.castToUri(value)); 1168 } else if (name.equals("network[x]")) { 1169 this.network = TypeConvertor.castToType(value); // DataType 1170 } else if (name.equals("authorization")) { 1171 this.getAuthorization().add(TypeConvertor.castToCodeableConcept(value)); 1172 } else 1173 return super.setProperty(name, value); 1174 return value; 1175 } 1176 1177 @Override 1178 public void removeChild(String name, Base value) throws FHIRException { 1179 if (name.equals("type")) { 1180 this.type = null; 1181 } else if (name.equals("role")) { 1182 this.getRole().remove(value); 1183 } else if (name.equals("who")) { 1184 this.who = null; 1185 } else if (name.equals("requestor")) { 1186 this.requestor = null; 1187 } else if (name.equals("location")) { 1188 this.location = null; 1189 } else if (name.equals("policy")) { 1190 this.getPolicy().remove(value); 1191 } else if (name.equals("network[x]")) { 1192 this.network = null; 1193 } else if (name.equals("authorization")) { 1194 this.getAuthorization().remove(value); 1195 } else 1196 super.removeChild(name, value); 1197 1198 } 1199 1200 @Override 1201 public Base makeProperty(int hash, String name) throws FHIRException { 1202 switch (hash) { 1203 case 3575610: return getType(); 1204 case 3506294: return addRole(); 1205 case 117694: return getWho(); 1206 case 693934258: return getRequestorElement(); 1207 case 1901043637: return getLocation(); 1208 case -982670030: return addPolicyElement(); 1209 case -478235758: return getNetwork(); 1210 case 1843485230: return getNetwork(); 1211 case -1385570183: return addAuthorization(); 1212 default: return super.makeProperty(hash, name); 1213 } 1214 1215 } 1216 1217 @Override 1218 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1219 switch (hash) { 1220 case 3575610: /*type*/ return new String[] {"CodeableConcept"}; 1221 case 3506294: /*role*/ return new String[] {"CodeableConcept"}; 1222 case 117694: /*who*/ return new String[] {"Reference"}; 1223 case 693934258: /*requestor*/ return new String[] {"boolean"}; 1224 case 1901043637: /*location*/ return new String[] {"Reference"}; 1225 case -982670030: /*policy*/ return new String[] {"uri"}; 1226 case 1843485230: /*network*/ return new String[] {"Reference", "uri", "string"}; 1227 case -1385570183: /*authorization*/ return new String[] {"CodeableConcept"}; 1228 default: return super.getTypesForProperty(hash, name); 1229 } 1230 1231 } 1232 1233 @Override 1234 public Base addChild(String name) throws FHIRException { 1235 if (name.equals("type")) { 1236 this.type = new CodeableConcept(); 1237 return this.type; 1238 } 1239 else if (name.equals("role")) { 1240 return addRole(); 1241 } 1242 else if (name.equals("who")) { 1243 this.who = new Reference(); 1244 return this.who; 1245 } 1246 else if (name.equals("requestor")) { 1247 throw new FHIRException("Cannot call addChild on a singleton property AuditEvent.agent.requestor"); 1248 } 1249 else if (name.equals("location")) { 1250 this.location = new Reference(); 1251 return this.location; 1252 } 1253 else if (name.equals("policy")) { 1254 throw new FHIRException("Cannot call addChild on a singleton property AuditEvent.agent.policy"); 1255 } 1256 else if (name.equals("networkReference")) { 1257 this.network = new Reference(); 1258 return this.network; 1259 } 1260 else if (name.equals("networkUri")) { 1261 this.network = new UriType(); 1262 return this.network; 1263 } 1264 else if (name.equals("networkString")) { 1265 this.network = new StringType(); 1266 return this.network; 1267 } 1268 else if (name.equals("authorization")) { 1269 return addAuthorization(); 1270 } 1271 else 1272 return super.addChild(name); 1273 } 1274 1275 public AuditEventAgentComponent copy() { 1276 AuditEventAgentComponent dst = new AuditEventAgentComponent(); 1277 copyValues(dst); 1278 return dst; 1279 } 1280 1281 public void copyValues(AuditEventAgentComponent dst) { 1282 super.copyValues(dst); 1283 dst.type = type == null ? null : type.copy(); 1284 if (role != null) { 1285 dst.role = new ArrayList<CodeableConcept>(); 1286 for (CodeableConcept i : role) 1287 dst.role.add(i.copy()); 1288 }; 1289 dst.who = who == null ? null : who.copy(); 1290 dst.requestor = requestor == null ? null : requestor.copy(); 1291 dst.location = location == null ? null : location.copy(); 1292 if (policy != null) { 1293 dst.policy = new ArrayList<UriType>(); 1294 for (UriType i : policy) 1295 dst.policy.add(i.copy()); 1296 }; 1297 dst.network = network == null ? null : network.copy(); 1298 if (authorization != null) { 1299 dst.authorization = new ArrayList<CodeableConcept>(); 1300 for (CodeableConcept i : authorization) 1301 dst.authorization.add(i.copy()); 1302 }; 1303 } 1304 1305 @Override 1306 public boolean equalsDeep(Base other_) { 1307 if (!super.equalsDeep(other_)) 1308 return false; 1309 if (!(other_ instanceof AuditEventAgentComponent)) 1310 return false; 1311 AuditEventAgentComponent o = (AuditEventAgentComponent) other_; 1312 return compareDeep(type, o.type, true) && compareDeep(role, o.role, true) && compareDeep(who, o.who, true) 1313 && compareDeep(requestor, o.requestor, true) && compareDeep(location, o.location, true) && compareDeep(policy, o.policy, true) 1314 && compareDeep(network, o.network, true) && compareDeep(authorization, o.authorization, true); 1315 } 1316 1317 @Override 1318 public boolean equalsShallow(Base other_) { 1319 if (!super.equalsShallow(other_)) 1320 return false; 1321 if (!(other_ instanceof AuditEventAgentComponent)) 1322 return false; 1323 AuditEventAgentComponent o = (AuditEventAgentComponent) other_; 1324 return compareValues(requestor, o.requestor, true) && compareValues(policy, o.policy, true); 1325 } 1326 1327 public boolean isEmpty() { 1328 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(type, role, who, requestor 1329 , location, policy, network, authorization); 1330 } 1331 1332 public String fhirType() { 1333 return "AuditEvent.agent"; 1334 1335 } 1336 1337 } 1338 1339 @Block() 1340 public static class AuditEventSourceComponent extends BackboneElement implements IBaseBackboneElement { 1341 /** 1342 * Logical source location within the healthcare enterprise network. For example, a hospital or other provider location within a multi-entity provider group. 1343 */ 1344 @Child(name = "site", type = {Location.class}, order=1, min=0, max=1, modifier=false, summary=false) 1345 @Description(shortDefinition="Logical source location within the enterprise", formalDefinition="Logical source location within the healthcare enterprise network. For example, a hospital or other provider location within a multi-entity provider group." ) 1346 protected Reference site; 1347 1348 /** 1349 * Identifier of the source where the event was detected. 1350 */ 1351 @Child(name = "observer", type = {Practitioner.class, PractitionerRole.class, Organization.class, CareTeam.class, Patient.class, Device.class, RelatedPerson.class}, order=2, min=1, max=1, modifier=false, summary=true) 1352 @Description(shortDefinition="The identity of source detecting the event", formalDefinition="Identifier of the source where the event was detected." ) 1353 protected Reference observer; 1354 1355 /** 1356 * Code specifying the type of source where event originated. 1357 */ 1358 @Child(name = "type", type = {CodeableConcept.class}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1359 @Description(shortDefinition="The type of source where event originated", formalDefinition="Code specifying the type of source where event originated." ) 1360 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/security-source-type") 1361 protected List<CodeableConcept> type; 1362 1363 private static final long serialVersionUID = -140005578L; 1364 1365 /** 1366 * Constructor 1367 */ 1368 public AuditEventSourceComponent() { 1369 super(); 1370 } 1371 1372 /** 1373 * Constructor 1374 */ 1375 public AuditEventSourceComponent(Reference observer) { 1376 super(); 1377 this.setObserver(observer); 1378 } 1379 1380 /** 1381 * @return {@link #site} (Logical source location within the healthcare enterprise network. For example, a hospital or other provider location within a multi-entity provider group.) 1382 */ 1383 public Reference getSite() { 1384 if (this.site == null) 1385 if (Configuration.errorOnAutoCreate()) 1386 throw new Error("Attempt to auto-create AuditEventSourceComponent.site"); 1387 else if (Configuration.doAutoCreate()) 1388 this.site = new Reference(); // cc 1389 return this.site; 1390 } 1391 1392 public boolean hasSite() { 1393 return this.site != null && !this.site.isEmpty(); 1394 } 1395 1396 /** 1397 * @param value {@link #site} (Logical source location within the healthcare enterprise network. For example, a hospital or other provider location within a multi-entity provider group.) 1398 */ 1399 public AuditEventSourceComponent setSite(Reference value) { 1400 this.site = value; 1401 return this; 1402 } 1403 1404 /** 1405 * @return {@link #observer} (Identifier of the source where the event was detected.) 1406 */ 1407 public Reference getObserver() { 1408 if (this.observer == null) 1409 if (Configuration.errorOnAutoCreate()) 1410 throw new Error("Attempt to auto-create AuditEventSourceComponent.observer"); 1411 else if (Configuration.doAutoCreate()) 1412 this.observer = new Reference(); // cc 1413 return this.observer; 1414 } 1415 1416 public boolean hasObserver() { 1417 return this.observer != null && !this.observer.isEmpty(); 1418 } 1419 1420 /** 1421 * @param value {@link #observer} (Identifier of the source where the event was detected.) 1422 */ 1423 public AuditEventSourceComponent setObserver(Reference value) { 1424 this.observer = value; 1425 return this; 1426 } 1427 1428 /** 1429 * @return {@link #type} (Code specifying the type of source where event originated.) 1430 */ 1431 public List<CodeableConcept> getType() { 1432 if (this.type == null) 1433 this.type = new ArrayList<CodeableConcept>(); 1434 return this.type; 1435 } 1436 1437 /** 1438 * @return Returns a reference to <code>this</code> for easy method chaining 1439 */ 1440 public AuditEventSourceComponent setType(List<CodeableConcept> theType) { 1441 this.type = theType; 1442 return this; 1443 } 1444 1445 public boolean hasType() { 1446 if (this.type == null) 1447 return false; 1448 for (CodeableConcept item : this.type) 1449 if (!item.isEmpty()) 1450 return true; 1451 return false; 1452 } 1453 1454 public CodeableConcept addType() { //3 1455 CodeableConcept t = new CodeableConcept(); 1456 if (this.type == null) 1457 this.type = new ArrayList<CodeableConcept>(); 1458 this.type.add(t); 1459 return t; 1460 } 1461 1462 public AuditEventSourceComponent addType(CodeableConcept t) { //3 1463 if (t == null) 1464 return this; 1465 if (this.type == null) 1466 this.type = new ArrayList<CodeableConcept>(); 1467 this.type.add(t); 1468 return this; 1469 } 1470 1471 /** 1472 * @return The first repetition of repeating field {@link #type}, creating it if it does not already exist {3} 1473 */ 1474 public CodeableConcept getTypeFirstRep() { 1475 if (getType().isEmpty()) { 1476 addType(); 1477 } 1478 return getType().get(0); 1479 } 1480 1481 protected void listChildren(List<Property> children) { 1482 super.listChildren(children); 1483 children.add(new Property("site", "Reference(Location)", "Logical source location within the healthcare enterprise network. For example, a hospital or other provider location within a multi-entity provider group.", 0, 1, site)); 1484 children.add(new Property("observer", "Reference(Practitioner|PractitionerRole|Organization|CareTeam|Patient|Device|RelatedPerson)", "Identifier of the source where the event was detected.", 0, 1, observer)); 1485 children.add(new Property("type", "CodeableConcept", "Code specifying the type of source where event originated.", 0, java.lang.Integer.MAX_VALUE, type)); 1486 } 1487 1488 @Override 1489 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1490 switch (_hash) { 1491 case 3530567: /*site*/ return new Property("site", "Reference(Location)", "Logical source location within the healthcare enterprise network. For example, a hospital or other provider location within a multi-entity provider group.", 0, 1, site); 1492 case 348607190: /*observer*/ return new Property("observer", "Reference(Practitioner|PractitionerRole|Organization|CareTeam|Patient|Device|RelatedPerson)", "Identifier of the source where the event was detected.", 0, 1, observer); 1493 case 3575610: /*type*/ return new Property("type", "CodeableConcept", "Code specifying the type of source where event originated.", 0, java.lang.Integer.MAX_VALUE, type); 1494 default: return super.getNamedProperty(_hash, _name, _checkValid); 1495 } 1496 1497 } 1498 1499 @Override 1500 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1501 switch (hash) { 1502 case 3530567: /*site*/ return this.site == null ? new Base[0] : new Base[] {this.site}; // Reference 1503 case 348607190: /*observer*/ return this.observer == null ? new Base[0] : new Base[] {this.observer}; // Reference 1504 case 3575610: /*type*/ return this.type == null ? new Base[0] : this.type.toArray(new Base[this.type.size()]); // CodeableConcept 1505 default: return super.getProperty(hash, name, checkValid); 1506 } 1507 1508 } 1509 1510 @Override 1511 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1512 switch (hash) { 1513 case 3530567: // site 1514 this.site = TypeConvertor.castToReference(value); // Reference 1515 return value; 1516 case 348607190: // observer 1517 this.observer = TypeConvertor.castToReference(value); // Reference 1518 return value; 1519 case 3575610: // type 1520 this.getType().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 1521 return value; 1522 default: return super.setProperty(hash, name, value); 1523 } 1524 1525 } 1526 1527 @Override 1528 public Base setProperty(String name, Base value) throws FHIRException { 1529 if (name.equals("site")) { 1530 this.site = TypeConvertor.castToReference(value); // Reference 1531 } else if (name.equals("observer")) { 1532 this.observer = TypeConvertor.castToReference(value); // Reference 1533 } else if (name.equals("type")) { 1534 this.getType().add(TypeConvertor.castToCodeableConcept(value)); 1535 } else 1536 return super.setProperty(name, value); 1537 return value; 1538 } 1539 1540 @Override 1541 public void removeChild(String name, Base value) throws FHIRException { 1542 if (name.equals("site")) { 1543 this.site = null; 1544 } else if (name.equals("observer")) { 1545 this.observer = null; 1546 } else if (name.equals("type")) { 1547 this.getType().remove(value); 1548 } else 1549 super.removeChild(name, value); 1550 1551 } 1552 1553 @Override 1554 public Base makeProperty(int hash, String name) throws FHIRException { 1555 switch (hash) { 1556 case 3530567: return getSite(); 1557 case 348607190: return getObserver(); 1558 case 3575610: return addType(); 1559 default: return super.makeProperty(hash, name); 1560 } 1561 1562 } 1563 1564 @Override 1565 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1566 switch (hash) { 1567 case 3530567: /*site*/ return new String[] {"Reference"}; 1568 case 348607190: /*observer*/ return new String[] {"Reference"}; 1569 case 3575610: /*type*/ return new String[] {"CodeableConcept"}; 1570 default: return super.getTypesForProperty(hash, name); 1571 } 1572 1573 } 1574 1575 @Override 1576 public Base addChild(String name) throws FHIRException { 1577 if (name.equals("site")) { 1578 this.site = new Reference(); 1579 return this.site; 1580 } 1581 else if (name.equals("observer")) { 1582 this.observer = new Reference(); 1583 return this.observer; 1584 } 1585 else if (name.equals("type")) { 1586 return addType(); 1587 } 1588 else 1589 return super.addChild(name); 1590 } 1591 1592 public AuditEventSourceComponent copy() { 1593 AuditEventSourceComponent dst = new AuditEventSourceComponent(); 1594 copyValues(dst); 1595 return dst; 1596 } 1597 1598 public void copyValues(AuditEventSourceComponent dst) { 1599 super.copyValues(dst); 1600 dst.site = site == null ? null : site.copy(); 1601 dst.observer = observer == null ? null : observer.copy(); 1602 if (type != null) { 1603 dst.type = new ArrayList<CodeableConcept>(); 1604 for (CodeableConcept i : type) 1605 dst.type.add(i.copy()); 1606 }; 1607 } 1608 1609 @Override 1610 public boolean equalsDeep(Base other_) { 1611 if (!super.equalsDeep(other_)) 1612 return false; 1613 if (!(other_ instanceof AuditEventSourceComponent)) 1614 return false; 1615 AuditEventSourceComponent o = (AuditEventSourceComponent) other_; 1616 return compareDeep(site, o.site, true) && compareDeep(observer, o.observer, true) && compareDeep(type, o.type, true) 1617 ; 1618 } 1619 1620 @Override 1621 public boolean equalsShallow(Base other_) { 1622 if (!super.equalsShallow(other_)) 1623 return false; 1624 if (!(other_ instanceof AuditEventSourceComponent)) 1625 return false; 1626 AuditEventSourceComponent o = (AuditEventSourceComponent) other_; 1627 return true; 1628 } 1629 1630 public boolean isEmpty() { 1631 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(site, observer, type); 1632 } 1633 1634 public String fhirType() { 1635 return "AuditEvent.source"; 1636 1637 } 1638 1639 } 1640 1641 @Block() 1642 public static class AuditEventEntityComponent extends BackboneElement implements IBaseBackboneElement { 1643 /** 1644 * Identifies a specific instance of the entity. The reference should be version specific. This is allowed to be a Parameters resource. 1645 */ 1646 @Child(name = "what", type = {Reference.class}, order=1, min=0, max=1, modifier=false, summary=true) 1647 @Description(shortDefinition="Specific instance of resource", formalDefinition="Identifies a specific instance of the entity. The reference should be version specific. This is allowed to be a Parameters resource." ) 1648 protected Reference what; 1649 1650 /** 1651 * Code representing the role the entity played in the event being audited. 1652 */ 1653 @Child(name = "role", type = {CodeableConcept.class}, order=2, min=0, max=1, modifier=false, summary=false) 1654 @Description(shortDefinition="What role the entity played", formalDefinition="Code representing the role the entity played in the event being audited." ) 1655 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/object-role") 1656 protected CodeableConcept role; 1657 1658 /** 1659 * Security labels for the identified entity. 1660 */ 1661 @Child(name = "securityLabel", type = {CodeableConcept.class}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1662 @Description(shortDefinition="Security labels on the entity", formalDefinition="Security labels for the identified entity." ) 1663 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/security-label-examples") 1664 protected List<CodeableConcept> securityLabel; 1665 1666 /** 1667 * The query parameters for a query-type entities. 1668 */ 1669 @Child(name = "query", type = {Base64BinaryType.class}, order=4, min=0, max=1, modifier=false, summary=true) 1670 @Description(shortDefinition="Query parameters", formalDefinition="The query parameters for a query-type entities." ) 1671 protected Base64BinaryType query; 1672 1673 /** 1674 * Tagged value pairs for conveying additional information about the entity. 1675 */ 1676 @Child(name = "detail", type = {}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1677 @Description(shortDefinition="Additional Information about the entity", formalDefinition="Tagged value pairs for conveying additional information about the entity." ) 1678 protected List<AuditEventEntityDetailComponent> detail; 1679 1680 /** 1681 * The entity is attributed to an agent to express the agent's responsibility for that entity in the activity. This is most used to indicate when persistence media (the entity) are used by an agent. For example when importing data from a device, the device would be described in an entity, and the user importing data from that media would be indicated as the entity.agent. 1682 */ 1683 @Child(name = "agent", type = {AuditEventAgentComponent.class}, order=6, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1684 @Description(shortDefinition="Entity is attributed to this agent", formalDefinition="The entity is attributed to an agent to express the agent's responsibility for that entity in the activity. This is most used to indicate when persistence media (the entity) are used by an agent. For example when importing data from a device, the device would be described in an entity, and the user importing data from that media would be indicated as the entity.agent." ) 1685 protected List<AuditEventAgentComponent> agent; 1686 1687 private static final long serialVersionUID = -711898650L; 1688 1689 /** 1690 * Constructor 1691 */ 1692 public AuditEventEntityComponent() { 1693 super(); 1694 } 1695 1696 /** 1697 * @return {@link #what} (Identifies a specific instance of the entity. The reference should be version specific. This is allowed to be a Parameters resource.) 1698 */ 1699 public Reference getWhat() { 1700 if (this.what == null) 1701 if (Configuration.errorOnAutoCreate()) 1702 throw new Error("Attempt to auto-create AuditEventEntityComponent.what"); 1703 else if (Configuration.doAutoCreate()) 1704 this.what = new Reference(); // cc 1705 return this.what; 1706 } 1707 1708 public boolean hasWhat() { 1709 return this.what != null && !this.what.isEmpty(); 1710 } 1711 1712 /** 1713 * @param value {@link #what} (Identifies a specific instance of the entity. The reference should be version specific. This is allowed to be a Parameters resource.) 1714 */ 1715 public AuditEventEntityComponent setWhat(Reference value) { 1716 this.what = value; 1717 return this; 1718 } 1719 1720 /** 1721 * @return {@link #role} (Code representing the role the entity played in the event being audited.) 1722 */ 1723 public CodeableConcept getRole() { 1724 if (this.role == null) 1725 if (Configuration.errorOnAutoCreate()) 1726 throw new Error("Attempt to auto-create AuditEventEntityComponent.role"); 1727 else if (Configuration.doAutoCreate()) 1728 this.role = new CodeableConcept(); // cc 1729 return this.role; 1730 } 1731 1732 public boolean hasRole() { 1733 return this.role != null && !this.role.isEmpty(); 1734 } 1735 1736 /** 1737 * @param value {@link #role} (Code representing the role the entity played in the event being audited.) 1738 */ 1739 public AuditEventEntityComponent setRole(CodeableConcept value) { 1740 this.role = value; 1741 return this; 1742 } 1743 1744 /** 1745 * @return {@link #securityLabel} (Security labels for the identified entity.) 1746 */ 1747 public List<CodeableConcept> getSecurityLabel() { 1748 if (this.securityLabel == null) 1749 this.securityLabel = new ArrayList<CodeableConcept>(); 1750 return this.securityLabel; 1751 } 1752 1753 /** 1754 * @return Returns a reference to <code>this</code> for easy method chaining 1755 */ 1756 public AuditEventEntityComponent setSecurityLabel(List<CodeableConcept> theSecurityLabel) { 1757 this.securityLabel = theSecurityLabel; 1758 return this; 1759 } 1760 1761 public boolean hasSecurityLabel() { 1762 if (this.securityLabel == null) 1763 return false; 1764 for (CodeableConcept item : this.securityLabel) 1765 if (!item.isEmpty()) 1766 return true; 1767 return false; 1768 } 1769 1770 public CodeableConcept addSecurityLabel() { //3 1771 CodeableConcept t = new CodeableConcept(); 1772 if (this.securityLabel == null) 1773 this.securityLabel = new ArrayList<CodeableConcept>(); 1774 this.securityLabel.add(t); 1775 return t; 1776 } 1777 1778 public AuditEventEntityComponent addSecurityLabel(CodeableConcept t) { //3 1779 if (t == null) 1780 return this; 1781 if (this.securityLabel == null) 1782 this.securityLabel = new ArrayList<CodeableConcept>(); 1783 this.securityLabel.add(t); 1784 return this; 1785 } 1786 1787 /** 1788 * @return The first repetition of repeating field {@link #securityLabel}, creating it if it does not already exist {3} 1789 */ 1790 public CodeableConcept getSecurityLabelFirstRep() { 1791 if (getSecurityLabel().isEmpty()) { 1792 addSecurityLabel(); 1793 } 1794 return getSecurityLabel().get(0); 1795 } 1796 1797 /** 1798 * @return {@link #query} (The query parameters for a query-type entities.). This is the underlying object with id, value and extensions. The accessor "getQuery" gives direct access to the value 1799 */ 1800 public Base64BinaryType getQueryElement() { 1801 if (this.query == null) 1802 if (Configuration.errorOnAutoCreate()) 1803 throw new Error("Attempt to auto-create AuditEventEntityComponent.query"); 1804 else if (Configuration.doAutoCreate()) 1805 this.query = new Base64BinaryType(); // bb 1806 return this.query; 1807 } 1808 1809 public boolean hasQueryElement() { 1810 return this.query != null && !this.query.isEmpty(); 1811 } 1812 1813 public boolean hasQuery() { 1814 return this.query != null && !this.query.isEmpty(); 1815 } 1816 1817 /** 1818 * @param value {@link #query} (The query parameters for a query-type entities.). This is the underlying object with id, value and extensions. The accessor "getQuery" gives direct access to the value 1819 */ 1820 public AuditEventEntityComponent setQueryElement(Base64BinaryType value) { 1821 this.query = value; 1822 return this; 1823 } 1824 1825 /** 1826 * @return The query parameters for a query-type entities. 1827 */ 1828 public byte[] getQuery() { 1829 return this.query == null ? null : this.query.getValue(); 1830 } 1831 1832 /** 1833 * @param value The query parameters for a query-type entities. 1834 */ 1835 public AuditEventEntityComponent setQuery(byte[] value) { 1836 if (value == null) 1837 this.query = null; 1838 else { 1839 if (this.query == null) 1840 this.query = new Base64BinaryType(); 1841 this.query.setValue(value); 1842 } 1843 return this; 1844 } 1845 1846 /** 1847 * @return {@link #detail} (Tagged value pairs for conveying additional information about the entity.) 1848 */ 1849 public List<AuditEventEntityDetailComponent> getDetail() { 1850 if (this.detail == null) 1851 this.detail = new ArrayList<AuditEventEntityDetailComponent>(); 1852 return this.detail; 1853 } 1854 1855 /** 1856 * @return Returns a reference to <code>this</code> for easy method chaining 1857 */ 1858 public AuditEventEntityComponent setDetail(List<AuditEventEntityDetailComponent> theDetail) { 1859 this.detail = theDetail; 1860 return this; 1861 } 1862 1863 public boolean hasDetail() { 1864 if (this.detail == null) 1865 return false; 1866 for (AuditEventEntityDetailComponent item : this.detail) 1867 if (!item.isEmpty()) 1868 return true; 1869 return false; 1870 } 1871 1872 public AuditEventEntityDetailComponent addDetail() { //3 1873 AuditEventEntityDetailComponent t = new AuditEventEntityDetailComponent(); 1874 if (this.detail == null) 1875 this.detail = new ArrayList<AuditEventEntityDetailComponent>(); 1876 this.detail.add(t); 1877 return t; 1878 } 1879 1880 public AuditEventEntityComponent addDetail(AuditEventEntityDetailComponent t) { //3 1881 if (t == null) 1882 return this; 1883 if (this.detail == null) 1884 this.detail = new ArrayList<AuditEventEntityDetailComponent>(); 1885 this.detail.add(t); 1886 return this; 1887 } 1888 1889 /** 1890 * @return The first repetition of repeating field {@link #detail}, creating it if it does not already exist {3} 1891 */ 1892 public AuditEventEntityDetailComponent getDetailFirstRep() { 1893 if (getDetail().isEmpty()) { 1894 addDetail(); 1895 } 1896 return getDetail().get(0); 1897 } 1898 1899 /** 1900 * @return {@link #agent} (The entity is attributed to an agent to express the agent's responsibility for that entity in the activity. This is most used to indicate when persistence media (the entity) are used by an agent. For example when importing data from a device, the device would be described in an entity, and the user importing data from that media would be indicated as the entity.agent.) 1901 */ 1902 public List<AuditEventAgentComponent> getAgent() { 1903 if (this.agent == null) 1904 this.agent = new ArrayList<AuditEventAgentComponent>(); 1905 return this.agent; 1906 } 1907 1908 /** 1909 * @return Returns a reference to <code>this</code> for easy method chaining 1910 */ 1911 public AuditEventEntityComponent setAgent(List<AuditEventAgentComponent> theAgent) { 1912 this.agent = theAgent; 1913 return this; 1914 } 1915 1916 public boolean hasAgent() { 1917 if (this.agent == null) 1918 return false; 1919 for (AuditEventAgentComponent item : this.agent) 1920 if (!item.isEmpty()) 1921 return true; 1922 return false; 1923 } 1924 1925 public AuditEventAgentComponent addAgent() { //3 1926 AuditEventAgentComponent t = new AuditEventAgentComponent(); 1927 if (this.agent == null) 1928 this.agent = new ArrayList<AuditEventAgentComponent>(); 1929 this.agent.add(t); 1930 return t; 1931 } 1932 1933 public AuditEventEntityComponent addAgent(AuditEventAgentComponent t) { //3 1934 if (t == null) 1935 return this; 1936 if (this.agent == null) 1937 this.agent = new ArrayList<AuditEventAgentComponent>(); 1938 this.agent.add(t); 1939 return this; 1940 } 1941 1942 /** 1943 * @return The first repetition of repeating field {@link #agent}, creating it if it does not already exist {3} 1944 */ 1945 public AuditEventAgentComponent getAgentFirstRep() { 1946 if (getAgent().isEmpty()) { 1947 addAgent(); 1948 } 1949 return getAgent().get(0); 1950 } 1951 1952 protected void listChildren(List<Property> children) { 1953 super.listChildren(children); 1954 children.add(new Property("what", "Reference(Any)", "Identifies a specific instance of the entity. The reference should be version specific. This is allowed to be a Parameters resource.", 0, 1, what)); 1955 children.add(new Property("role", "CodeableConcept", "Code representing the role the entity played in the event being audited.", 0, 1, role)); 1956 children.add(new Property("securityLabel", "CodeableConcept", "Security labels for the identified entity.", 0, java.lang.Integer.MAX_VALUE, securityLabel)); 1957 children.add(new Property("query", "base64Binary", "The query parameters for a query-type entities.", 0, 1, query)); 1958 children.add(new Property("detail", "", "Tagged value pairs for conveying additional information about the entity.", 0, java.lang.Integer.MAX_VALUE, detail)); 1959 children.add(new Property("agent", "@AuditEvent.agent", "The entity is attributed to an agent to express the agent's responsibility for that entity in the activity. This is most used to indicate when persistence media (the entity) are used by an agent. For example when importing data from a device, the device would be described in an entity, and the user importing data from that media would be indicated as the entity.agent.", 0, java.lang.Integer.MAX_VALUE, agent)); 1960 } 1961 1962 @Override 1963 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1964 switch (_hash) { 1965 case 3648196: /*what*/ return new Property("what", "Reference(Any)", "Identifies a specific instance of the entity. The reference should be version specific. This is allowed to be a Parameters resource.", 0, 1, what); 1966 case 3506294: /*role*/ return new Property("role", "CodeableConcept", "Code representing the role the entity played in the event being audited.", 0, 1, role); 1967 case -722296940: /*securityLabel*/ return new Property("securityLabel", "CodeableConcept", "Security labels for the identified entity.", 0, java.lang.Integer.MAX_VALUE, securityLabel); 1968 case 107944136: /*query*/ return new Property("query", "base64Binary", "The query parameters for a query-type entities.", 0, 1, query); 1969 case -1335224239: /*detail*/ return new Property("detail", "", "Tagged value pairs for conveying additional information about the entity.", 0, java.lang.Integer.MAX_VALUE, detail); 1970 case 92750597: /*agent*/ return new Property("agent", "@AuditEvent.agent", "The entity is attributed to an agent to express the agent's responsibility for that entity in the activity. This is most used to indicate when persistence media (the entity) are used by an agent. For example when importing data from a device, the device would be described in an entity, and the user importing data from that media would be indicated as the entity.agent.", 0, java.lang.Integer.MAX_VALUE, agent); 1971 default: return super.getNamedProperty(_hash, _name, _checkValid); 1972 } 1973 1974 } 1975 1976 @Override 1977 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1978 switch (hash) { 1979 case 3648196: /*what*/ return this.what == null ? new Base[0] : new Base[] {this.what}; // Reference 1980 case 3506294: /*role*/ return this.role == null ? new Base[0] : new Base[] {this.role}; // CodeableConcept 1981 case -722296940: /*securityLabel*/ return this.securityLabel == null ? new Base[0] : this.securityLabel.toArray(new Base[this.securityLabel.size()]); // CodeableConcept 1982 case 107944136: /*query*/ return this.query == null ? new Base[0] : new Base[] {this.query}; // Base64BinaryType 1983 case -1335224239: /*detail*/ return this.detail == null ? new Base[0] : this.detail.toArray(new Base[this.detail.size()]); // AuditEventEntityDetailComponent 1984 case 92750597: /*agent*/ return this.agent == null ? new Base[0] : this.agent.toArray(new Base[this.agent.size()]); // AuditEventAgentComponent 1985 default: return super.getProperty(hash, name, checkValid); 1986 } 1987 1988 } 1989 1990 @Override 1991 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1992 switch (hash) { 1993 case 3648196: // what 1994 this.what = TypeConvertor.castToReference(value); // Reference 1995 return value; 1996 case 3506294: // role 1997 this.role = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1998 return value; 1999 case -722296940: // securityLabel 2000 this.getSecurityLabel().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 2001 return value; 2002 case 107944136: // query 2003 this.query = TypeConvertor.castToBase64Binary(value); // Base64BinaryType 2004 return value; 2005 case -1335224239: // detail 2006 this.getDetail().add((AuditEventEntityDetailComponent) value); // AuditEventEntityDetailComponent 2007 return value; 2008 case 92750597: // agent 2009 this.getAgent().add((AuditEventAgentComponent) value); // AuditEventAgentComponent 2010 return value; 2011 default: return super.setProperty(hash, name, value); 2012 } 2013 2014 } 2015 2016 @Override 2017 public Base setProperty(String name, Base value) throws FHIRException { 2018 if (name.equals("what")) { 2019 this.what = TypeConvertor.castToReference(value); // Reference 2020 } else if (name.equals("role")) { 2021 this.role = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 2022 } else if (name.equals("securityLabel")) { 2023 this.getSecurityLabel().add(TypeConvertor.castToCodeableConcept(value)); 2024 } else if (name.equals("query")) { 2025 this.query = TypeConvertor.castToBase64Binary(value); // Base64BinaryType 2026 } else if (name.equals("detail")) { 2027 this.getDetail().add((AuditEventEntityDetailComponent) value); 2028 } else if (name.equals("agent")) { 2029 this.getAgent().add((AuditEventAgentComponent) value); 2030 } else 2031 return super.setProperty(name, value); 2032 return value; 2033 } 2034 2035 @Override 2036 public void removeChild(String name, Base value) throws FHIRException { 2037 if (name.equals("what")) { 2038 this.what = null; 2039 } else if (name.equals("role")) { 2040 this.role = null; 2041 } else if (name.equals("securityLabel")) { 2042 this.getSecurityLabel().remove(value); 2043 } else if (name.equals("query")) { 2044 this.query = null; 2045 } else if (name.equals("detail")) { 2046 this.getDetail().remove((AuditEventEntityDetailComponent) value); 2047 } else if (name.equals("agent")) { 2048 this.getAgent().remove((AuditEventAgentComponent) value); 2049 } else 2050 super.removeChild(name, value); 2051 2052 } 2053 2054 @Override 2055 public Base makeProperty(int hash, String name) throws FHIRException { 2056 switch (hash) { 2057 case 3648196: return getWhat(); 2058 case 3506294: return getRole(); 2059 case -722296940: return addSecurityLabel(); 2060 case 107944136: return getQueryElement(); 2061 case -1335224239: return addDetail(); 2062 case 92750597: return addAgent(); 2063 default: return super.makeProperty(hash, name); 2064 } 2065 2066 } 2067 2068 @Override 2069 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2070 switch (hash) { 2071 case 3648196: /*what*/ return new String[] {"Reference"}; 2072 case 3506294: /*role*/ return new String[] {"CodeableConcept"}; 2073 case -722296940: /*securityLabel*/ return new String[] {"CodeableConcept"}; 2074 case 107944136: /*query*/ return new String[] {"base64Binary"}; 2075 case -1335224239: /*detail*/ return new String[] {}; 2076 case 92750597: /*agent*/ return new String[] {"@AuditEvent.agent"}; 2077 default: return super.getTypesForProperty(hash, name); 2078 } 2079 2080 } 2081 2082 @Override 2083 public Base addChild(String name) throws FHIRException { 2084 if (name.equals("what")) { 2085 this.what = new Reference(); 2086 return this.what; 2087 } 2088 else if (name.equals("role")) { 2089 this.role = new CodeableConcept(); 2090 return this.role; 2091 } 2092 else if (name.equals("securityLabel")) { 2093 return addSecurityLabel(); 2094 } 2095 else if (name.equals("query")) { 2096 throw new FHIRException("Cannot call addChild on a singleton property AuditEvent.entity.query"); 2097 } 2098 else if (name.equals("detail")) { 2099 return addDetail(); 2100 } 2101 else if (name.equals("agent")) { 2102 return addAgent(); 2103 } 2104 else 2105 return super.addChild(name); 2106 } 2107 2108 public AuditEventEntityComponent copy() { 2109 AuditEventEntityComponent dst = new AuditEventEntityComponent(); 2110 copyValues(dst); 2111 return dst; 2112 } 2113 2114 public void copyValues(AuditEventEntityComponent dst) { 2115 super.copyValues(dst); 2116 dst.what = what == null ? null : what.copy(); 2117 dst.role = role == null ? null : role.copy(); 2118 if (securityLabel != null) { 2119 dst.securityLabel = new ArrayList<CodeableConcept>(); 2120 for (CodeableConcept i : securityLabel) 2121 dst.securityLabel.add(i.copy()); 2122 }; 2123 dst.query = query == null ? null : query.copy(); 2124 if (detail != null) { 2125 dst.detail = new ArrayList<AuditEventEntityDetailComponent>(); 2126 for (AuditEventEntityDetailComponent i : detail) 2127 dst.detail.add(i.copy()); 2128 }; 2129 if (agent != null) { 2130 dst.agent = new ArrayList<AuditEventAgentComponent>(); 2131 for (AuditEventAgentComponent i : agent) 2132 dst.agent.add(i.copy()); 2133 }; 2134 } 2135 2136 @Override 2137 public boolean equalsDeep(Base other_) { 2138 if (!super.equalsDeep(other_)) 2139 return false; 2140 if (!(other_ instanceof AuditEventEntityComponent)) 2141 return false; 2142 AuditEventEntityComponent o = (AuditEventEntityComponent) other_; 2143 return compareDeep(what, o.what, true) && compareDeep(role, o.role, true) && compareDeep(securityLabel, o.securityLabel, true) 2144 && compareDeep(query, o.query, true) && compareDeep(detail, o.detail, true) && compareDeep(agent, o.agent, true) 2145 ; 2146 } 2147 2148 @Override 2149 public boolean equalsShallow(Base other_) { 2150 if (!super.equalsShallow(other_)) 2151 return false; 2152 if (!(other_ instanceof AuditEventEntityComponent)) 2153 return false; 2154 AuditEventEntityComponent o = (AuditEventEntityComponent) other_; 2155 return compareValues(query, o.query, true); 2156 } 2157 2158 public boolean isEmpty() { 2159 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(what, role, securityLabel 2160 , query, detail, agent); 2161 } 2162 2163 public String fhirType() { 2164 return "AuditEvent.entity"; 2165 2166 } 2167 2168 } 2169 2170 @Block() 2171 public static class AuditEventEntityDetailComponent extends BackboneElement implements IBaseBackboneElement { 2172 /** 2173 * The type of extra detail provided in the value. 2174 */ 2175 @Child(name = "type", type = {CodeableConcept.class}, order=1, min=1, max=1, modifier=false, summary=false) 2176 @Description(shortDefinition="Name of the property", formalDefinition="The type of extra detail provided in the value." ) 2177 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/audit-event-type") 2178 protected CodeableConcept type; 2179 2180 /** 2181 * The value of the extra detail. 2182 */ 2183 @Child(name = "value", type = {Quantity.class, CodeableConcept.class, StringType.class, BooleanType.class, IntegerType.class, Range.class, Ratio.class, TimeType.class, DateTimeType.class, Period.class, Base64BinaryType.class}, order=2, min=1, max=1, modifier=false, summary=false) 2184 @Description(shortDefinition="Property value", formalDefinition="The value of the extra detail." ) 2185 protected DataType value; 2186 2187 private static final long serialVersionUID = -1659186716L; 2188 2189 /** 2190 * Constructor 2191 */ 2192 public AuditEventEntityDetailComponent() { 2193 super(); 2194 } 2195 2196 /** 2197 * Constructor 2198 */ 2199 public AuditEventEntityDetailComponent(CodeableConcept type, DataType value) { 2200 super(); 2201 this.setType(type); 2202 this.setValue(value); 2203 } 2204 2205 /** 2206 * @return {@link #type} (The type of extra detail provided in the value.) 2207 */ 2208 public CodeableConcept getType() { 2209 if (this.type == null) 2210 if (Configuration.errorOnAutoCreate()) 2211 throw new Error("Attempt to auto-create AuditEventEntityDetailComponent.type"); 2212 else if (Configuration.doAutoCreate()) 2213 this.type = new CodeableConcept(); // cc 2214 return this.type; 2215 } 2216 2217 public boolean hasType() { 2218 return this.type != null && !this.type.isEmpty(); 2219 } 2220 2221 /** 2222 * @param value {@link #type} (The type of extra detail provided in the value.) 2223 */ 2224 public AuditEventEntityDetailComponent setType(CodeableConcept value) { 2225 this.type = value; 2226 return this; 2227 } 2228 2229 /** 2230 * @return {@link #value} (The value of the extra detail.) 2231 */ 2232 public DataType getValue() { 2233 return this.value; 2234 } 2235 2236 /** 2237 * @return {@link #value} (The value of the extra detail.) 2238 */ 2239 public Quantity getValueQuantity() throws FHIRException { 2240 if (this.value == null) 2241 this.value = new Quantity(); 2242 if (!(this.value instanceof Quantity)) 2243 throw new FHIRException("Type mismatch: the type Quantity was expected, but "+this.value.getClass().getName()+" was encountered"); 2244 return (Quantity) this.value; 2245 } 2246 2247 public boolean hasValueQuantity() { 2248 return this != null && this.value instanceof Quantity; 2249 } 2250 2251 /** 2252 * @return {@link #value} (The value of the extra detail.) 2253 */ 2254 public CodeableConcept getValueCodeableConcept() throws FHIRException { 2255 if (this.value == null) 2256 this.value = new CodeableConcept(); 2257 if (!(this.value instanceof CodeableConcept)) 2258 throw new FHIRException("Type mismatch: the type CodeableConcept was expected, but "+this.value.getClass().getName()+" was encountered"); 2259 return (CodeableConcept) this.value; 2260 } 2261 2262 public boolean hasValueCodeableConcept() { 2263 return this != null && this.value instanceof CodeableConcept; 2264 } 2265 2266 /** 2267 * @return {@link #value} (The value of the extra detail.) 2268 */ 2269 public StringType getValueStringType() throws FHIRException { 2270 if (this.value == null) 2271 this.value = new StringType(); 2272 if (!(this.value instanceof StringType)) 2273 throw new FHIRException("Type mismatch: the type StringType was expected, but "+this.value.getClass().getName()+" was encountered"); 2274 return (StringType) this.value; 2275 } 2276 2277 public boolean hasValueStringType() { 2278 return this != null && this.value instanceof StringType; 2279 } 2280 2281 /** 2282 * @return {@link #value} (The value of the extra detail.) 2283 */ 2284 public BooleanType getValueBooleanType() throws FHIRException { 2285 if (this.value == null) 2286 this.value = new BooleanType(); 2287 if (!(this.value instanceof BooleanType)) 2288 throw new FHIRException("Type mismatch: the type BooleanType was expected, but "+this.value.getClass().getName()+" was encountered"); 2289 return (BooleanType) this.value; 2290 } 2291 2292 public boolean hasValueBooleanType() { 2293 return this != null && this.value instanceof BooleanType; 2294 } 2295 2296 /** 2297 * @return {@link #value} (The value of the extra detail.) 2298 */ 2299 public IntegerType getValueIntegerType() throws FHIRException { 2300 if (this.value == null) 2301 this.value = new IntegerType(); 2302 if (!(this.value instanceof IntegerType)) 2303 throw new FHIRException("Type mismatch: the type IntegerType was expected, but "+this.value.getClass().getName()+" was encountered"); 2304 return (IntegerType) this.value; 2305 } 2306 2307 public boolean hasValueIntegerType() { 2308 return this != null && this.value instanceof IntegerType; 2309 } 2310 2311 /** 2312 * @return {@link #value} (The value of the extra detail.) 2313 */ 2314 public Range getValueRange() throws FHIRException { 2315 if (this.value == null) 2316 this.value = new Range(); 2317 if (!(this.value instanceof Range)) 2318 throw new FHIRException("Type mismatch: the type Range was expected, but "+this.value.getClass().getName()+" was encountered"); 2319 return (Range) this.value; 2320 } 2321 2322 public boolean hasValueRange() { 2323 return this != null && this.value instanceof Range; 2324 } 2325 2326 /** 2327 * @return {@link #value} (The value of the extra detail.) 2328 */ 2329 public Ratio getValueRatio() throws FHIRException { 2330 if (this.value == null) 2331 this.value = new Ratio(); 2332 if (!(this.value instanceof Ratio)) 2333 throw new FHIRException("Type mismatch: the type Ratio was expected, but "+this.value.getClass().getName()+" was encountered"); 2334 return (Ratio) this.value; 2335 } 2336 2337 public boolean hasValueRatio() { 2338 return this != null && this.value instanceof Ratio; 2339 } 2340 2341 /** 2342 * @return {@link #value} (The value of the extra detail.) 2343 */ 2344 public TimeType getValueTimeType() throws FHIRException { 2345 if (this.value == null) 2346 this.value = new TimeType(); 2347 if (!(this.value instanceof TimeType)) 2348 throw new FHIRException("Type mismatch: the type TimeType was expected, but "+this.value.getClass().getName()+" was encountered"); 2349 return (TimeType) this.value; 2350 } 2351 2352 public boolean hasValueTimeType() { 2353 return this != null && this.value instanceof TimeType; 2354 } 2355 2356 /** 2357 * @return {@link #value} (The value of the extra detail.) 2358 */ 2359 public DateTimeType getValueDateTimeType() throws FHIRException { 2360 if (this.value == null) 2361 this.value = new DateTimeType(); 2362 if (!(this.value instanceof DateTimeType)) 2363 throw new FHIRException("Type mismatch: the type DateTimeType was expected, but "+this.value.getClass().getName()+" was encountered"); 2364 return (DateTimeType) this.value; 2365 } 2366 2367 public boolean hasValueDateTimeType() { 2368 return this != null && this.value instanceof DateTimeType; 2369 } 2370 2371 /** 2372 * @return {@link #value} (The value of the extra detail.) 2373 */ 2374 public Period getValuePeriod() throws FHIRException { 2375 if (this.value == null) 2376 this.value = new Period(); 2377 if (!(this.value instanceof Period)) 2378 throw new FHIRException("Type mismatch: the type Period was expected, but "+this.value.getClass().getName()+" was encountered"); 2379 return (Period) this.value; 2380 } 2381 2382 public boolean hasValuePeriod() { 2383 return this != null && this.value instanceof Period; 2384 } 2385 2386 /** 2387 * @return {@link #value} (The value of the extra detail.) 2388 */ 2389 public Base64BinaryType getValueBase64BinaryType() throws FHIRException { 2390 if (this.value == null) 2391 this.value = new Base64BinaryType(); 2392 if (!(this.value instanceof Base64BinaryType)) 2393 throw new FHIRException("Type mismatch: the type Base64BinaryType was expected, but "+this.value.getClass().getName()+" was encountered"); 2394 return (Base64BinaryType) this.value; 2395 } 2396 2397 public boolean hasValueBase64BinaryType() { 2398 return this != null && this.value instanceof Base64BinaryType; 2399 } 2400 2401 public boolean hasValue() { 2402 return this.value != null && !this.value.isEmpty(); 2403 } 2404 2405 /** 2406 * @param value {@link #value} (The value of the extra detail.) 2407 */ 2408 public AuditEventEntityDetailComponent setValue(DataType value) { 2409 if (value != null && !(value instanceof Quantity || value instanceof CodeableConcept || value instanceof StringType || value instanceof BooleanType || value instanceof IntegerType || value instanceof Range || value instanceof Ratio || value instanceof TimeType || value instanceof DateTimeType || value instanceof Period || value instanceof Base64BinaryType)) 2410 throw new FHIRException("Not the right type for AuditEvent.entity.detail.value[x]: "+value.fhirType()); 2411 this.value = value; 2412 return this; 2413 } 2414 2415 protected void listChildren(List<Property> children) { 2416 super.listChildren(children); 2417 children.add(new Property("type", "CodeableConcept", "The type of extra detail provided in the value.", 0, 1, type)); 2418 children.add(new Property("value[x]", "Quantity|CodeableConcept|string|boolean|integer|Range|Ratio|time|dateTime|Period|base64Binary", "The value of the extra detail.", 0, 1, value)); 2419 } 2420 2421 @Override 2422 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 2423 switch (_hash) { 2424 case 3575610: /*type*/ return new Property("type", "CodeableConcept", "The type of extra detail provided in the value.", 0, 1, type); 2425 case -1410166417: /*value[x]*/ return new Property("value[x]", "Quantity|CodeableConcept|string|boolean|integer|Range|Ratio|time|dateTime|Period|base64Binary", "The value of the extra detail.", 0, 1, value); 2426 case 111972721: /*value*/ return new Property("value[x]", "Quantity|CodeableConcept|string|boolean|integer|Range|Ratio|time|dateTime|Period|base64Binary", "The value of the extra detail.", 0, 1, value); 2427 case -2029823716: /*valueQuantity*/ return new Property("value[x]", "Quantity", "The value of the extra detail.", 0, 1, value); 2428 case 924902896: /*valueCodeableConcept*/ return new Property("value[x]", "CodeableConcept", "The value of the extra detail.", 0, 1, value); 2429 case -1424603934: /*valueString*/ return new Property("value[x]", "string", "The value of the extra detail.", 0, 1, value); 2430 case 733421943: /*valueBoolean*/ return new Property("value[x]", "boolean", "The value of the extra detail.", 0, 1, value); 2431 case -1668204915: /*valueInteger*/ return new Property("value[x]", "integer", "The value of the extra detail.", 0, 1, value); 2432 case 2030761548: /*valueRange*/ return new Property("value[x]", "Range", "The value of the extra detail.", 0, 1, value); 2433 case 2030767386: /*valueRatio*/ return new Property("value[x]", "Ratio", "The value of the extra detail.", 0, 1, value); 2434 case -765708322: /*valueTime*/ return new Property("value[x]", "time", "The value of the extra detail.", 0, 1, value); 2435 case 1047929900: /*valueDateTime*/ return new Property("value[x]", "dateTime", "The value of the extra detail.", 0, 1, value); 2436 case -1524344174: /*valuePeriod*/ return new Property("value[x]", "Period", "The value of the extra detail.", 0, 1, value); 2437 case -1535024575: /*valueBase64Binary*/ return new Property("value[x]", "base64Binary", "The value of the extra detail.", 0, 1, value); 2438 default: return super.getNamedProperty(_hash, _name, _checkValid); 2439 } 2440 2441 } 2442 2443 @Override 2444 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2445 switch (hash) { 2446 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // CodeableConcept 2447 case 111972721: /*value*/ return this.value == null ? new Base[0] : new Base[] {this.value}; // DataType 2448 default: return super.getProperty(hash, name, checkValid); 2449 } 2450 2451 } 2452 2453 @Override 2454 public Base setProperty(int hash, String name, Base value) throws FHIRException { 2455 switch (hash) { 2456 case 3575610: // type 2457 this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 2458 return value; 2459 case 111972721: // value 2460 this.value = TypeConvertor.castToType(value); // DataType 2461 return value; 2462 default: return super.setProperty(hash, name, value); 2463 } 2464 2465 } 2466 2467 @Override 2468 public Base setProperty(String name, Base value) throws FHIRException { 2469 if (name.equals("type")) { 2470 this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 2471 } else if (name.equals("value[x]")) { 2472 this.value = TypeConvertor.castToType(value); // DataType 2473 } else 2474 return super.setProperty(name, value); 2475 return value; 2476 } 2477 2478 @Override 2479 public void removeChild(String name, Base value) throws FHIRException { 2480 if (name.equals("type")) { 2481 this.type = null; 2482 } else if (name.equals("value[x]")) { 2483 this.value = null; 2484 } else 2485 super.removeChild(name, value); 2486 2487 } 2488 2489 @Override 2490 public Base makeProperty(int hash, String name) throws FHIRException { 2491 switch (hash) { 2492 case 3575610: return getType(); 2493 case -1410166417: return getValue(); 2494 case 111972721: return getValue(); 2495 default: return super.makeProperty(hash, name); 2496 } 2497 2498 } 2499 2500 @Override 2501 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2502 switch (hash) { 2503 case 3575610: /*type*/ return new String[] {"CodeableConcept"}; 2504 case 111972721: /*value*/ return new String[] {"Quantity", "CodeableConcept", "string", "boolean", "integer", "Range", "Ratio", "time", "dateTime", "Period", "base64Binary"}; 2505 default: return super.getTypesForProperty(hash, name); 2506 } 2507 2508 } 2509 2510 @Override 2511 public Base addChild(String name) throws FHIRException { 2512 if (name.equals("type")) { 2513 this.type = new CodeableConcept(); 2514 return this.type; 2515 } 2516 else if (name.equals("valueQuantity")) { 2517 this.value = new Quantity(); 2518 return this.value; 2519 } 2520 else if (name.equals("valueCodeableConcept")) { 2521 this.value = new CodeableConcept(); 2522 return this.value; 2523 } 2524 else if (name.equals("valueString")) { 2525 this.value = new StringType(); 2526 return this.value; 2527 } 2528 else if (name.equals("valueBoolean")) { 2529 this.value = new BooleanType(); 2530 return this.value; 2531 } 2532 else if (name.equals("valueInteger")) { 2533 this.value = new IntegerType(); 2534 return this.value; 2535 } 2536 else if (name.equals("valueRange")) { 2537 this.value = new Range(); 2538 return this.value; 2539 } 2540 else if (name.equals("valueRatio")) { 2541 this.value = new Ratio(); 2542 return this.value; 2543 } 2544 else if (name.equals("valueTime")) { 2545 this.value = new TimeType(); 2546 return this.value; 2547 } 2548 else if (name.equals("valueDateTime")) { 2549 this.value = new DateTimeType(); 2550 return this.value; 2551 } 2552 else if (name.equals("valuePeriod")) { 2553 this.value = new Period(); 2554 return this.value; 2555 } 2556 else if (name.equals("valueBase64Binary")) { 2557 this.value = new Base64BinaryType(); 2558 return this.value; 2559 } 2560 else 2561 return super.addChild(name); 2562 } 2563 2564 public AuditEventEntityDetailComponent copy() { 2565 AuditEventEntityDetailComponent dst = new AuditEventEntityDetailComponent(); 2566 copyValues(dst); 2567 return dst; 2568 } 2569 2570 public void copyValues(AuditEventEntityDetailComponent dst) { 2571 super.copyValues(dst); 2572 dst.type = type == null ? null : type.copy(); 2573 dst.value = value == null ? null : value.copy(); 2574 } 2575 2576 @Override 2577 public boolean equalsDeep(Base other_) { 2578 if (!super.equalsDeep(other_)) 2579 return false; 2580 if (!(other_ instanceof AuditEventEntityDetailComponent)) 2581 return false; 2582 AuditEventEntityDetailComponent o = (AuditEventEntityDetailComponent) other_; 2583 return compareDeep(type, o.type, true) && compareDeep(value, o.value, true); 2584 } 2585 2586 @Override 2587 public boolean equalsShallow(Base other_) { 2588 if (!super.equalsShallow(other_)) 2589 return false; 2590 if (!(other_ instanceof AuditEventEntityDetailComponent)) 2591 return false; 2592 AuditEventEntityDetailComponent o = (AuditEventEntityDetailComponent) other_; 2593 return true; 2594 } 2595 2596 public boolean isEmpty() { 2597 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(type, value); 2598 } 2599 2600 public String fhirType() { 2601 return "AuditEvent.entity.detail"; 2602 2603 } 2604 2605 } 2606 2607 /** 2608 * Classification of the type of event. 2609 */ 2610 @Child(name = "category", type = {CodeableConcept.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 2611 @Description(shortDefinition="Type/identifier of event", formalDefinition="Classification of the type of event." ) 2612 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/audit-event-type") 2613 protected List<CodeableConcept> category; 2614 2615 /** 2616 * Describes what happened. The most specific code for the event. 2617 */ 2618 @Child(name = "code", type = {CodeableConcept.class}, order=1, min=1, max=1, modifier=false, summary=true) 2619 @Description(shortDefinition="Specific type of event", formalDefinition="Describes what happened. The most specific code for the event." ) 2620 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/audit-event-sub-type") 2621 protected CodeableConcept code; 2622 2623 /** 2624 * Indicator for type of action performed during the event that generated the audit. 2625 */ 2626 @Child(name = "action", type = {CodeType.class}, order=2, min=0, max=1, modifier=false, summary=true) 2627 @Description(shortDefinition="Type of action performed during the event", formalDefinition="Indicator for type of action performed during the event that generated the audit." ) 2628 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/audit-event-action") 2629 protected Enumeration<AuditEventAction> action; 2630 2631 /** 2632 * Indicates and enables segmentation of various severity including debugging from critical. 2633 */ 2634 @Child(name = "severity", type = {CodeType.class}, order=3, min=0, max=1, modifier=false, summary=true) 2635 @Description(shortDefinition="emergency | alert | critical | error | warning | notice | informational | debug", formalDefinition="Indicates and enables segmentation of various severity including debugging from critical." ) 2636 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/audit-event-severity") 2637 protected Enumeration<AuditEventSeverity> severity; 2638 2639 /** 2640 * The time or period during which the activity occurred. 2641 */ 2642 @Child(name = "occurred", type = {Period.class, DateTimeType.class}, order=4, min=0, max=1, modifier=false, summary=false) 2643 @Description(shortDefinition="When the activity occurred", formalDefinition="The time or period during which the activity occurred." ) 2644 protected DataType occurred; 2645 2646 /** 2647 * The time when the event was recorded. 2648 */ 2649 @Child(name = "recorded", type = {InstantType.class}, order=5, min=1, max=1, modifier=false, summary=true) 2650 @Description(shortDefinition="Time when the event was recorded", formalDefinition="The time when the event was recorded." ) 2651 protected InstantType recorded; 2652 2653 /** 2654 * Indicates whether the event succeeded or failed. A free text descripiton can be given in outcome.text. 2655 */ 2656 @Child(name = "outcome", type = {}, order=6, min=0, max=1, modifier=false, summary=true) 2657 @Description(shortDefinition="Whether the event succeeded or failed", formalDefinition="Indicates whether the event succeeded or failed. A free text descripiton can be given in outcome.text." ) 2658 protected AuditEventOutcomeComponent outcome; 2659 2660 /** 2661 * The authorization (e.g., PurposeOfUse) that was used during the event being recorded. 2662 */ 2663 @Child(name = "authorization", type = {CodeableConcept.class}, order=7, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 2664 @Description(shortDefinition="Authorization related to the event", formalDefinition="The authorization (e.g., PurposeOfUse) that was used during the event being recorded." ) 2665 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://terminology.hl7.org/ValueSet/v3-PurposeOfUse") 2666 protected List<CodeableConcept> authorization; 2667 2668 /** 2669 * Allows tracing of authorizatino for the events and tracking whether proposals/recommendations were acted upon. 2670 */ 2671 @Child(name = "basedOn", type = {CarePlan.class, DeviceRequest.class, ImmunizationRecommendation.class, MedicationRequest.class, NutritionOrder.class, ServiceRequest.class, Task.class}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 2672 @Description(shortDefinition="Workflow authorization within which this event occurred", formalDefinition="Allows tracing of authorizatino for the events and tracking whether proposals/recommendations were acted upon." ) 2673 protected List<Reference> basedOn; 2674 2675 /** 2676 * The patient element is available to enable deterministic tracking of activities that involve the patient as the subject of the data used in an activity. 2677 */ 2678 @Child(name = "patient", type = {Patient.class}, order=9, min=0, max=1, modifier=false, summary=false) 2679 @Description(shortDefinition="The patient is the subject of the data used/created/updated/deleted during the activity", formalDefinition="The patient element is available to enable deterministic tracking of activities that involve the patient as the subject of the data used in an activity." ) 2680 protected Reference patient; 2681 2682 /** 2683 * This will typically be the encounter the event occurred, but some events may be initiated prior to or after the official completion of an encounter but still be tied to the context of the encounter (e.g. pre-admission lab tests). 2684 */ 2685 @Child(name = "encounter", type = {Encounter.class}, order=10, min=0, max=1, modifier=false, summary=false) 2686 @Description(shortDefinition="Encounter within which this event occurred or which the event is tightly associated", formalDefinition="This will typically be the encounter the event occurred, but some events may be initiated prior to or after the official completion of an encounter but still be tied to the context of the encounter (e.g. pre-admission lab tests)." ) 2687 protected Reference encounter; 2688 2689 /** 2690 * An actor taking an active role in the event or activity that is logged. 2691 */ 2692 @Child(name = "agent", type = {}, order=11, min=1, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 2693 @Description(shortDefinition="Actor involved in the event", formalDefinition="An actor taking an active role in the event or activity that is logged." ) 2694 protected List<AuditEventAgentComponent> agent; 2695 2696 /** 2697 * The actor that is reporting the event. 2698 */ 2699 @Child(name = "source", type = {}, order=12, min=1, max=1, modifier=false, summary=true) 2700 @Description(shortDefinition="Audit Event Reporter", formalDefinition="The actor that is reporting the event." ) 2701 protected AuditEventSourceComponent source; 2702 2703 /** 2704 * Specific instances of data or objects that have been accessed. 2705 */ 2706 @Child(name = "entity", type = {}, order=13, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 2707 @Description(shortDefinition="Data or objects used", formalDefinition="Specific instances of data or objects that have been accessed." ) 2708 protected List<AuditEventEntityComponent> entity; 2709 2710 private static final long serialVersionUID = -1335832480L; 2711 2712 /** 2713 * Constructor 2714 */ 2715 public AuditEvent() { 2716 super(); 2717 } 2718 2719 /** 2720 * Constructor 2721 */ 2722 public AuditEvent(CodeableConcept code, Date recorded, AuditEventAgentComponent agent, AuditEventSourceComponent source) { 2723 super(); 2724 this.setCode(code); 2725 this.setRecorded(recorded); 2726 this.addAgent(agent); 2727 this.setSource(source); 2728 } 2729 2730 /** 2731 * @return {@link #category} (Classification of the type of event.) 2732 */ 2733 public List<CodeableConcept> getCategory() { 2734 if (this.category == null) 2735 this.category = new ArrayList<CodeableConcept>(); 2736 return this.category; 2737 } 2738 2739 /** 2740 * @return Returns a reference to <code>this</code> for easy method chaining 2741 */ 2742 public AuditEvent setCategory(List<CodeableConcept> theCategory) { 2743 this.category = theCategory; 2744 return this; 2745 } 2746 2747 public boolean hasCategory() { 2748 if (this.category == null) 2749 return false; 2750 for (CodeableConcept item : this.category) 2751 if (!item.isEmpty()) 2752 return true; 2753 return false; 2754 } 2755 2756 public CodeableConcept addCategory() { //3 2757 CodeableConcept t = new CodeableConcept(); 2758 if (this.category == null) 2759 this.category = new ArrayList<CodeableConcept>(); 2760 this.category.add(t); 2761 return t; 2762 } 2763 2764 public AuditEvent addCategory(CodeableConcept t) { //3 2765 if (t == null) 2766 return this; 2767 if (this.category == null) 2768 this.category = new ArrayList<CodeableConcept>(); 2769 this.category.add(t); 2770 return this; 2771 } 2772 2773 /** 2774 * @return The first repetition of repeating field {@link #category}, creating it if it does not already exist {3} 2775 */ 2776 public CodeableConcept getCategoryFirstRep() { 2777 if (getCategory().isEmpty()) { 2778 addCategory(); 2779 } 2780 return getCategory().get(0); 2781 } 2782 2783 /** 2784 * @return {@link #code} (Describes what happened. The most specific code for the event.) 2785 */ 2786 public CodeableConcept getCode() { 2787 if (this.code == null) 2788 if (Configuration.errorOnAutoCreate()) 2789 throw new Error("Attempt to auto-create AuditEvent.code"); 2790 else if (Configuration.doAutoCreate()) 2791 this.code = new CodeableConcept(); // cc 2792 return this.code; 2793 } 2794 2795 public boolean hasCode() { 2796 return this.code != null && !this.code.isEmpty(); 2797 } 2798 2799 /** 2800 * @param value {@link #code} (Describes what happened. The most specific code for the event.) 2801 */ 2802 public AuditEvent setCode(CodeableConcept value) { 2803 this.code = value; 2804 return this; 2805 } 2806 2807 /** 2808 * @return {@link #action} (Indicator for type of action performed during the event that generated the audit.). This is the underlying object with id, value and extensions. The accessor "getAction" gives direct access to the value 2809 */ 2810 public Enumeration<AuditEventAction> getActionElement() { 2811 if (this.action == null) 2812 if (Configuration.errorOnAutoCreate()) 2813 throw new Error("Attempt to auto-create AuditEvent.action"); 2814 else if (Configuration.doAutoCreate()) 2815 this.action = new Enumeration<AuditEventAction>(new AuditEventActionEnumFactory()); // bb 2816 return this.action; 2817 } 2818 2819 public boolean hasActionElement() { 2820 return this.action != null && !this.action.isEmpty(); 2821 } 2822 2823 public boolean hasAction() { 2824 return this.action != null && !this.action.isEmpty(); 2825 } 2826 2827 /** 2828 * @param value {@link #action} (Indicator for type of action performed during the event that generated the audit.). This is the underlying object with id, value and extensions. The accessor "getAction" gives direct access to the value 2829 */ 2830 public AuditEvent setActionElement(Enumeration<AuditEventAction> value) { 2831 this.action = value; 2832 return this; 2833 } 2834 2835 /** 2836 * @return Indicator for type of action performed during the event that generated the audit. 2837 */ 2838 public AuditEventAction getAction() { 2839 return this.action == null ? null : this.action.getValue(); 2840 } 2841 2842 /** 2843 * @param value Indicator for type of action performed during the event that generated the audit. 2844 */ 2845 public AuditEvent setAction(AuditEventAction value) { 2846 if (value == null) 2847 this.action = null; 2848 else { 2849 if (this.action == null) 2850 this.action = new Enumeration<AuditEventAction>(new AuditEventActionEnumFactory()); 2851 this.action.setValue(value); 2852 } 2853 return this; 2854 } 2855 2856 /** 2857 * @return {@link #severity} (Indicates and enables segmentation of various severity including debugging from critical.). This is the underlying object with id, value and extensions. The accessor "getSeverity" gives direct access to the value 2858 */ 2859 public Enumeration<AuditEventSeverity> getSeverityElement() { 2860 if (this.severity == null) 2861 if (Configuration.errorOnAutoCreate()) 2862 throw new Error("Attempt to auto-create AuditEvent.severity"); 2863 else if (Configuration.doAutoCreate()) 2864 this.severity = new Enumeration<AuditEventSeverity>(new AuditEventSeverityEnumFactory()); // bb 2865 return this.severity; 2866 } 2867 2868 public boolean hasSeverityElement() { 2869 return this.severity != null && !this.severity.isEmpty(); 2870 } 2871 2872 public boolean hasSeverity() { 2873 return this.severity != null && !this.severity.isEmpty(); 2874 } 2875 2876 /** 2877 * @param value {@link #severity} (Indicates and enables segmentation of various severity including debugging from critical.). This is the underlying object with id, value and extensions. The accessor "getSeverity" gives direct access to the value 2878 */ 2879 public AuditEvent setSeverityElement(Enumeration<AuditEventSeverity> value) { 2880 this.severity = value; 2881 return this; 2882 } 2883 2884 /** 2885 * @return Indicates and enables segmentation of various severity including debugging from critical. 2886 */ 2887 public AuditEventSeverity getSeverity() { 2888 return this.severity == null ? null : this.severity.getValue(); 2889 } 2890 2891 /** 2892 * @param value Indicates and enables segmentation of various severity including debugging from critical. 2893 */ 2894 public AuditEvent setSeverity(AuditEventSeverity value) { 2895 if (value == null) 2896 this.severity = null; 2897 else { 2898 if (this.severity == null) 2899 this.severity = new Enumeration<AuditEventSeverity>(new AuditEventSeverityEnumFactory()); 2900 this.severity.setValue(value); 2901 } 2902 return this; 2903 } 2904 2905 /** 2906 * @return {@link #occurred} (The time or period during which the activity occurred.) 2907 */ 2908 public DataType getOccurred() { 2909 return this.occurred; 2910 } 2911 2912 /** 2913 * @return {@link #occurred} (The time or period during which the activity occurred.) 2914 */ 2915 public Period getOccurredPeriod() throws FHIRException { 2916 if (this.occurred == null) 2917 this.occurred = new Period(); 2918 if (!(this.occurred instanceof Period)) 2919 throw new FHIRException("Type mismatch: the type Period was expected, but "+this.occurred.getClass().getName()+" was encountered"); 2920 return (Period) this.occurred; 2921 } 2922 2923 public boolean hasOccurredPeriod() { 2924 return this != null && this.occurred instanceof Period; 2925 } 2926 2927 /** 2928 * @return {@link #occurred} (The time or period during which the activity occurred.) 2929 */ 2930 public DateTimeType getOccurredDateTimeType() throws FHIRException { 2931 if (this.occurred == null) 2932 this.occurred = new DateTimeType(); 2933 if (!(this.occurred instanceof DateTimeType)) 2934 throw new FHIRException("Type mismatch: the type DateTimeType was expected, but "+this.occurred.getClass().getName()+" was encountered"); 2935 return (DateTimeType) this.occurred; 2936 } 2937 2938 public boolean hasOccurredDateTimeType() { 2939 return this != null && this.occurred instanceof DateTimeType; 2940 } 2941 2942 public boolean hasOccurred() { 2943 return this.occurred != null && !this.occurred.isEmpty(); 2944 } 2945 2946 /** 2947 * @param value {@link #occurred} (The time or period during which the activity occurred.) 2948 */ 2949 public AuditEvent setOccurred(DataType value) { 2950 if (value != null && !(value instanceof Period || value instanceof DateTimeType)) 2951 throw new FHIRException("Not the right type for AuditEvent.occurred[x]: "+value.fhirType()); 2952 this.occurred = value; 2953 return this; 2954 } 2955 2956 /** 2957 * @return {@link #recorded} (The time when the event was recorded.). This is the underlying object with id, value and extensions. The accessor "getRecorded" gives direct access to the value 2958 */ 2959 public InstantType getRecordedElement() { 2960 if (this.recorded == null) 2961 if (Configuration.errorOnAutoCreate()) 2962 throw new Error("Attempt to auto-create AuditEvent.recorded"); 2963 else if (Configuration.doAutoCreate()) 2964 this.recorded = new InstantType(); // bb 2965 return this.recorded; 2966 } 2967 2968 public boolean hasRecordedElement() { 2969 return this.recorded != null && !this.recorded.isEmpty(); 2970 } 2971 2972 public boolean hasRecorded() { 2973 return this.recorded != null && !this.recorded.isEmpty(); 2974 } 2975 2976 /** 2977 * @param value {@link #recorded} (The time when the event was recorded.). This is the underlying object with id, value and extensions. The accessor "getRecorded" gives direct access to the value 2978 */ 2979 public AuditEvent setRecordedElement(InstantType value) { 2980 this.recorded = value; 2981 return this; 2982 } 2983 2984 /** 2985 * @return The time when the event was recorded. 2986 */ 2987 public Date getRecorded() { 2988 return this.recorded == null ? null : this.recorded.getValue(); 2989 } 2990 2991 /** 2992 * @param value The time when the event was recorded. 2993 */ 2994 public AuditEvent setRecorded(Date value) { 2995 if (this.recorded == null) 2996 this.recorded = new InstantType(); 2997 this.recorded.setValue(value); 2998 return this; 2999 } 3000 3001 /** 3002 * @return {@link #outcome} (Indicates whether the event succeeded or failed. A free text descripiton can be given in outcome.text.) 3003 */ 3004 public AuditEventOutcomeComponent getOutcome() { 3005 if (this.outcome == null) 3006 if (Configuration.errorOnAutoCreate()) 3007 throw new Error("Attempt to auto-create AuditEvent.outcome"); 3008 else if (Configuration.doAutoCreate()) 3009 this.outcome = new AuditEventOutcomeComponent(); // cc 3010 return this.outcome; 3011 } 3012 3013 public boolean hasOutcome() { 3014 return this.outcome != null && !this.outcome.isEmpty(); 3015 } 3016 3017 /** 3018 * @param value {@link #outcome} (Indicates whether the event succeeded or failed. A free text descripiton can be given in outcome.text.) 3019 */ 3020 public AuditEvent setOutcome(AuditEventOutcomeComponent value) { 3021 this.outcome = value; 3022 return this; 3023 } 3024 3025 /** 3026 * @return {@link #authorization} (The authorization (e.g., PurposeOfUse) that was used during the event being recorded.) 3027 */ 3028 public List<CodeableConcept> getAuthorization() { 3029 if (this.authorization == null) 3030 this.authorization = new ArrayList<CodeableConcept>(); 3031 return this.authorization; 3032 } 3033 3034 /** 3035 * @return Returns a reference to <code>this</code> for easy method chaining 3036 */ 3037 public AuditEvent setAuthorization(List<CodeableConcept> theAuthorization) { 3038 this.authorization = theAuthorization; 3039 return this; 3040 } 3041 3042 public boolean hasAuthorization() { 3043 if (this.authorization == null) 3044 return false; 3045 for (CodeableConcept item : this.authorization) 3046 if (!item.isEmpty()) 3047 return true; 3048 return false; 3049 } 3050 3051 public CodeableConcept addAuthorization() { //3 3052 CodeableConcept t = new CodeableConcept(); 3053 if (this.authorization == null) 3054 this.authorization = new ArrayList<CodeableConcept>(); 3055 this.authorization.add(t); 3056 return t; 3057 } 3058 3059 public AuditEvent addAuthorization(CodeableConcept t) { //3 3060 if (t == null) 3061 return this; 3062 if (this.authorization == null) 3063 this.authorization = new ArrayList<CodeableConcept>(); 3064 this.authorization.add(t); 3065 return this; 3066 } 3067 3068 /** 3069 * @return The first repetition of repeating field {@link #authorization}, creating it if it does not already exist {3} 3070 */ 3071 public CodeableConcept getAuthorizationFirstRep() { 3072 if (getAuthorization().isEmpty()) { 3073 addAuthorization(); 3074 } 3075 return getAuthorization().get(0); 3076 } 3077 3078 /** 3079 * @return {@link #basedOn} (Allows tracing of authorizatino for the events and tracking whether proposals/recommendations were acted upon.) 3080 */ 3081 public List<Reference> getBasedOn() { 3082 if (this.basedOn == null) 3083 this.basedOn = new ArrayList<Reference>(); 3084 return this.basedOn; 3085 } 3086 3087 /** 3088 * @return Returns a reference to <code>this</code> for easy method chaining 3089 */ 3090 public AuditEvent setBasedOn(List<Reference> theBasedOn) { 3091 this.basedOn = theBasedOn; 3092 return this; 3093 } 3094 3095 public boolean hasBasedOn() { 3096 if (this.basedOn == null) 3097 return false; 3098 for (Reference item : this.basedOn) 3099 if (!item.isEmpty()) 3100 return true; 3101 return false; 3102 } 3103 3104 public Reference addBasedOn() { //3 3105 Reference t = new Reference(); 3106 if (this.basedOn == null) 3107 this.basedOn = new ArrayList<Reference>(); 3108 this.basedOn.add(t); 3109 return t; 3110 } 3111 3112 public AuditEvent addBasedOn(Reference t) { //3 3113 if (t == null) 3114 return this; 3115 if (this.basedOn == null) 3116 this.basedOn = new ArrayList<Reference>(); 3117 this.basedOn.add(t); 3118 return this; 3119 } 3120 3121 /** 3122 * @return The first repetition of repeating field {@link #basedOn}, creating it if it does not already exist {3} 3123 */ 3124 public Reference getBasedOnFirstRep() { 3125 if (getBasedOn().isEmpty()) { 3126 addBasedOn(); 3127 } 3128 return getBasedOn().get(0); 3129 } 3130 3131 /** 3132 * @return {@link #patient} (The patient element is available to enable deterministic tracking of activities that involve the patient as the subject of the data used in an activity.) 3133 */ 3134 public Reference getPatient() { 3135 if (this.patient == null) 3136 if (Configuration.errorOnAutoCreate()) 3137 throw new Error("Attempt to auto-create AuditEvent.patient"); 3138 else if (Configuration.doAutoCreate()) 3139 this.patient = new Reference(); // cc 3140 return this.patient; 3141 } 3142 3143 public boolean hasPatient() { 3144 return this.patient != null && !this.patient.isEmpty(); 3145 } 3146 3147 /** 3148 * @param value {@link #patient} (The patient element is available to enable deterministic tracking of activities that involve the patient as the subject of the data used in an activity.) 3149 */ 3150 public AuditEvent setPatient(Reference value) { 3151 this.patient = value; 3152 return this; 3153 } 3154 3155 /** 3156 * @return {@link #encounter} (This will typically be the encounter the event occurred, but some events may be initiated prior to or after the official completion of an encounter but still be tied to the context of the encounter (e.g. pre-admission lab tests).) 3157 */ 3158 public Reference getEncounter() { 3159 if (this.encounter == null) 3160 if (Configuration.errorOnAutoCreate()) 3161 throw new Error("Attempt to auto-create AuditEvent.encounter"); 3162 else if (Configuration.doAutoCreate()) 3163 this.encounter = new Reference(); // cc 3164 return this.encounter; 3165 } 3166 3167 public boolean hasEncounter() { 3168 return this.encounter != null && !this.encounter.isEmpty(); 3169 } 3170 3171 /** 3172 * @param value {@link #encounter} (This will typically be the encounter the event occurred, but some events may be initiated prior to or after the official completion of an encounter but still be tied to the context of the encounter (e.g. pre-admission lab tests).) 3173 */ 3174 public AuditEvent setEncounter(Reference value) { 3175 this.encounter = value; 3176 return this; 3177 } 3178 3179 /** 3180 * @return {@link #agent} (An actor taking an active role in the event or activity that is logged.) 3181 */ 3182 public List<AuditEventAgentComponent> getAgent() { 3183 if (this.agent == null) 3184 this.agent = new ArrayList<AuditEventAgentComponent>(); 3185 return this.agent; 3186 } 3187 3188 /** 3189 * @return Returns a reference to <code>this</code> for easy method chaining 3190 */ 3191 public AuditEvent setAgent(List<AuditEventAgentComponent> theAgent) { 3192 this.agent = theAgent; 3193 return this; 3194 } 3195 3196 public boolean hasAgent() { 3197 if (this.agent == null) 3198 return false; 3199 for (AuditEventAgentComponent item : this.agent) 3200 if (!item.isEmpty()) 3201 return true; 3202 return false; 3203 } 3204 3205 public AuditEventAgentComponent addAgent() { //3 3206 AuditEventAgentComponent t = new AuditEventAgentComponent(); 3207 if (this.agent == null) 3208 this.agent = new ArrayList<AuditEventAgentComponent>(); 3209 this.agent.add(t); 3210 return t; 3211 } 3212 3213 public AuditEvent addAgent(AuditEventAgentComponent t) { //3 3214 if (t == null) 3215 return this; 3216 if (this.agent == null) 3217 this.agent = new ArrayList<AuditEventAgentComponent>(); 3218 this.agent.add(t); 3219 return this; 3220 } 3221 3222 /** 3223 * @return The first repetition of repeating field {@link #agent}, creating it if it does not already exist {3} 3224 */ 3225 public AuditEventAgentComponent getAgentFirstRep() { 3226 if (getAgent().isEmpty()) { 3227 addAgent(); 3228 } 3229 return getAgent().get(0); 3230 } 3231 3232 /** 3233 * @return {@link #source} (The actor that is reporting the event.) 3234 */ 3235 public AuditEventSourceComponent getSource() { 3236 if (this.source == null) 3237 if (Configuration.errorOnAutoCreate()) 3238 throw new Error("Attempt to auto-create AuditEvent.source"); 3239 else if (Configuration.doAutoCreate()) 3240 this.source = new AuditEventSourceComponent(); // cc 3241 return this.source; 3242 } 3243 3244 public boolean hasSource() { 3245 return this.source != null && !this.source.isEmpty(); 3246 } 3247 3248 /** 3249 * @param value {@link #source} (The actor that is reporting the event.) 3250 */ 3251 public AuditEvent setSource(AuditEventSourceComponent value) { 3252 this.source = value; 3253 return this; 3254 } 3255 3256 /** 3257 * @return {@link #entity} (Specific instances of data or objects that have been accessed.) 3258 */ 3259 public List<AuditEventEntityComponent> getEntity() { 3260 if (this.entity == null) 3261 this.entity = new ArrayList<AuditEventEntityComponent>(); 3262 return this.entity; 3263 } 3264 3265 /** 3266 * @return Returns a reference to <code>this</code> for easy method chaining 3267 */ 3268 public AuditEvent setEntity(List<AuditEventEntityComponent> theEntity) { 3269 this.entity = theEntity; 3270 return this; 3271 } 3272 3273 public boolean hasEntity() { 3274 if (this.entity == null) 3275 return false; 3276 for (AuditEventEntityComponent item : this.entity) 3277 if (!item.isEmpty()) 3278 return true; 3279 return false; 3280 } 3281 3282 public AuditEventEntityComponent addEntity() { //3 3283 AuditEventEntityComponent t = new AuditEventEntityComponent(); 3284 if (this.entity == null) 3285 this.entity = new ArrayList<AuditEventEntityComponent>(); 3286 this.entity.add(t); 3287 return t; 3288 } 3289 3290 public AuditEvent addEntity(AuditEventEntityComponent t) { //3 3291 if (t == null) 3292 return this; 3293 if (this.entity == null) 3294 this.entity = new ArrayList<AuditEventEntityComponent>(); 3295 this.entity.add(t); 3296 return this; 3297 } 3298 3299 /** 3300 * @return The first repetition of repeating field {@link #entity}, creating it if it does not already exist {3} 3301 */ 3302 public AuditEventEntityComponent getEntityFirstRep() { 3303 if (getEntity().isEmpty()) { 3304 addEntity(); 3305 } 3306 return getEntity().get(0); 3307 } 3308 3309 protected void listChildren(List<Property> children) { 3310 super.listChildren(children); 3311 children.add(new Property("category", "CodeableConcept", "Classification of the type of event.", 0, java.lang.Integer.MAX_VALUE, category)); 3312 children.add(new Property("code", "CodeableConcept", "Describes what happened. The most specific code for the event.", 0, 1, code)); 3313 children.add(new Property("action", "code", "Indicator for type of action performed during the event that generated the audit.", 0, 1, action)); 3314 children.add(new Property("severity", "code", "Indicates and enables segmentation of various severity including debugging from critical.", 0, 1, severity)); 3315 children.add(new Property("occurred[x]", "Period|dateTime", "The time or period during which the activity occurred.", 0, 1, occurred)); 3316 children.add(new Property("recorded", "instant", "The time when the event was recorded.", 0, 1, recorded)); 3317 children.add(new Property("outcome", "", "Indicates whether the event succeeded or failed. A free text descripiton can be given in outcome.text.", 0, 1, outcome)); 3318 children.add(new Property("authorization", "CodeableConcept", "The authorization (e.g., PurposeOfUse) that was used during the event being recorded.", 0, java.lang.Integer.MAX_VALUE, authorization)); 3319 children.add(new Property("basedOn", "Reference(CarePlan|DeviceRequest|ImmunizationRecommendation|MedicationRequest|NutritionOrder|ServiceRequest|Task)", "Allows tracing of authorizatino for the events and tracking whether proposals/recommendations were acted upon.", 0, java.lang.Integer.MAX_VALUE, basedOn)); 3320 children.add(new Property("patient", "Reference(Patient)", "The patient element is available to enable deterministic tracking of activities that involve the patient as the subject of the data used in an activity.", 0, 1, patient)); 3321 children.add(new Property("encounter", "Reference(Encounter)", "This will typically be the encounter the event occurred, but some events may be initiated prior to or after the official completion of an encounter but still be tied to the context of the encounter (e.g. pre-admission lab tests).", 0, 1, encounter)); 3322 children.add(new Property("agent", "", "An actor taking an active role in the event or activity that is logged.", 0, java.lang.Integer.MAX_VALUE, agent)); 3323 children.add(new Property("source", "", "The actor that is reporting the event.", 0, 1, source)); 3324 children.add(new Property("entity", "", "Specific instances of data or objects that have been accessed.", 0, java.lang.Integer.MAX_VALUE, entity)); 3325 } 3326 3327 @Override 3328 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 3329 switch (_hash) { 3330 case 50511102: /*category*/ return new Property("category", "CodeableConcept", "Classification of the type of event.", 0, java.lang.Integer.MAX_VALUE, category); 3331 case 3059181: /*code*/ return new Property("code", "CodeableConcept", "Describes what happened. The most specific code for the event.", 0, 1, code); 3332 case -1422950858: /*action*/ return new Property("action", "code", "Indicator for type of action performed during the event that generated the audit.", 0, 1, action); 3333 case 1478300413: /*severity*/ return new Property("severity", "code", "Indicates and enables segmentation of various severity including debugging from critical.", 0, 1, severity); 3334 case 784181563: /*occurred[x]*/ return new Property("occurred[x]", "Period|dateTime", "The time or period during which the activity occurred.", 0, 1, occurred); 3335 case 792816933: /*occurred*/ return new Property("occurred[x]", "Period|dateTime", "The time or period during which the activity occurred.", 0, 1, occurred); 3336 case 894082886: /*occurredPeriod*/ return new Property("occurred[x]", "Period", "The time or period during which the activity occurred.", 0, 1, occurred); 3337 case 1579027424: /*occurredDateTime*/ return new Property("occurred[x]", "dateTime", "The time or period during which the activity occurred.", 0, 1, occurred); 3338 case -799233872: /*recorded*/ return new Property("recorded", "instant", "The time when the event was recorded.", 0, 1, recorded); 3339 case -1106507950: /*outcome*/ return new Property("outcome", "", "Indicates whether the event succeeded or failed. A free text descripiton can be given in outcome.text.", 0, 1, outcome); 3340 case -1385570183: /*authorization*/ return new Property("authorization", "CodeableConcept", "The authorization (e.g., PurposeOfUse) that was used during the event being recorded.", 0, java.lang.Integer.MAX_VALUE, authorization); 3341 case -332612366: /*basedOn*/ return new Property("basedOn", "Reference(CarePlan|DeviceRequest|ImmunizationRecommendation|MedicationRequest|NutritionOrder|ServiceRequest|Task)", "Allows tracing of authorizatino for the events and tracking whether proposals/recommendations were acted upon.", 0, java.lang.Integer.MAX_VALUE, basedOn); 3342 case -791418107: /*patient*/ return new Property("patient", "Reference(Patient)", "The patient element is available to enable deterministic tracking of activities that involve the patient as the subject of the data used in an activity.", 0, 1, patient); 3343 case 1524132147: /*encounter*/ return new Property("encounter", "Reference(Encounter)", "This will typically be the encounter the event occurred, but some events may be initiated prior to or after the official completion of an encounter but still be tied to the context of the encounter (e.g. pre-admission lab tests).", 0, 1, encounter); 3344 case 92750597: /*agent*/ return new Property("agent", "", "An actor taking an active role in the event or activity that is logged.", 0, java.lang.Integer.MAX_VALUE, agent); 3345 case -896505829: /*source*/ return new Property("source", "", "The actor that is reporting the event.", 0, 1, source); 3346 case -1298275357: /*entity*/ return new Property("entity", "", "Specific instances of data or objects that have been accessed.", 0, java.lang.Integer.MAX_VALUE, entity); 3347 default: return super.getNamedProperty(_hash, _name, _checkValid); 3348 } 3349 3350 } 3351 3352 @Override 3353 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 3354 switch (hash) { 3355 case 50511102: /*category*/ return this.category == null ? new Base[0] : this.category.toArray(new Base[this.category.size()]); // CodeableConcept 3356 case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept 3357 case -1422950858: /*action*/ return this.action == null ? new Base[0] : new Base[] {this.action}; // Enumeration<AuditEventAction> 3358 case 1478300413: /*severity*/ return this.severity == null ? new Base[0] : new Base[] {this.severity}; // Enumeration<AuditEventSeverity> 3359 case 792816933: /*occurred*/ return this.occurred == null ? new Base[0] : new Base[] {this.occurred}; // DataType 3360 case -799233872: /*recorded*/ return this.recorded == null ? new Base[0] : new Base[] {this.recorded}; // InstantType 3361 case -1106507950: /*outcome*/ return this.outcome == null ? new Base[0] : new Base[] {this.outcome}; // AuditEventOutcomeComponent 3362 case -1385570183: /*authorization*/ return this.authorization == null ? new Base[0] : this.authorization.toArray(new Base[this.authorization.size()]); // CodeableConcept 3363 case -332612366: /*basedOn*/ return this.basedOn == null ? new Base[0] : this.basedOn.toArray(new Base[this.basedOn.size()]); // Reference 3364 case -791418107: /*patient*/ return this.patient == null ? new Base[0] : new Base[] {this.patient}; // Reference 3365 case 1524132147: /*encounter*/ return this.encounter == null ? new Base[0] : new Base[] {this.encounter}; // Reference 3366 case 92750597: /*agent*/ return this.agent == null ? new Base[0] : this.agent.toArray(new Base[this.agent.size()]); // AuditEventAgentComponent 3367 case -896505829: /*source*/ return this.source == null ? new Base[0] : new Base[] {this.source}; // AuditEventSourceComponent 3368 case -1298275357: /*entity*/ return this.entity == null ? new Base[0] : this.entity.toArray(new Base[this.entity.size()]); // AuditEventEntityComponent 3369 default: return super.getProperty(hash, name, checkValid); 3370 } 3371 3372 } 3373 3374 @Override 3375 public Base setProperty(int hash, String name, Base value) throws FHIRException { 3376 switch (hash) { 3377 case 50511102: // category 3378 this.getCategory().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 3379 return value; 3380 case 3059181: // code 3381 this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 3382 return value; 3383 case -1422950858: // action 3384 value = new AuditEventActionEnumFactory().fromType(TypeConvertor.castToCode(value)); 3385 this.action = (Enumeration) value; // Enumeration<AuditEventAction> 3386 return value; 3387 case 1478300413: // severity 3388 value = new AuditEventSeverityEnumFactory().fromType(TypeConvertor.castToCode(value)); 3389 this.severity = (Enumeration) value; // Enumeration<AuditEventSeverity> 3390 return value; 3391 case 792816933: // occurred 3392 this.occurred = TypeConvertor.castToType(value); // DataType 3393 return value; 3394 case -799233872: // recorded 3395 this.recorded = TypeConvertor.castToInstant(value); // InstantType 3396 return value; 3397 case -1106507950: // outcome 3398 this.outcome = (AuditEventOutcomeComponent) value; // AuditEventOutcomeComponent 3399 return value; 3400 case -1385570183: // authorization 3401 this.getAuthorization().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 3402 return value; 3403 case -332612366: // basedOn 3404 this.getBasedOn().add(TypeConvertor.castToReference(value)); // Reference 3405 return value; 3406 case -791418107: // patient 3407 this.patient = TypeConvertor.castToReference(value); // Reference 3408 return value; 3409 case 1524132147: // encounter 3410 this.encounter = TypeConvertor.castToReference(value); // Reference 3411 return value; 3412 case 92750597: // agent 3413 this.getAgent().add((AuditEventAgentComponent) value); // AuditEventAgentComponent 3414 return value; 3415 case -896505829: // source 3416 this.source = (AuditEventSourceComponent) value; // AuditEventSourceComponent 3417 return value; 3418 case -1298275357: // entity 3419 this.getEntity().add((AuditEventEntityComponent) value); // AuditEventEntityComponent 3420 return value; 3421 default: return super.setProperty(hash, name, value); 3422 } 3423 3424 } 3425 3426 @Override 3427 public Base setProperty(String name, Base value) throws FHIRException { 3428 if (name.equals("category")) { 3429 this.getCategory().add(TypeConvertor.castToCodeableConcept(value)); 3430 } else if (name.equals("code")) { 3431 this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 3432 } else if (name.equals("action")) { 3433 value = new AuditEventActionEnumFactory().fromType(TypeConvertor.castToCode(value)); 3434 this.action = (Enumeration) value; // Enumeration<AuditEventAction> 3435 } else if (name.equals("severity")) { 3436 value = new AuditEventSeverityEnumFactory().fromType(TypeConvertor.castToCode(value)); 3437 this.severity = (Enumeration) value; // Enumeration<AuditEventSeverity> 3438 } else if (name.equals("occurred[x]")) { 3439 this.occurred = TypeConvertor.castToType(value); // DataType 3440 } else if (name.equals("recorded")) { 3441 this.recorded = TypeConvertor.castToInstant(value); // InstantType 3442 } else if (name.equals("outcome")) { 3443 this.outcome = (AuditEventOutcomeComponent) value; // AuditEventOutcomeComponent 3444 } else if (name.equals("authorization")) { 3445 this.getAuthorization().add(TypeConvertor.castToCodeableConcept(value)); 3446 } else if (name.equals("basedOn")) { 3447 this.getBasedOn().add(TypeConvertor.castToReference(value)); 3448 } else if (name.equals("patient")) { 3449 this.patient = TypeConvertor.castToReference(value); // Reference 3450 } else if (name.equals("encounter")) { 3451 this.encounter = TypeConvertor.castToReference(value); // Reference 3452 } else if (name.equals("agent")) { 3453 this.getAgent().add((AuditEventAgentComponent) value); 3454 } else if (name.equals("source")) { 3455 this.source = (AuditEventSourceComponent) value; // AuditEventSourceComponent 3456 } else if (name.equals("entity")) { 3457 this.getEntity().add((AuditEventEntityComponent) value); 3458 } else 3459 return super.setProperty(name, value); 3460 return value; 3461 } 3462 3463 @Override 3464 public void removeChild(String name, Base value) throws FHIRException { 3465 if (name.equals("category")) { 3466 this.getCategory().remove(value); 3467 } else if (name.equals("code")) { 3468 this.code = null; 3469 } else if (name.equals("action")) { 3470 value = new AuditEventActionEnumFactory().fromType(TypeConvertor.castToCode(value)); 3471 this.action = (Enumeration) value; // Enumeration<AuditEventAction> 3472 } else if (name.equals("severity")) { 3473 value = new AuditEventSeverityEnumFactory().fromType(TypeConvertor.castToCode(value)); 3474 this.severity = (Enumeration) value; // Enumeration<AuditEventSeverity> 3475 } else if (name.equals("occurred[x]")) { 3476 this.occurred = null; 3477 } else if (name.equals("recorded")) { 3478 this.recorded = null; 3479 } else if (name.equals("outcome")) { 3480 this.outcome = (AuditEventOutcomeComponent) value; // AuditEventOutcomeComponent 3481 } else if (name.equals("authorization")) { 3482 this.getAuthorization().remove(value); 3483 } else if (name.equals("basedOn")) { 3484 this.getBasedOn().remove(value); 3485 } else if (name.equals("patient")) { 3486 this.patient = null; 3487 } else if (name.equals("encounter")) { 3488 this.encounter = null; 3489 } else if (name.equals("agent")) { 3490 this.getAgent().remove((AuditEventAgentComponent) value); 3491 } else if (name.equals("source")) { 3492 this.source = (AuditEventSourceComponent) value; // AuditEventSourceComponent 3493 } else if (name.equals("entity")) { 3494 this.getEntity().remove((AuditEventEntityComponent) value); 3495 } else 3496 super.removeChild(name, value); 3497 3498 } 3499 3500 @Override 3501 public Base makeProperty(int hash, String name) throws FHIRException { 3502 switch (hash) { 3503 case 50511102: return addCategory(); 3504 case 3059181: return getCode(); 3505 case -1422950858: return getActionElement(); 3506 case 1478300413: return getSeverityElement(); 3507 case 784181563: return getOccurred(); 3508 case 792816933: return getOccurred(); 3509 case -799233872: return getRecordedElement(); 3510 case -1106507950: return getOutcome(); 3511 case -1385570183: return addAuthorization(); 3512 case -332612366: return addBasedOn(); 3513 case -791418107: return getPatient(); 3514 case 1524132147: return getEncounter(); 3515 case 92750597: return addAgent(); 3516 case -896505829: return getSource(); 3517 case -1298275357: return addEntity(); 3518 default: return super.makeProperty(hash, name); 3519 } 3520 3521 } 3522 3523 @Override 3524 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 3525 switch (hash) { 3526 case 50511102: /*category*/ return new String[] {"CodeableConcept"}; 3527 case 3059181: /*code*/ return new String[] {"CodeableConcept"}; 3528 case -1422950858: /*action*/ return new String[] {"code"}; 3529 case 1478300413: /*severity*/ return new String[] {"code"}; 3530 case 792816933: /*occurred*/ return new String[] {"Period", "dateTime"}; 3531 case -799233872: /*recorded*/ return new String[] {"instant"}; 3532 case -1106507950: /*outcome*/ return new String[] {}; 3533 case -1385570183: /*authorization*/ return new String[] {"CodeableConcept"}; 3534 case -332612366: /*basedOn*/ return new String[] {"Reference"}; 3535 case -791418107: /*patient*/ return new String[] {"Reference"}; 3536 case 1524132147: /*encounter*/ return new String[] {"Reference"}; 3537 case 92750597: /*agent*/ return new String[] {}; 3538 case -896505829: /*source*/ return new String[] {}; 3539 case -1298275357: /*entity*/ return new String[] {}; 3540 default: return super.getTypesForProperty(hash, name); 3541 } 3542 3543 } 3544 3545 @Override 3546 public Base addChild(String name) throws FHIRException { 3547 if (name.equals("category")) { 3548 return addCategory(); 3549 } 3550 else if (name.equals("code")) { 3551 this.code = new CodeableConcept(); 3552 return this.code; 3553 } 3554 else if (name.equals("action")) { 3555 throw new FHIRException("Cannot call addChild on a singleton property AuditEvent.action"); 3556 } 3557 else if (name.equals("severity")) { 3558 throw new FHIRException("Cannot call addChild on a singleton property AuditEvent.severity"); 3559 } 3560 else if (name.equals("occurredPeriod")) { 3561 this.occurred = new Period(); 3562 return this.occurred; 3563 } 3564 else if (name.equals("occurredDateTime")) { 3565 this.occurred = new DateTimeType(); 3566 return this.occurred; 3567 } 3568 else if (name.equals("recorded")) { 3569 throw new FHIRException("Cannot call addChild on a singleton property AuditEvent.recorded"); 3570 } 3571 else if (name.equals("outcome")) { 3572 this.outcome = new AuditEventOutcomeComponent(); 3573 return this.outcome; 3574 } 3575 else if (name.equals("authorization")) { 3576 return addAuthorization(); 3577 } 3578 else if (name.equals("basedOn")) { 3579 return addBasedOn(); 3580 } 3581 else if (name.equals("patient")) { 3582 this.patient = new Reference(); 3583 return this.patient; 3584 } 3585 else if (name.equals("encounter")) { 3586 this.encounter = new Reference(); 3587 return this.encounter; 3588 } 3589 else if (name.equals("agent")) { 3590 return addAgent(); 3591 } 3592 else if (name.equals("source")) { 3593 this.source = new AuditEventSourceComponent(); 3594 return this.source; 3595 } 3596 else if (name.equals("entity")) { 3597 return addEntity(); 3598 } 3599 else 3600 return super.addChild(name); 3601 } 3602 3603 public String fhirType() { 3604 return "AuditEvent"; 3605 3606 } 3607 3608 public AuditEvent copy() { 3609 AuditEvent dst = new AuditEvent(); 3610 copyValues(dst); 3611 return dst; 3612 } 3613 3614 public void copyValues(AuditEvent dst) { 3615 super.copyValues(dst); 3616 if (category != null) { 3617 dst.category = new ArrayList<CodeableConcept>(); 3618 for (CodeableConcept i : category) 3619 dst.category.add(i.copy()); 3620 }; 3621 dst.code = code == null ? null : code.copy(); 3622 dst.action = action == null ? null : action.copy(); 3623 dst.severity = severity == null ? null : severity.copy(); 3624 dst.occurred = occurred == null ? null : occurred.copy(); 3625 dst.recorded = recorded == null ? null : recorded.copy(); 3626 dst.outcome = outcome == null ? null : outcome.copy(); 3627 if (authorization != null) { 3628 dst.authorization = new ArrayList<CodeableConcept>(); 3629 for (CodeableConcept i : authorization) 3630 dst.authorization.add(i.copy()); 3631 }; 3632 if (basedOn != null) { 3633 dst.basedOn = new ArrayList<Reference>(); 3634 for (Reference i : basedOn) 3635 dst.basedOn.add(i.copy()); 3636 }; 3637 dst.patient = patient == null ? null : patient.copy(); 3638 dst.encounter = encounter == null ? null : encounter.copy(); 3639 if (agent != null) { 3640 dst.agent = new ArrayList<AuditEventAgentComponent>(); 3641 for (AuditEventAgentComponent i : agent) 3642 dst.agent.add(i.copy()); 3643 }; 3644 dst.source = source == null ? null : source.copy(); 3645 if (entity != null) { 3646 dst.entity = new ArrayList<AuditEventEntityComponent>(); 3647 for (AuditEventEntityComponent i : entity) 3648 dst.entity.add(i.copy()); 3649 }; 3650 } 3651 3652 protected AuditEvent typedCopy() { 3653 return copy(); 3654 } 3655 3656 @Override 3657 public boolean equalsDeep(Base other_) { 3658 if (!super.equalsDeep(other_)) 3659 return false; 3660 if (!(other_ instanceof AuditEvent)) 3661 return false; 3662 AuditEvent o = (AuditEvent) other_; 3663 return compareDeep(category, o.category, true) && compareDeep(code, o.code, true) && compareDeep(action, o.action, true) 3664 && compareDeep(severity, o.severity, true) && compareDeep(occurred, o.occurred, true) && compareDeep(recorded, o.recorded, true) 3665 && compareDeep(outcome, o.outcome, true) && compareDeep(authorization, o.authorization, true) && compareDeep(basedOn, o.basedOn, true) 3666 && compareDeep(patient, o.patient, true) && compareDeep(encounter, o.encounter, true) && compareDeep(agent, o.agent, true) 3667 && compareDeep(source, o.source, true) && compareDeep(entity, o.entity, true); 3668 } 3669 3670 @Override 3671 public boolean equalsShallow(Base other_) { 3672 if (!super.equalsShallow(other_)) 3673 return false; 3674 if (!(other_ instanceof AuditEvent)) 3675 return false; 3676 AuditEvent o = (AuditEvent) other_; 3677 return compareValues(action, o.action, true) && compareValues(severity, o.severity, true) && compareValues(recorded, o.recorded, true) 3678 ; 3679 } 3680 3681 public boolean isEmpty() { 3682 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(category, code, action, severity 3683 , occurred, recorded, outcome, authorization, basedOn, patient, encounter, agent 3684 , source, entity); 3685 } 3686 3687 @Override 3688 public ResourceType getResourceType() { 3689 return ResourceType.AuditEvent; 3690 } 3691 3692 /** 3693 * Search parameter: <b>action</b> 3694 * <p> 3695 * Description: <b>Type of action performed during the event</b><br> 3696 * Type: <b>token</b><br> 3697 * Path: <b>AuditEvent.action</b><br> 3698 * </p> 3699 */ 3700 @SearchParamDefinition(name="action", path="AuditEvent.action", description="Type of action performed during the event", type="token" ) 3701 public static final String SP_ACTION = "action"; 3702 /** 3703 * <b>Fluent Client</b> search parameter constant for <b>action</b> 3704 * <p> 3705 * Description: <b>Type of action performed during the event</b><br> 3706 * Type: <b>token</b><br> 3707 * Path: <b>AuditEvent.action</b><br> 3708 * </p> 3709 */ 3710 public static final ca.uhn.fhir.rest.gclient.TokenClientParam ACTION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_ACTION); 3711 3712 /** 3713 * Search parameter: <b>agent-role</b> 3714 * <p> 3715 * Description: <b>Agent role in the event</b><br> 3716 * Type: <b>token</b><br> 3717 * Path: <b>AuditEvent.agent.role</b><br> 3718 * </p> 3719 */ 3720 @SearchParamDefinition(name="agent-role", path="AuditEvent.agent.role", description="Agent role in the event", type="token" ) 3721 public static final String SP_AGENT_ROLE = "agent-role"; 3722 /** 3723 * <b>Fluent Client</b> search parameter constant for <b>agent-role</b> 3724 * <p> 3725 * Description: <b>Agent role in the event</b><br> 3726 * Type: <b>token</b><br> 3727 * Path: <b>AuditEvent.agent.role</b><br> 3728 * </p> 3729 */ 3730 public static final ca.uhn.fhir.rest.gclient.TokenClientParam AGENT_ROLE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_AGENT_ROLE); 3731 3732 /** 3733 * Search parameter: <b>agent</b> 3734 * <p> 3735 * Description: <b>Identifier of who</b><br> 3736 * Type: <b>reference</b><br> 3737 * Path: <b>AuditEvent.agent.who</b><br> 3738 * </p> 3739 */ 3740 @SearchParamDefinition(name="agent", path="AuditEvent.agent.who", description="Identifier of who", 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={CareTeam.class, Device.class, Organization.class, Patient.class, Practitioner.class, PractitionerRole.class, RelatedPerson.class } ) 3741 public static final String SP_AGENT = "agent"; 3742 /** 3743 * <b>Fluent Client</b> search parameter constant for <b>agent</b> 3744 * <p> 3745 * Description: <b>Identifier of who</b><br> 3746 * Type: <b>reference</b><br> 3747 * Path: <b>AuditEvent.agent.who</b><br> 3748 * </p> 3749 */ 3750 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam AGENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_AGENT); 3751 3752/** 3753 * Constant for fluent queries to be used to add include statements. Specifies 3754 * the path value of "<b>AuditEvent:agent</b>". 3755 */ 3756 public static final ca.uhn.fhir.model.api.Include INCLUDE_AGENT = new ca.uhn.fhir.model.api.Include("AuditEvent:agent").toLocked(); 3757 3758 /** 3759 * Search parameter: <b>based-on</b> 3760 * <p> 3761 * Description: <b>Reference to the service request.</b><br> 3762 * Type: <b>reference</b><br> 3763 * Path: <b>AuditEvent.basedOn</b><br> 3764 * </p> 3765 */ 3766 @SearchParamDefinition(name="based-on", path="AuditEvent.basedOn", description="Reference to the service request.", type="reference", target={CarePlan.class, DeviceRequest.class, ImmunizationRecommendation.class, MedicationRequest.class, NutritionOrder.class, ServiceRequest.class, Task.class } ) 3767 public static final String SP_BASED_ON = "based-on"; 3768 /** 3769 * <b>Fluent Client</b> search parameter constant for <b>based-on</b> 3770 * <p> 3771 * Description: <b>Reference to the service request.</b><br> 3772 * Type: <b>reference</b><br> 3773 * Path: <b>AuditEvent.basedOn</b><br> 3774 * </p> 3775 */ 3776 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam BASED_ON = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_BASED_ON); 3777 3778/** 3779 * Constant for fluent queries to be used to add include statements. Specifies 3780 * the path value of "<b>AuditEvent:based-on</b>". 3781 */ 3782 public static final ca.uhn.fhir.model.api.Include INCLUDE_BASED_ON = new ca.uhn.fhir.model.api.Include("AuditEvent:based-on").toLocked(); 3783 3784 /** 3785 * Search parameter: <b>category</b> 3786 * <p> 3787 * Description: <b>Category of event</b><br> 3788 * Type: <b>token</b><br> 3789 * Path: <b>AuditEvent.category</b><br> 3790 * </p> 3791 */ 3792 @SearchParamDefinition(name="category", path="AuditEvent.category", description="Category of event", type="token" ) 3793 public static final String SP_CATEGORY = "category"; 3794 /** 3795 * <b>Fluent Client</b> search parameter constant for <b>category</b> 3796 * <p> 3797 * Description: <b>Category of event</b><br> 3798 * Type: <b>token</b><br> 3799 * Path: <b>AuditEvent.category</b><br> 3800 * </p> 3801 */ 3802 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CATEGORY = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CATEGORY); 3803 3804 /** 3805 * Search parameter: <b>entity-role</b> 3806 * <p> 3807 * Description: <b>What role the entity played</b><br> 3808 * Type: <b>token</b><br> 3809 * Path: <b>AuditEvent.entity.role</b><br> 3810 * </p> 3811 */ 3812 @SearchParamDefinition(name="entity-role", path="AuditEvent.entity.role", description="What role the entity played", type="token" ) 3813 public static final String SP_ENTITY_ROLE = "entity-role"; 3814 /** 3815 * <b>Fluent Client</b> search parameter constant for <b>entity-role</b> 3816 * <p> 3817 * Description: <b>What role the entity played</b><br> 3818 * Type: <b>token</b><br> 3819 * Path: <b>AuditEvent.entity.role</b><br> 3820 * </p> 3821 */ 3822 public static final ca.uhn.fhir.rest.gclient.TokenClientParam ENTITY_ROLE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_ENTITY_ROLE); 3823 3824 /** 3825 * Search parameter: <b>entity</b> 3826 * <p> 3827 * Description: <b>Specific instance of resource</b><br> 3828 * Type: <b>reference</b><br> 3829 * Path: <b>AuditEvent.entity.what</b><br> 3830 * </p> 3831 */ 3832 @SearchParamDefinition(name="entity", path="AuditEvent.entity.what", description="Specific instance of 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, BiologicallyDerivedProductDispense.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, DeviceAssociation.class, DeviceDefinition.class, DeviceDispense.class, DeviceMetric.class, DeviceRequest.class, DeviceUsage.class, DiagnosticReport.class, DocumentReference.class, Encounter.class, EncounterHistory.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, InventoryItem.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, MedicationStatement.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, Parameters.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, TestPlan.class, TestReport.class, TestScript.class, Transport.class, ValueSet.class, VerificationResult.class, VisionPrescription.class } ) 3833 public static final String SP_ENTITY = "entity"; 3834 /** 3835 * <b>Fluent Client</b> search parameter constant for <b>entity</b> 3836 * <p> 3837 * Description: <b>Specific instance of resource</b><br> 3838 * Type: <b>reference</b><br> 3839 * Path: <b>AuditEvent.entity.what</b><br> 3840 * </p> 3841 */ 3842 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ENTITY = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ENTITY); 3843 3844/** 3845 * Constant for fluent queries to be used to add include statements. Specifies 3846 * the path value of "<b>AuditEvent:entity</b>". 3847 */ 3848 public static final ca.uhn.fhir.model.api.Include INCLUDE_ENTITY = new ca.uhn.fhir.model.api.Include("AuditEvent:entity").toLocked(); 3849 3850 /** 3851 * Search parameter: <b>outcome</b> 3852 * <p> 3853 * Description: <b>Whether the event succeeded or failed</b><br> 3854 * Type: <b>token</b><br> 3855 * Path: <b>AuditEvent.outcome.code</b><br> 3856 * </p> 3857 */ 3858 @SearchParamDefinition(name="outcome", path="AuditEvent.outcome.code", description="Whether the event succeeded or failed", type="token" ) 3859 public static final String SP_OUTCOME = "outcome"; 3860 /** 3861 * <b>Fluent Client</b> search parameter constant for <b>outcome</b> 3862 * <p> 3863 * Description: <b>Whether the event succeeded or failed</b><br> 3864 * Type: <b>token</b><br> 3865 * Path: <b>AuditEvent.outcome.code</b><br> 3866 * </p> 3867 */ 3868 public static final ca.uhn.fhir.rest.gclient.TokenClientParam OUTCOME = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_OUTCOME); 3869 3870 /** 3871 * Search parameter: <b>policy</b> 3872 * <p> 3873 * Description: <b>Policy that authorized event</b><br> 3874 * Type: <b>uri</b><br> 3875 * Path: <b>AuditEvent.agent.policy</b><br> 3876 * </p> 3877 */ 3878 @SearchParamDefinition(name="policy", path="AuditEvent.agent.policy", description="Policy that authorized event", type="uri" ) 3879 public static final String SP_POLICY = "policy"; 3880 /** 3881 * <b>Fluent Client</b> search parameter constant for <b>policy</b> 3882 * <p> 3883 * Description: <b>Policy that authorized event</b><br> 3884 * Type: <b>uri</b><br> 3885 * Path: <b>AuditEvent.agent.policy</b><br> 3886 * </p> 3887 */ 3888 public static final ca.uhn.fhir.rest.gclient.UriClientParam POLICY = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_POLICY); 3889 3890 /** 3891 * Search parameter: <b>purpose</b> 3892 * <p> 3893 * Description: <b>The authorization (purposeOfUse) of the event</b><br> 3894 * Type: <b>token</b><br> 3895 * Path: <b>AuditEvent.authorization | AuditEvent.agent.authorization</b><br> 3896 * </p> 3897 */ 3898 @SearchParamDefinition(name="purpose", path="AuditEvent.authorization | AuditEvent.agent.authorization", description="The authorization (purposeOfUse) of the event", type="token" ) 3899 public static final String SP_PURPOSE = "purpose"; 3900 /** 3901 * <b>Fluent Client</b> search parameter constant for <b>purpose</b> 3902 * <p> 3903 * Description: <b>The authorization (purposeOfUse) of the event</b><br> 3904 * Type: <b>token</b><br> 3905 * Path: <b>AuditEvent.authorization | AuditEvent.agent.authorization</b><br> 3906 * </p> 3907 */ 3908 public static final ca.uhn.fhir.rest.gclient.TokenClientParam PURPOSE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_PURPOSE); 3909 3910 /** 3911 * Search parameter: <b>source</b> 3912 * <p> 3913 * Description: <b>The identity of source detecting the event</b><br> 3914 * Type: <b>reference</b><br> 3915 * Path: <b>AuditEvent.source.observer</b><br> 3916 * </p> 3917 */ 3918 @SearchParamDefinition(name="source", path="AuditEvent.source.observer", description="The identity of source detecting the event", type="reference", target={CareTeam.class, Device.class, Organization.class, Patient.class, Practitioner.class, PractitionerRole.class, RelatedPerson.class } ) 3919 public static final String SP_SOURCE = "source"; 3920 /** 3921 * <b>Fluent Client</b> search parameter constant for <b>source</b> 3922 * <p> 3923 * Description: <b>The identity of source detecting the event</b><br> 3924 * Type: <b>reference</b><br> 3925 * Path: <b>AuditEvent.source.observer</b><br> 3926 * </p> 3927 */ 3928 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SOURCE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SOURCE); 3929 3930/** 3931 * Constant for fluent queries to be used to add include statements. Specifies 3932 * the path value of "<b>AuditEvent:source</b>". 3933 */ 3934 public static final ca.uhn.fhir.model.api.Include INCLUDE_SOURCE = new ca.uhn.fhir.model.api.Include("AuditEvent:source").toLocked(); 3935 3936 /** 3937 * Search parameter: <b>code</b> 3938 * <p> 3939 * Description: <b>Multiple Resources: 3940 3941* [AdverseEvent](adverseevent.html): Event or incident that occurred or was averted 3942* [AllergyIntolerance](allergyintolerance.html): Code that identifies the allergy or intolerance 3943* [AuditEvent](auditevent.html): More specific code for the event 3944* [Basic](basic.html): Kind of Resource 3945* [ChargeItem](chargeitem.html): A code that identifies the charge, like a billing code 3946* [Condition](condition.html): Code for the condition 3947* [DetectedIssue](detectedissue.html): Issue Type, e.g. drug-drug, duplicate therapy, etc. 3948* [DeviceRequest](devicerequest.html): Code for what is being requested/ordered 3949* [DiagnosticReport](diagnosticreport.html): The code for the report, as opposed to codes for the atomic results, which are the names on the observation resource referred to from the result 3950* [FamilyMemberHistory](familymemberhistory.html): A search by a condition code 3951* [ImagingSelection](imagingselection.html): The imaging selection status 3952* [List](list.html): What the purpose of this list is 3953* [Medication](medication.html): Returns medications for a specific code 3954* [MedicationAdministration](medicationadministration.html): Return administrations of this medication code 3955* [MedicationDispense](medicationdispense.html): Returns dispenses of this medicine code 3956* [MedicationRequest](medicationrequest.html): Return prescriptions of this medication code 3957* [MedicationStatement](medicationstatement.html): Return statements of this medication code 3958* [NutritionIntake](nutritionintake.html): Returns statements of this code of NutritionIntake 3959* [Observation](observation.html): The code of the observation type 3960* [Procedure](procedure.html): A code to identify a procedure 3961* [RequestOrchestration](requestorchestration.html): The code of the request orchestration 3962* [Task](task.html): Search by task code 3963</b><br> 3964 * Type: <b>token</b><br> 3965 * Path: <b>AdverseEvent.code | AllergyIntolerance.code | AllergyIntolerance.reaction.substance | AuditEvent.code | Basic.code | ChargeItem.code | Condition.code | DetectedIssue.code | DeviceRequest.code.concept | DiagnosticReport.code | FamilyMemberHistory.condition.code | ImagingSelection.status | List.code | Medication.code | MedicationAdministration.medication.concept | MedicationDispense.medication.concept | MedicationRequest.medication.concept | MedicationStatement.medication.concept | NutritionIntake.code | Observation.code | Procedure.code | RequestOrchestration.code | Task.code</b><br> 3966 * </p> 3967 */ 3968 @SearchParamDefinition(name="code", path="AdverseEvent.code | AllergyIntolerance.code | AllergyIntolerance.reaction.substance | AuditEvent.code | Basic.code | ChargeItem.code | Condition.code | DetectedIssue.code | DeviceRequest.code.concept | DiagnosticReport.code | FamilyMemberHistory.condition.code | ImagingSelection.status | List.code | Medication.code | MedicationAdministration.medication.concept | MedicationDispense.medication.concept | MedicationRequest.medication.concept | MedicationStatement.medication.concept | NutritionIntake.code | Observation.code | Procedure.code | RequestOrchestration.code | Task.code", description="Multiple Resources: \r\n\r\n* [AdverseEvent](adverseevent.html): Event or incident that occurred or was averted\r\n* [AllergyIntolerance](allergyintolerance.html): Code that identifies the allergy or intolerance\r\n* [AuditEvent](auditevent.html): More specific code for the event\r\n* [Basic](basic.html): Kind of Resource\r\n* [ChargeItem](chargeitem.html): A code that identifies the charge, like a billing code\r\n* [Condition](condition.html): Code for the condition\r\n* [DetectedIssue](detectedissue.html): Issue Type, e.g. drug-drug, duplicate therapy, etc.\r\n* [DeviceRequest](devicerequest.html): Code for what is being requested/ordered\r\n* [DiagnosticReport](diagnosticreport.html): The code for the report, as opposed to codes for the atomic results, which are the names on the observation resource referred to from the result\r\n* [FamilyMemberHistory](familymemberhistory.html): A search by a condition code\r\n* [ImagingSelection](imagingselection.html): The imaging selection status\r\n* [List](list.html): What the purpose of this list is\r\n* [Medication](medication.html): Returns medications for a specific code\r\n* [MedicationAdministration](medicationadministration.html): Return administrations of this medication code\r\n* [MedicationDispense](medicationdispense.html): Returns dispenses of this medicine code\r\n* [MedicationRequest](medicationrequest.html): Return prescriptions of this medication code\r\n* [MedicationStatement](medicationstatement.html): Return statements of this medication code\r\n* [NutritionIntake](nutritionintake.html): Returns statements of this code of NutritionIntake\r\n* [Observation](observation.html): The code of the observation type\r\n* [Procedure](procedure.html): A code to identify a procedure\r\n* [RequestOrchestration](requestorchestration.html): The code of the request orchestration\r\n* [Task](task.html): Search by task code\r\n", type="token" ) 3969 public static final String SP_CODE = "code"; 3970 /** 3971 * <b>Fluent Client</b> search parameter constant for <b>code</b> 3972 * <p> 3973 * Description: <b>Multiple Resources: 3974 3975* [AdverseEvent](adverseevent.html): Event or incident that occurred or was averted 3976* [AllergyIntolerance](allergyintolerance.html): Code that identifies the allergy or intolerance 3977* [AuditEvent](auditevent.html): More specific code for the event 3978* [Basic](basic.html): Kind of Resource 3979* [ChargeItem](chargeitem.html): A code that identifies the charge, like a billing code 3980* [Condition](condition.html): Code for the condition 3981* [DetectedIssue](detectedissue.html): Issue Type, e.g. drug-drug, duplicate therapy, etc. 3982* [DeviceRequest](devicerequest.html): Code for what is being requested/ordered 3983* [DiagnosticReport](diagnosticreport.html): The code for the report, as opposed to codes for the atomic results, which are the names on the observation resource referred to from the result 3984* [FamilyMemberHistory](familymemberhistory.html): A search by a condition code 3985* [ImagingSelection](imagingselection.html): The imaging selection status 3986* [List](list.html): What the purpose of this list is 3987* [Medication](medication.html): Returns medications for a specific code 3988* [MedicationAdministration](medicationadministration.html): Return administrations of this medication code 3989* [MedicationDispense](medicationdispense.html): Returns dispenses of this medicine code 3990* [MedicationRequest](medicationrequest.html): Return prescriptions of this medication code 3991* [MedicationStatement](medicationstatement.html): Return statements of this medication code 3992* [NutritionIntake](nutritionintake.html): Returns statements of this code of NutritionIntake 3993* [Observation](observation.html): The code of the observation type 3994* [Procedure](procedure.html): A code to identify a procedure 3995* [RequestOrchestration](requestorchestration.html): The code of the request orchestration 3996* [Task](task.html): Search by task code 3997</b><br> 3998 * Type: <b>token</b><br> 3999 * Path: <b>AdverseEvent.code | AllergyIntolerance.code | AllergyIntolerance.reaction.substance | AuditEvent.code | Basic.code | ChargeItem.code | Condition.code | DetectedIssue.code | DeviceRequest.code.concept | DiagnosticReport.code | FamilyMemberHistory.condition.code | ImagingSelection.status | List.code | Medication.code | MedicationAdministration.medication.concept | MedicationDispense.medication.concept | MedicationRequest.medication.concept | MedicationStatement.medication.concept | NutritionIntake.code | Observation.code | Procedure.code | RequestOrchestration.code | Task.code</b><br> 4000 * </p> 4001 */ 4002 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CODE); 4003 4004 /** 4005 * Search parameter: <b>date</b> 4006 * <p> 4007 * Description: <b>Multiple Resources: 4008 4009* [AdverseEvent](adverseevent.html): When the event occurred 4010* [AllergyIntolerance](allergyintolerance.html): Date first version of the resource instance was recorded 4011* [Appointment](appointment.html): Appointment date/time. 4012* [AuditEvent](auditevent.html): Time when the event was recorded 4013* [CarePlan](careplan.html): Time period plan covers 4014* [CareTeam](careteam.html): A date within the coverage time period. 4015* [ClinicalImpression](clinicalimpression.html): When the assessment was documented 4016* [Composition](composition.html): Composition editing time 4017* [Consent](consent.html): When consent was agreed to 4018* [DiagnosticReport](diagnosticreport.html): The clinically relevant time of the report 4019* [DocumentReference](documentreference.html): When this document reference was created 4020* [Encounter](encounter.html): A date within the actualPeriod the Encounter lasted 4021* [EpisodeOfCare](episodeofcare.html): The provided date search value falls within the episode of care's period 4022* [FamilyMemberHistory](familymemberhistory.html): When history was recorded or last updated 4023* [Flag](flag.html): Time period when flag is active 4024* [Immunization](immunization.html): Vaccination (non)-Administration Date 4025* [ImmunizationEvaluation](immunizationevaluation.html): Date the evaluation was generated 4026* [ImmunizationRecommendation](immunizationrecommendation.html): Date recommendation(s) created 4027* [Invoice](invoice.html): Invoice date / posting date 4028* [List](list.html): When the list was prepared 4029* [MeasureReport](measurereport.html): The date of the measure report 4030* [NutritionIntake](nutritionintake.html): Date when patient was taking (or not taking) the medication 4031* [Observation](observation.html): Clinically relevant time/time-period for observation 4032* [Procedure](procedure.html): When the procedure occurred or is occurring 4033* [ResearchSubject](researchsubject.html): Start and end of participation 4034* [RiskAssessment](riskassessment.html): When was assessment made? 4035* [SupplyRequest](supplyrequest.html): When the request was made 4036</b><br> 4037 * Type: <b>date</b><br> 4038 * Path: <b>AdverseEvent.occurrence.ofType(dateTime) | AdverseEvent.occurrence.ofType(Period) | AdverseEvent.occurrence.ofType(Timing) | AllergyIntolerance.recordedDate | (start | requestedPeriod.start).first() | AuditEvent.recorded | CarePlan.period | ClinicalImpression.date | Composition.date | Consent.date | DiagnosticReport.effective.ofType(dateTime) | DiagnosticReport.effective.ofType(Period) | DocumentReference.date | Encounter.actualPeriod | EpisodeOfCare.period | FamilyMemberHistory.date | Flag.period | (Immunization.occurrence.ofType(dateTime)) | ImmunizationEvaluation.date | ImmunizationRecommendation.date | Invoice.date | List.date | MeasureReport.date | NutritionIntake.occurrence.ofType(dateTime) | NutritionIntake.occurrence.ofType(Period) | Observation.effective.ofType(dateTime) | Observation.effective.ofType(Period) | Observation.effective.ofType(Timing) | Observation.effective.ofType(instant) | Procedure.occurrence.ofType(dateTime) | Procedure.occurrence.ofType(Period) | Procedure.occurrence.ofType(Timing) | ResearchSubject.period | (RiskAssessment.occurrence.ofType(dateTime)) | SupplyRequest.authoredOn</b><br> 4039 * </p> 4040 */ 4041 @SearchParamDefinition(name="date", path="AdverseEvent.occurrence.ofType(dateTime) | AdverseEvent.occurrence.ofType(Period) | AdverseEvent.occurrence.ofType(Timing) | AllergyIntolerance.recordedDate | (start | requestedPeriod.start).first() | AuditEvent.recorded | CarePlan.period | ClinicalImpression.date | Composition.date | Consent.date | DiagnosticReport.effective.ofType(dateTime) | DiagnosticReport.effective.ofType(Period) | DocumentReference.date | Encounter.actualPeriod | EpisodeOfCare.period | FamilyMemberHistory.date | Flag.period | (Immunization.occurrence.ofType(dateTime)) | ImmunizationEvaluation.date | ImmunizationRecommendation.date | Invoice.date | List.date | MeasureReport.date | NutritionIntake.occurrence.ofType(dateTime) | NutritionIntake.occurrence.ofType(Period) | Observation.effective.ofType(dateTime) | Observation.effective.ofType(Period) | Observation.effective.ofType(Timing) | Observation.effective.ofType(instant) | Procedure.occurrence.ofType(dateTime) | Procedure.occurrence.ofType(Period) | Procedure.occurrence.ofType(Timing) | ResearchSubject.period | (RiskAssessment.occurrence.ofType(dateTime)) | SupplyRequest.authoredOn", description="Multiple Resources: \r\n\r\n* [AdverseEvent](adverseevent.html): When the event occurred\r\n* [AllergyIntolerance](allergyintolerance.html): Date first version of the resource instance was recorded\r\n* [Appointment](appointment.html): Appointment date/time.\r\n* [AuditEvent](auditevent.html): Time when the event was recorded\r\n* [CarePlan](careplan.html): Time period plan covers\r\n* [CareTeam](careteam.html): A date within the coverage time period.\r\n* [ClinicalImpression](clinicalimpression.html): When the assessment was documented\r\n* [Composition](composition.html): Composition editing time\r\n* [Consent](consent.html): When consent was agreed to\r\n* [DiagnosticReport](diagnosticreport.html): The clinically relevant time of the report\r\n* [DocumentReference](documentreference.html): When this document reference was created\r\n* [Encounter](encounter.html): A date within the actualPeriod the Encounter lasted\r\n* [EpisodeOfCare](episodeofcare.html): The provided date search value falls within the episode of care's period\r\n* [FamilyMemberHistory](familymemberhistory.html): When history was recorded or last updated\r\n* [Flag](flag.html): Time period when flag is active\r\n* [Immunization](immunization.html): Vaccination (non)-Administration Date\r\n* [ImmunizationEvaluation](immunizationevaluation.html): Date the evaluation was generated\r\n* [ImmunizationRecommendation](immunizationrecommendation.html): Date recommendation(s) created\r\n* [Invoice](invoice.html): Invoice date / posting date\r\n* [List](list.html): When the list was prepared\r\n* [MeasureReport](measurereport.html): The date of the measure report\r\n* [NutritionIntake](nutritionintake.html): Date when patient was taking (or not taking) the medication\r\n* [Observation](observation.html): Clinically relevant time/time-period for observation\r\n* [Procedure](procedure.html): When the procedure occurred or is occurring\r\n* [ResearchSubject](researchsubject.html): Start and end of participation\r\n* [RiskAssessment](riskassessment.html): When was assessment made?\r\n* [SupplyRequest](supplyrequest.html): When the request was made\r\n", type="date" ) 4042 public static final String SP_DATE = "date"; 4043 /** 4044 * <b>Fluent Client</b> search parameter constant for <b>date</b> 4045 * <p> 4046 * Description: <b>Multiple Resources: 4047 4048* [AdverseEvent](adverseevent.html): When the event occurred 4049* [AllergyIntolerance](allergyintolerance.html): Date first version of the resource instance was recorded 4050* [Appointment](appointment.html): Appointment date/time. 4051* [AuditEvent](auditevent.html): Time when the event was recorded 4052* [CarePlan](careplan.html): Time period plan covers 4053* [CareTeam](careteam.html): A date within the coverage time period. 4054* [ClinicalImpression](clinicalimpression.html): When the assessment was documented 4055* [Composition](composition.html): Composition editing time 4056* [Consent](consent.html): When consent was agreed to 4057* [DiagnosticReport](diagnosticreport.html): The clinically relevant time of the report 4058* [DocumentReference](documentreference.html): When this document reference was created 4059* [Encounter](encounter.html): A date within the actualPeriod the Encounter lasted 4060* [EpisodeOfCare](episodeofcare.html): The provided date search value falls within the episode of care's period 4061* [FamilyMemberHistory](familymemberhistory.html): When history was recorded or last updated 4062* [Flag](flag.html): Time period when flag is active 4063* [Immunization](immunization.html): Vaccination (non)-Administration Date 4064* [ImmunizationEvaluation](immunizationevaluation.html): Date the evaluation was generated 4065* [ImmunizationRecommendation](immunizationrecommendation.html): Date recommendation(s) created 4066* [Invoice](invoice.html): Invoice date / posting date 4067* [List](list.html): When the list was prepared 4068* [MeasureReport](measurereport.html): The date of the measure report 4069* [NutritionIntake](nutritionintake.html): Date when patient was taking (or not taking) the medication 4070* [Observation](observation.html): Clinically relevant time/time-period for observation 4071* [Procedure](procedure.html): When the procedure occurred or is occurring 4072* [ResearchSubject](researchsubject.html): Start and end of participation 4073* [RiskAssessment](riskassessment.html): When was assessment made? 4074* [SupplyRequest](supplyrequest.html): When the request was made 4075</b><br> 4076 * Type: <b>date</b><br> 4077 * Path: <b>AdverseEvent.occurrence.ofType(dateTime) | AdverseEvent.occurrence.ofType(Period) | AdverseEvent.occurrence.ofType(Timing) | AllergyIntolerance.recordedDate | (start | requestedPeriod.start).first() | AuditEvent.recorded | CarePlan.period | ClinicalImpression.date | Composition.date | Consent.date | DiagnosticReport.effective.ofType(dateTime) | DiagnosticReport.effective.ofType(Period) | DocumentReference.date | Encounter.actualPeriod | EpisodeOfCare.period | FamilyMemberHistory.date | Flag.period | (Immunization.occurrence.ofType(dateTime)) | ImmunizationEvaluation.date | ImmunizationRecommendation.date | Invoice.date | List.date | MeasureReport.date | NutritionIntake.occurrence.ofType(dateTime) | NutritionIntake.occurrence.ofType(Period) | Observation.effective.ofType(dateTime) | Observation.effective.ofType(Period) | Observation.effective.ofType(Timing) | Observation.effective.ofType(instant) | Procedure.occurrence.ofType(dateTime) | Procedure.occurrence.ofType(Period) | Procedure.occurrence.ofType(Timing) | ResearchSubject.period | (RiskAssessment.occurrence.ofType(dateTime)) | SupplyRequest.authoredOn</b><br> 4078 * </p> 4079 */ 4080 public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE); 4081 4082 /** 4083 * Search parameter: <b>encounter</b> 4084 * <p> 4085 * Description: <b>Multiple Resources: 4086 4087* [AuditEvent](auditevent.html): Encounter related to the activity recorded in the AuditEvent 4088* [CarePlan](careplan.html): The Encounter during which this CarePlan was created 4089* [ChargeItem](chargeitem.html): Encounter associated with event 4090* [Claim](claim.html): Encounters associated with a billed line item 4091* [ClinicalImpression](clinicalimpression.html): The Encounter during which this ClinicalImpression was created 4092* [Communication](communication.html): The Encounter during which this Communication was created 4093* [CommunicationRequest](communicationrequest.html): The Encounter during which this CommunicationRequest was created 4094* [Composition](composition.html): Context of the Composition 4095* [Condition](condition.html): The Encounter during which this Condition was created 4096* [DeviceRequest](devicerequest.html): Encounter during which request was created 4097* [DiagnosticReport](diagnosticreport.html): The Encounter when the order was made 4098* [EncounterHistory](encounterhistory.html): The Encounter associated with this set of history values 4099* [ExplanationOfBenefit](explanationofbenefit.html): Encounters associated with a billed line item 4100* [Flag](flag.html): Alert relevant during encounter 4101* [ImagingStudy](imagingstudy.html): The context of the study 4102* [List](list.html): Context in which list created 4103* [MedicationDispense](medicationdispense.html): Returns dispenses with a specific encounter 4104* [MedicationStatement](medicationstatement.html): Returns statements for a specific encounter 4105* [NutritionIntake](nutritionintake.html): Returns statements for a specific encounter 4106* [NutritionOrder](nutritionorder.html): Return nutrition orders with this encounter identifier 4107* [Observation](observation.html): Encounter related to the observation 4108* [Procedure](procedure.html): The Encounter during which this Procedure was created 4109* [Provenance](provenance.html): Encounter related to the Provenance 4110* [QuestionnaireResponse](questionnaireresponse.html): Encounter associated with the questionnaire response 4111* [RequestOrchestration](requestorchestration.html): The encounter the request orchestration applies to 4112* [RiskAssessment](riskassessment.html): Where was assessment performed? 4113* [ServiceRequest](servicerequest.html): An encounter in which this request is made 4114* [Task](task.html): Search by encounter 4115* [VisionPrescription](visionprescription.html): Return prescriptions with this encounter identifier 4116</b><br> 4117 * Type: <b>reference</b><br> 4118 * Path: <b>AuditEvent.encounter | CarePlan.encounter | ChargeItem.encounter | Claim.item.encounter | ClinicalImpression.encounter | Communication.encounter | CommunicationRequest.encounter | Composition.encounter | Condition.encounter | DeviceRequest.encounter | DiagnosticReport.encounter | EncounterHistory.encounter | ExplanationOfBenefit.item.encounter | Flag.encounter | ImagingStudy.encounter | List.encounter | MedicationDispense.encounter | MedicationStatement.encounter | NutritionIntake.encounter | NutritionOrder.encounter | Observation.encounter | Procedure.encounter | Provenance.encounter | QuestionnaireResponse.encounter | RequestOrchestration.encounter | RiskAssessment.encounter | ServiceRequest.encounter | Task.encounter | VisionPrescription.encounter</b><br> 4119 * </p> 4120 */ 4121 @SearchParamDefinition(name="encounter", path="AuditEvent.encounter | CarePlan.encounter | ChargeItem.encounter | Claim.item.encounter | ClinicalImpression.encounter | Communication.encounter | CommunicationRequest.encounter | Composition.encounter | Condition.encounter | DeviceRequest.encounter | DiagnosticReport.encounter | EncounterHistory.encounter | ExplanationOfBenefit.item.encounter | Flag.encounter | ImagingStudy.encounter | List.encounter | MedicationDispense.encounter | MedicationStatement.encounter | NutritionIntake.encounter | NutritionOrder.encounter | Observation.encounter | Procedure.encounter | Provenance.encounter | QuestionnaireResponse.encounter | RequestOrchestration.encounter | RiskAssessment.encounter | ServiceRequest.encounter | Task.encounter | VisionPrescription.encounter", description="Multiple Resources: \r\n\r\n* [AuditEvent](auditevent.html): Encounter related to the activity recorded in the AuditEvent\r\n* [CarePlan](careplan.html): The Encounter during which this CarePlan was created\r\n* [ChargeItem](chargeitem.html): Encounter associated with event\r\n* [Claim](claim.html): Encounters associated with a billed line item\r\n* [ClinicalImpression](clinicalimpression.html): The Encounter during which this ClinicalImpression was created\r\n* [Communication](communication.html): The Encounter during which this Communication was created\r\n* [CommunicationRequest](communicationrequest.html): The Encounter during which this CommunicationRequest was created\r\n* [Composition](composition.html): Context of the Composition\r\n* [Condition](condition.html): The Encounter during which this Condition was created\r\n* [DeviceRequest](devicerequest.html): Encounter during which request was created\r\n* [DiagnosticReport](diagnosticreport.html): The Encounter when the order was made\r\n* [EncounterHistory](encounterhistory.html): The Encounter associated with this set of history values\r\n* [ExplanationOfBenefit](explanationofbenefit.html): Encounters associated with a billed line item\r\n* [Flag](flag.html): Alert relevant during encounter\r\n* [ImagingStudy](imagingstudy.html): The context of the study\r\n* [List](list.html): Context in which list created\r\n* [MedicationDispense](medicationdispense.html): Returns dispenses with a specific encounter\r\n* [MedicationStatement](medicationstatement.html): Returns statements for a specific encounter\r\n* [NutritionIntake](nutritionintake.html): Returns statements for a specific encounter\r\n* [NutritionOrder](nutritionorder.html): Return nutrition orders with this encounter identifier\r\n* [Observation](observation.html): Encounter related to the observation\r\n* [Procedure](procedure.html): The Encounter during which this Procedure was created\r\n* [Provenance](provenance.html): Encounter related to the Provenance\r\n* [QuestionnaireResponse](questionnaireresponse.html): Encounter associated with the questionnaire response\r\n* [RequestOrchestration](requestorchestration.html): The encounter the request orchestration applies to\r\n* [RiskAssessment](riskassessment.html): Where was assessment performed?\r\n* [ServiceRequest](servicerequest.html): An encounter in which this request is made\r\n* [Task](task.html): Search by encounter\r\n* [VisionPrescription](visionprescription.html): Return prescriptions with this encounter identifier\r\n", type="reference", target={Encounter.class } ) 4122 public static final String SP_ENCOUNTER = "encounter"; 4123 /** 4124 * <b>Fluent Client</b> search parameter constant for <b>encounter</b> 4125 * <p> 4126 * Description: <b>Multiple Resources: 4127 4128* [AuditEvent](auditevent.html): Encounter related to the activity recorded in the AuditEvent 4129* [CarePlan](careplan.html): The Encounter during which this CarePlan was created 4130* [ChargeItem](chargeitem.html): Encounter associated with event 4131* [Claim](claim.html): Encounters associated with a billed line item 4132* [ClinicalImpression](clinicalimpression.html): The Encounter during which this ClinicalImpression was created 4133* [Communication](communication.html): The Encounter during which this Communication was created 4134* [CommunicationRequest](communicationrequest.html): The Encounter during which this CommunicationRequest was created 4135* [Composition](composition.html): Context of the Composition 4136* [Condition](condition.html): The Encounter during which this Condition was created 4137* [DeviceRequest](devicerequest.html): Encounter during which request was created 4138* [DiagnosticReport](diagnosticreport.html): The Encounter when the order was made 4139* [EncounterHistory](encounterhistory.html): The Encounter associated with this set of history values 4140* [ExplanationOfBenefit](explanationofbenefit.html): Encounters associated with a billed line item 4141* [Flag](flag.html): Alert relevant during encounter 4142* [ImagingStudy](imagingstudy.html): The context of the study 4143* [List](list.html): Context in which list created 4144* [MedicationDispense](medicationdispense.html): Returns dispenses with a specific encounter 4145* [MedicationStatement](medicationstatement.html): Returns statements for a specific encounter 4146* [NutritionIntake](nutritionintake.html): Returns statements for a specific encounter 4147* [NutritionOrder](nutritionorder.html): Return nutrition orders with this encounter identifier 4148* [Observation](observation.html): Encounter related to the observation 4149* [Procedure](procedure.html): The Encounter during which this Procedure was created 4150* [Provenance](provenance.html): Encounter related to the Provenance 4151* [QuestionnaireResponse](questionnaireresponse.html): Encounter associated with the questionnaire response 4152* [RequestOrchestration](requestorchestration.html): The encounter the request orchestration applies to 4153* [RiskAssessment](riskassessment.html): Where was assessment performed? 4154* [ServiceRequest](servicerequest.html): An encounter in which this request is made 4155* [Task](task.html): Search by encounter 4156* [VisionPrescription](visionprescription.html): Return prescriptions with this encounter identifier 4157</b><br> 4158 * Type: <b>reference</b><br> 4159 * Path: <b>AuditEvent.encounter | CarePlan.encounter | ChargeItem.encounter | Claim.item.encounter | ClinicalImpression.encounter | Communication.encounter | CommunicationRequest.encounter | Composition.encounter | Condition.encounter | DeviceRequest.encounter | DiagnosticReport.encounter | EncounterHistory.encounter | ExplanationOfBenefit.item.encounter | Flag.encounter | ImagingStudy.encounter | List.encounter | MedicationDispense.encounter | MedicationStatement.encounter | NutritionIntake.encounter | NutritionOrder.encounter | Observation.encounter | Procedure.encounter | Provenance.encounter | QuestionnaireResponse.encounter | RequestOrchestration.encounter | RiskAssessment.encounter | ServiceRequest.encounter | Task.encounter | VisionPrescription.encounter</b><br> 4160 * </p> 4161 */ 4162 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ENCOUNTER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ENCOUNTER); 4163 4164/** 4165 * Constant for fluent queries to be used to add include statements. Specifies 4166 * the path value of "<b>AuditEvent:encounter</b>". 4167 */ 4168 public static final ca.uhn.fhir.model.api.Include INCLUDE_ENCOUNTER = new ca.uhn.fhir.model.api.Include("AuditEvent:encounter").toLocked(); 4169 4170 /** 4171 * Search parameter: <b>patient</b> 4172 * <p> 4173 * Description: <b>Multiple Resources: 4174 4175* [Account](account.html): The entity that caused the expenses 4176* [AdverseEvent](adverseevent.html): Subject impacted by event 4177* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for 4178* [Appointment](appointment.html): One of the individuals of the appointment is this patient 4179* [AppointmentResponse](appointmentresponse.html): This Response is for this Patient 4180* [AuditEvent](auditevent.html): Where the activity involved patient data 4181* [Basic](basic.html): Identifies the focus of this resource 4182* [BodyStructure](bodystructure.html): Who this is about 4183* [CarePlan](careplan.html): Who the care plan is for 4184* [CareTeam](careteam.html): Who care team is for 4185* [ChargeItem](chargeitem.html): Individual service was done for/to 4186* [Claim](claim.html): Patient receiving the products or services 4187* [ClaimResponse](claimresponse.html): The subject of care 4188* [ClinicalImpression](clinicalimpression.html): Patient assessed 4189* [Communication](communication.html): Focus of message 4190* [CommunicationRequest](communicationrequest.html): Focus of message 4191* [Composition](composition.html): Who and/or what the composition is about 4192* [Condition](condition.html): Who has the condition? 4193* [Consent](consent.html): Who the consent applies to 4194* [Contract](contract.html): The identity of the subject of the contract (if a patient) 4195* [Coverage](coverage.html): Retrieve coverages for a patient 4196* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The reference to the patient 4197* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The reference to the patient 4198* [DetectedIssue](detectedissue.html): Associated patient 4199* [DeviceRequest](devicerequest.html): Individual the service is ordered for 4200* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device 4201* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient 4202* [DocumentReference](documentreference.html): Who/what is the subject of the document 4203* [Encounter](encounter.html): The patient present at the encounter 4204* [EnrollmentRequest](enrollmentrequest.html): The party to be enrolled 4205* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care 4206* [ExplanationOfBenefit](explanationofbenefit.html): The reference to the patient 4207* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for 4208* [Flag](flag.html): The identity of a subject to list flags for 4209* [Goal](goal.html): Who this goal is intended for 4210* [GuidanceResponse](guidanceresponse.html): The identity of a patient to search for guidance response results 4211* [ImagingSelection](imagingselection.html): Who the study is about 4212* [ImagingStudy](imagingstudy.html): Who the study is about 4213* [Immunization](immunization.html): The patient for the vaccination record 4214* [ImmunizationEvaluation](immunizationevaluation.html): The patient being evaluated 4215* [ImmunizationRecommendation](immunizationrecommendation.html): Who this profile is for 4216* [Invoice](invoice.html): Recipient(s) of goods and services 4217* [List](list.html): If all resources have the same subject 4218* [MeasureReport](measurereport.html): The identity of a patient to search for individual measure report results for 4219* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations for 4220* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses for 4221* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient 4222* [MedicationStatement](medicationstatement.html): Returns statements for a specific patient. 4223* [MolecularSequence](molecularsequence.html): The subject that the sequence is about 4224* [NutritionIntake](nutritionintake.html): Returns statements for a specific patient. 4225* [NutritionOrder](nutritionorder.html): The identity of the individual or set of individuals who requires the diet, formula or nutritional supplement 4226* [Observation](observation.html): The subject that the observation is about (if patient) 4227* [Person](person.html): The Person links to this Patient 4228* [Procedure](procedure.html): Search by subject - a patient 4229* [Provenance](provenance.html): Where the activity involved patient data 4230* [QuestionnaireResponse](questionnaireresponse.html): The patient that is the subject of the questionnaire response 4231* [RelatedPerson](relatedperson.html): The patient this related person is related to 4232* [RequestOrchestration](requestorchestration.html): The identity of a patient to search for request orchestrations 4233* [ResearchSubject](researchsubject.html): Who or what is part of study 4234* [RiskAssessment](riskassessment.html): Who/what does assessment apply to? 4235* [ServiceRequest](servicerequest.html): Search by subject - a patient 4236* [Specimen](specimen.html): The patient the specimen comes from 4237* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied 4238* [SupplyRequest](supplyrequest.html): The patient or subject for whom the supply is destined 4239* [Task](task.html): Search by patient 4240* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for 4241</b><br> 4242 * Type: <b>reference</b><br> 4243 * Path: <b>Account.subject.where(resolve() is Patient) | AdverseEvent.subject.where(resolve() is Patient) | AllergyIntolerance.patient | Appointment.participant.actor.where(resolve() is Patient) | Appointment.subject.where(resolve() is Patient) | AppointmentResponse.actor.where(resolve() is Patient) | AuditEvent.patient | Basic.subject.where(resolve() is Patient) | BodyStructure.patient | CarePlan.subject.where(resolve() is Patient) | CareTeam.subject.where(resolve() is Patient) | ChargeItem.subject.where(resolve() is Patient) | Claim.patient | ClaimResponse.patient | ClinicalImpression.subject.where(resolve() is Patient) | Communication.subject.where(resolve() is Patient) | CommunicationRequest.subject.where(resolve() is Patient) | Composition.subject.where(resolve() is Patient) | Condition.subject.where(resolve() is Patient) | Consent.subject.where(resolve() is Patient) | Contract.subject.where(resolve() is Patient) | Coverage.beneficiary | CoverageEligibilityRequest.patient | CoverageEligibilityResponse.patient | DetectedIssue.subject.where(resolve() is Patient) | DeviceRequest.subject.where(resolve() is Patient) | DeviceUsage.patient | DiagnosticReport.subject.where(resolve() is Patient) | DocumentReference.subject.where(resolve() is Patient) | Encounter.subject.where(resolve() is Patient) | EnrollmentRequest.candidate | EpisodeOfCare.patient | ExplanationOfBenefit.patient | FamilyMemberHistory.patient | Flag.subject.where(resolve() is Patient) | Goal.subject.where(resolve() is Patient) | GuidanceResponse.subject.where(resolve() is Patient) | ImagingSelection.subject.where(resolve() is Patient) | ImagingStudy.subject.where(resolve() is Patient) | Immunization.patient | ImmunizationEvaluation.patient | ImmunizationRecommendation.patient | Invoice.subject.where(resolve() is Patient) | List.subject.where(resolve() is Patient) | MeasureReport.subject.where(resolve() is Patient) | MedicationAdministration.subject.where(resolve() is Patient) | MedicationDispense.subject.where(resolve() is Patient) | MedicationRequest.subject.where(resolve() is Patient) | MedicationStatement.subject.where(resolve() is Patient) | MolecularSequence.subject.where(resolve() is Patient) | NutritionIntake.subject.where(resolve() is Patient) | NutritionOrder.subject.where(resolve() is Patient) | Observation.subject.where(resolve() is Patient) | Person.link.target.where(resolve() is Patient) | Procedure.subject.where(resolve() is Patient) | Provenance.patient | QuestionnaireResponse.subject.where(resolve() is Patient) | RelatedPerson.patient | RequestOrchestration.subject.where(resolve() is Patient) | ResearchSubject.subject.where(resolve() is Patient) | RiskAssessment.subject.where(resolve() is Patient) | ServiceRequest.subject.where(resolve() is Patient) | Specimen.subject.where(resolve() is Patient) | SupplyDelivery.patient | SupplyRequest.deliverFor | Task.for.where(resolve() is Patient) | VisionPrescription.patient</b><br> 4244 * </p> 4245 */ 4246 @SearchParamDefinition(name="patient", path="Account.subject.where(resolve() is Patient) | AdverseEvent.subject.where(resolve() is Patient) | AllergyIntolerance.patient | Appointment.participant.actor.where(resolve() is Patient) | Appointment.subject.where(resolve() is Patient) | AppointmentResponse.actor.where(resolve() is Patient) | AuditEvent.patient | Basic.subject.where(resolve() is Patient) | BodyStructure.patient | CarePlan.subject.where(resolve() is Patient) | CareTeam.subject.where(resolve() is Patient) | ChargeItem.subject.where(resolve() is Patient) | Claim.patient | ClaimResponse.patient | ClinicalImpression.subject.where(resolve() is Patient) | Communication.subject.where(resolve() is Patient) | CommunicationRequest.subject.where(resolve() is Patient) | Composition.subject.where(resolve() is Patient) | Condition.subject.where(resolve() is Patient) | Consent.subject.where(resolve() is Patient) | Contract.subject.where(resolve() is Patient) | Coverage.beneficiary | CoverageEligibilityRequest.patient | CoverageEligibilityResponse.patient | DetectedIssue.subject.where(resolve() is Patient) | DeviceRequest.subject.where(resolve() is Patient) | DeviceUsage.patient | DiagnosticReport.subject.where(resolve() is Patient) | DocumentReference.subject.where(resolve() is Patient) | Encounter.subject.where(resolve() is Patient) | EnrollmentRequest.candidate | EpisodeOfCare.patient | ExplanationOfBenefit.patient | FamilyMemberHistory.patient | Flag.subject.where(resolve() is Patient) | Goal.subject.where(resolve() is Patient) | GuidanceResponse.subject.where(resolve() is Patient) | ImagingSelection.subject.where(resolve() is Patient) | ImagingStudy.subject.where(resolve() is Patient) | Immunization.patient | ImmunizationEvaluation.patient | ImmunizationRecommendation.patient | Invoice.subject.where(resolve() is Patient) | List.subject.where(resolve() is Patient) | MeasureReport.subject.where(resolve() is Patient) | MedicationAdministration.subject.where(resolve() is Patient) | MedicationDispense.subject.where(resolve() is Patient) | MedicationRequest.subject.where(resolve() is Patient) | MedicationStatement.subject.where(resolve() is Patient) | MolecularSequence.subject.where(resolve() is Patient) | NutritionIntake.subject.where(resolve() is Patient) | NutritionOrder.subject.where(resolve() is Patient) | Observation.subject.where(resolve() is Patient) | Person.link.target.where(resolve() is Patient) | Procedure.subject.where(resolve() is Patient) | Provenance.patient | QuestionnaireResponse.subject.where(resolve() is Patient) | RelatedPerson.patient | RequestOrchestration.subject.where(resolve() is Patient) | ResearchSubject.subject.where(resolve() is Patient) | RiskAssessment.subject.where(resolve() is Patient) | ServiceRequest.subject.where(resolve() is Patient) | Specimen.subject.where(resolve() is Patient) | SupplyDelivery.patient | SupplyRequest.deliverFor | Task.for.where(resolve() is Patient) | VisionPrescription.patient", description="Multiple Resources: \r\n\r\n* [Account](account.html): The entity that caused the expenses\r\n* [AdverseEvent](adverseevent.html): Subject impacted by event\r\n* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for\r\n* [Appointment](appointment.html): One of the individuals of the appointment is this patient\r\n* [AppointmentResponse](appointmentresponse.html): This Response is for this Patient\r\n* [AuditEvent](auditevent.html): Where the activity involved patient data\r\n* [Basic](basic.html): Identifies the focus of this resource\r\n* [BodyStructure](bodystructure.html): Who this is about\r\n* [CarePlan](careplan.html): Who the care plan is for\r\n* [CareTeam](careteam.html): Who care team is for\r\n* [ChargeItem](chargeitem.html): Individual service was done for/to\r\n* [Claim](claim.html): Patient receiving the products or services\r\n* [ClaimResponse](claimresponse.html): The subject of care\r\n* [ClinicalImpression](clinicalimpression.html): Patient assessed\r\n* [Communication](communication.html): Focus of message\r\n* [CommunicationRequest](communicationrequest.html): Focus of message\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* [Contract](contract.html): The identity of the subject of the contract (if a patient)\r\n* [Coverage](coverage.html): Retrieve coverages for a patient\r\n* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The reference to the patient\r\n* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The reference to the patient\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* [DocumentReference](documentreference.html): Who/what is the subject of the document\r\n* [Encounter](encounter.html): The patient present at the encounter\r\n* [EnrollmentRequest](enrollmentrequest.html): The party to be enrolled\r\n* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care\r\n* [ExplanationOfBenefit](explanationofbenefit.html): The reference to the patient\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* [GuidanceResponse](guidanceresponse.html): The identity of a patient to search for guidance response results\r\n* [ImagingSelection](imagingselection.html): Who the study is about\r\n* [ImagingStudy](imagingstudy.html): Who the study is about\r\n* [Immunization](immunization.html): The patient for the vaccination record\r\n* [ImmunizationEvaluation](immunizationevaluation.html): The patient being evaluated\r\n* [ImmunizationRecommendation](immunizationrecommendation.html): Who this profile is for\r\n* [Invoice](invoice.html): Recipient(s) of goods and services\r\n* [List](list.html): If all resources have the same subject\r\n* [MeasureReport](measurereport.html): The identity of a patient to search for individual measure report results for\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* [MedicationStatement](medicationstatement.html): Returns statements for a specific patient.\r\n* [MolecularSequence](molecularsequence.html): The subject that the sequence is about\r\n* [NutritionIntake](nutritionintake.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* [Person](person.html): The Person links to this Patient\r\n* [Procedure](procedure.html): Search by subject - a patient\r\n* [Provenance](provenance.html): Where the activity involved patient data\r\n* [QuestionnaireResponse](questionnaireresponse.html): The patient that is the subject of the questionnaire response\r\n* [RelatedPerson](relatedperson.html): The patient this related person is related to\r\n* [RequestOrchestration](requestorchestration.html): The identity of a patient to search for request orchestrations\r\n* [ResearchSubject](researchsubject.html): Who or what is part of study\r\n* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?\r\n* [ServiceRequest](servicerequest.html): Search by subject - a patient\r\n* [Specimen](specimen.html): The patient the specimen comes from\r\n* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied\r\n* [SupplyRequest](supplyrequest.html): The patient or subject for whom the supply is destined\r\n* [Task](task.html): Search by patient\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={Patient.class } ) 4247 public static final String SP_PATIENT = "patient"; 4248 /** 4249 * <b>Fluent Client</b> search parameter constant for <b>patient</b> 4250 * <p> 4251 * Description: <b>Multiple Resources: 4252 4253* [Account](account.html): The entity that caused the expenses 4254* [AdverseEvent](adverseevent.html): Subject impacted by event 4255* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for 4256* [Appointment](appointment.html): One of the individuals of the appointment is this patient 4257* [AppointmentResponse](appointmentresponse.html): This Response is for this Patient 4258* [AuditEvent](auditevent.html): Where the activity involved patient data 4259* [Basic](basic.html): Identifies the focus of this resource 4260* [BodyStructure](bodystructure.html): Who this is about 4261* [CarePlan](careplan.html): Who the care plan is for 4262* [CareTeam](careteam.html): Who care team is for 4263* [ChargeItem](chargeitem.html): Individual service was done for/to 4264* [Claim](claim.html): Patient receiving the products or services 4265* [ClaimResponse](claimresponse.html): The subject of care 4266* [ClinicalImpression](clinicalimpression.html): Patient assessed 4267* [Communication](communication.html): Focus of message 4268* [CommunicationRequest](communicationrequest.html): Focus of message 4269* [Composition](composition.html): Who and/or what the composition is about 4270* [Condition](condition.html): Who has the condition? 4271* [Consent](consent.html): Who the consent applies to 4272* [Contract](contract.html): The identity of the subject of the contract (if a patient) 4273* [Coverage](coverage.html): Retrieve coverages for a patient 4274* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The reference to the patient 4275* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The reference to the patient 4276* [DetectedIssue](detectedissue.html): Associated patient 4277* [DeviceRequest](devicerequest.html): Individual the service is ordered for 4278* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device 4279* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient 4280* [DocumentReference](documentreference.html): Who/what is the subject of the document 4281* [Encounter](encounter.html): The patient present at the encounter 4282* [EnrollmentRequest](enrollmentrequest.html): The party to be enrolled 4283* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care 4284* [ExplanationOfBenefit](explanationofbenefit.html): The reference to the patient 4285* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for 4286* [Flag](flag.html): The identity of a subject to list flags for 4287* [Goal](goal.html): Who this goal is intended for 4288* [GuidanceResponse](guidanceresponse.html): The identity of a patient to search for guidance response results 4289* [ImagingSelection](imagingselection.html): Who the study is about 4290* [ImagingStudy](imagingstudy.html): Who the study is about 4291* [Immunization](immunization.html): The patient for the vaccination record 4292* [ImmunizationEvaluation](immunizationevaluation.html): The patient being evaluated 4293* [ImmunizationRecommendation](immunizationrecommendation.html): Who this profile is for 4294* [Invoice](invoice.html): Recipient(s) of goods and services 4295* [List](list.html): If all resources have the same subject 4296* [MeasureReport](measurereport.html): The identity of a patient to search for individual measure report results for 4297* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations for 4298* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses for 4299* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient 4300* [MedicationStatement](medicationstatement.html): Returns statements for a specific patient. 4301* [MolecularSequence](molecularsequence.html): The subject that the sequence is about 4302* [NutritionIntake](nutritionintake.html): Returns statements for a specific patient. 4303* [NutritionOrder](nutritionorder.html): The identity of the individual or set of individuals who requires the diet, formula or nutritional supplement 4304* [Observation](observation.html): The subject that the observation is about (if patient) 4305* [Person](person.html): The Person links to this Patient 4306* [Procedure](procedure.html): Search by subject - a patient 4307* [Provenance](provenance.html): Where the activity involved patient data 4308* [QuestionnaireResponse](questionnaireresponse.html): The patient that is the subject of the questionnaire response 4309* [RelatedPerson](relatedperson.html): The patient this related person is related to 4310* [RequestOrchestration](requestorchestration.html): The identity of a patient to search for request orchestrations 4311* [ResearchSubject](researchsubject.html): Who or what is part of study 4312* [RiskAssessment](riskassessment.html): Who/what does assessment apply to? 4313* [ServiceRequest](servicerequest.html): Search by subject - a patient 4314* [Specimen](specimen.html): The patient the specimen comes from 4315* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied 4316* [SupplyRequest](supplyrequest.html): The patient or subject for whom the supply is destined 4317* [Task](task.html): Search by patient 4318* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for 4319</b><br> 4320 * Type: <b>reference</b><br> 4321 * Path: <b>Account.subject.where(resolve() is Patient) | AdverseEvent.subject.where(resolve() is Patient) | AllergyIntolerance.patient | Appointment.participant.actor.where(resolve() is Patient) | Appointment.subject.where(resolve() is Patient) | AppointmentResponse.actor.where(resolve() is Patient) | AuditEvent.patient | Basic.subject.where(resolve() is Patient) | BodyStructure.patient | CarePlan.subject.where(resolve() is Patient) | CareTeam.subject.where(resolve() is Patient) | ChargeItem.subject.where(resolve() is Patient) | Claim.patient | ClaimResponse.patient | ClinicalImpression.subject.where(resolve() is Patient) | Communication.subject.where(resolve() is Patient) | CommunicationRequest.subject.where(resolve() is Patient) | Composition.subject.where(resolve() is Patient) | Condition.subject.where(resolve() is Patient) | Consent.subject.where(resolve() is Patient) | Contract.subject.where(resolve() is Patient) | Coverage.beneficiary | CoverageEligibilityRequest.patient | CoverageEligibilityResponse.patient | DetectedIssue.subject.where(resolve() is Patient) | DeviceRequest.subject.where(resolve() is Patient) | DeviceUsage.patient | DiagnosticReport.subject.where(resolve() is Patient) | DocumentReference.subject.where(resolve() is Patient) | Encounter.subject.where(resolve() is Patient) | EnrollmentRequest.candidate | EpisodeOfCare.patient | ExplanationOfBenefit.patient | FamilyMemberHistory.patient | Flag.subject.where(resolve() is Patient) | Goal.subject.where(resolve() is Patient) | GuidanceResponse.subject.where(resolve() is Patient) | ImagingSelection.subject.where(resolve() is Patient) | ImagingStudy.subject.where(resolve() is Patient) | Immunization.patient | ImmunizationEvaluation.patient | ImmunizationRecommendation.patient | Invoice.subject.where(resolve() is Patient) | List.subject.where(resolve() is Patient) | MeasureReport.subject.where(resolve() is Patient) | MedicationAdministration.subject.where(resolve() is Patient) | MedicationDispense.subject.where(resolve() is Patient) | MedicationRequest.subject.where(resolve() is Patient) | MedicationStatement.subject.where(resolve() is Patient) | MolecularSequence.subject.where(resolve() is Patient) | NutritionIntake.subject.where(resolve() is Patient) | NutritionOrder.subject.where(resolve() is Patient) | Observation.subject.where(resolve() is Patient) | Person.link.target.where(resolve() is Patient) | Procedure.subject.where(resolve() is Patient) | Provenance.patient | QuestionnaireResponse.subject.where(resolve() is Patient) | RelatedPerson.patient | RequestOrchestration.subject.where(resolve() is Patient) | ResearchSubject.subject.where(resolve() is Patient) | RiskAssessment.subject.where(resolve() is Patient) | ServiceRequest.subject.where(resolve() is Patient) | Specimen.subject.where(resolve() is Patient) | SupplyDelivery.patient | SupplyRequest.deliverFor | Task.for.where(resolve() is Patient) | VisionPrescription.patient</b><br> 4322 * </p> 4323 */ 4324 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PATIENT); 4325 4326/** 4327 * Constant for fluent queries to be used to add include statements. Specifies 4328 * the path value of "<b>AuditEvent:patient</b>". 4329 */ 4330 public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("AuditEvent:patient").toLocked(); 4331 4332 4333} 4334