001package org.hl7.fhir.r4.model; 002 003/* 004 Copyright (c) 2011+, HL7, Inc. 005 All rights reserved. 006 007 Redistribution and use in source and binary forms, with or without modification, 008 are permitted provided that the following conditions are met: 009 010 * Redistributions of source code must retain the above copyright notice, this 011 list of conditions and the following disclaimer. 012 * Redistributions in binary form must reproduce the above copyright notice, 013 this list of conditions and the following disclaimer in the documentation 014 and/or other materials provided with the distribution. 015 * Neither the name of HL7 nor the names of its contributors may be used to 016 endorse or promote products derived from this software without specific 017 prior written permission. 018 019 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 020 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 021 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 022 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 023 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 024 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 025 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 026 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 027 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 028 POSSIBILITY OF SUCH DAMAGE. 029 030*/ 031 032// Generated on Tue, May 12, 2020 07:26+1000 for FHIR v4.0.1 033import java.util.ArrayList; 034import java.util.List; 035 036import org.hl7.fhir.exceptions.FHIRException; 037import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 038 039import ca.uhn.fhir.model.api.annotation.Block; 040import ca.uhn.fhir.model.api.annotation.Child; 041import ca.uhn.fhir.model.api.annotation.Description; 042import ca.uhn.fhir.model.api.annotation.ResourceDef; 043import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 044 045/** 046 * An interaction between a patient and healthcare provider(s) for the purpose 047 * of providing healthcare service(s) or assessing the health status of a 048 * patient. 049 */ 050@ResourceDef(name = "Encounter", profile = "http://hl7.org/fhir/StructureDefinition/Encounter") 051public class Encounter extends DomainResource { 052 053 public enum EncounterStatus { 054 /** 055 * The Encounter has not yet started. 056 */ 057 PLANNED, 058 /** 059 * The Patient is present for the encounter, however is not currently meeting 060 * with a practitioner. 061 */ 062 ARRIVED, 063 /** 064 * The patient has been assessed for the priority of their treatment based on 065 * the severity of their condition. 066 */ 067 TRIAGED, 068 /** 069 * The Encounter has begun and the patient is present / the practitioner and the 070 * patient are meeting. 071 */ 072 INPROGRESS, 073 /** 074 * The Encounter has begun, but the patient is temporarily on leave. 075 */ 076 ONLEAVE, 077 /** 078 * The Encounter has ended. 079 */ 080 FINISHED, 081 /** 082 * The Encounter has ended before it has begun. 083 */ 084 CANCELLED, 085 /** 086 * This instance should not have been part of this patient's medical record. 087 */ 088 ENTEREDINERROR, 089 /** 090 * The encounter status is unknown. Note that "unknown" is a value of last 091 * resort and every attempt should be made to provide a meaningful value other 092 * than "unknown". 093 */ 094 UNKNOWN, 095 /** 096 * added to help the parsers with the generic types 097 */ 098 NULL; 099 100 public static EncounterStatus fromCode(String codeString) throws FHIRException { 101 if (codeString == null || "".equals(codeString)) 102 return null; 103 if ("planned".equals(codeString)) 104 return PLANNED; 105 if ("arrived".equals(codeString)) 106 return ARRIVED; 107 if ("triaged".equals(codeString)) 108 return TRIAGED; 109 if ("in-progress".equals(codeString)) 110 return INPROGRESS; 111 if ("onleave".equals(codeString)) 112 return ONLEAVE; 113 if ("finished".equals(codeString)) 114 return FINISHED; 115 if ("cancelled".equals(codeString)) 116 return CANCELLED; 117 if ("entered-in-error".equals(codeString)) 118 return ENTEREDINERROR; 119 if ("unknown".equals(codeString)) 120 return UNKNOWN; 121 if (Configuration.isAcceptInvalidEnums()) 122 return null; 123 else 124 throw new FHIRException("Unknown EncounterStatus code '" + codeString + "'"); 125 } 126 127 public String toCode() { 128 switch (this) { 129 case PLANNED: 130 return "planned"; 131 case ARRIVED: 132 return "arrived"; 133 case TRIAGED: 134 return "triaged"; 135 case INPROGRESS: 136 return "in-progress"; 137 case ONLEAVE: 138 return "onleave"; 139 case FINISHED: 140 return "finished"; 141 case CANCELLED: 142 return "cancelled"; 143 case ENTEREDINERROR: 144 return "entered-in-error"; 145 case UNKNOWN: 146 return "unknown"; 147 case NULL: 148 return null; 149 default: 150 return "?"; 151 } 152 } 153 154 public String getSystem() { 155 switch (this) { 156 case PLANNED: 157 return "http://hl7.org/fhir/encounter-status"; 158 case ARRIVED: 159 return "http://hl7.org/fhir/encounter-status"; 160 case TRIAGED: 161 return "http://hl7.org/fhir/encounter-status"; 162 case INPROGRESS: 163 return "http://hl7.org/fhir/encounter-status"; 164 case ONLEAVE: 165 return "http://hl7.org/fhir/encounter-status"; 166 case FINISHED: 167 return "http://hl7.org/fhir/encounter-status"; 168 case CANCELLED: 169 return "http://hl7.org/fhir/encounter-status"; 170 case ENTEREDINERROR: 171 return "http://hl7.org/fhir/encounter-status"; 172 case UNKNOWN: 173 return "http://hl7.org/fhir/encounter-status"; 174 case NULL: 175 return null; 176 default: 177 return "?"; 178 } 179 } 180 181 public String getDefinition() { 182 switch (this) { 183 case PLANNED: 184 return "The Encounter has not yet started."; 185 case ARRIVED: 186 return "The Patient is present for the encounter, however is not currently meeting with a practitioner."; 187 case TRIAGED: 188 return "The patient has been assessed for the priority of their treatment based on the severity of their condition."; 189 case INPROGRESS: 190 return "The Encounter has begun and the patient is present / the practitioner and the patient are meeting."; 191 case ONLEAVE: 192 return "The Encounter has begun, but the patient is temporarily on leave."; 193 case FINISHED: 194 return "The Encounter has ended."; 195 case CANCELLED: 196 return "The Encounter has ended before it has begun."; 197 case ENTEREDINERROR: 198 return "This instance should not have been part of this patient's medical record."; 199 case UNKNOWN: 200 return "The encounter status is unknown. Note that \"unknown\" is a value of last resort and every attempt should be made to provide a meaningful value other than \"unknown\"."; 201 case NULL: 202 return null; 203 default: 204 return "?"; 205 } 206 } 207 208 public String getDisplay() { 209 switch (this) { 210 case PLANNED: 211 return "Planned"; 212 case ARRIVED: 213 return "Arrived"; 214 case TRIAGED: 215 return "Triaged"; 216 case INPROGRESS: 217 return "In Progress"; 218 case ONLEAVE: 219 return "On Leave"; 220 case FINISHED: 221 return "Finished"; 222 case CANCELLED: 223 return "Cancelled"; 224 case ENTEREDINERROR: 225 return "Entered in Error"; 226 case UNKNOWN: 227 return "Unknown"; 228 case NULL: 229 return null; 230 default: 231 return "?"; 232 } 233 } 234 } 235 236 public static class EncounterStatusEnumFactory implements EnumFactory<EncounterStatus> { 237 public EncounterStatus fromCode(String codeString) throws IllegalArgumentException { 238 if (codeString == null || "".equals(codeString)) 239 if (codeString == null || "".equals(codeString)) 240 return null; 241 if ("planned".equals(codeString)) 242 return EncounterStatus.PLANNED; 243 if ("arrived".equals(codeString)) 244 return EncounterStatus.ARRIVED; 245 if ("triaged".equals(codeString)) 246 return EncounterStatus.TRIAGED; 247 if ("in-progress".equals(codeString)) 248 return EncounterStatus.INPROGRESS; 249 if ("onleave".equals(codeString)) 250 return EncounterStatus.ONLEAVE; 251 if ("finished".equals(codeString)) 252 return EncounterStatus.FINISHED; 253 if ("cancelled".equals(codeString)) 254 return EncounterStatus.CANCELLED; 255 if ("entered-in-error".equals(codeString)) 256 return EncounterStatus.ENTEREDINERROR; 257 if ("unknown".equals(codeString)) 258 return EncounterStatus.UNKNOWN; 259 throw new IllegalArgumentException("Unknown EncounterStatus code '" + codeString + "'"); 260 } 261 262 public Enumeration<EncounterStatus> fromType(PrimitiveType<?> code) throws FHIRException { 263 if (code == null) 264 return null; 265 if (code.isEmpty()) 266 return new Enumeration<EncounterStatus>(this, EncounterStatus.NULL, code); 267 String codeString = code.asStringValue(); 268 if (codeString == null || "".equals(codeString)) 269 return new Enumeration<EncounterStatus>(this, EncounterStatus.NULL, code); 270 if ("planned".equals(codeString)) 271 return new Enumeration<EncounterStatus>(this, EncounterStatus.PLANNED, code); 272 if ("arrived".equals(codeString)) 273 return new Enumeration<EncounterStatus>(this, EncounterStatus.ARRIVED, code); 274 if ("triaged".equals(codeString)) 275 return new Enumeration<EncounterStatus>(this, EncounterStatus.TRIAGED, code); 276 if ("in-progress".equals(codeString)) 277 return new Enumeration<EncounterStatus>(this, EncounterStatus.INPROGRESS, code); 278 if ("onleave".equals(codeString)) 279 return new Enumeration<EncounterStatus>(this, EncounterStatus.ONLEAVE, code); 280 if ("finished".equals(codeString)) 281 return new Enumeration<EncounterStatus>(this, EncounterStatus.FINISHED, code); 282 if ("cancelled".equals(codeString)) 283 return new Enumeration<EncounterStatus>(this, EncounterStatus.CANCELLED, code); 284 if ("entered-in-error".equals(codeString)) 285 return new Enumeration<EncounterStatus>(this, EncounterStatus.ENTEREDINERROR, code); 286 if ("unknown".equals(codeString)) 287 return new Enumeration<EncounterStatus>(this, EncounterStatus.UNKNOWN, code); 288 throw new FHIRException("Unknown EncounterStatus code '" + codeString + "'"); 289 } 290 291 public String toCode(EncounterStatus code) { 292 if (code == EncounterStatus.PLANNED) 293 return "planned"; 294 if (code == EncounterStatus.ARRIVED) 295 return "arrived"; 296 if (code == EncounterStatus.TRIAGED) 297 return "triaged"; 298 if (code == EncounterStatus.INPROGRESS) 299 return "in-progress"; 300 if (code == EncounterStatus.ONLEAVE) 301 return "onleave"; 302 if (code == EncounterStatus.FINISHED) 303 return "finished"; 304 if (code == EncounterStatus.CANCELLED) 305 return "cancelled"; 306 if (code == EncounterStatus.ENTEREDINERROR) 307 return "entered-in-error"; 308 if (code == EncounterStatus.UNKNOWN) 309 return "unknown"; 310 return "?"; 311 } 312 313 public String toSystem(EncounterStatus code) { 314 return code.getSystem(); 315 } 316 } 317 318 public enum EncounterLocationStatus { 319 /** 320 * The patient is planned to be moved to this location at some point in the 321 * future. 322 */ 323 PLANNED, 324 /** 325 * The patient is currently at this location, or was between the period 326 * specified. 327 * 328 * A system may update these records when the patient leaves the location to 329 * either reserved, or completed. 330 */ 331 ACTIVE, 332 /** 333 * This location is held empty for this patient. 334 */ 335 RESERVED, 336 /** 337 * The patient was at this location during the period specified. 338 * 339 * Not to be used when the patient is currently at the location. 340 */ 341 COMPLETED, 342 /** 343 * added to help the parsers with the generic types 344 */ 345 NULL; 346 347 public static EncounterLocationStatus fromCode(String codeString) throws FHIRException { 348 if (codeString == null || "".equals(codeString)) 349 return null; 350 if ("planned".equals(codeString)) 351 return PLANNED; 352 if ("active".equals(codeString)) 353 return ACTIVE; 354 if ("reserved".equals(codeString)) 355 return RESERVED; 356 if ("completed".equals(codeString)) 357 return COMPLETED; 358 if (Configuration.isAcceptInvalidEnums()) 359 return null; 360 else 361 throw new FHIRException("Unknown EncounterLocationStatus code '" + codeString + "'"); 362 } 363 364 public String toCode() { 365 switch (this) { 366 case PLANNED: 367 return "planned"; 368 case ACTIVE: 369 return "active"; 370 case RESERVED: 371 return "reserved"; 372 case COMPLETED: 373 return "completed"; 374 case NULL: 375 return null; 376 default: 377 return "?"; 378 } 379 } 380 381 public String getSystem() { 382 switch (this) { 383 case PLANNED: 384 return "http://hl7.org/fhir/encounter-location-status"; 385 case ACTIVE: 386 return "http://hl7.org/fhir/encounter-location-status"; 387 case RESERVED: 388 return "http://hl7.org/fhir/encounter-location-status"; 389 case COMPLETED: 390 return "http://hl7.org/fhir/encounter-location-status"; 391 case NULL: 392 return null; 393 default: 394 return "?"; 395 } 396 } 397 398 public String getDefinition() { 399 switch (this) { 400 case PLANNED: 401 return "The patient is planned to be moved to this location at some point in the future."; 402 case ACTIVE: 403 return "The patient is currently at this location, or was between the period specified.\r\rA system may update these records when the patient leaves the location to either reserved, or completed."; 404 case RESERVED: 405 return "This location is held empty for this patient."; 406 case COMPLETED: 407 return "The patient was at this location during the period specified.\r\rNot to be used when the patient is currently at the location."; 408 case NULL: 409 return null; 410 default: 411 return "?"; 412 } 413 } 414 415 public String getDisplay() { 416 switch (this) { 417 case PLANNED: 418 return "Planned"; 419 case ACTIVE: 420 return "Active"; 421 case RESERVED: 422 return "Reserved"; 423 case COMPLETED: 424 return "Completed"; 425 case NULL: 426 return null; 427 default: 428 return "?"; 429 } 430 } 431 } 432 433 public static class EncounterLocationStatusEnumFactory implements EnumFactory<EncounterLocationStatus> { 434 public EncounterLocationStatus fromCode(String codeString) throws IllegalArgumentException { 435 if (codeString == null || "".equals(codeString)) 436 if (codeString == null || "".equals(codeString)) 437 return null; 438 if ("planned".equals(codeString)) 439 return EncounterLocationStatus.PLANNED; 440 if ("active".equals(codeString)) 441 return EncounterLocationStatus.ACTIVE; 442 if ("reserved".equals(codeString)) 443 return EncounterLocationStatus.RESERVED; 444 if ("completed".equals(codeString)) 445 return EncounterLocationStatus.COMPLETED; 446 throw new IllegalArgumentException("Unknown EncounterLocationStatus code '" + codeString + "'"); 447 } 448 449 public Enumeration<EncounterLocationStatus> fromType(PrimitiveType<?> code) throws FHIRException { 450 if (code == null) 451 return null; 452 if (code.isEmpty()) 453 return new Enumeration<EncounterLocationStatus>(this, EncounterLocationStatus.NULL, code); 454 String codeString = code.asStringValue(); 455 if (codeString == null || "".equals(codeString)) 456 return new Enumeration<EncounterLocationStatus>(this, EncounterLocationStatus.NULL, code); 457 if ("planned".equals(codeString)) 458 return new Enumeration<EncounterLocationStatus>(this, EncounterLocationStatus.PLANNED, code); 459 if ("active".equals(codeString)) 460 return new Enumeration<EncounterLocationStatus>(this, EncounterLocationStatus.ACTIVE, code); 461 if ("reserved".equals(codeString)) 462 return new Enumeration<EncounterLocationStatus>(this, EncounterLocationStatus.RESERVED, code); 463 if ("completed".equals(codeString)) 464 return new Enumeration<EncounterLocationStatus>(this, EncounterLocationStatus.COMPLETED, code); 465 throw new FHIRException("Unknown EncounterLocationStatus code '" + codeString + "'"); 466 } 467 468 public String toCode(EncounterLocationStatus code) { 469 if (code == EncounterLocationStatus.PLANNED) 470 return "planned"; 471 if (code == EncounterLocationStatus.ACTIVE) 472 return "active"; 473 if (code == EncounterLocationStatus.RESERVED) 474 return "reserved"; 475 if (code == EncounterLocationStatus.COMPLETED) 476 return "completed"; 477 return "?"; 478 } 479 480 public String toSystem(EncounterLocationStatus code) { 481 return code.getSystem(); 482 } 483 } 484 485 @Block() 486 public static class StatusHistoryComponent extends BackboneElement implements IBaseBackboneElement { 487 /** 488 * planned | arrived | triaged | in-progress | onleave | finished | cancelled +. 489 */ 490 @Child(name = "status", type = { CodeType.class }, order = 1, min = 1, max = 1, modifier = false, summary = false) 491 @Description(shortDefinition = "planned | arrived | triaged | in-progress | onleave | finished | cancelled +", formalDefinition = "planned | arrived | triaged | in-progress | onleave | finished | cancelled +.") 492 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/encounter-status") 493 protected Enumeration<EncounterStatus> status; 494 495 /** 496 * The time that the episode was in the specified status. 497 */ 498 @Child(name = "period", type = { Period.class }, order = 2, min = 1, max = 1, modifier = false, summary = false) 499 @Description(shortDefinition = "The time that the episode was in the specified status", formalDefinition = "The time that the episode was in the specified status.") 500 protected Period period; 501 502 private static final long serialVersionUID = -1893906736L; 503 504 /** 505 * Constructor 506 */ 507 public StatusHistoryComponent() { 508 super(); 509 } 510 511 /** 512 * Constructor 513 */ 514 public StatusHistoryComponent(Enumeration<EncounterStatus> status, Period period) { 515 super(); 516 this.status = status; 517 this.period = period; 518 } 519 520 /** 521 * @return {@link #status} (planned | arrived | triaged | in-progress | onleave 522 * | finished | cancelled +.). This is the underlying object with id, 523 * value and extensions. The accessor "getStatus" gives direct access to 524 * the value 525 */ 526 public Enumeration<EncounterStatus> getStatusElement() { 527 if (this.status == null) 528 if (Configuration.errorOnAutoCreate()) 529 throw new Error("Attempt to auto-create StatusHistoryComponent.status"); 530 else if (Configuration.doAutoCreate()) 531 this.status = new Enumeration<EncounterStatus>(new EncounterStatusEnumFactory()); // bb 532 return this.status; 533 } 534 535 public boolean hasStatusElement() { 536 return this.status != null && !this.status.isEmpty(); 537 } 538 539 public boolean hasStatus() { 540 return this.status != null && !this.status.isEmpty(); 541 } 542 543 /** 544 * @param value {@link #status} (planned | arrived | triaged | in-progress | 545 * onleave | finished | cancelled +.). This is the underlying 546 * object with id, value and extensions. The accessor "getStatus" 547 * gives direct access to the value 548 */ 549 public StatusHistoryComponent setStatusElement(Enumeration<EncounterStatus> value) { 550 this.status = value; 551 return this; 552 } 553 554 /** 555 * @return planned | arrived | triaged | in-progress | onleave | finished | 556 * cancelled +. 557 */ 558 public EncounterStatus getStatus() { 559 return this.status == null ? null : this.status.getValue(); 560 } 561 562 /** 563 * @param value planned | arrived | triaged | in-progress | onleave | finished | 564 * cancelled +. 565 */ 566 public StatusHistoryComponent setStatus(EncounterStatus value) { 567 if (this.status == null) 568 this.status = new Enumeration<EncounterStatus>(new EncounterStatusEnumFactory()); 569 this.status.setValue(value); 570 return this; 571 } 572 573 /** 574 * @return {@link #period} (The time that the episode was in the specified 575 * status.) 576 */ 577 public Period getPeriod() { 578 if (this.period == null) 579 if (Configuration.errorOnAutoCreate()) 580 throw new Error("Attempt to auto-create StatusHistoryComponent.period"); 581 else if (Configuration.doAutoCreate()) 582 this.period = new Period(); // cc 583 return this.period; 584 } 585 586 public boolean hasPeriod() { 587 return this.period != null && !this.period.isEmpty(); 588 } 589 590 /** 591 * @param value {@link #period} (The time that the episode was in the specified 592 * status.) 593 */ 594 public StatusHistoryComponent setPeriod(Period value) { 595 this.period = value; 596 return this; 597 } 598 599 protected void listChildren(List<Property> children) { 600 super.listChildren(children); 601 children.add(new Property("status", "code", 602 "planned | arrived | triaged | in-progress | onleave | finished | cancelled +.", 0, 1, status)); 603 children.add( 604 new Property("period", "Period", "The time that the episode was in the specified status.", 0, 1, period)); 605 } 606 607 @Override 608 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 609 switch (_hash) { 610 case -892481550: 611 /* status */ return new Property("status", "code", 612 "planned | arrived | triaged | in-progress | onleave | finished | cancelled +.", 0, 1, status); 613 case -991726143: 614 /* period */ return new Property("period", "Period", "The time that the episode was in the specified status.", 615 0, 1, period); 616 default: 617 return super.getNamedProperty(_hash, _name, _checkValid); 618 } 619 620 } 621 622 @Override 623 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 624 switch (hash) { 625 case -892481550: 626 /* status */ return this.status == null ? new Base[0] : new Base[] { this.status }; // Enumeration<EncounterStatus> 627 case -991726143: 628 /* period */ return this.period == null ? new Base[0] : new Base[] { this.period }; // Period 629 default: 630 return super.getProperty(hash, name, checkValid); 631 } 632 633 } 634 635 @Override 636 public Base setProperty(int hash, String name, Base value) throws FHIRException { 637 switch (hash) { 638 case -892481550: // status 639 value = new EncounterStatusEnumFactory().fromType(castToCode(value)); 640 this.status = (Enumeration) value; // Enumeration<EncounterStatus> 641 return value; 642 case -991726143: // period 643 this.period = castToPeriod(value); // Period 644 return value; 645 default: 646 return super.setProperty(hash, name, value); 647 } 648 649 } 650 651 @Override 652 public Base setProperty(String name, Base value) throws FHIRException { 653 if (name.equals("status")) { 654 value = new EncounterStatusEnumFactory().fromType(castToCode(value)); 655 this.status = (Enumeration) value; // Enumeration<EncounterStatus> 656 } else if (name.equals("period")) { 657 this.period = castToPeriod(value); // Period 658 } else 659 return super.setProperty(name, value); 660 return value; 661 } 662 663 @Override 664 public Base makeProperty(int hash, String name) throws FHIRException { 665 switch (hash) { 666 case -892481550: 667 return getStatusElement(); 668 case -991726143: 669 return getPeriod(); 670 default: 671 return super.makeProperty(hash, name); 672 } 673 674 } 675 676 @Override 677 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 678 switch (hash) { 679 case -892481550: 680 /* status */ return new String[] { "code" }; 681 case -991726143: 682 /* period */ return new String[] { "Period" }; 683 default: 684 return super.getTypesForProperty(hash, name); 685 } 686 687 } 688 689 @Override 690 public Base addChild(String name) throws FHIRException { 691 if (name.equals("status")) { 692 throw new FHIRException("Cannot call addChild on a singleton property Encounter.status"); 693 } else if (name.equals("period")) { 694 this.period = new Period(); 695 return this.period; 696 } else 697 return super.addChild(name); 698 } 699 700 public StatusHistoryComponent copy() { 701 StatusHistoryComponent dst = new StatusHistoryComponent(); 702 copyValues(dst); 703 return dst; 704 } 705 706 public void copyValues(StatusHistoryComponent dst) { 707 super.copyValues(dst); 708 dst.status = status == null ? null : status.copy(); 709 dst.period = period == null ? null : period.copy(); 710 } 711 712 @Override 713 public boolean equalsDeep(Base other_) { 714 if (!super.equalsDeep(other_)) 715 return false; 716 if (!(other_ instanceof StatusHistoryComponent)) 717 return false; 718 StatusHistoryComponent o = (StatusHistoryComponent) other_; 719 return compareDeep(status, o.status, true) && compareDeep(period, o.period, true); 720 } 721 722 @Override 723 public boolean equalsShallow(Base other_) { 724 if (!super.equalsShallow(other_)) 725 return false; 726 if (!(other_ instanceof StatusHistoryComponent)) 727 return false; 728 StatusHistoryComponent o = (StatusHistoryComponent) other_; 729 return compareValues(status, o.status, true); 730 } 731 732 public boolean isEmpty() { 733 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(status, period); 734 } 735 736 public String fhirType() { 737 return "Encounter.statusHistory"; 738 739 } 740 741 } 742 743 @Block() 744 public static class ClassHistoryComponent extends BackboneElement implements IBaseBackboneElement { 745 /** 746 * inpatient | outpatient | ambulatory | emergency +. 747 */ 748 @Child(name = "class", type = { Coding.class }, order = 1, min = 1, max = 1, modifier = false, summary = false) 749 @Description(shortDefinition = "inpatient | outpatient | ambulatory | emergency +", formalDefinition = "inpatient | outpatient | ambulatory | emergency +.") 750 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://terminology.hl7.org/ValueSet/v3-ActEncounterCode") 751 protected Coding class_; 752 753 /** 754 * The time that the episode was in the specified class. 755 */ 756 @Child(name = "period", type = { Period.class }, order = 2, min = 1, max = 1, modifier = false, summary = false) 757 @Description(shortDefinition = "The time that the episode was in the specified class", formalDefinition = "The time that the episode was in the specified class.") 758 protected Period period; 759 760 private static final long serialVersionUID = 1331020311L; 761 762 /** 763 * Constructor 764 */ 765 public ClassHistoryComponent() { 766 super(); 767 } 768 769 /** 770 * Constructor 771 */ 772 public ClassHistoryComponent(Coding class_, Period period) { 773 super(); 774 this.class_ = class_; 775 this.period = period; 776 } 777 778 /** 779 * @return {@link #class_} (inpatient | outpatient | ambulatory | emergency +.) 780 */ 781 public Coding getClass_() { 782 if (this.class_ == null) 783 if (Configuration.errorOnAutoCreate()) 784 throw new Error("Attempt to auto-create ClassHistoryComponent.class_"); 785 else if (Configuration.doAutoCreate()) 786 this.class_ = new Coding(); // cc 787 return this.class_; 788 } 789 790 public boolean hasClass_() { 791 return this.class_ != null && !this.class_.isEmpty(); 792 } 793 794 /** 795 * @param value {@link #class_} (inpatient | outpatient | ambulatory | emergency 796 * +.) 797 */ 798 public ClassHistoryComponent setClass_(Coding value) { 799 this.class_ = value; 800 return this; 801 } 802 803 /** 804 * @return {@link #period} (The time that the episode was in the specified 805 * class.) 806 */ 807 public Period getPeriod() { 808 if (this.period == null) 809 if (Configuration.errorOnAutoCreate()) 810 throw new Error("Attempt to auto-create ClassHistoryComponent.period"); 811 else if (Configuration.doAutoCreate()) 812 this.period = new Period(); // cc 813 return this.period; 814 } 815 816 public boolean hasPeriod() { 817 return this.period != null && !this.period.isEmpty(); 818 } 819 820 /** 821 * @param value {@link #period} (The time that the episode was in the specified 822 * class.) 823 */ 824 public ClassHistoryComponent setPeriod(Period value) { 825 this.period = value; 826 return this; 827 } 828 829 protected void listChildren(List<Property> children) { 830 super.listChildren(children); 831 children.add(new Property("class", "Coding", "inpatient | outpatient | ambulatory | emergency +.", 0, 1, class_)); 832 children 833 .add(new Property("period", "Period", "The time that the episode was in the specified class.", 0, 1, period)); 834 } 835 836 @Override 837 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 838 switch (_hash) { 839 case 94742904: 840 /* class */ return new Property("class", "Coding", "inpatient | outpatient | ambulatory | emergency +.", 0, 1, 841 class_); 842 case -991726143: 843 /* period */ return new Property("period", "Period", "The time that the episode was in the specified class.", 0, 844 1, period); 845 default: 846 return super.getNamedProperty(_hash, _name, _checkValid); 847 } 848 849 } 850 851 @Override 852 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 853 switch (hash) { 854 case 94742904: 855 /* class */ return this.class_ == null ? new Base[0] : new Base[] { this.class_ }; // Coding 856 case -991726143: 857 /* period */ return this.period == null ? new Base[0] : new Base[] { this.period }; // Period 858 default: 859 return super.getProperty(hash, name, checkValid); 860 } 861 862 } 863 864 @Override 865 public Base setProperty(int hash, String name, Base value) throws FHIRException { 866 switch (hash) { 867 case 94742904: // class 868 this.class_ = castToCoding(value); // Coding 869 return value; 870 case -991726143: // period 871 this.period = castToPeriod(value); // Period 872 return value; 873 default: 874 return super.setProperty(hash, name, value); 875 } 876 877 } 878 879 @Override 880 public Base setProperty(String name, Base value) throws FHIRException { 881 if (name.equals("class")) { 882 this.class_ = castToCoding(value); // Coding 883 } else if (name.equals("period")) { 884 this.period = castToPeriod(value); // Period 885 } else 886 return super.setProperty(name, value); 887 return value; 888 } 889 890 @Override 891 public Base makeProperty(int hash, String name) throws FHIRException { 892 switch (hash) { 893 case 94742904: 894 return getClass_(); 895 case -991726143: 896 return getPeriod(); 897 default: 898 return super.makeProperty(hash, name); 899 } 900 901 } 902 903 @Override 904 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 905 switch (hash) { 906 case 94742904: 907 /* class */ return new String[] { "Coding" }; 908 case -991726143: 909 /* period */ return new String[] { "Period" }; 910 default: 911 return super.getTypesForProperty(hash, name); 912 } 913 914 } 915 916 @Override 917 public Base addChild(String name) throws FHIRException { 918 if (name.equals("class")) { 919 this.class_ = new Coding(); 920 return this.class_; 921 } else if (name.equals("period")) { 922 this.period = new Period(); 923 return this.period; 924 } else 925 return super.addChild(name); 926 } 927 928 public ClassHistoryComponent copy() { 929 ClassHistoryComponent dst = new ClassHistoryComponent(); 930 copyValues(dst); 931 return dst; 932 } 933 934 public void copyValues(ClassHistoryComponent dst) { 935 super.copyValues(dst); 936 dst.class_ = class_ == null ? null : class_.copy(); 937 dst.period = period == null ? null : period.copy(); 938 } 939 940 @Override 941 public boolean equalsDeep(Base other_) { 942 if (!super.equalsDeep(other_)) 943 return false; 944 if (!(other_ instanceof ClassHistoryComponent)) 945 return false; 946 ClassHistoryComponent o = (ClassHistoryComponent) other_; 947 return compareDeep(class_, o.class_, true) && compareDeep(period, o.period, true); 948 } 949 950 @Override 951 public boolean equalsShallow(Base other_) { 952 if (!super.equalsShallow(other_)) 953 return false; 954 if (!(other_ instanceof ClassHistoryComponent)) 955 return false; 956 ClassHistoryComponent o = (ClassHistoryComponent) other_; 957 return true; 958 } 959 960 public boolean isEmpty() { 961 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(class_, period); 962 } 963 964 public String fhirType() { 965 return "Encounter.classHistory"; 966 967 } 968 969 } 970 971 @Block() 972 public static class EncounterParticipantComponent extends BackboneElement implements IBaseBackboneElement { 973 /** 974 * Role of participant in encounter. 975 */ 976 @Child(name = "type", type = { 977 CodeableConcept.class }, order = 1, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = true) 978 @Description(shortDefinition = "Role of participant in encounter", formalDefinition = "Role of participant in encounter.") 979 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/encounter-participant-type") 980 protected List<CodeableConcept> type; 981 982 /** 983 * The period of time that the specified participant participated in the 984 * encounter. These can overlap or be sub-sets of the overall encounter's 985 * period. 986 */ 987 @Child(name = "period", type = { Period.class }, order = 2, min = 0, max = 1, modifier = false, summary = false) 988 @Description(shortDefinition = "Period of time during the encounter that the participant participated", formalDefinition = "The period of time that the specified participant participated in the encounter. These can overlap or be sub-sets of the overall encounter's period.") 989 protected Period period; 990 991 /** 992 * Persons involved in the encounter other than the patient. 993 */ 994 @Child(name = "individual", type = { Practitioner.class, PractitionerRole.class, 995 RelatedPerson.class }, order = 3, min = 0, max = 1, modifier = false, summary = true) 996 @Description(shortDefinition = "Persons involved in the encounter other than the patient", formalDefinition = "Persons involved in the encounter other than the patient.") 997 protected Reference individual; 998 999 /** 1000 * The actual object that is the target of the reference (Persons involved in 1001 * the encounter other than the patient.) 1002 */ 1003 protected Resource individualTarget; 1004 1005 private static final long serialVersionUID = 317095765L; 1006 1007 /** 1008 * Constructor 1009 */ 1010 public EncounterParticipantComponent() { 1011 super(); 1012 } 1013 1014 /** 1015 * @return {@link #type} (Role of participant in encounter.) 1016 */ 1017 public List<CodeableConcept> getType() { 1018 if (this.type == null) 1019 this.type = new ArrayList<CodeableConcept>(); 1020 return this.type; 1021 } 1022 1023 /** 1024 * @return Returns a reference to <code>this</code> for easy method chaining 1025 */ 1026 public EncounterParticipantComponent setType(List<CodeableConcept> theType) { 1027 this.type = theType; 1028 return this; 1029 } 1030 1031 public boolean hasType() { 1032 if (this.type == null) 1033 return false; 1034 for (CodeableConcept item : this.type) 1035 if (!item.isEmpty()) 1036 return true; 1037 return false; 1038 } 1039 1040 public CodeableConcept addType() { // 3 1041 CodeableConcept t = new CodeableConcept(); 1042 if (this.type == null) 1043 this.type = new ArrayList<CodeableConcept>(); 1044 this.type.add(t); 1045 return t; 1046 } 1047 1048 public EncounterParticipantComponent addType(CodeableConcept t) { // 3 1049 if (t == null) 1050 return this; 1051 if (this.type == null) 1052 this.type = new ArrayList<CodeableConcept>(); 1053 this.type.add(t); 1054 return this; 1055 } 1056 1057 /** 1058 * @return The first repetition of repeating field {@link #type}, creating it if 1059 * it does not already exist 1060 */ 1061 public CodeableConcept getTypeFirstRep() { 1062 if (getType().isEmpty()) { 1063 addType(); 1064 } 1065 return getType().get(0); 1066 } 1067 1068 /** 1069 * @return {@link #period} (The period of time that the specified participant 1070 * participated in the encounter. These can overlap or be sub-sets of 1071 * the overall encounter's period.) 1072 */ 1073 public Period getPeriod() { 1074 if (this.period == null) 1075 if (Configuration.errorOnAutoCreate()) 1076 throw new Error("Attempt to auto-create EncounterParticipantComponent.period"); 1077 else if (Configuration.doAutoCreate()) 1078 this.period = new Period(); // cc 1079 return this.period; 1080 } 1081 1082 public boolean hasPeriod() { 1083 return this.period != null && !this.period.isEmpty(); 1084 } 1085 1086 /** 1087 * @param value {@link #period} (The period of time that the specified 1088 * participant participated in the encounter. These can overlap or 1089 * be sub-sets of the overall encounter's period.) 1090 */ 1091 public EncounterParticipantComponent setPeriod(Period value) { 1092 this.period = value; 1093 return this; 1094 } 1095 1096 /** 1097 * @return {@link #individual} (Persons involved in the encounter other than the 1098 * patient.) 1099 */ 1100 public Reference getIndividual() { 1101 if (this.individual == null) 1102 if (Configuration.errorOnAutoCreate()) 1103 throw new Error("Attempt to auto-create EncounterParticipantComponent.individual"); 1104 else if (Configuration.doAutoCreate()) 1105 this.individual = new Reference(); // cc 1106 return this.individual; 1107 } 1108 1109 public boolean hasIndividual() { 1110 return this.individual != null && !this.individual.isEmpty(); 1111 } 1112 1113 /** 1114 * @param value {@link #individual} (Persons involved in the encounter other 1115 * than the patient.) 1116 */ 1117 public EncounterParticipantComponent setIndividual(Reference value) { 1118 this.individual = value; 1119 return this; 1120 } 1121 1122 /** 1123 * @return {@link #individual} The actual object that is the target of the 1124 * reference. The reference library doesn't populate this, but you can 1125 * use it to hold the resource if you resolve it. (Persons involved in 1126 * the encounter other than the patient.) 1127 */ 1128 public Resource getIndividualTarget() { 1129 return this.individualTarget; 1130 } 1131 1132 /** 1133 * @param value {@link #individual} The actual object that is the target of the 1134 * reference. The reference library doesn't use these, but you can 1135 * use it to hold the resource if you resolve it. (Persons involved 1136 * in the encounter other than the patient.) 1137 */ 1138 public EncounterParticipantComponent setIndividualTarget(Resource value) { 1139 this.individualTarget = value; 1140 return this; 1141 } 1142 1143 protected void listChildren(List<Property> children) { 1144 super.listChildren(children); 1145 children.add(new Property("type", "CodeableConcept", "Role of participant in encounter.", 0, 1146 java.lang.Integer.MAX_VALUE, type)); 1147 children.add(new Property("period", "Period", 1148 "The period of time that the specified participant participated in the encounter. These can overlap or be sub-sets of the overall encounter's period.", 1149 0, 1, period)); 1150 children.add(new Property("individual", "Reference(Practitioner|PractitionerRole|RelatedPerson)", 1151 "Persons involved in the encounter other than the patient.", 0, 1, individual)); 1152 } 1153 1154 @Override 1155 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1156 switch (_hash) { 1157 case 3575610: 1158 /* type */ return new Property("type", "CodeableConcept", "Role of participant in encounter.", 0, 1159 java.lang.Integer.MAX_VALUE, type); 1160 case -991726143: 1161 /* period */ return new Property("period", "Period", 1162 "The period of time that the specified participant participated in the encounter. These can overlap or be sub-sets of the overall encounter's period.", 1163 0, 1, period); 1164 case -46292327: 1165 /* individual */ return new Property("individual", "Reference(Practitioner|PractitionerRole|RelatedPerson)", 1166 "Persons involved in the encounter other than the patient.", 0, 1, individual); 1167 default: 1168 return super.getNamedProperty(_hash, _name, _checkValid); 1169 } 1170 1171 } 1172 1173 @Override 1174 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1175 switch (hash) { 1176 case 3575610: 1177 /* type */ return this.type == null ? new Base[0] : this.type.toArray(new Base[this.type.size()]); // CodeableConcept 1178 case -991726143: 1179 /* period */ return this.period == null ? new Base[0] : new Base[] { this.period }; // Period 1180 case -46292327: 1181 /* individual */ return this.individual == null ? new Base[0] : new Base[] { this.individual }; // Reference 1182 default: 1183 return super.getProperty(hash, name, checkValid); 1184 } 1185 1186 } 1187 1188 @Override 1189 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1190 switch (hash) { 1191 case 3575610: // type 1192 this.getType().add(castToCodeableConcept(value)); // CodeableConcept 1193 return value; 1194 case -991726143: // period 1195 this.period = castToPeriod(value); // Period 1196 return value; 1197 case -46292327: // individual 1198 this.individual = castToReference(value); // Reference 1199 return value; 1200 default: 1201 return super.setProperty(hash, name, value); 1202 } 1203 1204 } 1205 1206 @Override 1207 public Base setProperty(String name, Base value) throws FHIRException { 1208 if (name.equals("type")) { 1209 this.getType().add(castToCodeableConcept(value)); 1210 } else if (name.equals("period")) { 1211 this.period = castToPeriod(value); // Period 1212 } else if (name.equals("individual")) { 1213 this.individual = castToReference(value); // Reference 1214 } else 1215 return super.setProperty(name, value); 1216 return value; 1217 } 1218 1219 @Override 1220 public Base makeProperty(int hash, String name) throws FHIRException { 1221 switch (hash) { 1222 case 3575610: 1223 return addType(); 1224 case -991726143: 1225 return getPeriod(); 1226 case -46292327: 1227 return getIndividual(); 1228 default: 1229 return super.makeProperty(hash, name); 1230 } 1231 1232 } 1233 1234 @Override 1235 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1236 switch (hash) { 1237 case 3575610: 1238 /* type */ return new String[] { "CodeableConcept" }; 1239 case -991726143: 1240 /* period */ return new String[] { "Period" }; 1241 case -46292327: 1242 /* individual */ return new String[] { "Reference" }; 1243 default: 1244 return super.getTypesForProperty(hash, name); 1245 } 1246 1247 } 1248 1249 @Override 1250 public Base addChild(String name) throws FHIRException { 1251 if (name.equals("type")) { 1252 return addType(); 1253 } else if (name.equals("period")) { 1254 this.period = new Period(); 1255 return this.period; 1256 } else if (name.equals("individual")) { 1257 this.individual = new Reference(); 1258 return this.individual; 1259 } else 1260 return super.addChild(name); 1261 } 1262 1263 public EncounterParticipantComponent copy() { 1264 EncounterParticipantComponent dst = new EncounterParticipantComponent(); 1265 copyValues(dst); 1266 return dst; 1267 } 1268 1269 public void copyValues(EncounterParticipantComponent dst) { 1270 super.copyValues(dst); 1271 if (type != null) { 1272 dst.type = new ArrayList<CodeableConcept>(); 1273 for (CodeableConcept i : type) 1274 dst.type.add(i.copy()); 1275 } 1276 ; 1277 dst.period = period == null ? null : period.copy(); 1278 dst.individual = individual == null ? null : individual.copy(); 1279 } 1280 1281 @Override 1282 public boolean equalsDeep(Base other_) { 1283 if (!super.equalsDeep(other_)) 1284 return false; 1285 if (!(other_ instanceof EncounterParticipantComponent)) 1286 return false; 1287 EncounterParticipantComponent o = (EncounterParticipantComponent) other_; 1288 return compareDeep(type, o.type, true) && compareDeep(period, o.period, true) 1289 && compareDeep(individual, o.individual, true); 1290 } 1291 1292 @Override 1293 public boolean equalsShallow(Base other_) { 1294 if (!super.equalsShallow(other_)) 1295 return false; 1296 if (!(other_ instanceof EncounterParticipantComponent)) 1297 return false; 1298 EncounterParticipantComponent o = (EncounterParticipantComponent) other_; 1299 return true; 1300 } 1301 1302 public boolean isEmpty() { 1303 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(type, period, individual); 1304 } 1305 1306 public String fhirType() { 1307 return "Encounter.participant"; 1308 1309 } 1310 1311 } 1312 1313 @Block() 1314 public static class DiagnosisComponent extends BackboneElement implements IBaseBackboneElement { 1315 /** 1316 * Reason the encounter takes place, as specified using information from another 1317 * resource. For admissions, this is the admission diagnosis. The indication 1318 * will typically be a Condition (with other resources referenced in the 1319 * evidence.detail), or a Procedure. 1320 */ 1321 @Child(name = "condition", type = { Condition.class, 1322 Procedure.class }, order = 1, min = 1, max = 1, modifier = false, summary = true) 1323 @Description(shortDefinition = "The diagnosis or procedure relevant to the encounter", formalDefinition = "Reason the encounter takes place, as specified using information from another resource. For admissions, this is the admission diagnosis. The indication will typically be a Condition (with other resources referenced in the evidence.detail), or a Procedure.") 1324 protected Reference condition; 1325 1326 /** 1327 * The actual object that is the target of the reference (Reason the encounter 1328 * takes place, as specified using information from another resource. For 1329 * admissions, this is the admission diagnosis. The indication will typically be 1330 * a Condition (with other resources referenced in the evidence.detail), or a 1331 * Procedure.) 1332 */ 1333 protected Resource conditionTarget; 1334 1335 /** 1336 * Role that this diagnosis has within the encounter (e.g. admission, billing, 1337 * discharge …). 1338 */ 1339 @Child(name = "use", type = { 1340 CodeableConcept.class }, order = 2, min = 0, max = 1, modifier = false, summary = false) 1341 @Description(shortDefinition = "Role that this diagnosis has within the encounter (e.g. admission, billing, discharge …)", formalDefinition = "Role that this diagnosis has within the encounter (e.g. admission, billing, discharge …).") 1342 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/diagnosis-role") 1343 protected CodeableConcept use; 1344 1345 /** 1346 * Ranking of the diagnosis (for each role type). 1347 */ 1348 @Child(name = "rank", type = { 1349 PositiveIntType.class }, order = 3, min = 0, max = 1, modifier = false, summary = false) 1350 @Description(shortDefinition = "Ranking of the diagnosis (for each role type)", formalDefinition = "Ranking of the diagnosis (for each role type).") 1351 protected PositiveIntType rank; 1352 1353 private static final long serialVersionUID = 128213376L; 1354 1355 /** 1356 * Constructor 1357 */ 1358 public DiagnosisComponent() { 1359 super(); 1360 } 1361 1362 /** 1363 * Constructor 1364 */ 1365 public DiagnosisComponent(Reference condition) { 1366 super(); 1367 this.condition = condition; 1368 } 1369 1370 /** 1371 * @return {@link #condition} (Reason the encounter takes place, as specified 1372 * using information from another resource. For admissions, this is the 1373 * admission diagnosis. The indication will typically be a Condition 1374 * (with other resources referenced in the evidence.detail), or a 1375 * Procedure.) 1376 */ 1377 public Reference getCondition() { 1378 if (this.condition == null) 1379 if (Configuration.errorOnAutoCreate()) 1380 throw new Error("Attempt to auto-create DiagnosisComponent.condition"); 1381 else if (Configuration.doAutoCreate()) 1382 this.condition = new Reference(); // cc 1383 return this.condition; 1384 } 1385 1386 public boolean hasCondition() { 1387 return this.condition != null && !this.condition.isEmpty(); 1388 } 1389 1390 /** 1391 * @param value {@link #condition} (Reason the encounter takes place, as 1392 * specified using information from another resource. For 1393 * admissions, this is the admission diagnosis. The indication will 1394 * typically be a Condition (with other resources referenced in the 1395 * evidence.detail), or a Procedure.) 1396 */ 1397 public DiagnosisComponent setCondition(Reference value) { 1398 this.condition = value; 1399 return this; 1400 } 1401 1402 /** 1403 * @return {@link #condition} The actual object that is the target of the 1404 * reference. The reference library doesn't populate this, but you can 1405 * use it to hold the resource if you resolve it. (Reason the encounter 1406 * takes place, as specified using information from another resource. 1407 * For admissions, this is the admission diagnosis. The indication will 1408 * typically be a Condition (with other resources referenced in the 1409 * evidence.detail), or a Procedure.) 1410 */ 1411 public Resource getConditionTarget() { 1412 return this.conditionTarget; 1413 } 1414 1415 /** 1416 * @param value {@link #condition} The actual object that is the target of the 1417 * reference. The reference library doesn't use these, but you can 1418 * use it to hold the resource if you resolve it. (Reason the 1419 * encounter takes place, as specified using information from 1420 * another resource. For admissions, this is the admission 1421 * diagnosis. The indication will typically be a Condition (with 1422 * other resources referenced in the evidence.detail), or a 1423 * Procedure.) 1424 */ 1425 public DiagnosisComponent setConditionTarget(Resource value) { 1426 this.conditionTarget = value; 1427 return this; 1428 } 1429 1430 /** 1431 * @return {@link #use} (Role that this diagnosis has within the encounter (e.g. 1432 * admission, billing, discharge …).) 1433 */ 1434 public CodeableConcept getUse() { 1435 if (this.use == null) 1436 if (Configuration.errorOnAutoCreate()) 1437 throw new Error("Attempt to auto-create DiagnosisComponent.use"); 1438 else if (Configuration.doAutoCreate()) 1439 this.use = new CodeableConcept(); // cc 1440 return this.use; 1441 } 1442 1443 public boolean hasUse() { 1444 return this.use != null && !this.use.isEmpty(); 1445 } 1446 1447 /** 1448 * @param value {@link #use} (Role that this diagnosis has within the encounter 1449 * (e.g. admission, billing, discharge …).) 1450 */ 1451 public DiagnosisComponent setUse(CodeableConcept value) { 1452 this.use = value; 1453 return this; 1454 } 1455 1456 /** 1457 * @return {@link #rank} (Ranking of the diagnosis (for each role type).). This 1458 * is the underlying object with id, value and extensions. The accessor 1459 * "getRank" gives direct access to the value 1460 */ 1461 public PositiveIntType getRankElement() { 1462 if (this.rank == null) 1463 if (Configuration.errorOnAutoCreate()) 1464 throw new Error("Attempt to auto-create DiagnosisComponent.rank"); 1465 else if (Configuration.doAutoCreate()) 1466 this.rank = new PositiveIntType(); // bb 1467 return this.rank; 1468 } 1469 1470 public boolean hasRankElement() { 1471 return this.rank != null && !this.rank.isEmpty(); 1472 } 1473 1474 public boolean hasRank() { 1475 return this.rank != null && !this.rank.isEmpty(); 1476 } 1477 1478 /** 1479 * @param value {@link #rank} (Ranking of the diagnosis (for each role type).). 1480 * This is the underlying object with id, value and extensions. The 1481 * accessor "getRank" gives direct access to the value 1482 */ 1483 public DiagnosisComponent setRankElement(PositiveIntType value) { 1484 this.rank = value; 1485 return this; 1486 } 1487 1488 /** 1489 * @return Ranking of the diagnosis (for each role type). 1490 */ 1491 public int getRank() { 1492 return this.rank == null || this.rank.isEmpty() ? 0 : this.rank.getValue(); 1493 } 1494 1495 /** 1496 * @param value Ranking of the diagnosis (for each role type). 1497 */ 1498 public DiagnosisComponent setRank(int value) { 1499 if (this.rank == null) 1500 this.rank = new PositiveIntType(); 1501 this.rank.setValue(value); 1502 return this; 1503 } 1504 1505 protected void listChildren(List<Property> children) { 1506 super.listChildren(children); 1507 children.add(new Property("condition", "Reference(Condition|Procedure)", 1508 "Reason the encounter takes place, as specified using information from another resource. For admissions, this is the admission diagnosis. The indication will typically be a Condition (with other resources referenced in the evidence.detail), or a Procedure.", 1509 0, 1, condition)); 1510 children.add(new Property("use", "CodeableConcept", 1511 "Role that this diagnosis has within the encounter (e.g. admission, billing, discharge …).", 0, 1, use)); 1512 children.add(new Property("rank", "positiveInt", "Ranking of the diagnosis (for each role type).", 0, 1, rank)); 1513 } 1514 1515 @Override 1516 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1517 switch (_hash) { 1518 case -861311717: 1519 /* condition */ return new Property("condition", "Reference(Condition|Procedure)", 1520 "Reason the encounter takes place, as specified using information from another resource. For admissions, this is the admission diagnosis. The indication will typically be a Condition (with other resources referenced in the evidence.detail), or a Procedure.", 1521 0, 1, condition); 1522 case 116103: 1523 /* use */ return new Property("use", "CodeableConcept", 1524 "Role that this diagnosis has within the encounter (e.g. admission, billing, discharge …).", 0, 1, use); 1525 case 3492908: 1526 /* rank */ return new Property("rank", "positiveInt", "Ranking of the diagnosis (for each role type).", 0, 1, 1527 rank); 1528 default: 1529 return super.getNamedProperty(_hash, _name, _checkValid); 1530 } 1531 1532 } 1533 1534 @Override 1535 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1536 switch (hash) { 1537 case -861311717: 1538 /* condition */ return this.condition == null ? new Base[0] : new Base[] { this.condition }; // Reference 1539 case 116103: 1540 /* use */ return this.use == null ? new Base[0] : new Base[] { this.use }; // CodeableConcept 1541 case 3492908: 1542 /* rank */ return this.rank == null ? new Base[0] : new Base[] { this.rank }; // PositiveIntType 1543 default: 1544 return super.getProperty(hash, name, checkValid); 1545 } 1546 1547 } 1548 1549 @Override 1550 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1551 switch (hash) { 1552 case -861311717: // condition 1553 this.condition = castToReference(value); // Reference 1554 return value; 1555 case 116103: // use 1556 this.use = castToCodeableConcept(value); // CodeableConcept 1557 return value; 1558 case 3492908: // rank 1559 this.rank = castToPositiveInt(value); // PositiveIntType 1560 return value; 1561 default: 1562 return super.setProperty(hash, name, value); 1563 } 1564 1565 } 1566 1567 @Override 1568 public Base setProperty(String name, Base value) throws FHIRException { 1569 if (name.equals("condition")) { 1570 this.condition = castToReference(value); // Reference 1571 } else if (name.equals("use")) { 1572 this.use = castToCodeableConcept(value); // CodeableConcept 1573 } else if (name.equals("rank")) { 1574 this.rank = castToPositiveInt(value); // PositiveIntType 1575 } else 1576 return super.setProperty(name, value); 1577 return value; 1578 } 1579 1580 @Override 1581 public Base makeProperty(int hash, String name) throws FHIRException { 1582 switch (hash) { 1583 case -861311717: 1584 return getCondition(); 1585 case 116103: 1586 return getUse(); 1587 case 3492908: 1588 return getRankElement(); 1589 default: 1590 return super.makeProperty(hash, name); 1591 } 1592 1593 } 1594 1595 @Override 1596 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1597 switch (hash) { 1598 case -861311717: 1599 /* condition */ return new String[] { "Reference" }; 1600 case 116103: 1601 /* use */ return new String[] { "CodeableConcept" }; 1602 case 3492908: 1603 /* rank */ return new String[] { "positiveInt" }; 1604 default: 1605 return super.getTypesForProperty(hash, name); 1606 } 1607 1608 } 1609 1610 @Override 1611 public Base addChild(String name) throws FHIRException { 1612 if (name.equals("condition")) { 1613 this.condition = new Reference(); 1614 return this.condition; 1615 } else if (name.equals("use")) { 1616 this.use = new CodeableConcept(); 1617 return this.use; 1618 } else if (name.equals("rank")) { 1619 throw new FHIRException("Cannot call addChild on a singleton property Encounter.rank"); 1620 } else 1621 return super.addChild(name); 1622 } 1623 1624 public DiagnosisComponent copy() { 1625 DiagnosisComponent dst = new DiagnosisComponent(); 1626 copyValues(dst); 1627 return dst; 1628 } 1629 1630 public void copyValues(DiagnosisComponent dst) { 1631 super.copyValues(dst); 1632 dst.condition = condition == null ? null : condition.copy(); 1633 dst.use = use == null ? null : use.copy(); 1634 dst.rank = rank == null ? null : rank.copy(); 1635 } 1636 1637 @Override 1638 public boolean equalsDeep(Base other_) { 1639 if (!super.equalsDeep(other_)) 1640 return false; 1641 if (!(other_ instanceof DiagnosisComponent)) 1642 return false; 1643 DiagnosisComponent o = (DiagnosisComponent) other_; 1644 return compareDeep(condition, o.condition, true) && compareDeep(use, o.use, true) 1645 && compareDeep(rank, o.rank, true); 1646 } 1647 1648 @Override 1649 public boolean equalsShallow(Base other_) { 1650 if (!super.equalsShallow(other_)) 1651 return false; 1652 if (!(other_ instanceof DiagnosisComponent)) 1653 return false; 1654 DiagnosisComponent o = (DiagnosisComponent) other_; 1655 return compareValues(rank, o.rank, true); 1656 } 1657 1658 public boolean isEmpty() { 1659 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(condition, use, rank); 1660 } 1661 1662 public String fhirType() { 1663 return "Encounter.diagnosis"; 1664 1665 } 1666 1667 } 1668 1669 @Block() 1670 public static class EncounterHospitalizationComponent extends BackboneElement implements IBaseBackboneElement { 1671 /** 1672 * Pre-admission identifier. 1673 */ 1674 @Child(name = "preAdmissionIdentifier", type = { 1675 Identifier.class }, order = 1, min = 0, max = 1, modifier = false, summary = false) 1676 @Description(shortDefinition = "Pre-admission identifier", formalDefinition = "Pre-admission identifier.") 1677 protected Identifier preAdmissionIdentifier; 1678 1679 /** 1680 * The location/organization from which the patient came before admission. 1681 */ 1682 @Child(name = "origin", type = { Location.class, 1683 Organization.class }, order = 2, min = 0, max = 1, modifier = false, summary = false) 1684 @Description(shortDefinition = "The location/organization from which the patient came before admission", formalDefinition = "The location/organization from which the patient came before admission.") 1685 protected Reference origin; 1686 1687 /** 1688 * The actual object that is the target of the reference (The 1689 * location/organization from which the patient came before admission.) 1690 */ 1691 protected Resource originTarget; 1692 1693 /** 1694 * From where patient was admitted (physician referral, transfer). 1695 */ 1696 @Child(name = "admitSource", type = { 1697 CodeableConcept.class }, order = 3, min = 0, max = 1, modifier = false, summary = false) 1698 @Description(shortDefinition = "From where patient was admitted (physician referral, transfer)", formalDefinition = "From where patient was admitted (physician referral, transfer).") 1699 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/encounter-admit-source") 1700 protected CodeableConcept admitSource; 1701 1702 /** 1703 * Whether this hospitalization is a readmission and why if known. 1704 */ 1705 @Child(name = "reAdmission", type = { 1706 CodeableConcept.class }, order = 4, min = 0, max = 1, modifier = false, summary = false) 1707 @Description(shortDefinition = "The type of hospital re-admission that has occurred (if any). If the value is absent, then this is not identified as a readmission", formalDefinition = "Whether this hospitalization is a readmission and why if known.") 1708 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://terminology.hl7.org/ValueSet/v2-0092") 1709 protected CodeableConcept reAdmission; 1710 1711 /** 1712 * Diet preferences reported by the patient. 1713 */ 1714 @Child(name = "dietPreference", type = { 1715 CodeableConcept.class }, order = 5, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 1716 @Description(shortDefinition = "Diet preferences reported by the patient", formalDefinition = "Diet preferences reported by the patient.") 1717 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/encounter-diet") 1718 protected List<CodeableConcept> dietPreference; 1719 1720 /** 1721 * Special courtesies (VIP, board member). 1722 */ 1723 @Child(name = "specialCourtesy", type = { 1724 CodeableConcept.class }, order = 6, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 1725 @Description(shortDefinition = "Special courtesies (VIP, board member)", formalDefinition = "Special courtesies (VIP, board member).") 1726 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/encounter-special-courtesy") 1727 protected List<CodeableConcept> specialCourtesy; 1728 1729 /** 1730 * Any special requests that have been made for this hospitalization encounter, 1731 * such as the provision of specific equipment or other things. 1732 */ 1733 @Child(name = "specialArrangement", type = { 1734 CodeableConcept.class }, order = 7, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 1735 @Description(shortDefinition = "Wheelchair, translator, stretcher, etc.", formalDefinition = "Any special requests that have been made for this hospitalization encounter, such as the provision of specific equipment or other things.") 1736 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/encounter-special-arrangements") 1737 protected List<CodeableConcept> specialArrangement; 1738 1739 /** 1740 * Location/organization to which the patient is discharged. 1741 */ 1742 @Child(name = "destination", type = { Location.class, 1743 Organization.class }, order = 8, min = 0, max = 1, modifier = false, summary = false) 1744 @Description(shortDefinition = "Location/organization to which the patient is discharged", formalDefinition = "Location/organization to which the patient is discharged.") 1745 protected Reference destination; 1746 1747 /** 1748 * The actual object that is the target of the reference (Location/organization 1749 * to which the patient is discharged.) 1750 */ 1751 protected Resource destinationTarget; 1752 1753 /** 1754 * Category or kind of location after discharge. 1755 */ 1756 @Child(name = "dischargeDisposition", type = { 1757 CodeableConcept.class }, order = 9, min = 0, max = 1, modifier = false, summary = false) 1758 @Description(shortDefinition = "Category or kind of location after discharge", formalDefinition = "Category or kind of location after discharge.") 1759 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/encounter-discharge-disposition") 1760 protected CodeableConcept dischargeDisposition; 1761 1762 private static final long serialVersionUID = 1350555270L; 1763 1764 /** 1765 * Constructor 1766 */ 1767 public EncounterHospitalizationComponent() { 1768 super(); 1769 } 1770 1771 /** 1772 * @return {@link #preAdmissionIdentifier} (Pre-admission identifier.) 1773 */ 1774 public Identifier getPreAdmissionIdentifier() { 1775 if (this.preAdmissionIdentifier == null) 1776 if (Configuration.errorOnAutoCreate()) 1777 throw new Error("Attempt to auto-create EncounterHospitalizationComponent.preAdmissionIdentifier"); 1778 else if (Configuration.doAutoCreate()) 1779 this.preAdmissionIdentifier = new Identifier(); // cc 1780 return this.preAdmissionIdentifier; 1781 } 1782 1783 public boolean hasPreAdmissionIdentifier() { 1784 return this.preAdmissionIdentifier != null && !this.preAdmissionIdentifier.isEmpty(); 1785 } 1786 1787 /** 1788 * @param value {@link #preAdmissionIdentifier} (Pre-admission identifier.) 1789 */ 1790 public EncounterHospitalizationComponent setPreAdmissionIdentifier(Identifier value) { 1791 this.preAdmissionIdentifier = value; 1792 return this; 1793 } 1794 1795 /** 1796 * @return {@link #origin} (The location/organization from which the patient 1797 * came before admission.) 1798 */ 1799 public Reference getOrigin() { 1800 if (this.origin == null) 1801 if (Configuration.errorOnAutoCreate()) 1802 throw new Error("Attempt to auto-create EncounterHospitalizationComponent.origin"); 1803 else if (Configuration.doAutoCreate()) 1804 this.origin = new Reference(); // cc 1805 return this.origin; 1806 } 1807 1808 public boolean hasOrigin() { 1809 return this.origin != null && !this.origin.isEmpty(); 1810 } 1811 1812 /** 1813 * @param value {@link #origin} (The location/organization from which the 1814 * patient came before admission.) 1815 */ 1816 public EncounterHospitalizationComponent setOrigin(Reference value) { 1817 this.origin = value; 1818 return this; 1819 } 1820 1821 /** 1822 * @return {@link #origin} The actual object that is the target of the 1823 * reference. The reference library doesn't populate this, but you can 1824 * use it to hold the resource if you resolve it. (The 1825 * location/organization from which the patient came before admission.) 1826 */ 1827 public Resource getOriginTarget() { 1828 return this.originTarget; 1829 } 1830 1831 /** 1832 * @param value {@link #origin} The actual object that is the target of the 1833 * reference. The reference library doesn't use these, but you can 1834 * use it to hold the resource if you resolve it. (The 1835 * location/organization from which the patient came before 1836 * admission.) 1837 */ 1838 public EncounterHospitalizationComponent setOriginTarget(Resource value) { 1839 this.originTarget = value; 1840 return this; 1841 } 1842 1843 /** 1844 * @return {@link #admitSource} (From where patient was admitted (physician 1845 * referral, transfer).) 1846 */ 1847 public CodeableConcept getAdmitSource() { 1848 if (this.admitSource == null) 1849 if (Configuration.errorOnAutoCreate()) 1850 throw new Error("Attempt to auto-create EncounterHospitalizationComponent.admitSource"); 1851 else if (Configuration.doAutoCreate()) 1852 this.admitSource = new CodeableConcept(); // cc 1853 return this.admitSource; 1854 } 1855 1856 public boolean hasAdmitSource() { 1857 return this.admitSource != null && !this.admitSource.isEmpty(); 1858 } 1859 1860 /** 1861 * @param value {@link #admitSource} (From where patient was admitted (physician 1862 * referral, transfer).) 1863 */ 1864 public EncounterHospitalizationComponent setAdmitSource(CodeableConcept value) { 1865 this.admitSource = value; 1866 return this; 1867 } 1868 1869 /** 1870 * @return {@link #reAdmission} (Whether this hospitalization is a readmission 1871 * and why if known.) 1872 */ 1873 public CodeableConcept getReAdmission() { 1874 if (this.reAdmission == null) 1875 if (Configuration.errorOnAutoCreate()) 1876 throw new Error("Attempt to auto-create EncounterHospitalizationComponent.reAdmission"); 1877 else if (Configuration.doAutoCreate()) 1878 this.reAdmission = new CodeableConcept(); // cc 1879 return this.reAdmission; 1880 } 1881 1882 public boolean hasReAdmission() { 1883 return this.reAdmission != null && !this.reAdmission.isEmpty(); 1884 } 1885 1886 /** 1887 * @param value {@link #reAdmission} (Whether this hospitalization is a 1888 * readmission and why if known.) 1889 */ 1890 public EncounterHospitalizationComponent setReAdmission(CodeableConcept value) { 1891 this.reAdmission = value; 1892 return this; 1893 } 1894 1895 /** 1896 * @return {@link #dietPreference} (Diet preferences reported by the patient.) 1897 */ 1898 public List<CodeableConcept> getDietPreference() { 1899 if (this.dietPreference == null) 1900 this.dietPreference = new ArrayList<CodeableConcept>(); 1901 return this.dietPreference; 1902 } 1903 1904 /** 1905 * @return Returns a reference to <code>this</code> for easy method chaining 1906 */ 1907 public EncounterHospitalizationComponent setDietPreference(List<CodeableConcept> theDietPreference) { 1908 this.dietPreference = theDietPreference; 1909 return this; 1910 } 1911 1912 public boolean hasDietPreference() { 1913 if (this.dietPreference == null) 1914 return false; 1915 for (CodeableConcept item : this.dietPreference) 1916 if (!item.isEmpty()) 1917 return true; 1918 return false; 1919 } 1920 1921 public CodeableConcept addDietPreference() { // 3 1922 CodeableConcept t = new CodeableConcept(); 1923 if (this.dietPreference == null) 1924 this.dietPreference = new ArrayList<CodeableConcept>(); 1925 this.dietPreference.add(t); 1926 return t; 1927 } 1928 1929 public EncounterHospitalizationComponent addDietPreference(CodeableConcept t) { // 3 1930 if (t == null) 1931 return this; 1932 if (this.dietPreference == null) 1933 this.dietPreference = new ArrayList<CodeableConcept>(); 1934 this.dietPreference.add(t); 1935 return this; 1936 } 1937 1938 /** 1939 * @return The first repetition of repeating field {@link #dietPreference}, 1940 * creating it if it does not already exist 1941 */ 1942 public CodeableConcept getDietPreferenceFirstRep() { 1943 if (getDietPreference().isEmpty()) { 1944 addDietPreference(); 1945 } 1946 return getDietPreference().get(0); 1947 } 1948 1949 /** 1950 * @return {@link #specialCourtesy} (Special courtesies (VIP, board member).) 1951 */ 1952 public List<CodeableConcept> getSpecialCourtesy() { 1953 if (this.specialCourtesy == null) 1954 this.specialCourtesy = new ArrayList<CodeableConcept>(); 1955 return this.specialCourtesy; 1956 } 1957 1958 /** 1959 * @return Returns a reference to <code>this</code> for easy method chaining 1960 */ 1961 public EncounterHospitalizationComponent setSpecialCourtesy(List<CodeableConcept> theSpecialCourtesy) { 1962 this.specialCourtesy = theSpecialCourtesy; 1963 return this; 1964 } 1965 1966 public boolean hasSpecialCourtesy() { 1967 if (this.specialCourtesy == null) 1968 return false; 1969 for (CodeableConcept item : this.specialCourtesy) 1970 if (!item.isEmpty()) 1971 return true; 1972 return false; 1973 } 1974 1975 public CodeableConcept addSpecialCourtesy() { // 3 1976 CodeableConcept t = new CodeableConcept(); 1977 if (this.specialCourtesy == null) 1978 this.specialCourtesy = new ArrayList<CodeableConcept>(); 1979 this.specialCourtesy.add(t); 1980 return t; 1981 } 1982 1983 public EncounterHospitalizationComponent addSpecialCourtesy(CodeableConcept t) { // 3 1984 if (t == null) 1985 return this; 1986 if (this.specialCourtesy == null) 1987 this.specialCourtesy = new ArrayList<CodeableConcept>(); 1988 this.specialCourtesy.add(t); 1989 return this; 1990 } 1991 1992 /** 1993 * @return The first repetition of repeating field {@link #specialCourtesy}, 1994 * creating it if it does not already exist 1995 */ 1996 public CodeableConcept getSpecialCourtesyFirstRep() { 1997 if (getSpecialCourtesy().isEmpty()) { 1998 addSpecialCourtesy(); 1999 } 2000 return getSpecialCourtesy().get(0); 2001 } 2002 2003 /** 2004 * @return {@link #specialArrangement} (Any special requests that have been made 2005 * for this hospitalization encounter, such as the provision of specific 2006 * equipment or other things.) 2007 */ 2008 public List<CodeableConcept> getSpecialArrangement() { 2009 if (this.specialArrangement == null) 2010 this.specialArrangement = new ArrayList<CodeableConcept>(); 2011 return this.specialArrangement; 2012 } 2013 2014 /** 2015 * @return Returns a reference to <code>this</code> for easy method chaining 2016 */ 2017 public EncounterHospitalizationComponent setSpecialArrangement(List<CodeableConcept> theSpecialArrangement) { 2018 this.specialArrangement = theSpecialArrangement; 2019 return this; 2020 } 2021 2022 public boolean hasSpecialArrangement() { 2023 if (this.specialArrangement == null) 2024 return false; 2025 for (CodeableConcept item : this.specialArrangement) 2026 if (!item.isEmpty()) 2027 return true; 2028 return false; 2029 } 2030 2031 public CodeableConcept addSpecialArrangement() { // 3 2032 CodeableConcept t = new CodeableConcept(); 2033 if (this.specialArrangement == null) 2034 this.specialArrangement = new ArrayList<CodeableConcept>(); 2035 this.specialArrangement.add(t); 2036 return t; 2037 } 2038 2039 public EncounterHospitalizationComponent addSpecialArrangement(CodeableConcept t) { // 3 2040 if (t == null) 2041 return this; 2042 if (this.specialArrangement == null) 2043 this.specialArrangement = new ArrayList<CodeableConcept>(); 2044 this.specialArrangement.add(t); 2045 return this; 2046 } 2047 2048 /** 2049 * @return The first repetition of repeating field {@link #specialArrangement}, 2050 * creating it if it does not already exist 2051 */ 2052 public CodeableConcept getSpecialArrangementFirstRep() { 2053 if (getSpecialArrangement().isEmpty()) { 2054 addSpecialArrangement(); 2055 } 2056 return getSpecialArrangement().get(0); 2057 } 2058 2059 /** 2060 * @return {@link #destination} (Location/organization to which the patient is 2061 * discharged.) 2062 */ 2063 public Reference getDestination() { 2064 if (this.destination == null) 2065 if (Configuration.errorOnAutoCreate()) 2066 throw new Error("Attempt to auto-create EncounterHospitalizationComponent.destination"); 2067 else if (Configuration.doAutoCreate()) 2068 this.destination = new Reference(); // cc 2069 return this.destination; 2070 } 2071 2072 public boolean hasDestination() { 2073 return this.destination != null && !this.destination.isEmpty(); 2074 } 2075 2076 /** 2077 * @param value {@link #destination} (Location/organization to which the patient 2078 * is discharged.) 2079 */ 2080 public EncounterHospitalizationComponent setDestination(Reference value) { 2081 this.destination = value; 2082 return this; 2083 } 2084 2085 /** 2086 * @return {@link #destination} The actual object that is the target of the 2087 * reference. The reference library doesn't populate this, but you can 2088 * use it to hold the resource if you resolve it. (Location/organization 2089 * to which the patient is discharged.) 2090 */ 2091 public Resource getDestinationTarget() { 2092 return this.destinationTarget; 2093 } 2094 2095 /** 2096 * @param value {@link #destination} The actual object that is the target of the 2097 * reference. The reference library doesn't use these, but you can 2098 * use it to hold the resource if you resolve it. 2099 * (Location/organization to which the patient is discharged.) 2100 */ 2101 public EncounterHospitalizationComponent setDestinationTarget(Resource value) { 2102 this.destinationTarget = value; 2103 return this; 2104 } 2105 2106 /** 2107 * @return {@link #dischargeDisposition} (Category or kind of location after 2108 * discharge.) 2109 */ 2110 public CodeableConcept getDischargeDisposition() { 2111 if (this.dischargeDisposition == null) 2112 if (Configuration.errorOnAutoCreate()) 2113 throw new Error("Attempt to auto-create EncounterHospitalizationComponent.dischargeDisposition"); 2114 else if (Configuration.doAutoCreate()) 2115 this.dischargeDisposition = new CodeableConcept(); // cc 2116 return this.dischargeDisposition; 2117 } 2118 2119 public boolean hasDischargeDisposition() { 2120 return this.dischargeDisposition != null && !this.dischargeDisposition.isEmpty(); 2121 } 2122 2123 /** 2124 * @param value {@link #dischargeDisposition} (Category or kind of location 2125 * after discharge.) 2126 */ 2127 public EncounterHospitalizationComponent setDischargeDisposition(CodeableConcept value) { 2128 this.dischargeDisposition = value; 2129 return this; 2130 } 2131 2132 protected void listChildren(List<Property> children) { 2133 super.listChildren(children); 2134 children.add(new Property("preAdmissionIdentifier", "Identifier", "Pre-admission identifier.", 0, 1, 2135 preAdmissionIdentifier)); 2136 children.add(new Property("origin", "Reference(Location|Organization)", 2137 "The location/organization from which the patient came before admission.", 0, 1, origin)); 2138 children.add(new Property("admitSource", "CodeableConcept", 2139 "From where patient was admitted (physician referral, transfer).", 0, 1, admitSource)); 2140 children.add(new Property("reAdmission", "CodeableConcept", 2141 "Whether this hospitalization is a readmission and why if known.", 0, 1, reAdmission)); 2142 children.add(new Property("dietPreference", "CodeableConcept", "Diet preferences reported by the patient.", 0, 2143 java.lang.Integer.MAX_VALUE, dietPreference)); 2144 children.add(new Property("specialCourtesy", "CodeableConcept", "Special courtesies (VIP, board member).", 0, 2145 java.lang.Integer.MAX_VALUE, specialCourtesy)); 2146 children.add(new Property("specialArrangement", "CodeableConcept", 2147 "Any special requests that have been made for this hospitalization encounter, such as the provision of specific equipment or other things.", 2148 0, java.lang.Integer.MAX_VALUE, specialArrangement)); 2149 children.add(new Property("destination", "Reference(Location|Organization)", 2150 "Location/organization to which the patient is discharged.", 0, 1, destination)); 2151 children.add(new Property("dischargeDisposition", "CodeableConcept", 2152 "Category or kind of location after discharge.", 0, 1, dischargeDisposition)); 2153 } 2154 2155 @Override 2156 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 2157 switch (_hash) { 2158 case -965394961: 2159 /* preAdmissionIdentifier */ return new Property("preAdmissionIdentifier", "Identifier", 2160 "Pre-admission identifier.", 0, 1, preAdmissionIdentifier); 2161 case -1008619738: 2162 /* origin */ return new Property("origin", "Reference(Location|Organization)", 2163 "The location/organization from which the patient came before admission.", 0, 1, origin); 2164 case 538887120: 2165 /* admitSource */ return new Property("admitSource", "CodeableConcept", 2166 "From where patient was admitted (physician referral, transfer).", 0, 1, admitSource); 2167 case 669348630: 2168 /* reAdmission */ return new Property("reAdmission", "CodeableConcept", 2169 "Whether this hospitalization is a readmission and why if known.", 0, 1, reAdmission); 2170 case -1360641041: 2171 /* dietPreference */ return new Property("dietPreference", "CodeableConcept", 2172 "Diet preferences reported by the patient.", 0, java.lang.Integer.MAX_VALUE, dietPreference); 2173 case 1583588345: 2174 /* specialCourtesy */ return new Property("specialCourtesy", "CodeableConcept", 2175 "Special courtesies (VIP, board member).", 0, java.lang.Integer.MAX_VALUE, specialCourtesy); 2176 case 47410321: 2177 /* specialArrangement */ return new Property("specialArrangement", "CodeableConcept", 2178 "Any special requests that have been made for this hospitalization encounter, such as the provision of specific equipment or other things.", 2179 0, java.lang.Integer.MAX_VALUE, specialArrangement); 2180 case -1429847026: 2181 /* destination */ return new Property("destination", "Reference(Location|Organization)", 2182 "Location/organization to which the patient is discharged.", 0, 1, destination); 2183 case 528065941: 2184 /* dischargeDisposition */ return new Property("dischargeDisposition", "CodeableConcept", 2185 "Category or kind of location after discharge.", 0, 1, dischargeDisposition); 2186 default: 2187 return super.getNamedProperty(_hash, _name, _checkValid); 2188 } 2189 2190 } 2191 2192 @Override 2193 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2194 switch (hash) { 2195 case -965394961: 2196 /* preAdmissionIdentifier */ return this.preAdmissionIdentifier == null ? new Base[0] 2197 : new Base[] { this.preAdmissionIdentifier }; // Identifier 2198 case -1008619738: 2199 /* origin */ return this.origin == null ? new Base[0] : new Base[] { this.origin }; // Reference 2200 case 538887120: 2201 /* admitSource */ return this.admitSource == null ? new Base[0] : new Base[] { this.admitSource }; // CodeableConcept 2202 case 669348630: 2203 /* reAdmission */ return this.reAdmission == null ? new Base[0] : new Base[] { this.reAdmission }; // CodeableConcept 2204 case -1360641041: 2205 /* dietPreference */ return this.dietPreference == null ? new Base[0] 2206 : this.dietPreference.toArray(new Base[this.dietPreference.size()]); // CodeableConcept 2207 case 1583588345: 2208 /* specialCourtesy */ return this.specialCourtesy == null ? new Base[0] 2209 : this.specialCourtesy.toArray(new Base[this.specialCourtesy.size()]); // CodeableConcept 2210 case 47410321: 2211 /* specialArrangement */ return this.specialArrangement == null ? new Base[0] 2212 : this.specialArrangement.toArray(new Base[this.specialArrangement.size()]); // CodeableConcept 2213 case -1429847026: 2214 /* destination */ return this.destination == null ? new Base[0] : new Base[] { this.destination }; // Reference 2215 case 528065941: 2216 /* dischargeDisposition */ return this.dischargeDisposition == null ? new Base[0] 2217 : new Base[] { this.dischargeDisposition }; // CodeableConcept 2218 default: 2219 return super.getProperty(hash, name, checkValid); 2220 } 2221 2222 } 2223 2224 @Override 2225 public Base setProperty(int hash, String name, Base value) throws FHIRException { 2226 switch (hash) { 2227 case -965394961: // preAdmissionIdentifier 2228 this.preAdmissionIdentifier = castToIdentifier(value); // Identifier 2229 return value; 2230 case -1008619738: // origin 2231 this.origin = castToReference(value); // Reference 2232 return value; 2233 case 538887120: // admitSource 2234 this.admitSource = castToCodeableConcept(value); // CodeableConcept 2235 return value; 2236 case 669348630: // reAdmission 2237 this.reAdmission = castToCodeableConcept(value); // CodeableConcept 2238 return value; 2239 case -1360641041: // dietPreference 2240 this.getDietPreference().add(castToCodeableConcept(value)); // CodeableConcept 2241 return value; 2242 case 1583588345: // specialCourtesy 2243 this.getSpecialCourtesy().add(castToCodeableConcept(value)); // CodeableConcept 2244 return value; 2245 case 47410321: // specialArrangement 2246 this.getSpecialArrangement().add(castToCodeableConcept(value)); // CodeableConcept 2247 return value; 2248 case -1429847026: // destination 2249 this.destination = castToReference(value); // Reference 2250 return value; 2251 case 528065941: // dischargeDisposition 2252 this.dischargeDisposition = castToCodeableConcept(value); // CodeableConcept 2253 return value; 2254 default: 2255 return super.setProperty(hash, name, value); 2256 } 2257 2258 } 2259 2260 @Override 2261 public Base setProperty(String name, Base value) throws FHIRException { 2262 if (name.equals("preAdmissionIdentifier")) { 2263 this.preAdmissionIdentifier = castToIdentifier(value); // Identifier 2264 } else if (name.equals("origin")) { 2265 this.origin = castToReference(value); // Reference 2266 } else if (name.equals("admitSource")) { 2267 this.admitSource = castToCodeableConcept(value); // CodeableConcept 2268 } else if (name.equals("reAdmission")) { 2269 this.reAdmission = castToCodeableConcept(value); // CodeableConcept 2270 } else if (name.equals("dietPreference")) { 2271 this.getDietPreference().add(castToCodeableConcept(value)); 2272 } else if (name.equals("specialCourtesy")) { 2273 this.getSpecialCourtesy().add(castToCodeableConcept(value)); 2274 } else if (name.equals("specialArrangement")) { 2275 this.getSpecialArrangement().add(castToCodeableConcept(value)); 2276 } else if (name.equals("destination")) { 2277 this.destination = castToReference(value); // Reference 2278 } else if (name.equals("dischargeDisposition")) { 2279 this.dischargeDisposition = castToCodeableConcept(value); // CodeableConcept 2280 } else 2281 return super.setProperty(name, value); 2282 return value; 2283 } 2284 2285 @Override 2286 public Base makeProperty(int hash, String name) throws FHIRException { 2287 switch (hash) { 2288 case -965394961: 2289 return getPreAdmissionIdentifier(); 2290 case -1008619738: 2291 return getOrigin(); 2292 case 538887120: 2293 return getAdmitSource(); 2294 case 669348630: 2295 return getReAdmission(); 2296 case -1360641041: 2297 return addDietPreference(); 2298 case 1583588345: 2299 return addSpecialCourtesy(); 2300 case 47410321: 2301 return addSpecialArrangement(); 2302 case -1429847026: 2303 return getDestination(); 2304 case 528065941: 2305 return getDischargeDisposition(); 2306 default: 2307 return super.makeProperty(hash, name); 2308 } 2309 2310 } 2311 2312 @Override 2313 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2314 switch (hash) { 2315 case -965394961: 2316 /* preAdmissionIdentifier */ return new String[] { "Identifier" }; 2317 case -1008619738: 2318 /* origin */ return new String[] { "Reference" }; 2319 case 538887120: 2320 /* admitSource */ return new String[] { "CodeableConcept" }; 2321 case 669348630: 2322 /* reAdmission */ return new String[] { "CodeableConcept" }; 2323 case -1360641041: 2324 /* dietPreference */ return new String[] { "CodeableConcept" }; 2325 case 1583588345: 2326 /* specialCourtesy */ return new String[] { "CodeableConcept" }; 2327 case 47410321: 2328 /* specialArrangement */ return new String[] { "CodeableConcept" }; 2329 case -1429847026: 2330 /* destination */ return new String[] { "Reference" }; 2331 case 528065941: 2332 /* dischargeDisposition */ return new String[] { "CodeableConcept" }; 2333 default: 2334 return super.getTypesForProperty(hash, name); 2335 } 2336 2337 } 2338 2339 @Override 2340 public Base addChild(String name) throws FHIRException { 2341 if (name.equals("preAdmissionIdentifier")) { 2342 this.preAdmissionIdentifier = new Identifier(); 2343 return this.preAdmissionIdentifier; 2344 } else if (name.equals("origin")) { 2345 this.origin = new Reference(); 2346 return this.origin; 2347 } else if (name.equals("admitSource")) { 2348 this.admitSource = new CodeableConcept(); 2349 return this.admitSource; 2350 } else if (name.equals("reAdmission")) { 2351 this.reAdmission = new CodeableConcept(); 2352 return this.reAdmission; 2353 } else if (name.equals("dietPreference")) { 2354 return addDietPreference(); 2355 } else if (name.equals("specialCourtesy")) { 2356 return addSpecialCourtesy(); 2357 } else if (name.equals("specialArrangement")) { 2358 return addSpecialArrangement(); 2359 } else if (name.equals("destination")) { 2360 this.destination = new Reference(); 2361 return this.destination; 2362 } else if (name.equals("dischargeDisposition")) { 2363 this.dischargeDisposition = new CodeableConcept(); 2364 return this.dischargeDisposition; 2365 } else 2366 return super.addChild(name); 2367 } 2368 2369 public EncounterHospitalizationComponent copy() { 2370 EncounterHospitalizationComponent dst = new EncounterHospitalizationComponent(); 2371 copyValues(dst); 2372 return dst; 2373 } 2374 2375 public void copyValues(EncounterHospitalizationComponent dst) { 2376 super.copyValues(dst); 2377 dst.preAdmissionIdentifier = preAdmissionIdentifier == null ? null : preAdmissionIdentifier.copy(); 2378 dst.origin = origin == null ? null : origin.copy(); 2379 dst.admitSource = admitSource == null ? null : admitSource.copy(); 2380 dst.reAdmission = reAdmission == null ? null : reAdmission.copy(); 2381 if (dietPreference != null) { 2382 dst.dietPreference = new ArrayList<CodeableConcept>(); 2383 for (CodeableConcept i : dietPreference) 2384 dst.dietPreference.add(i.copy()); 2385 } 2386 ; 2387 if (specialCourtesy != null) { 2388 dst.specialCourtesy = new ArrayList<CodeableConcept>(); 2389 for (CodeableConcept i : specialCourtesy) 2390 dst.specialCourtesy.add(i.copy()); 2391 } 2392 ; 2393 if (specialArrangement != null) { 2394 dst.specialArrangement = new ArrayList<CodeableConcept>(); 2395 for (CodeableConcept i : specialArrangement) 2396 dst.specialArrangement.add(i.copy()); 2397 } 2398 ; 2399 dst.destination = destination == null ? null : destination.copy(); 2400 dst.dischargeDisposition = dischargeDisposition == null ? null : dischargeDisposition.copy(); 2401 } 2402 2403 @Override 2404 public boolean equalsDeep(Base other_) { 2405 if (!super.equalsDeep(other_)) 2406 return false; 2407 if (!(other_ instanceof EncounterHospitalizationComponent)) 2408 return false; 2409 EncounterHospitalizationComponent o = (EncounterHospitalizationComponent) other_; 2410 return compareDeep(preAdmissionIdentifier, o.preAdmissionIdentifier, true) && compareDeep(origin, o.origin, true) 2411 && compareDeep(admitSource, o.admitSource, true) && compareDeep(reAdmission, o.reAdmission, true) 2412 && compareDeep(dietPreference, o.dietPreference, true) 2413 && compareDeep(specialCourtesy, o.specialCourtesy, true) 2414 && compareDeep(specialArrangement, o.specialArrangement, true) 2415 && compareDeep(destination, o.destination, true) 2416 && compareDeep(dischargeDisposition, o.dischargeDisposition, true); 2417 } 2418 2419 @Override 2420 public boolean equalsShallow(Base other_) { 2421 if (!super.equalsShallow(other_)) 2422 return false; 2423 if (!(other_ instanceof EncounterHospitalizationComponent)) 2424 return false; 2425 EncounterHospitalizationComponent o = (EncounterHospitalizationComponent) other_; 2426 return true; 2427 } 2428 2429 public boolean isEmpty() { 2430 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(preAdmissionIdentifier, origin, admitSource, 2431 reAdmission, dietPreference, specialCourtesy, specialArrangement, destination, dischargeDisposition); 2432 } 2433 2434 public String fhirType() { 2435 return "Encounter.hospitalization"; 2436 2437 } 2438 2439 } 2440 2441 @Block() 2442 public static class EncounterLocationComponent extends BackboneElement implements IBaseBackboneElement { 2443 /** 2444 * The location where the encounter takes place. 2445 */ 2446 @Child(name = "location", type = { Location.class }, order = 1, min = 1, max = 1, modifier = false, summary = false) 2447 @Description(shortDefinition = "Location the encounter takes place", formalDefinition = "The location where the encounter takes place.") 2448 protected Reference location; 2449 2450 /** 2451 * The actual object that is the target of the reference (The location where the 2452 * encounter takes place.) 2453 */ 2454 protected Location locationTarget; 2455 2456 /** 2457 * The status of the participants' presence at the specified location during the 2458 * period specified. If the participant is no longer at the location, then the 2459 * period will have an end date/time. 2460 */ 2461 @Child(name = "status", type = { CodeType.class }, order = 2, min = 0, max = 1, modifier = false, summary = false) 2462 @Description(shortDefinition = "planned | active | reserved | completed", formalDefinition = "The status of the participants' presence at the specified location during the period specified. If the participant is no longer at the location, then the period will have an end date/time.") 2463 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/encounter-location-status") 2464 protected Enumeration<EncounterLocationStatus> status; 2465 2466 /** 2467 * This will be used to specify the required levels (bed/ward/room/etc.) desired 2468 * to be recorded to simplify either messaging or query. 2469 */ 2470 @Child(name = "physicalType", type = { 2471 CodeableConcept.class }, order = 3, min = 0, max = 1, modifier = false, summary = false) 2472 @Description(shortDefinition = "The physical type of the location (usually the level in the location hierachy - bed room ward etc.)", formalDefinition = "This will be used to specify the required levels (bed/ward/room/etc.) desired to be recorded to simplify either messaging or query.") 2473 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/location-physical-type") 2474 protected CodeableConcept physicalType; 2475 2476 /** 2477 * Time period during which the patient was present at the location. 2478 */ 2479 @Child(name = "period", type = { Period.class }, order = 4, min = 0, max = 1, modifier = false, summary = false) 2480 @Description(shortDefinition = "Time period during which the patient was present at the location", formalDefinition = "Time period during which the patient was present at the location.") 2481 protected Period period; 2482 2483 private static final long serialVersionUID = -755081862L; 2484 2485 /** 2486 * Constructor 2487 */ 2488 public EncounterLocationComponent() { 2489 super(); 2490 } 2491 2492 /** 2493 * Constructor 2494 */ 2495 public EncounterLocationComponent(Reference location) { 2496 super(); 2497 this.location = location; 2498 } 2499 2500 /** 2501 * @return {@link #location} (The location where the encounter takes place.) 2502 */ 2503 public Reference getLocation() { 2504 if (this.location == null) 2505 if (Configuration.errorOnAutoCreate()) 2506 throw new Error("Attempt to auto-create EncounterLocationComponent.location"); 2507 else if (Configuration.doAutoCreate()) 2508 this.location = new Reference(); // cc 2509 return this.location; 2510 } 2511 2512 public boolean hasLocation() { 2513 return this.location != null && !this.location.isEmpty(); 2514 } 2515 2516 /** 2517 * @param value {@link #location} (The location where the encounter takes 2518 * place.) 2519 */ 2520 public EncounterLocationComponent setLocation(Reference value) { 2521 this.location = value; 2522 return this; 2523 } 2524 2525 /** 2526 * @return {@link #location} The actual object that is the target of the 2527 * reference. The reference library doesn't populate this, but you can 2528 * use it to hold the resource if you resolve it. (The location where 2529 * the encounter takes place.) 2530 */ 2531 public Location getLocationTarget() { 2532 if (this.locationTarget == null) 2533 if (Configuration.errorOnAutoCreate()) 2534 throw new Error("Attempt to auto-create EncounterLocationComponent.location"); 2535 else if (Configuration.doAutoCreate()) 2536 this.locationTarget = new Location(); // aa 2537 return this.locationTarget; 2538 } 2539 2540 /** 2541 * @param value {@link #location} The actual object that is the target of the 2542 * reference. The reference library doesn't use these, but you can 2543 * use it to hold the resource if you resolve it. (The location 2544 * where the encounter takes place.) 2545 */ 2546 public EncounterLocationComponent setLocationTarget(Location value) { 2547 this.locationTarget = value; 2548 return this; 2549 } 2550 2551 /** 2552 * @return {@link #status} (The status of the participants' presence at the 2553 * specified location during the period specified. If the participant is 2554 * no longer at the location, then the period will have an end 2555 * date/time.). This is the underlying object with id, value and 2556 * extensions. The accessor "getStatus" gives direct access to the value 2557 */ 2558 public Enumeration<EncounterLocationStatus> getStatusElement() { 2559 if (this.status == null) 2560 if (Configuration.errorOnAutoCreate()) 2561 throw new Error("Attempt to auto-create EncounterLocationComponent.status"); 2562 else if (Configuration.doAutoCreate()) 2563 this.status = new Enumeration<EncounterLocationStatus>(new EncounterLocationStatusEnumFactory()); // bb 2564 return this.status; 2565 } 2566 2567 public boolean hasStatusElement() { 2568 return this.status != null && !this.status.isEmpty(); 2569 } 2570 2571 public boolean hasStatus() { 2572 return this.status != null && !this.status.isEmpty(); 2573 } 2574 2575 /** 2576 * @param value {@link #status} (The status of the participants' presence at the 2577 * specified location during the period specified. If the 2578 * participant is no longer at the location, then the period will 2579 * have an end date/time.). This is the underlying object with id, 2580 * value and extensions. The accessor "getStatus" gives direct 2581 * access to the value 2582 */ 2583 public EncounterLocationComponent setStatusElement(Enumeration<EncounterLocationStatus> value) { 2584 this.status = value; 2585 return this; 2586 } 2587 2588 /** 2589 * @return The status of the participants' presence at the specified location 2590 * during the period specified. If the participant is no longer at the 2591 * location, then the period will have an end date/time. 2592 */ 2593 public EncounterLocationStatus getStatus() { 2594 return this.status == null ? null : this.status.getValue(); 2595 } 2596 2597 /** 2598 * @param value The status of the participants' presence at the specified 2599 * location during the period specified. If the participant is no 2600 * longer at the location, then the period will have an end 2601 * date/time. 2602 */ 2603 public EncounterLocationComponent setStatus(EncounterLocationStatus value) { 2604 if (value == null) 2605 this.status = null; 2606 else { 2607 if (this.status == null) 2608 this.status = new Enumeration<EncounterLocationStatus>(new EncounterLocationStatusEnumFactory()); 2609 this.status.setValue(value); 2610 } 2611 return this; 2612 } 2613 2614 /** 2615 * @return {@link #physicalType} (This will be used to specify the required 2616 * levels (bed/ward/room/etc.) desired to be recorded to simplify either 2617 * messaging or query.) 2618 */ 2619 public CodeableConcept getPhysicalType() { 2620 if (this.physicalType == null) 2621 if (Configuration.errorOnAutoCreate()) 2622 throw new Error("Attempt to auto-create EncounterLocationComponent.physicalType"); 2623 else if (Configuration.doAutoCreate()) 2624 this.physicalType = new CodeableConcept(); // cc 2625 return this.physicalType; 2626 } 2627 2628 public boolean hasPhysicalType() { 2629 return this.physicalType != null && !this.physicalType.isEmpty(); 2630 } 2631 2632 /** 2633 * @param value {@link #physicalType} (This will be used to specify the required 2634 * levels (bed/ward/room/etc.) desired to be recorded to simplify 2635 * either messaging or query.) 2636 */ 2637 public EncounterLocationComponent setPhysicalType(CodeableConcept value) { 2638 this.physicalType = value; 2639 return this; 2640 } 2641 2642 /** 2643 * @return {@link #period} (Time period during which the patient was present at 2644 * the location.) 2645 */ 2646 public Period getPeriod() { 2647 if (this.period == null) 2648 if (Configuration.errorOnAutoCreate()) 2649 throw new Error("Attempt to auto-create EncounterLocationComponent.period"); 2650 else if (Configuration.doAutoCreate()) 2651 this.period = new Period(); // cc 2652 return this.period; 2653 } 2654 2655 public boolean hasPeriod() { 2656 return this.period != null && !this.period.isEmpty(); 2657 } 2658 2659 /** 2660 * @param value {@link #period} (Time period during which the patient was 2661 * present at the location.) 2662 */ 2663 public EncounterLocationComponent setPeriod(Period value) { 2664 this.period = value; 2665 return this; 2666 } 2667 2668 protected void listChildren(List<Property> children) { 2669 super.listChildren(children); 2670 children.add(new Property("location", "Reference(Location)", "The location where the encounter takes place.", 0, 2671 1, location)); 2672 children.add(new Property("status", "code", 2673 "The status of the participants' presence at the specified location during the period specified. If the participant is no longer at the location, then the period will have an end date/time.", 2674 0, 1, status)); 2675 children.add(new Property("physicalType", "CodeableConcept", 2676 "This will be used to specify the required levels (bed/ward/room/etc.) desired to be recorded to simplify either messaging or query.", 2677 0, 1, physicalType)); 2678 children.add(new Property("period", "Period", "Time period during which the patient was present at the location.", 2679 0, 1, period)); 2680 } 2681 2682 @Override 2683 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 2684 switch (_hash) { 2685 case 1901043637: 2686 /* location */ return new Property("location", "Reference(Location)", 2687 "The location where the encounter takes place.", 0, 1, location); 2688 case -892481550: 2689 /* status */ return new Property("status", "code", 2690 "The status of the participants' presence at the specified location during the period specified. If the participant is no longer at the location, then the period will have an end date/time.", 2691 0, 1, status); 2692 case -1474715471: 2693 /* physicalType */ return new Property("physicalType", "CodeableConcept", 2694 "This will be used to specify the required levels (bed/ward/room/etc.) desired to be recorded to simplify either messaging or query.", 2695 0, 1, physicalType); 2696 case -991726143: 2697 /* period */ return new Property("period", "Period", 2698 "Time period during which the patient was present at the location.", 0, 1, period); 2699 default: 2700 return super.getNamedProperty(_hash, _name, _checkValid); 2701 } 2702 2703 } 2704 2705 @Override 2706 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2707 switch (hash) { 2708 case 1901043637: 2709 /* location */ return this.location == null ? new Base[0] : new Base[] { this.location }; // Reference 2710 case -892481550: 2711 /* status */ return this.status == null ? new Base[0] : new Base[] { this.status }; // Enumeration<EncounterLocationStatus> 2712 case -1474715471: 2713 /* physicalType */ return this.physicalType == null ? new Base[0] : new Base[] { this.physicalType }; // CodeableConcept 2714 case -991726143: 2715 /* period */ return this.period == null ? new Base[0] : new Base[] { this.period }; // Period 2716 default: 2717 return super.getProperty(hash, name, checkValid); 2718 } 2719 2720 } 2721 2722 @Override 2723 public Base setProperty(int hash, String name, Base value) throws FHIRException { 2724 switch (hash) { 2725 case 1901043637: // location 2726 this.location = castToReference(value); // Reference 2727 return value; 2728 case -892481550: // status 2729 value = new EncounterLocationStatusEnumFactory().fromType(castToCode(value)); 2730 this.status = (Enumeration) value; // Enumeration<EncounterLocationStatus> 2731 return value; 2732 case -1474715471: // physicalType 2733 this.physicalType = castToCodeableConcept(value); // CodeableConcept 2734 return value; 2735 case -991726143: // period 2736 this.period = castToPeriod(value); // Period 2737 return value; 2738 default: 2739 return super.setProperty(hash, name, value); 2740 } 2741 2742 } 2743 2744 @Override 2745 public Base setProperty(String name, Base value) throws FHIRException { 2746 if (name.equals("location")) { 2747 this.location = castToReference(value); // Reference 2748 } else if (name.equals("status")) { 2749 value = new EncounterLocationStatusEnumFactory().fromType(castToCode(value)); 2750 this.status = (Enumeration) value; // Enumeration<EncounterLocationStatus> 2751 } else if (name.equals("physicalType")) { 2752 this.physicalType = castToCodeableConcept(value); // CodeableConcept 2753 } else if (name.equals("period")) { 2754 this.period = castToPeriod(value); // Period 2755 } else 2756 return super.setProperty(name, value); 2757 return value; 2758 } 2759 2760 @Override 2761 public Base makeProperty(int hash, String name) throws FHIRException { 2762 switch (hash) { 2763 case 1901043637: 2764 return getLocation(); 2765 case -892481550: 2766 return getStatusElement(); 2767 case -1474715471: 2768 return getPhysicalType(); 2769 case -991726143: 2770 return getPeriod(); 2771 default: 2772 return super.makeProperty(hash, name); 2773 } 2774 2775 } 2776 2777 @Override 2778 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2779 switch (hash) { 2780 case 1901043637: 2781 /* location */ return new String[] { "Reference" }; 2782 case -892481550: 2783 /* status */ return new String[] { "code" }; 2784 case -1474715471: 2785 /* physicalType */ return new String[] { "CodeableConcept" }; 2786 case -991726143: 2787 /* period */ return new String[] { "Period" }; 2788 default: 2789 return super.getTypesForProperty(hash, name); 2790 } 2791 2792 } 2793 2794 @Override 2795 public Base addChild(String name) throws FHIRException { 2796 if (name.equals("location")) { 2797 this.location = new Reference(); 2798 return this.location; 2799 } else if (name.equals("status")) { 2800 throw new FHIRException("Cannot call addChild on a singleton property Encounter.status"); 2801 } else if (name.equals("physicalType")) { 2802 this.physicalType = new CodeableConcept(); 2803 return this.physicalType; 2804 } else if (name.equals("period")) { 2805 this.period = new Period(); 2806 return this.period; 2807 } else 2808 return super.addChild(name); 2809 } 2810 2811 public EncounterLocationComponent copy() { 2812 EncounterLocationComponent dst = new EncounterLocationComponent(); 2813 copyValues(dst); 2814 return dst; 2815 } 2816 2817 public void copyValues(EncounterLocationComponent dst) { 2818 super.copyValues(dst); 2819 dst.location = location == null ? null : location.copy(); 2820 dst.status = status == null ? null : status.copy(); 2821 dst.physicalType = physicalType == null ? null : physicalType.copy(); 2822 dst.period = period == null ? null : period.copy(); 2823 } 2824 2825 @Override 2826 public boolean equalsDeep(Base other_) { 2827 if (!super.equalsDeep(other_)) 2828 return false; 2829 if (!(other_ instanceof EncounterLocationComponent)) 2830 return false; 2831 EncounterLocationComponent o = (EncounterLocationComponent) other_; 2832 return compareDeep(location, o.location, true) && compareDeep(status, o.status, true) 2833 && compareDeep(physicalType, o.physicalType, true) && compareDeep(period, o.period, true); 2834 } 2835 2836 @Override 2837 public boolean equalsShallow(Base other_) { 2838 if (!super.equalsShallow(other_)) 2839 return false; 2840 if (!(other_ instanceof EncounterLocationComponent)) 2841 return false; 2842 EncounterLocationComponent o = (EncounterLocationComponent) other_; 2843 return compareValues(status, o.status, true); 2844 } 2845 2846 public boolean isEmpty() { 2847 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(location, status, physicalType, period); 2848 } 2849 2850 public String fhirType() { 2851 return "Encounter.location"; 2852 2853 } 2854 2855 } 2856 2857 /** 2858 * Identifier(s) by which this encounter is known. 2859 */ 2860 @Child(name = "identifier", type = { 2861 Identifier.class }, order = 0, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = true) 2862 @Description(shortDefinition = "Identifier(s) by which this encounter is known", formalDefinition = "Identifier(s) by which this encounter is known.") 2863 protected List<Identifier> identifier; 2864 2865 /** 2866 * planned | arrived | triaged | in-progress | onleave | finished | cancelled +. 2867 */ 2868 @Child(name = "status", type = { CodeType.class }, order = 1, min = 1, max = 1, modifier = true, summary = true) 2869 @Description(shortDefinition = "planned | arrived | triaged | in-progress | onleave | finished | cancelled +", formalDefinition = "planned | arrived | triaged | in-progress | onleave | finished | cancelled +.") 2870 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/encounter-status") 2871 protected Enumeration<EncounterStatus> status; 2872 2873 /** 2874 * The status history permits the encounter resource to contain the status 2875 * history without needing to read through the historical versions of the 2876 * resource, or even have the server store them. 2877 */ 2878 @Child(name = "statusHistory", type = {}, order = 2, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 2879 @Description(shortDefinition = "List of past encounter statuses", formalDefinition = "The status history permits the encounter resource to contain the status history without needing to read through the historical versions of the resource, or even have the server store them.") 2880 protected List<StatusHistoryComponent> statusHistory; 2881 2882 /** 2883 * Concepts representing classification of patient encounter such as ambulatory 2884 * (outpatient), inpatient, emergency, home health or others due to local 2885 * variations. 2886 */ 2887 @Child(name = "class", type = { Coding.class }, order = 3, min = 1, max = 1, modifier = false, summary = true) 2888 @Description(shortDefinition = "Classification of patient encounter", formalDefinition = "Concepts representing classification of patient encounter such as ambulatory (outpatient), inpatient, emergency, home health or others due to local variations.") 2889 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://terminology.hl7.org/ValueSet/v3-ActEncounterCode") 2890 protected Coding class_; 2891 2892 /** 2893 * The class history permits the tracking of the encounters transitions without 2894 * needing to go through the resource history. This would be used for a case 2895 * where an admission starts of as an emergency encounter, then transitions into 2896 * an inpatient scenario. Doing this and not restarting a new encounter ensures 2897 * that any lab/diagnostic results can more easily follow the patient and not 2898 * require re-processing and not get lost or cancelled during a kind of 2899 * discharge from emergency to inpatient. 2900 */ 2901 @Child(name = "classHistory", type = {}, order = 4, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 2902 @Description(shortDefinition = "List of past encounter classes", formalDefinition = "The class history permits the tracking of the encounters transitions without needing to go through the resource history. This would be used for a case where an admission starts of as an emergency encounter, then transitions into an inpatient scenario. Doing this and not restarting a new encounter ensures that any lab/diagnostic results can more easily follow the patient and not require re-processing and not get lost or cancelled during a kind of discharge from emergency to inpatient.") 2903 protected List<ClassHistoryComponent> classHistory; 2904 2905 /** 2906 * Specific type of encounter (e.g. e-mail consultation, surgical day-care, 2907 * skilled nursing, rehabilitation). 2908 */ 2909 @Child(name = "type", type = { 2910 CodeableConcept.class }, order = 5, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = true) 2911 @Description(shortDefinition = "Specific type of encounter", formalDefinition = "Specific type of encounter (e.g. e-mail consultation, surgical day-care, skilled nursing, rehabilitation).") 2912 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/encounter-type") 2913 protected List<CodeableConcept> type; 2914 2915 /** 2916 * Broad categorization of the service that is to be provided (e.g. cardiology). 2917 */ 2918 @Child(name = "serviceType", type = { 2919 CodeableConcept.class }, order = 6, min = 0, max = 1, modifier = false, summary = true) 2920 @Description(shortDefinition = "Specific type of service", formalDefinition = "Broad categorization of the service that is to be provided (e.g. cardiology).") 2921 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/service-type") 2922 protected CodeableConcept serviceType; 2923 2924 /** 2925 * Indicates the urgency of the encounter. 2926 */ 2927 @Child(name = "priority", type = { 2928 CodeableConcept.class }, order = 7, min = 0, max = 1, modifier = false, summary = false) 2929 @Description(shortDefinition = "Indicates the urgency of the encounter", formalDefinition = "Indicates the urgency of the encounter.") 2930 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://terminology.hl7.org/ValueSet/v3-ActPriority") 2931 protected CodeableConcept priority; 2932 2933 /** 2934 * The patient or group present at the encounter. 2935 */ 2936 @Child(name = "subject", type = { Patient.class, 2937 Group.class }, order = 8, min = 0, max = 1, modifier = false, summary = true) 2938 @Description(shortDefinition = "The patient or group present at the encounter", formalDefinition = "The patient or group present at the encounter.") 2939 protected Reference subject; 2940 2941 /** 2942 * The actual object that is the target of the reference (The patient or group 2943 * present at the encounter.) 2944 */ 2945 protected Resource subjectTarget; 2946 2947 /** 2948 * Where a specific encounter should be classified as a part of a specific 2949 * episode(s) of care this field should be used. This association can facilitate 2950 * grouping of related encounters together for a specific purpose, such as 2951 * government reporting, issue tracking, association via a common problem. The 2952 * association is recorded on the encounter as these are typically created after 2953 * the episode of care and grouped on entry rather than editing the episode of 2954 * care to append another encounter to it (the episode of care could span 2955 * years). 2956 */ 2957 @Child(name = "episodeOfCare", type = { 2958 EpisodeOfCare.class }, order = 9, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = true) 2959 @Description(shortDefinition = "Episode(s) of care that this encounter should be recorded against", formalDefinition = "Where a specific encounter should be classified as a part of a specific episode(s) of care this field should be used. This association can facilitate grouping of related encounters together for a specific purpose, such as government reporting, issue tracking, association via a common problem. The association is recorded on the encounter as these are typically created after the episode of care and grouped on entry rather than editing the episode of care to append another encounter to it (the episode of care could span years).") 2960 protected List<Reference> episodeOfCare; 2961 /** 2962 * The actual objects that are the target of the reference (Where a specific 2963 * encounter should be classified as a part of a specific episode(s) of care 2964 * this field should be used. This association can facilitate grouping of 2965 * related encounters together for a specific purpose, such as government 2966 * reporting, issue tracking, association via a common problem. The association 2967 * is recorded on the encounter as these are typically created after the episode 2968 * of care and grouped on entry rather than editing the episode of care to 2969 * append another encounter to it (the episode of care could span years).) 2970 */ 2971 protected List<EpisodeOfCare> episodeOfCareTarget; 2972 2973 /** 2974 * The request this encounter satisfies (e.g. incoming referral or procedure 2975 * request). 2976 */ 2977 @Child(name = "basedOn", type = { 2978 ServiceRequest.class }, order = 10, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 2979 @Description(shortDefinition = "The ServiceRequest that initiated this encounter", formalDefinition = "The request this encounter satisfies (e.g. incoming referral or procedure request).") 2980 protected List<Reference> basedOn; 2981 /** 2982 * The actual objects that are the target of the reference (The request this 2983 * encounter satisfies (e.g. incoming referral or procedure request).) 2984 */ 2985 protected List<ServiceRequest> basedOnTarget; 2986 2987 /** 2988 * The list of people responsible for providing the service. 2989 */ 2990 @Child(name = "participant", type = {}, order = 11, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = true) 2991 @Description(shortDefinition = "List of participants involved in the encounter", formalDefinition = "The list of people responsible for providing the service.") 2992 protected List<EncounterParticipantComponent> participant; 2993 2994 /** 2995 * The appointment that scheduled this encounter. 2996 */ 2997 @Child(name = "appointment", type = { 2998 Appointment.class }, order = 12, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = true) 2999 @Description(shortDefinition = "The appointment that scheduled this encounter", formalDefinition = "The appointment that scheduled this encounter.") 3000 protected List<Reference> appointment; 3001 /** 3002 * The actual objects that are the target of the reference (The appointment that 3003 * scheduled this encounter.) 3004 */ 3005 protected List<Appointment> appointmentTarget; 3006 3007 /** 3008 * The start and end time of the encounter. 3009 */ 3010 @Child(name = "period", type = { Period.class }, order = 13, min = 0, max = 1, modifier = false, summary = false) 3011 @Description(shortDefinition = "The start and end time of the encounter", formalDefinition = "The start and end time of the encounter.") 3012 protected Period period; 3013 3014 /** 3015 * Quantity of time the encounter lasted. This excludes the time during leaves 3016 * of absence. 3017 */ 3018 @Child(name = "length", type = { Duration.class }, order = 14, min = 0, max = 1, modifier = false, summary = false) 3019 @Description(shortDefinition = "Quantity of time the encounter lasted (less time absent)", formalDefinition = "Quantity of time the encounter lasted. This excludes the time during leaves of absence.") 3020 protected Duration length; 3021 3022 /** 3023 * Reason the encounter takes place, expressed as a code. For admissions, this 3024 * can be used for a coded admission diagnosis. 3025 */ 3026 @Child(name = "reasonCode", type = { 3027 CodeableConcept.class }, order = 15, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = true) 3028 @Description(shortDefinition = "Coded reason the encounter takes place", formalDefinition = "Reason the encounter takes place, expressed as a code. For admissions, this can be used for a coded admission diagnosis.") 3029 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/encounter-reason") 3030 protected List<CodeableConcept> reasonCode; 3031 3032 /** 3033 * Reason the encounter takes place, expressed as a code. For admissions, this 3034 * can be used for a coded admission diagnosis. 3035 */ 3036 @Child(name = "reasonReference", type = { Condition.class, Procedure.class, Observation.class, 3037 ImmunizationRecommendation.class }, order = 16, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = true) 3038 @Description(shortDefinition = "Reason the encounter takes place (reference)", formalDefinition = "Reason the encounter takes place, expressed as a code. For admissions, this can be used for a coded admission diagnosis.") 3039 protected List<Reference> reasonReference; 3040 /** 3041 * The actual objects that are the target of the reference (Reason the encounter 3042 * takes place, expressed as a code. For admissions, this can be used for a 3043 * coded admission diagnosis.) 3044 */ 3045 protected List<Resource> reasonReferenceTarget; 3046 3047 /** 3048 * The list of diagnosis relevant to this encounter. 3049 */ 3050 @Child(name = "diagnosis", type = {}, order = 17, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = true) 3051 @Description(shortDefinition = "The list of diagnosis relevant to this encounter", formalDefinition = "The list of diagnosis relevant to this encounter.") 3052 protected List<DiagnosisComponent> diagnosis; 3053 3054 /** 3055 * The set of accounts that may be used for billing for this Encounter. 3056 */ 3057 @Child(name = "account", type = { 3058 Account.class }, order = 18, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 3059 @Description(shortDefinition = "The set of accounts that may be used for billing for this Encounter", formalDefinition = "The set of accounts that may be used for billing for this Encounter.") 3060 protected List<Reference> account; 3061 /** 3062 * The actual objects that are the target of the reference (The set of accounts 3063 * that may be used for billing for this Encounter.) 3064 */ 3065 protected List<Account> accountTarget; 3066 3067 /** 3068 * Details about the admission to a healthcare service. 3069 */ 3070 @Child(name = "hospitalization", type = {}, order = 19, min = 0, max = 1, modifier = false, summary = false) 3071 @Description(shortDefinition = "Details about the admission to a healthcare service", formalDefinition = "Details about the admission to a healthcare service.") 3072 protected EncounterHospitalizationComponent hospitalization; 3073 3074 /** 3075 * List of locations where the patient has been during this encounter. 3076 */ 3077 @Child(name = "location", type = {}, order = 20, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 3078 @Description(shortDefinition = "List of locations where the patient has been", formalDefinition = "List of locations where the patient has been during this encounter.") 3079 protected List<EncounterLocationComponent> location; 3080 3081 /** 3082 * The organization that is primarily responsible for this Encounter's services. 3083 * This MAY be the same as the organization on the Patient record, however it 3084 * could be different, such as if the actor performing the services was from an 3085 * external organization (which may be billed seperately) for an external 3086 * consultation. Refer to the example bundle showing an abbreviated set of 3087 * Encounters for a colonoscopy. 3088 */ 3089 @Child(name = "serviceProvider", type = { 3090 Organization.class }, order = 21, min = 0, max = 1, modifier = false, summary = false) 3091 @Description(shortDefinition = "The organization (facility) responsible for this encounter", formalDefinition = "The organization that is primarily responsible for this Encounter's services. This MAY be the same as the organization on the Patient record, however it could be different, such as if the actor performing the services was from an external organization (which may be billed seperately) for an external consultation. Refer to the example bundle showing an abbreviated set of Encounters for a colonoscopy.") 3092 protected Reference serviceProvider; 3093 3094 /** 3095 * The actual object that is the target of the reference (The organization that 3096 * is primarily responsible for this Encounter's services. This MAY be the same 3097 * as the organization on the Patient record, however it could be different, 3098 * such as if the actor performing the services was from an external 3099 * organization (which may be billed seperately) for an external consultation. 3100 * Refer to the example bundle showing an abbreviated set of Encounters for a 3101 * colonoscopy.) 3102 */ 3103 protected Organization serviceProviderTarget; 3104 3105 /** 3106 * Another Encounter of which this encounter is a part of (administratively or 3107 * in time). 3108 */ 3109 @Child(name = "partOf", type = { Encounter.class }, order = 22, min = 0, max = 1, modifier = false, summary = false) 3110 @Description(shortDefinition = "Another Encounter this encounter is part of", formalDefinition = "Another Encounter of which this encounter is a part of (administratively or in time).") 3111 protected Reference partOf; 3112 3113 /** 3114 * The actual object that is the target of the reference (Another Encounter of 3115 * which this encounter is a part of (administratively or in time).) 3116 */ 3117 protected Encounter partOfTarget; 3118 3119 private static final long serialVersionUID = 1358318037L; 3120 3121 /** 3122 * Constructor 3123 */ 3124 public Encounter() { 3125 super(); 3126 } 3127 3128 /** 3129 * Constructor 3130 */ 3131 public Encounter(Enumeration<EncounterStatus> status, Coding class_) { 3132 super(); 3133 this.status = status; 3134 this.class_ = class_; 3135 } 3136 3137 /** 3138 * @return {@link #identifier} (Identifier(s) by which this encounter is known.) 3139 */ 3140 public List<Identifier> getIdentifier() { 3141 if (this.identifier == null) 3142 this.identifier = new ArrayList<Identifier>(); 3143 return this.identifier; 3144 } 3145 3146 /** 3147 * @return Returns a reference to <code>this</code> for easy method chaining 3148 */ 3149 public Encounter setIdentifier(List<Identifier> theIdentifier) { 3150 this.identifier = theIdentifier; 3151 return this; 3152 } 3153 3154 public boolean hasIdentifier() { 3155 if (this.identifier == null) 3156 return false; 3157 for (Identifier item : this.identifier) 3158 if (!item.isEmpty()) 3159 return true; 3160 return false; 3161 } 3162 3163 public Identifier addIdentifier() { // 3 3164 Identifier t = new Identifier(); 3165 if (this.identifier == null) 3166 this.identifier = new ArrayList<Identifier>(); 3167 this.identifier.add(t); 3168 return t; 3169 } 3170 3171 public Encounter addIdentifier(Identifier t) { // 3 3172 if (t == null) 3173 return this; 3174 if (this.identifier == null) 3175 this.identifier = new ArrayList<Identifier>(); 3176 this.identifier.add(t); 3177 return this; 3178 } 3179 3180 /** 3181 * @return The first repetition of repeating field {@link #identifier}, creating 3182 * it if it does not already exist 3183 */ 3184 public Identifier getIdentifierFirstRep() { 3185 if (getIdentifier().isEmpty()) { 3186 addIdentifier(); 3187 } 3188 return getIdentifier().get(0); 3189 } 3190 3191 /** 3192 * @return {@link #status} (planned | arrived | triaged | in-progress | onleave 3193 * | finished | cancelled +.). This is the underlying object with id, 3194 * value and extensions. The accessor "getStatus" gives direct access to 3195 * the value 3196 */ 3197 public Enumeration<EncounterStatus> getStatusElement() { 3198 if (this.status == null) 3199 if (Configuration.errorOnAutoCreate()) 3200 throw new Error("Attempt to auto-create Encounter.status"); 3201 else if (Configuration.doAutoCreate()) 3202 this.status = new Enumeration<EncounterStatus>(new EncounterStatusEnumFactory()); // bb 3203 return this.status; 3204 } 3205 3206 public boolean hasStatusElement() { 3207 return this.status != null && !this.status.isEmpty(); 3208 } 3209 3210 public boolean hasStatus() { 3211 return this.status != null && !this.status.isEmpty(); 3212 } 3213 3214 /** 3215 * @param value {@link #status} (planned | arrived | triaged | in-progress | 3216 * onleave | finished | cancelled +.). This is the underlying 3217 * object with id, value and extensions. The accessor "getStatus" 3218 * gives direct access to the value 3219 */ 3220 public Encounter setStatusElement(Enumeration<EncounterStatus> value) { 3221 this.status = value; 3222 return this; 3223 } 3224 3225 /** 3226 * @return planned | arrived | triaged | in-progress | onleave | finished | 3227 * cancelled +. 3228 */ 3229 public EncounterStatus getStatus() { 3230 return this.status == null ? null : this.status.getValue(); 3231 } 3232 3233 /** 3234 * @param value planned | arrived | triaged | in-progress | onleave | finished | 3235 * cancelled +. 3236 */ 3237 public Encounter setStatus(EncounterStatus value) { 3238 if (this.status == null) 3239 this.status = new Enumeration<EncounterStatus>(new EncounterStatusEnumFactory()); 3240 this.status.setValue(value); 3241 return this; 3242 } 3243 3244 /** 3245 * @return {@link #statusHistory} (The status history permits the encounter 3246 * resource to contain the status history without needing to read 3247 * through the historical versions of the resource, or even have the 3248 * server store them.) 3249 */ 3250 public List<StatusHistoryComponent> getStatusHistory() { 3251 if (this.statusHistory == null) 3252 this.statusHistory = new ArrayList<StatusHistoryComponent>(); 3253 return this.statusHistory; 3254 } 3255 3256 /** 3257 * @return Returns a reference to <code>this</code> for easy method chaining 3258 */ 3259 public Encounter setStatusHistory(List<StatusHistoryComponent> theStatusHistory) { 3260 this.statusHistory = theStatusHistory; 3261 return this; 3262 } 3263 3264 public boolean hasStatusHistory() { 3265 if (this.statusHistory == null) 3266 return false; 3267 for (StatusHistoryComponent item : this.statusHistory) 3268 if (!item.isEmpty()) 3269 return true; 3270 return false; 3271 } 3272 3273 public StatusHistoryComponent addStatusHistory() { // 3 3274 StatusHistoryComponent t = new StatusHistoryComponent(); 3275 if (this.statusHistory == null) 3276 this.statusHistory = new ArrayList<StatusHistoryComponent>(); 3277 this.statusHistory.add(t); 3278 return t; 3279 } 3280 3281 public Encounter addStatusHistory(StatusHistoryComponent t) { // 3 3282 if (t == null) 3283 return this; 3284 if (this.statusHistory == null) 3285 this.statusHistory = new ArrayList<StatusHistoryComponent>(); 3286 this.statusHistory.add(t); 3287 return this; 3288 } 3289 3290 /** 3291 * @return The first repetition of repeating field {@link #statusHistory}, 3292 * creating it if it does not already exist 3293 */ 3294 public StatusHistoryComponent getStatusHistoryFirstRep() { 3295 if (getStatusHistory().isEmpty()) { 3296 addStatusHistory(); 3297 } 3298 return getStatusHistory().get(0); 3299 } 3300 3301 /** 3302 * @return {@link #class_} (Concepts representing classification of patient 3303 * encounter such as ambulatory (outpatient), inpatient, emergency, home 3304 * health or others due to local variations.) 3305 */ 3306 public Coding getClass_() { 3307 if (this.class_ == null) 3308 if (Configuration.errorOnAutoCreate()) 3309 throw new Error("Attempt to auto-create Encounter.class_"); 3310 else if (Configuration.doAutoCreate()) 3311 this.class_ = new Coding(); // cc 3312 return this.class_; 3313 } 3314 3315 public boolean hasClass_() { 3316 return this.class_ != null && !this.class_.isEmpty(); 3317 } 3318 3319 /** 3320 * @param value {@link #class_} (Concepts representing classification of patient 3321 * encounter such as ambulatory (outpatient), inpatient, emergency, 3322 * home health or others due to local variations.) 3323 */ 3324 public Encounter setClass_(Coding value) { 3325 this.class_ = value; 3326 return this; 3327 } 3328 3329 /** 3330 * @return {@link #classHistory} (The class history permits the tracking of the 3331 * encounters transitions without needing to go through the resource 3332 * history. This would be used for a case where an admission starts of 3333 * as an emergency encounter, then transitions into an inpatient 3334 * scenario. Doing this and not restarting a new encounter ensures that 3335 * any lab/diagnostic results can more easily follow the patient and not 3336 * require re-processing and not get lost or cancelled during a kind of 3337 * discharge from emergency to inpatient.) 3338 */ 3339 public List<ClassHistoryComponent> getClassHistory() { 3340 if (this.classHistory == null) 3341 this.classHistory = new ArrayList<ClassHistoryComponent>(); 3342 return this.classHistory; 3343 } 3344 3345 /** 3346 * @return Returns a reference to <code>this</code> for easy method chaining 3347 */ 3348 public Encounter setClassHistory(List<ClassHistoryComponent> theClassHistory) { 3349 this.classHistory = theClassHistory; 3350 return this; 3351 } 3352 3353 public boolean hasClassHistory() { 3354 if (this.classHistory == null) 3355 return false; 3356 for (ClassHistoryComponent item : this.classHistory) 3357 if (!item.isEmpty()) 3358 return true; 3359 return false; 3360 } 3361 3362 public ClassHistoryComponent addClassHistory() { // 3 3363 ClassHistoryComponent t = new ClassHistoryComponent(); 3364 if (this.classHistory == null) 3365 this.classHistory = new ArrayList<ClassHistoryComponent>(); 3366 this.classHistory.add(t); 3367 return t; 3368 } 3369 3370 public Encounter addClassHistory(ClassHistoryComponent t) { // 3 3371 if (t == null) 3372 return this; 3373 if (this.classHistory == null) 3374 this.classHistory = new ArrayList<ClassHistoryComponent>(); 3375 this.classHistory.add(t); 3376 return this; 3377 } 3378 3379 /** 3380 * @return The first repetition of repeating field {@link #classHistory}, 3381 * creating it if it does not already exist 3382 */ 3383 public ClassHistoryComponent getClassHistoryFirstRep() { 3384 if (getClassHistory().isEmpty()) { 3385 addClassHistory(); 3386 } 3387 return getClassHistory().get(0); 3388 } 3389 3390 /** 3391 * @return {@link #type} (Specific type of encounter (e.g. e-mail consultation, 3392 * surgical day-care, skilled nursing, rehabilitation).) 3393 */ 3394 public List<CodeableConcept> getType() { 3395 if (this.type == null) 3396 this.type = new ArrayList<CodeableConcept>(); 3397 return this.type; 3398 } 3399 3400 /** 3401 * @return Returns a reference to <code>this</code> for easy method chaining 3402 */ 3403 public Encounter setType(List<CodeableConcept> theType) { 3404 this.type = theType; 3405 return this; 3406 } 3407 3408 public boolean hasType() { 3409 if (this.type == null) 3410 return false; 3411 for (CodeableConcept item : this.type) 3412 if (!item.isEmpty()) 3413 return true; 3414 return false; 3415 } 3416 3417 public CodeableConcept addType() { // 3 3418 CodeableConcept t = new CodeableConcept(); 3419 if (this.type == null) 3420 this.type = new ArrayList<CodeableConcept>(); 3421 this.type.add(t); 3422 return t; 3423 } 3424 3425 public Encounter addType(CodeableConcept t) { // 3 3426 if (t == null) 3427 return this; 3428 if (this.type == null) 3429 this.type = new ArrayList<CodeableConcept>(); 3430 this.type.add(t); 3431 return this; 3432 } 3433 3434 /** 3435 * @return The first repetition of repeating field {@link #type}, creating it if 3436 * it does not already exist 3437 */ 3438 public CodeableConcept getTypeFirstRep() { 3439 if (getType().isEmpty()) { 3440 addType(); 3441 } 3442 return getType().get(0); 3443 } 3444 3445 /** 3446 * @return {@link #serviceType} (Broad categorization of the service that is to 3447 * be provided (e.g. cardiology).) 3448 */ 3449 public CodeableConcept getServiceType() { 3450 if (this.serviceType == null) 3451 if (Configuration.errorOnAutoCreate()) 3452 throw new Error("Attempt to auto-create Encounter.serviceType"); 3453 else if (Configuration.doAutoCreate()) 3454 this.serviceType = new CodeableConcept(); // cc 3455 return this.serviceType; 3456 } 3457 3458 public boolean hasServiceType() { 3459 return this.serviceType != null && !this.serviceType.isEmpty(); 3460 } 3461 3462 /** 3463 * @param value {@link #serviceType} (Broad categorization of the service that 3464 * is to be provided (e.g. cardiology).) 3465 */ 3466 public Encounter setServiceType(CodeableConcept value) { 3467 this.serviceType = value; 3468 return this; 3469 } 3470 3471 /** 3472 * @return {@link #priority} (Indicates the urgency of the encounter.) 3473 */ 3474 public CodeableConcept getPriority() { 3475 if (this.priority == null) 3476 if (Configuration.errorOnAutoCreate()) 3477 throw new Error("Attempt to auto-create Encounter.priority"); 3478 else if (Configuration.doAutoCreate()) 3479 this.priority = new CodeableConcept(); // cc 3480 return this.priority; 3481 } 3482 3483 public boolean hasPriority() { 3484 return this.priority != null && !this.priority.isEmpty(); 3485 } 3486 3487 /** 3488 * @param value {@link #priority} (Indicates the urgency of the encounter.) 3489 */ 3490 public Encounter setPriority(CodeableConcept value) { 3491 this.priority = value; 3492 return this; 3493 } 3494 3495 /** 3496 * @return {@link #subject} (The patient or group present at the encounter.) 3497 */ 3498 public Reference getSubject() { 3499 if (this.subject == null) 3500 if (Configuration.errorOnAutoCreate()) 3501 throw new Error("Attempt to auto-create Encounter.subject"); 3502 else if (Configuration.doAutoCreate()) 3503 this.subject = new Reference(); // cc 3504 return this.subject; 3505 } 3506 3507 public boolean hasSubject() { 3508 return this.subject != null && !this.subject.isEmpty(); 3509 } 3510 3511 /** 3512 * @param value {@link #subject} (The patient or group present at the 3513 * encounter.) 3514 */ 3515 public Encounter setSubject(Reference value) { 3516 this.subject = value; 3517 return this; 3518 } 3519 3520 /** 3521 * @return {@link #subject} The actual object that is the target of the 3522 * reference. The reference library doesn't populate this, but you can 3523 * use it to hold the resource if you resolve it. (The patient or group 3524 * present at the encounter.) 3525 */ 3526 public Resource getSubjectTarget() { 3527 return this.subjectTarget; 3528 } 3529 3530 /** 3531 * @param value {@link #subject} The actual object that is the target of the 3532 * reference. The reference library doesn't use these, but you can 3533 * use it to hold the resource if you resolve it. (The patient or 3534 * group present at the encounter.) 3535 */ 3536 public Encounter setSubjectTarget(Resource value) { 3537 this.subjectTarget = value; 3538 return this; 3539 } 3540 3541 /** 3542 * @return {@link #episodeOfCare} (Where a specific encounter should be 3543 * classified as a part of a specific episode(s) of care this field 3544 * should be used. This association can facilitate grouping of related 3545 * encounters together for a specific purpose, such as government 3546 * reporting, issue tracking, association via a common problem. The 3547 * association is recorded on the encounter as these are typically 3548 * created after the episode of care and grouped on entry rather than 3549 * editing the episode of care to append another encounter to it (the 3550 * episode of care could span years).) 3551 */ 3552 public List<Reference> getEpisodeOfCare() { 3553 if (this.episodeOfCare == null) 3554 this.episodeOfCare = new ArrayList<Reference>(); 3555 return this.episodeOfCare; 3556 } 3557 3558 /** 3559 * @return Returns a reference to <code>this</code> for easy method chaining 3560 */ 3561 public Encounter setEpisodeOfCare(List<Reference> theEpisodeOfCare) { 3562 this.episodeOfCare = theEpisodeOfCare; 3563 return this; 3564 } 3565 3566 public boolean hasEpisodeOfCare() { 3567 if (this.episodeOfCare == null) 3568 return false; 3569 for (Reference item : this.episodeOfCare) 3570 if (!item.isEmpty()) 3571 return true; 3572 return false; 3573 } 3574 3575 public Reference addEpisodeOfCare() { // 3 3576 Reference t = new Reference(); 3577 if (this.episodeOfCare == null) 3578 this.episodeOfCare = new ArrayList<Reference>(); 3579 this.episodeOfCare.add(t); 3580 return t; 3581 } 3582 3583 public Encounter addEpisodeOfCare(Reference t) { // 3 3584 if (t == null) 3585 return this; 3586 if (this.episodeOfCare == null) 3587 this.episodeOfCare = new ArrayList<Reference>(); 3588 this.episodeOfCare.add(t); 3589 return this; 3590 } 3591 3592 /** 3593 * @return The first repetition of repeating field {@link #episodeOfCare}, 3594 * creating it if it does not already exist 3595 */ 3596 public Reference getEpisodeOfCareFirstRep() { 3597 if (getEpisodeOfCare().isEmpty()) { 3598 addEpisodeOfCare(); 3599 } 3600 return getEpisodeOfCare().get(0); 3601 } 3602 3603 /** 3604 * @deprecated Use Reference#setResource(IBaseResource) instead 3605 */ 3606 @Deprecated 3607 public List<EpisodeOfCare> getEpisodeOfCareTarget() { 3608 if (this.episodeOfCareTarget == null) 3609 this.episodeOfCareTarget = new ArrayList<EpisodeOfCare>(); 3610 return this.episodeOfCareTarget; 3611 } 3612 3613 /** 3614 * @deprecated Use Reference#setResource(IBaseResource) instead 3615 */ 3616 @Deprecated 3617 public EpisodeOfCare addEpisodeOfCareTarget() { 3618 EpisodeOfCare r = new EpisodeOfCare(); 3619 if (this.episodeOfCareTarget == null) 3620 this.episodeOfCareTarget = new ArrayList<EpisodeOfCare>(); 3621 this.episodeOfCareTarget.add(r); 3622 return r; 3623 } 3624 3625 /** 3626 * @return {@link #basedOn} (The request this encounter satisfies (e.g. incoming 3627 * referral or procedure request).) 3628 */ 3629 public List<Reference> getBasedOn() { 3630 if (this.basedOn == null) 3631 this.basedOn = new ArrayList<Reference>(); 3632 return this.basedOn; 3633 } 3634 3635 /** 3636 * @return Returns a reference to <code>this</code> for easy method chaining 3637 */ 3638 public Encounter setBasedOn(List<Reference> theBasedOn) { 3639 this.basedOn = theBasedOn; 3640 return this; 3641 } 3642 3643 public boolean hasBasedOn() { 3644 if (this.basedOn == null) 3645 return false; 3646 for (Reference item : this.basedOn) 3647 if (!item.isEmpty()) 3648 return true; 3649 return false; 3650 } 3651 3652 public Reference addBasedOn() { // 3 3653 Reference t = new Reference(); 3654 if (this.basedOn == null) 3655 this.basedOn = new ArrayList<Reference>(); 3656 this.basedOn.add(t); 3657 return t; 3658 } 3659 3660 public Encounter addBasedOn(Reference t) { // 3 3661 if (t == null) 3662 return this; 3663 if (this.basedOn == null) 3664 this.basedOn = new ArrayList<Reference>(); 3665 this.basedOn.add(t); 3666 return this; 3667 } 3668 3669 /** 3670 * @return The first repetition of repeating field {@link #basedOn}, creating it 3671 * if it does not already exist 3672 */ 3673 public Reference getBasedOnFirstRep() { 3674 if (getBasedOn().isEmpty()) { 3675 addBasedOn(); 3676 } 3677 return getBasedOn().get(0); 3678 } 3679 3680 /** 3681 * @deprecated Use Reference#setResource(IBaseResource) instead 3682 */ 3683 @Deprecated 3684 public List<ServiceRequest> getBasedOnTarget() { 3685 if (this.basedOnTarget == null) 3686 this.basedOnTarget = new ArrayList<ServiceRequest>(); 3687 return this.basedOnTarget; 3688 } 3689 3690 /** 3691 * @deprecated Use Reference#setResource(IBaseResource) instead 3692 */ 3693 @Deprecated 3694 public ServiceRequest addBasedOnTarget() { 3695 ServiceRequest r = new ServiceRequest(); 3696 if (this.basedOnTarget == null) 3697 this.basedOnTarget = new ArrayList<ServiceRequest>(); 3698 this.basedOnTarget.add(r); 3699 return r; 3700 } 3701 3702 /** 3703 * @return {@link #participant} (The list of people responsible for providing 3704 * the service.) 3705 */ 3706 public List<EncounterParticipantComponent> getParticipant() { 3707 if (this.participant == null) 3708 this.participant = new ArrayList<EncounterParticipantComponent>(); 3709 return this.participant; 3710 } 3711 3712 /** 3713 * @return Returns a reference to <code>this</code> for easy method chaining 3714 */ 3715 public Encounter setParticipant(List<EncounterParticipantComponent> theParticipant) { 3716 this.participant = theParticipant; 3717 return this; 3718 } 3719 3720 public boolean hasParticipant() { 3721 if (this.participant == null) 3722 return false; 3723 for (EncounterParticipantComponent item : this.participant) 3724 if (!item.isEmpty()) 3725 return true; 3726 return false; 3727 } 3728 3729 public EncounterParticipantComponent addParticipant() { // 3 3730 EncounterParticipantComponent t = new EncounterParticipantComponent(); 3731 if (this.participant == null) 3732 this.participant = new ArrayList<EncounterParticipantComponent>(); 3733 this.participant.add(t); 3734 return t; 3735 } 3736 3737 public Encounter addParticipant(EncounterParticipantComponent t) { // 3 3738 if (t == null) 3739 return this; 3740 if (this.participant == null) 3741 this.participant = new ArrayList<EncounterParticipantComponent>(); 3742 this.participant.add(t); 3743 return this; 3744 } 3745 3746 /** 3747 * @return The first repetition of repeating field {@link #participant}, 3748 * creating it if it does not already exist 3749 */ 3750 public EncounterParticipantComponent getParticipantFirstRep() { 3751 if (getParticipant().isEmpty()) { 3752 addParticipant(); 3753 } 3754 return getParticipant().get(0); 3755 } 3756 3757 /** 3758 * @return {@link #appointment} (The appointment that scheduled this encounter.) 3759 */ 3760 public List<Reference> getAppointment() { 3761 if (this.appointment == null) 3762 this.appointment = new ArrayList<Reference>(); 3763 return this.appointment; 3764 } 3765 3766 /** 3767 * @return Returns a reference to <code>this</code> for easy method chaining 3768 */ 3769 public Encounter setAppointment(List<Reference> theAppointment) { 3770 this.appointment = theAppointment; 3771 return this; 3772 } 3773 3774 public boolean hasAppointment() { 3775 if (this.appointment == null) 3776 return false; 3777 for (Reference item : this.appointment) 3778 if (!item.isEmpty()) 3779 return true; 3780 return false; 3781 } 3782 3783 public Reference addAppointment() { // 3 3784 Reference t = new Reference(); 3785 if (this.appointment == null) 3786 this.appointment = new ArrayList<Reference>(); 3787 this.appointment.add(t); 3788 return t; 3789 } 3790 3791 public Encounter addAppointment(Reference t) { // 3 3792 if (t == null) 3793 return this; 3794 if (this.appointment == null) 3795 this.appointment = new ArrayList<Reference>(); 3796 this.appointment.add(t); 3797 return this; 3798 } 3799 3800 /** 3801 * @return The first repetition of repeating field {@link #appointment}, 3802 * creating it if it does not already exist 3803 */ 3804 public Reference getAppointmentFirstRep() { 3805 if (getAppointment().isEmpty()) { 3806 addAppointment(); 3807 } 3808 return getAppointment().get(0); 3809 } 3810 3811 /** 3812 * @deprecated Use Reference#setResource(IBaseResource) instead 3813 */ 3814 @Deprecated 3815 public List<Appointment> getAppointmentTarget() { 3816 if (this.appointmentTarget == null) 3817 this.appointmentTarget = new ArrayList<Appointment>(); 3818 return this.appointmentTarget; 3819 } 3820 3821 /** 3822 * @deprecated Use Reference#setResource(IBaseResource) instead 3823 */ 3824 @Deprecated 3825 public Appointment addAppointmentTarget() { 3826 Appointment r = new Appointment(); 3827 if (this.appointmentTarget == null) 3828 this.appointmentTarget = new ArrayList<Appointment>(); 3829 this.appointmentTarget.add(r); 3830 return r; 3831 } 3832 3833 /** 3834 * @return {@link #period} (The start and end time of the encounter.) 3835 */ 3836 public Period getPeriod() { 3837 if (this.period == null) 3838 if (Configuration.errorOnAutoCreate()) 3839 throw new Error("Attempt to auto-create Encounter.period"); 3840 else if (Configuration.doAutoCreate()) 3841 this.period = new Period(); // cc 3842 return this.period; 3843 } 3844 3845 public boolean hasPeriod() { 3846 return this.period != null && !this.period.isEmpty(); 3847 } 3848 3849 /** 3850 * @param value {@link #period} (The start and end time of the encounter.) 3851 */ 3852 public Encounter setPeriod(Period value) { 3853 this.period = value; 3854 return this; 3855 } 3856 3857 /** 3858 * @return {@link #length} (Quantity of time the encounter lasted. This excludes 3859 * the time during leaves of absence.) 3860 */ 3861 public Duration getLength() { 3862 if (this.length == null) 3863 if (Configuration.errorOnAutoCreate()) 3864 throw new Error("Attempt to auto-create Encounter.length"); 3865 else if (Configuration.doAutoCreate()) 3866 this.length = new Duration(); // cc 3867 return this.length; 3868 } 3869 3870 public boolean hasLength() { 3871 return this.length != null && !this.length.isEmpty(); 3872 } 3873 3874 /** 3875 * @param value {@link #length} (Quantity of time the encounter lasted. This 3876 * excludes the time during leaves of absence.) 3877 */ 3878 public Encounter setLength(Duration value) { 3879 this.length = value; 3880 return this; 3881 } 3882 3883 /** 3884 * @return {@link #reasonCode} (Reason the encounter takes place, expressed as a 3885 * code. For admissions, this can be used for a coded admission 3886 * diagnosis.) 3887 */ 3888 public List<CodeableConcept> getReasonCode() { 3889 if (this.reasonCode == null) 3890 this.reasonCode = new ArrayList<CodeableConcept>(); 3891 return this.reasonCode; 3892 } 3893 3894 /** 3895 * @return Returns a reference to <code>this</code> for easy method chaining 3896 */ 3897 public Encounter setReasonCode(List<CodeableConcept> theReasonCode) { 3898 this.reasonCode = theReasonCode; 3899 return this; 3900 } 3901 3902 public boolean hasReasonCode() { 3903 if (this.reasonCode == null) 3904 return false; 3905 for (CodeableConcept item : this.reasonCode) 3906 if (!item.isEmpty()) 3907 return true; 3908 return false; 3909 } 3910 3911 public CodeableConcept addReasonCode() { // 3 3912 CodeableConcept t = new CodeableConcept(); 3913 if (this.reasonCode == null) 3914 this.reasonCode = new ArrayList<CodeableConcept>(); 3915 this.reasonCode.add(t); 3916 return t; 3917 } 3918 3919 public Encounter addReasonCode(CodeableConcept t) { // 3 3920 if (t == null) 3921 return this; 3922 if (this.reasonCode == null) 3923 this.reasonCode = new ArrayList<CodeableConcept>(); 3924 this.reasonCode.add(t); 3925 return this; 3926 } 3927 3928 /** 3929 * @return The first repetition of repeating field {@link #reasonCode}, creating 3930 * it if it does not already exist 3931 */ 3932 public CodeableConcept getReasonCodeFirstRep() { 3933 if (getReasonCode().isEmpty()) { 3934 addReasonCode(); 3935 } 3936 return getReasonCode().get(0); 3937 } 3938 3939 /** 3940 * @return {@link #reasonReference} (Reason the encounter takes place, expressed 3941 * as a code. For admissions, this can be used for a coded admission 3942 * diagnosis.) 3943 */ 3944 public List<Reference> getReasonReference() { 3945 if (this.reasonReference == null) 3946 this.reasonReference = new ArrayList<Reference>(); 3947 return this.reasonReference; 3948 } 3949 3950 /** 3951 * @return Returns a reference to <code>this</code> for easy method chaining 3952 */ 3953 public Encounter setReasonReference(List<Reference> theReasonReference) { 3954 this.reasonReference = theReasonReference; 3955 return this; 3956 } 3957 3958 public boolean hasReasonReference() { 3959 if (this.reasonReference == null) 3960 return false; 3961 for (Reference item : this.reasonReference) 3962 if (!item.isEmpty()) 3963 return true; 3964 return false; 3965 } 3966 3967 public Reference addReasonReference() { // 3 3968 Reference t = new Reference(); 3969 if (this.reasonReference == null) 3970 this.reasonReference = new ArrayList<Reference>(); 3971 this.reasonReference.add(t); 3972 return t; 3973 } 3974 3975 public Encounter addReasonReference(Reference t) { // 3 3976 if (t == null) 3977 return this; 3978 if (this.reasonReference == null) 3979 this.reasonReference = new ArrayList<Reference>(); 3980 this.reasonReference.add(t); 3981 return this; 3982 } 3983 3984 /** 3985 * @return The first repetition of repeating field {@link #reasonReference}, 3986 * creating it if it does not already exist 3987 */ 3988 public Reference getReasonReferenceFirstRep() { 3989 if (getReasonReference().isEmpty()) { 3990 addReasonReference(); 3991 } 3992 return getReasonReference().get(0); 3993 } 3994 3995 /** 3996 * @deprecated Use Reference#setResource(IBaseResource) instead 3997 */ 3998 @Deprecated 3999 public List<Resource> getReasonReferenceTarget() { 4000 if (this.reasonReferenceTarget == null) 4001 this.reasonReferenceTarget = new ArrayList<Resource>(); 4002 return this.reasonReferenceTarget; 4003 } 4004 4005 /** 4006 * @return {@link #diagnosis} (The list of diagnosis relevant to this 4007 * encounter.) 4008 */ 4009 public List<DiagnosisComponent> getDiagnosis() { 4010 if (this.diagnosis == null) 4011 this.diagnosis = new ArrayList<DiagnosisComponent>(); 4012 return this.diagnosis; 4013 } 4014 4015 /** 4016 * @return Returns a reference to <code>this</code> for easy method chaining 4017 */ 4018 public Encounter setDiagnosis(List<DiagnosisComponent> theDiagnosis) { 4019 this.diagnosis = theDiagnosis; 4020 return this; 4021 } 4022 4023 public boolean hasDiagnosis() { 4024 if (this.diagnosis == null) 4025 return false; 4026 for (DiagnosisComponent item : this.diagnosis) 4027 if (!item.isEmpty()) 4028 return true; 4029 return false; 4030 } 4031 4032 public DiagnosisComponent addDiagnosis() { // 3 4033 DiagnosisComponent t = new DiagnosisComponent(); 4034 if (this.diagnosis == null) 4035 this.diagnosis = new ArrayList<DiagnosisComponent>(); 4036 this.diagnosis.add(t); 4037 return t; 4038 } 4039 4040 public Encounter addDiagnosis(DiagnosisComponent t) { // 3 4041 if (t == null) 4042 return this; 4043 if (this.diagnosis == null) 4044 this.diagnosis = new ArrayList<DiagnosisComponent>(); 4045 this.diagnosis.add(t); 4046 return this; 4047 } 4048 4049 /** 4050 * @return The first repetition of repeating field {@link #diagnosis}, creating 4051 * it if it does not already exist 4052 */ 4053 public DiagnosisComponent getDiagnosisFirstRep() { 4054 if (getDiagnosis().isEmpty()) { 4055 addDiagnosis(); 4056 } 4057 return getDiagnosis().get(0); 4058 } 4059 4060 /** 4061 * @return {@link #account} (The set of accounts that may be used for billing 4062 * for this Encounter.) 4063 */ 4064 public List<Reference> getAccount() { 4065 if (this.account == null) 4066 this.account = new ArrayList<Reference>(); 4067 return this.account; 4068 } 4069 4070 /** 4071 * @return Returns a reference to <code>this</code> for easy method chaining 4072 */ 4073 public Encounter setAccount(List<Reference> theAccount) { 4074 this.account = theAccount; 4075 return this; 4076 } 4077 4078 public boolean hasAccount() { 4079 if (this.account == null) 4080 return false; 4081 for (Reference item : this.account) 4082 if (!item.isEmpty()) 4083 return true; 4084 return false; 4085 } 4086 4087 public Reference addAccount() { // 3 4088 Reference t = new Reference(); 4089 if (this.account == null) 4090 this.account = new ArrayList<Reference>(); 4091 this.account.add(t); 4092 return t; 4093 } 4094 4095 public Encounter addAccount(Reference t) { // 3 4096 if (t == null) 4097 return this; 4098 if (this.account == null) 4099 this.account = new ArrayList<Reference>(); 4100 this.account.add(t); 4101 return this; 4102 } 4103 4104 /** 4105 * @return The first repetition of repeating field {@link #account}, creating it 4106 * if it does not already exist 4107 */ 4108 public Reference getAccountFirstRep() { 4109 if (getAccount().isEmpty()) { 4110 addAccount(); 4111 } 4112 return getAccount().get(0); 4113 } 4114 4115 /** 4116 * @deprecated Use Reference#setResource(IBaseResource) instead 4117 */ 4118 @Deprecated 4119 public List<Account> getAccountTarget() { 4120 if (this.accountTarget == null) 4121 this.accountTarget = new ArrayList<Account>(); 4122 return this.accountTarget; 4123 } 4124 4125 /** 4126 * @deprecated Use Reference#setResource(IBaseResource) instead 4127 */ 4128 @Deprecated 4129 public Account addAccountTarget() { 4130 Account r = new Account(); 4131 if (this.accountTarget == null) 4132 this.accountTarget = new ArrayList<Account>(); 4133 this.accountTarget.add(r); 4134 return r; 4135 } 4136 4137 /** 4138 * @return {@link #hospitalization} (Details about the admission to a healthcare 4139 * service.) 4140 */ 4141 public EncounterHospitalizationComponent getHospitalization() { 4142 if (this.hospitalization == null) 4143 if (Configuration.errorOnAutoCreate()) 4144 throw new Error("Attempt to auto-create Encounter.hospitalization"); 4145 else if (Configuration.doAutoCreate()) 4146 this.hospitalization = new EncounterHospitalizationComponent(); // cc 4147 return this.hospitalization; 4148 } 4149 4150 public boolean hasHospitalization() { 4151 return this.hospitalization != null && !this.hospitalization.isEmpty(); 4152 } 4153 4154 /** 4155 * @param value {@link #hospitalization} (Details about the admission to a 4156 * healthcare service.) 4157 */ 4158 public Encounter setHospitalization(EncounterHospitalizationComponent value) { 4159 this.hospitalization = value; 4160 return this; 4161 } 4162 4163 /** 4164 * @return {@link #location} (List of locations where the patient has been 4165 * during this encounter.) 4166 */ 4167 public List<EncounterLocationComponent> getLocation() { 4168 if (this.location == null) 4169 this.location = new ArrayList<EncounterLocationComponent>(); 4170 return this.location; 4171 } 4172 4173 /** 4174 * @return Returns a reference to <code>this</code> for easy method chaining 4175 */ 4176 public Encounter setLocation(List<EncounterLocationComponent> theLocation) { 4177 this.location = theLocation; 4178 return this; 4179 } 4180 4181 public boolean hasLocation() { 4182 if (this.location == null) 4183 return false; 4184 for (EncounterLocationComponent item : this.location) 4185 if (!item.isEmpty()) 4186 return true; 4187 return false; 4188 } 4189 4190 public EncounterLocationComponent addLocation() { // 3 4191 EncounterLocationComponent t = new EncounterLocationComponent(); 4192 if (this.location == null) 4193 this.location = new ArrayList<EncounterLocationComponent>(); 4194 this.location.add(t); 4195 return t; 4196 } 4197 4198 public Encounter addLocation(EncounterLocationComponent t) { // 3 4199 if (t == null) 4200 return this; 4201 if (this.location == null) 4202 this.location = new ArrayList<EncounterLocationComponent>(); 4203 this.location.add(t); 4204 return this; 4205 } 4206 4207 /** 4208 * @return The first repetition of repeating field {@link #location}, creating 4209 * it if it does not already exist 4210 */ 4211 public EncounterLocationComponent getLocationFirstRep() { 4212 if (getLocation().isEmpty()) { 4213 addLocation(); 4214 } 4215 return getLocation().get(0); 4216 } 4217 4218 /** 4219 * @return {@link #serviceProvider} (The organization that is primarily 4220 * responsible for this Encounter's services. This MAY be the same as 4221 * the organization on the Patient record, however it could be 4222 * different, such as if the actor performing the services was from an 4223 * external organization (which may be billed seperately) for an 4224 * external consultation. Refer to the example bundle showing an 4225 * abbreviated set of Encounters for a colonoscopy.) 4226 */ 4227 public Reference getServiceProvider() { 4228 if (this.serviceProvider == null) 4229 if (Configuration.errorOnAutoCreate()) 4230 throw new Error("Attempt to auto-create Encounter.serviceProvider"); 4231 else if (Configuration.doAutoCreate()) 4232 this.serviceProvider = new Reference(); // cc 4233 return this.serviceProvider; 4234 } 4235 4236 public boolean hasServiceProvider() { 4237 return this.serviceProvider != null && !this.serviceProvider.isEmpty(); 4238 } 4239 4240 /** 4241 * @param value {@link #serviceProvider} (The organization that is primarily 4242 * responsible for this Encounter's services. This MAY be the same 4243 * as the organization on the Patient record, however it could be 4244 * different, such as if the actor performing the services was from 4245 * an external organization (which may be billed seperately) for an 4246 * external consultation. Refer to the example bundle showing an 4247 * abbreviated set of Encounters for a colonoscopy.) 4248 */ 4249 public Encounter setServiceProvider(Reference value) { 4250 this.serviceProvider = value; 4251 return this; 4252 } 4253 4254 /** 4255 * @return {@link #serviceProvider} The actual object that is the target of the 4256 * reference. The reference library doesn't populate this, but you can 4257 * use it to hold the resource if you resolve it. (The organization that 4258 * is primarily responsible for this Encounter's services. This MAY be 4259 * the same as the organization on the Patient record, however it could 4260 * be different, such as if the actor performing the services was from 4261 * an external organization (which may be billed seperately) for an 4262 * external consultation. Refer to the example bundle showing an 4263 * abbreviated set of Encounters for a colonoscopy.) 4264 */ 4265 public Organization getServiceProviderTarget() { 4266 if (this.serviceProviderTarget == null) 4267 if (Configuration.errorOnAutoCreate()) 4268 throw new Error("Attempt to auto-create Encounter.serviceProvider"); 4269 else if (Configuration.doAutoCreate()) 4270 this.serviceProviderTarget = new Organization(); // aa 4271 return this.serviceProviderTarget; 4272 } 4273 4274 /** 4275 * @param value {@link #serviceProvider} The actual object that is the target of 4276 * the reference. The reference library doesn't use these, but you 4277 * can use it to hold the resource if you resolve it. (The 4278 * organization that is primarily responsible for this Encounter's 4279 * services. This MAY be the same as the organization on the 4280 * Patient record, however it could be different, such as if the 4281 * actor performing the services was from an external organization 4282 * (which may be billed seperately) for an external consultation. 4283 * Refer to the example bundle showing an abbreviated set of 4284 * Encounters for a colonoscopy.) 4285 */ 4286 public Encounter setServiceProviderTarget(Organization value) { 4287 this.serviceProviderTarget = value; 4288 return this; 4289 } 4290 4291 /** 4292 * @return {@link #partOf} (Another Encounter of which this encounter is a part 4293 * of (administratively or in time).) 4294 */ 4295 public Reference getPartOf() { 4296 if (this.partOf == null) 4297 if (Configuration.errorOnAutoCreate()) 4298 throw new Error("Attempt to auto-create Encounter.partOf"); 4299 else if (Configuration.doAutoCreate()) 4300 this.partOf = new Reference(); // cc 4301 return this.partOf; 4302 } 4303 4304 public boolean hasPartOf() { 4305 return this.partOf != null && !this.partOf.isEmpty(); 4306 } 4307 4308 /** 4309 * @param value {@link #partOf} (Another Encounter of which this encounter is a 4310 * part of (administratively or in time).) 4311 */ 4312 public Encounter setPartOf(Reference value) { 4313 this.partOf = value; 4314 return this; 4315 } 4316 4317 /** 4318 * @return {@link #partOf} The actual object that is the target of the 4319 * reference. The reference library doesn't populate this, but you can 4320 * use it to hold the resource if you resolve it. (Another Encounter of 4321 * which this encounter is a part of (administratively or in time).) 4322 */ 4323 public Encounter getPartOfTarget() { 4324 if (this.partOfTarget == null) 4325 if (Configuration.errorOnAutoCreate()) 4326 throw new Error("Attempt to auto-create Encounter.partOf"); 4327 else if (Configuration.doAutoCreate()) 4328 this.partOfTarget = new Encounter(); // aa 4329 return this.partOfTarget; 4330 } 4331 4332 /** 4333 * @param value {@link #partOf} The actual object that is the target of the 4334 * reference. The reference library doesn't use these, but you can 4335 * use it to hold the resource if you resolve it. (Another 4336 * Encounter of which this encounter is a part of (administratively 4337 * or in time).) 4338 */ 4339 public Encounter setPartOfTarget(Encounter value) { 4340 this.partOfTarget = value; 4341 return this; 4342 } 4343 4344 protected void listChildren(List<Property> children) { 4345 super.listChildren(children); 4346 children.add(new Property("identifier", "Identifier", "Identifier(s) by which this encounter is known.", 0, 4347 java.lang.Integer.MAX_VALUE, identifier)); 4348 children.add(new Property("status", "code", 4349 "planned | arrived | triaged | in-progress | onleave | finished | cancelled +.", 0, 1, status)); 4350 children.add(new Property("statusHistory", "", 4351 "The status history permits the encounter resource to contain the status history without needing to read through the historical versions of the resource, or even have the server store them.", 4352 0, java.lang.Integer.MAX_VALUE, statusHistory)); 4353 children.add(new Property("class", "Coding", 4354 "Concepts representing classification of patient encounter such as ambulatory (outpatient), inpatient, emergency, home health or others due to local variations.", 4355 0, 1, class_)); 4356 children.add(new Property("classHistory", "", 4357 "The class history permits the tracking of the encounters transitions without needing to go through the resource history. This would be used for a case where an admission starts of as an emergency encounter, then transitions into an inpatient scenario. Doing this and not restarting a new encounter ensures that any lab/diagnostic results can more easily follow the patient and not require re-processing and not get lost or cancelled during a kind of discharge from emergency to inpatient.", 4358 0, java.lang.Integer.MAX_VALUE, classHistory)); 4359 children.add(new Property("type", "CodeableConcept", 4360 "Specific type of encounter (e.g. e-mail consultation, surgical day-care, skilled nursing, rehabilitation).", 0, 4361 java.lang.Integer.MAX_VALUE, type)); 4362 children.add(new Property("serviceType", "CodeableConcept", 4363 "Broad categorization of the service that is to be provided (e.g. cardiology).", 0, 1, serviceType)); 4364 children 4365 .add(new Property("priority", "CodeableConcept", "Indicates the urgency of the encounter.", 0, 1, priority)); 4366 children.add(new Property("subject", "Reference(Patient|Group)", "The patient or group present at the encounter.", 4367 0, 1, subject)); 4368 children.add(new Property("episodeOfCare", "Reference(EpisodeOfCare)", 4369 "Where a specific encounter should be classified as a part of a specific episode(s) of care this field should be used. This association can facilitate grouping of related encounters together for a specific purpose, such as government reporting, issue tracking, association via a common problem. The association is recorded on the encounter as these are typically created after the episode of care and grouped on entry rather than editing the episode of care to append another encounter to it (the episode of care could span years).", 4370 0, java.lang.Integer.MAX_VALUE, episodeOfCare)); 4371 children.add(new Property("basedOn", "Reference(ServiceRequest)", 4372 "The request this encounter satisfies (e.g. incoming referral or procedure request).", 0, 4373 java.lang.Integer.MAX_VALUE, basedOn)); 4374 children.add(new Property("participant", "", "The list of people responsible for providing the service.", 0, 4375 java.lang.Integer.MAX_VALUE, participant)); 4376 children.add(new Property("appointment", "Reference(Appointment)", "The appointment that scheduled this encounter.", 4377 0, java.lang.Integer.MAX_VALUE, appointment)); 4378 children.add(new Property("period", "Period", "The start and end time of the encounter.", 0, 1, period)); 4379 children.add(new Property("length", "Duration", 4380 "Quantity of time the encounter lasted. This excludes the time during leaves of absence.", 0, 1, length)); 4381 children.add(new Property("reasonCode", "CodeableConcept", 4382 "Reason the encounter takes place, expressed as a code. For admissions, this can be used for a coded admission diagnosis.", 4383 0, java.lang.Integer.MAX_VALUE, reasonCode)); 4384 children.add(new Property("reasonReference", 4385 "Reference(Condition|Procedure|Observation|ImmunizationRecommendation)", 4386 "Reason the encounter takes place, expressed as a code. For admissions, this can be used for a coded admission diagnosis.", 4387 0, java.lang.Integer.MAX_VALUE, reasonReference)); 4388 children.add(new Property("diagnosis", "", "The list of diagnosis relevant to this encounter.", 0, 4389 java.lang.Integer.MAX_VALUE, diagnosis)); 4390 children.add(new Property("account", "Reference(Account)", 4391 "The set of accounts that may be used for billing for this Encounter.", 0, java.lang.Integer.MAX_VALUE, 4392 account)); 4393 children.add(new Property("hospitalization", "", "Details about the admission to a healthcare service.", 0, 1, 4394 hospitalization)); 4395 children.add(new Property("location", "", "List of locations where the patient has been during this encounter.", 0, 4396 java.lang.Integer.MAX_VALUE, location)); 4397 children.add(new Property("serviceProvider", "Reference(Organization)", 4398 "The organization that is primarily responsible for this Encounter's services. This MAY be the same as the organization on the Patient record, however it could be different, such as if the actor performing the services was from an external organization (which may be billed seperately) for an external consultation. Refer to the example bundle showing an abbreviated set of Encounters for a colonoscopy.", 4399 0, 1, serviceProvider)); 4400 children.add(new Property("partOf", "Reference(Encounter)", 4401 "Another Encounter of which this encounter is a part of (administratively or in time).", 0, 1, partOf)); 4402 } 4403 4404 @Override 4405 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 4406 switch (_hash) { 4407 case -1618432855: 4408 /* identifier */ return new Property("identifier", "Identifier", 4409 "Identifier(s) by which this encounter is known.", 0, java.lang.Integer.MAX_VALUE, identifier); 4410 case -892481550: 4411 /* status */ return new Property("status", "code", 4412 "planned | arrived | triaged | in-progress | onleave | finished | cancelled +.", 0, 1, status); 4413 case -986695614: 4414 /* statusHistory */ return new Property("statusHistory", "", 4415 "The status history permits the encounter resource to contain the status history without needing to read through the historical versions of the resource, or even have the server store them.", 4416 0, java.lang.Integer.MAX_VALUE, statusHistory); 4417 case 94742904: 4418 /* class */ return new Property("class", "Coding", 4419 "Concepts representing classification of patient encounter such as ambulatory (outpatient), inpatient, emergency, home health or others due to local variations.", 4420 0, 1, class_); 4421 case 962575356: 4422 /* classHistory */ return new Property("classHistory", "", 4423 "The class history permits the tracking of the encounters transitions without needing to go through the resource history. This would be used for a case where an admission starts of as an emergency encounter, then transitions into an inpatient scenario. Doing this and not restarting a new encounter ensures that any lab/diagnostic results can more easily follow the patient and not require re-processing and not get lost or cancelled during a kind of discharge from emergency to inpatient.", 4424 0, java.lang.Integer.MAX_VALUE, classHistory); 4425 case 3575610: 4426 /* type */ return new Property("type", "CodeableConcept", 4427 "Specific type of encounter (e.g. e-mail consultation, surgical day-care, skilled nursing, rehabilitation).", 4428 0, java.lang.Integer.MAX_VALUE, type); 4429 case -1928370289: 4430 /* serviceType */ return new Property("serviceType", "CodeableConcept", 4431 "Broad categorization of the service that is to be provided (e.g. cardiology).", 0, 1, serviceType); 4432 case -1165461084: 4433 /* priority */ return new Property("priority", "CodeableConcept", "Indicates the urgency of the encounter.", 0, 1, 4434 priority); 4435 case -1867885268: 4436 /* subject */ return new Property("subject", "Reference(Patient|Group)", 4437 "The patient or group present at the encounter.", 0, 1, subject); 4438 case -1892140189: 4439 /* episodeOfCare */ return new Property("episodeOfCare", "Reference(EpisodeOfCare)", 4440 "Where a specific encounter should be classified as a part of a specific episode(s) of care this field should be used. This association can facilitate grouping of related encounters together for a specific purpose, such as government reporting, issue tracking, association via a common problem. The association is recorded on the encounter as these are typically created after the episode of care and grouped on entry rather than editing the episode of care to append another encounter to it (the episode of care could span years).", 4441 0, java.lang.Integer.MAX_VALUE, episodeOfCare); 4442 case -332612366: 4443 /* basedOn */ return new Property("basedOn", "Reference(ServiceRequest)", 4444 "The request this encounter satisfies (e.g. incoming referral or procedure request).", 0, 4445 java.lang.Integer.MAX_VALUE, basedOn); 4446 case 767422259: 4447 /* participant */ return new Property("participant", "", 4448 "The list of people responsible for providing the service.", 0, java.lang.Integer.MAX_VALUE, participant); 4449 case -1474995297: 4450 /* appointment */ return new Property("appointment", "Reference(Appointment)", 4451 "The appointment that scheduled this encounter.", 0, java.lang.Integer.MAX_VALUE, appointment); 4452 case -991726143: 4453 /* period */ return new Property("period", "Period", "The start and end time of the encounter.", 0, 1, period); 4454 case -1106363674: 4455 /* length */ return new Property("length", "Duration", 4456 "Quantity of time the encounter lasted. This excludes the time during leaves of absence.", 0, 1, length); 4457 case 722137681: 4458 /* reasonCode */ return new Property("reasonCode", "CodeableConcept", 4459 "Reason the encounter takes place, expressed as a code. For admissions, this can be used for a coded admission diagnosis.", 4460 0, java.lang.Integer.MAX_VALUE, reasonCode); 4461 case -1146218137: 4462 /* reasonReference */ return new Property("reasonReference", 4463 "Reference(Condition|Procedure|Observation|ImmunizationRecommendation)", 4464 "Reason the encounter takes place, expressed as a code. For admissions, this can be used for a coded admission diagnosis.", 4465 0, java.lang.Integer.MAX_VALUE, reasonReference); 4466 case 1196993265: 4467 /* diagnosis */ return new Property("diagnosis", "", "The list of diagnosis relevant to this encounter.", 0, 4468 java.lang.Integer.MAX_VALUE, diagnosis); 4469 case -1177318867: 4470 /* account */ return new Property("account", "Reference(Account)", 4471 "The set of accounts that may be used for billing for this Encounter.", 0, java.lang.Integer.MAX_VALUE, 4472 account); 4473 case 1057894634: 4474 /* hospitalization */ return new Property("hospitalization", "", 4475 "Details about the admission to a healthcare service.", 0, 1, hospitalization); 4476 case 1901043637: 4477 /* location */ return new Property("location", "", 4478 "List of locations where the patient has been during this encounter.", 0, java.lang.Integer.MAX_VALUE, 4479 location); 4480 case 243182534: 4481 /* serviceProvider */ return new Property("serviceProvider", "Reference(Organization)", 4482 "The organization that is primarily responsible for this Encounter's services. This MAY be the same as the organization on the Patient record, however it could be different, such as if the actor performing the services was from an external organization (which may be billed seperately) for an external consultation. Refer to the example bundle showing an abbreviated set of Encounters for a colonoscopy.", 4483 0, 1, serviceProvider); 4484 case -995410646: 4485 /* partOf */ return new Property("partOf", "Reference(Encounter)", 4486 "Another Encounter of which this encounter is a part of (administratively or in time).", 0, 1, partOf); 4487 default: 4488 return super.getNamedProperty(_hash, _name, _checkValid); 4489 } 4490 4491 } 4492 4493 @Override 4494 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 4495 switch (hash) { 4496 case -1618432855: 4497 /* identifier */ return this.identifier == null ? new Base[0] 4498 : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 4499 case -892481550: 4500 /* status */ return this.status == null ? new Base[0] : new Base[] { this.status }; // Enumeration<EncounterStatus> 4501 case -986695614: 4502 /* statusHistory */ return this.statusHistory == null ? new Base[0] 4503 : this.statusHistory.toArray(new Base[this.statusHistory.size()]); // StatusHistoryComponent 4504 case 94742904: 4505 /* class */ return this.class_ == null ? new Base[0] : new Base[] { this.class_ }; // Coding 4506 case 962575356: 4507 /* classHistory */ return this.classHistory == null ? new Base[0] 4508 : this.classHistory.toArray(new Base[this.classHistory.size()]); // ClassHistoryComponent 4509 case 3575610: 4510 /* type */ return this.type == null ? new Base[0] : this.type.toArray(new Base[this.type.size()]); // CodeableConcept 4511 case -1928370289: 4512 /* serviceType */ return this.serviceType == null ? new Base[0] : new Base[] { this.serviceType }; // CodeableConcept 4513 case -1165461084: 4514 /* priority */ return this.priority == null ? new Base[0] : new Base[] { this.priority }; // CodeableConcept 4515 case -1867885268: 4516 /* subject */ return this.subject == null ? new Base[0] : new Base[] { this.subject }; // Reference 4517 case -1892140189: 4518 /* episodeOfCare */ return this.episodeOfCare == null ? new Base[0] 4519 : this.episodeOfCare.toArray(new Base[this.episodeOfCare.size()]); // Reference 4520 case -332612366: 4521 /* basedOn */ return this.basedOn == null ? new Base[0] : this.basedOn.toArray(new Base[this.basedOn.size()]); // Reference 4522 case 767422259: 4523 /* participant */ return this.participant == null ? new Base[0] 4524 : this.participant.toArray(new Base[this.participant.size()]); // EncounterParticipantComponent 4525 case -1474995297: 4526 /* appointment */ return this.appointment == null ? new Base[0] 4527 : this.appointment.toArray(new Base[this.appointment.size()]); // Reference 4528 case -991726143: 4529 /* period */ return this.period == null ? new Base[0] : new Base[] { this.period }; // Period 4530 case -1106363674: 4531 /* length */ return this.length == null ? new Base[0] : new Base[] { this.length }; // Duration 4532 case 722137681: 4533 /* reasonCode */ return this.reasonCode == null ? new Base[0] 4534 : this.reasonCode.toArray(new Base[this.reasonCode.size()]); // CodeableConcept 4535 case -1146218137: 4536 /* reasonReference */ return this.reasonReference == null ? new Base[0] 4537 : this.reasonReference.toArray(new Base[this.reasonReference.size()]); // Reference 4538 case 1196993265: 4539 /* diagnosis */ return this.diagnosis == null ? new Base[0] 4540 : this.diagnosis.toArray(new Base[this.diagnosis.size()]); // DiagnosisComponent 4541 case -1177318867: 4542 /* account */ return this.account == null ? new Base[0] : this.account.toArray(new Base[this.account.size()]); // Reference 4543 case 1057894634: 4544 /* hospitalization */ return this.hospitalization == null ? new Base[0] : new Base[] { this.hospitalization }; // EncounterHospitalizationComponent 4545 case 1901043637: 4546 /* location */ return this.location == null ? new Base[0] : this.location.toArray(new Base[this.location.size()]); // EncounterLocationComponent 4547 case 243182534: 4548 /* serviceProvider */ return this.serviceProvider == null ? new Base[0] : new Base[] { this.serviceProvider }; // Reference 4549 case -995410646: 4550 /* partOf */ return this.partOf == null ? new Base[0] : new Base[] { this.partOf }; // Reference 4551 default: 4552 return super.getProperty(hash, name, checkValid); 4553 } 4554 4555 } 4556 4557 @Override 4558 public Base setProperty(int hash, String name, Base value) throws FHIRException { 4559 switch (hash) { 4560 case -1618432855: // identifier 4561 this.getIdentifier().add(castToIdentifier(value)); // Identifier 4562 return value; 4563 case -892481550: // status 4564 value = new EncounterStatusEnumFactory().fromType(castToCode(value)); 4565 this.status = (Enumeration) value; // Enumeration<EncounterStatus> 4566 return value; 4567 case -986695614: // statusHistory 4568 this.getStatusHistory().add((StatusHistoryComponent) value); // StatusHistoryComponent 4569 return value; 4570 case 94742904: // class 4571 this.class_ = castToCoding(value); // Coding 4572 return value; 4573 case 962575356: // classHistory 4574 this.getClassHistory().add((ClassHistoryComponent) value); // ClassHistoryComponent 4575 return value; 4576 case 3575610: // type 4577 this.getType().add(castToCodeableConcept(value)); // CodeableConcept 4578 return value; 4579 case -1928370289: // serviceType 4580 this.serviceType = castToCodeableConcept(value); // CodeableConcept 4581 return value; 4582 case -1165461084: // priority 4583 this.priority = castToCodeableConcept(value); // CodeableConcept 4584 return value; 4585 case -1867885268: // subject 4586 this.subject = castToReference(value); // Reference 4587 return value; 4588 case -1892140189: // episodeOfCare 4589 this.getEpisodeOfCare().add(castToReference(value)); // Reference 4590 return value; 4591 case -332612366: // basedOn 4592 this.getBasedOn().add(castToReference(value)); // Reference 4593 return value; 4594 case 767422259: // participant 4595 this.getParticipant().add((EncounterParticipantComponent) value); // EncounterParticipantComponent 4596 return value; 4597 case -1474995297: // appointment 4598 this.getAppointment().add(castToReference(value)); // Reference 4599 return value; 4600 case -991726143: // period 4601 this.period = castToPeriod(value); // Period 4602 return value; 4603 case -1106363674: // length 4604 this.length = castToDuration(value); // Duration 4605 return value; 4606 case 722137681: // reasonCode 4607 this.getReasonCode().add(castToCodeableConcept(value)); // CodeableConcept 4608 return value; 4609 case -1146218137: // reasonReference 4610 this.getReasonReference().add(castToReference(value)); // Reference 4611 return value; 4612 case 1196993265: // diagnosis 4613 this.getDiagnosis().add((DiagnosisComponent) value); // DiagnosisComponent 4614 return value; 4615 case -1177318867: // account 4616 this.getAccount().add(castToReference(value)); // Reference 4617 return value; 4618 case 1057894634: // hospitalization 4619 this.hospitalization = (EncounterHospitalizationComponent) value; // EncounterHospitalizationComponent 4620 return value; 4621 case 1901043637: // location 4622 this.getLocation().add((EncounterLocationComponent) value); // EncounterLocationComponent 4623 return value; 4624 case 243182534: // serviceProvider 4625 this.serviceProvider = castToReference(value); // Reference 4626 return value; 4627 case -995410646: // partOf 4628 this.partOf = castToReference(value); // Reference 4629 return value; 4630 default: 4631 return super.setProperty(hash, name, value); 4632 } 4633 4634 } 4635 4636 @Override 4637 public Base setProperty(String name, Base value) throws FHIRException { 4638 if (name.equals("identifier")) { 4639 this.getIdentifier().add(castToIdentifier(value)); 4640 } else if (name.equals("status")) { 4641 value = new EncounterStatusEnumFactory().fromType(castToCode(value)); 4642 this.status = (Enumeration) value; // Enumeration<EncounterStatus> 4643 } else if (name.equals("statusHistory")) { 4644 this.getStatusHistory().add((StatusHistoryComponent) value); 4645 } else if (name.equals("class")) { 4646 this.class_ = castToCoding(value); // Coding 4647 } else if (name.equals("classHistory")) { 4648 this.getClassHistory().add((ClassHistoryComponent) value); 4649 } else if (name.equals("type")) { 4650 this.getType().add(castToCodeableConcept(value)); 4651 } else if (name.equals("serviceType")) { 4652 this.serviceType = castToCodeableConcept(value); // CodeableConcept 4653 } else if (name.equals("priority")) { 4654 this.priority = castToCodeableConcept(value); // CodeableConcept 4655 } else if (name.equals("subject")) { 4656 this.subject = castToReference(value); // Reference 4657 } else if (name.equals("episodeOfCare")) { 4658 this.getEpisodeOfCare().add(castToReference(value)); 4659 } else if (name.equals("basedOn")) { 4660 this.getBasedOn().add(castToReference(value)); 4661 } else if (name.equals("participant")) { 4662 this.getParticipant().add((EncounterParticipantComponent) value); 4663 } else if (name.equals("appointment")) { 4664 this.getAppointment().add(castToReference(value)); 4665 } else if (name.equals("period")) { 4666 this.period = castToPeriod(value); // Period 4667 } else if (name.equals("length")) { 4668 this.length = castToDuration(value); // Duration 4669 } else if (name.equals("reasonCode")) { 4670 this.getReasonCode().add(castToCodeableConcept(value)); 4671 } else if (name.equals("reasonReference")) { 4672 this.getReasonReference().add(castToReference(value)); 4673 } else if (name.equals("diagnosis")) { 4674 this.getDiagnosis().add((DiagnosisComponent) value); 4675 } else if (name.equals("account")) { 4676 this.getAccount().add(castToReference(value)); 4677 } else if (name.equals("hospitalization")) { 4678 this.hospitalization = (EncounterHospitalizationComponent) value; // EncounterHospitalizationComponent 4679 } else if (name.equals("location")) { 4680 this.getLocation().add((EncounterLocationComponent) value); 4681 } else if (name.equals("serviceProvider")) { 4682 this.serviceProvider = castToReference(value); // Reference 4683 } else if (name.equals("partOf")) { 4684 this.partOf = castToReference(value); // Reference 4685 } else 4686 return super.setProperty(name, value); 4687 return value; 4688 } 4689 4690 @Override 4691 public Base makeProperty(int hash, String name) throws FHIRException { 4692 switch (hash) { 4693 case -1618432855: 4694 return addIdentifier(); 4695 case -892481550: 4696 return getStatusElement(); 4697 case -986695614: 4698 return addStatusHistory(); 4699 case 94742904: 4700 return getClass_(); 4701 case 962575356: 4702 return addClassHistory(); 4703 case 3575610: 4704 return addType(); 4705 case -1928370289: 4706 return getServiceType(); 4707 case -1165461084: 4708 return getPriority(); 4709 case -1867885268: 4710 return getSubject(); 4711 case -1892140189: 4712 return addEpisodeOfCare(); 4713 case -332612366: 4714 return addBasedOn(); 4715 case 767422259: 4716 return addParticipant(); 4717 case -1474995297: 4718 return addAppointment(); 4719 case -991726143: 4720 return getPeriod(); 4721 case -1106363674: 4722 return getLength(); 4723 case 722137681: 4724 return addReasonCode(); 4725 case -1146218137: 4726 return addReasonReference(); 4727 case 1196993265: 4728 return addDiagnosis(); 4729 case -1177318867: 4730 return addAccount(); 4731 case 1057894634: 4732 return getHospitalization(); 4733 case 1901043637: 4734 return addLocation(); 4735 case 243182534: 4736 return getServiceProvider(); 4737 case -995410646: 4738 return getPartOf(); 4739 default: 4740 return super.makeProperty(hash, name); 4741 } 4742 4743 } 4744 4745 @Override 4746 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 4747 switch (hash) { 4748 case -1618432855: 4749 /* identifier */ return new String[] { "Identifier" }; 4750 case -892481550: 4751 /* status */ return new String[] { "code" }; 4752 case -986695614: 4753 /* statusHistory */ return new String[] {}; 4754 case 94742904: 4755 /* class */ return new String[] { "Coding" }; 4756 case 962575356: 4757 /* classHistory */ return new String[] {}; 4758 case 3575610: 4759 /* type */ return new String[] { "CodeableConcept" }; 4760 case -1928370289: 4761 /* serviceType */ return new String[] { "CodeableConcept" }; 4762 case -1165461084: 4763 /* priority */ return new String[] { "CodeableConcept" }; 4764 case -1867885268: 4765 /* subject */ return new String[] { "Reference" }; 4766 case -1892140189: 4767 /* episodeOfCare */ return new String[] { "Reference" }; 4768 case -332612366: 4769 /* basedOn */ return new String[] { "Reference" }; 4770 case 767422259: 4771 /* participant */ return new String[] {}; 4772 case -1474995297: 4773 /* appointment */ return new String[] { "Reference" }; 4774 case -991726143: 4775 /* period */ return new String[] { "Period" }; 4776 case -1106363674: 4777 /* length */ return new String[] { "Duration" }; 4778 case 722137681: 4779 /* reasonCode */ return new String[] { "CodeableConcept" }; 4780 case -1146218137: 4781 /* reasonReference */ return new String[] { "Reference" }; 4782 case 1196993265: 4783 /* diagnosis */ return new String[] {}; 4784 case -1177318867: 4785 /* account */ return new String[] { "Reference" }; 4786 case 1057894634: 4787 /* hospitalization */ return new String[] {}; 4788 case 1901043637: 4789 /* location */ return new String[] {}; 4790 case 243182534: 4791 /* serviceProvider */ return new String[] { "Reference" }; 4792 case -995410646: 4793 /* partOf */ return new String[] { "Reference" }; 4794 default: 4795 return super.getTypesForProperty(hash, name); 4796 } 4797 4798 } 4799 4800 @Override 4801 public Base addChild(String name) throws FHIRException { 4802 if (name.equals("identifier")) { 4803 return addIdentifier(); 4804 } else if (name.equals("status")) { 4805 throw new FHIRException("Cannot call addChild on a singleton property Encounter.status"); 4806 } else if (name.equals("statusHistory")) { 4807 return addStatusHistory(); 4808 } else if (name.equals("class")) { 4809 this.class_ = new Coding(); 4810 return this.class_; 4811 } else if (name.equals("classHistory")) { 4812 return addClassHistory(); 4813 } else if (name.equals("type")) { 4814 return addType(); 4815 } else if (name.equals("serviceType")) { 4816 this.serviceType = new CodeableConcept(); 4817 return this.serviceType; 4818 } else if (name.equals("priority")) { 4819 this.priority = new CodeableConcept(); 4820 return this.priority; 4821 } else if (name.equals("subject")) { 4822 this.subject = new Reference(); 4823 return this.subject; 4824 } else if (name.equals("episodeOfCare")) { 4825 return addEpisodeOfCare(); 4826 } else if (name.equals("basedOn")) { 4827 return addBasedOn(); 4828 } else if (name.equals("participant")) { 4829 return addParticipant(); 4830 } else if (name.equals("appointment")) { 4831 return addAppointment(); 4832 } else if (name.equals("period")) { 4833 this.period = new Period(); 4834 return this.period; 4835 } else if (name.equals("length")) { 4836 this.length = new Duration(); 4837 return this.length; 4838 } else if (name.equals("reasonCode")) { 4839 return addReasonCode(); 4840 } else if (name.equals("reasonReference")) { 4841 return addReasonReference(); 4842 } else if (name.equals("diagnosis")) { 4843 return addDiagnosis(); 4844 } else if (name.equals("account")) { 4845 return addAccount(); 4846 } else if (name.equals("hospitalization")) { 4847 this.hospitalization = new EncounterHospitalizationComponent(); 4848 return this.hospitalization; 4849 } else if (name.equals("location")) { 4850 return addLocation(); 4851 } else if (name.equals("serviceProvider")) { 4852 this.serviceProvider = new Reference(); 4853 return this.serviceProvider; 4854 } else if (name.equals("partOf")) { 4855 this.partOf = new Reference(); 4856 return this.partOf; 4857 } else 4858 return super.addChild(name); 4859 } 4860 4861 public String fhirType() { 4862 return "Encounter"; 4863 4864 } 4865 4866 public Encounter copy() { 4867 Encounter dst = new Encounter(); 4868 copyValues(dst); 4869 return dst; 4870 } 4871 4872 public void copyValues(Encounter dst) { 4873 super.copyValues(dst); 4874 if (identifier != null) { 4875 dst.identifier = new ArrayList<Identifier>(); 4876 for (Identifier i : identifier) 4877 dst.identifier.add(i.copy()); 4878 } 4879 ; 4880 dst.status = status == null ? null : status.copy(); 4881 if (statusHistory != null) { 4882 dst.statusHistory = new ArrayList<StatusHistoryComponent>(); 4883 for (StatusHistoryComponent i : statusHistory) 4884 dst.statusHistory.add(i.copy()); 4885 } 4886 ; 4887 dst.class_ = class_ == null ? null : class_.copy(); 4888 if (classHistory != null) { 4889 dst.classHistory = new ArrayList<ClassHistoryComponent>(); 4890 for (ClassHistoryComponent i : classHistory) 4891 dst.classHistory.add(i.copy()); 4892 } 4893 ; 4894 if (type != null) { 4895 dst.type = new ArrayList<CodeableConcept>(); 4896 for (CodeableConcept i : type) 4897 dst.type.add(i.copy()); 4898 } 4899 ; 4900 dst.serviceType = serviceType == null ? null : serviceType.copy(); 4901 dst.priority = priority == null ? null : priority.copy(); 4902 dst.subject = subject == null ? null : subject.copy(); 4903 if (episodeOfCare != null) { 4904 dst.episodeOfCare = new ArrayList<Reference>(); 4905 for (Reference i : episodeOfCare) 4906 dst.episodeOfCare.add(i.copy()); 4907 } 4908 ; 4909 if (basedOn != null) { 4910 dst.basedOn = new ArrayList<Reference>(); 4911 for (Reference i : basedOn) 4912 dst.basedOn.add(i.copy()); 4913 } 4914 ; 4915 if (participant != null) { 4916 dst.participant = new ArrayList<EncounterParticipantComponent>(); 4917 for (EncounterParticipantComponent i : participant) 4918 dst.participant.add(i.copy()); 4919 } 4920 ; 4921 if (appointment != null) { 4922 dst.appointment = new ArrayList<Reference>(); 4923 for (Reference i : appointment) 4924 dst.appointment.add(i.copy()); 4925 } 4926 ; 4927 dst.period = period == null ? null : period.copy(); 4928 dst.length = length == null ? null : length.copy(); 4929 if (reasonCode != null) { 4930 dst.reasonCode = new ArrayList<CodeableConcept>(); 4931 for (CodeableConcept i : reasonCode) 4932 dst.reasonCode.add(i.copy()); 4933 } 4934 ; 4935 if (reasonReference != null) { 4936 dst.reasonReference = new ArrayList<Reference>(); 4937 for (Reference i : reasonReference) 4938 dst.reasonReference.add(i.copy()); 4939 } 4940 ; 4941 if (diagnosis != null) { 4942 dst.diagnosis = new ArrayList<DiagnosisComponent>(); 4943 for (DiagnosisComponent i : diagnosis) 4944 dst.diagnosis.add(i.copy()); 4945 } 4946 ; 4947 if (account != null) { 4948 dst.account = new ArrayList<Reference>(); 4949 for (Reference i : account) 4950 dst.account.add(i.copy()); 4951 } 4952 ; 4953 dst.hospitalization = hospitalization == null ? null : hospitalization.copy(); 4954 if (location != null) { 4955 dst.location = new ArrayList<EncounterLocationComponent>(); 4956 for (EncounterLocationComponent i : location) 4957 dst.location.add(i.copy()); 4958 } 4959 ; 4960 dst.serviceProvider = serviceProvider == null ? null : serviceProvider.copy(); 4961 dst.partOf = partOf == null ? null : partOf.copy(); 4962 } 4963 4964 protected Encounter typedCopy() { 4965 return copy(); 4966 } 4967 4968 @Override 4969 public boolean equalsDeep(Base other_) { 4970 if (!super.equalsDeep(other_)) 4971 return false; 4972 if (!(other_ instanceof Encounter)) 4973 return false; 4974 Encounter o = (Encounter) other_; 4975 return compareDeep(identifier, o.identifier, true) && compareDeep(status, o.status, true) 4976 && compareDeep(statusHistory, o.statusHistory, true) && compareDeep(class_, o.class_, true) 4977 && compareDeep(classHistory, o.classHistory, true) && compareDeep(type, o.type, true) 4978 && compareDeep(serviceType, o.serviceType, true) && compareDeep(priority, o.priority, true) 4979 && compareDeep(subject, o.subject, true) && compareDeep(episodeOfCare, o.episodeOfCare, true) 4980 && compareDeep(basedOn, o.basedOn, true) && compareDeep(participant, o.participant, true) 4981 && compareDeep(appointment, o.appointment, true) && compareDeep(period, o.period, true) 4982 && compareDeep(length, o.length, true) && compareDeep(reasonCode, o.reasonCode, true) 4983 && compareDeep(reasonReference, o.reasonReference, true) && compareDeep(diagnosis, o.diagnosis, true) 4984 && compareDeep(account, o.account, true) && compareDeep(hospitalization, o.hospitalization, true) 4985 && compareDeep(location, o.location, true) && compareDeep(serviceProvider, o.serviceProvider, true) 4986 && compareDeep(partOf, o.partOf, true); 4987 } 4988 4989 @Override 4990 public boolean equalsShallow(Base other_) { 4991 if (!super.equalsShallow(other_)) 4992 return false; 4993 if (!(other_ instanceof Encounter)) 4994 return false; 4995 Encounter o = (Encounter) other_; 4996 return compareValues(status, o.status, true); 4997 } 4998 4999 public boolean isEmpty() { 5000 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, status, statusHistory, class_, 5001 classHistory, type, serviceType, priority, subject, episodeOfCare, basedOn, participant, appointment, period, 5002 length, reasonCode, reasonReference, diagnosis, account, hospitalization, location, serviceProvider, partOf); 5003 } 5004 5005 @Override 5006 public ResourceType getResourceType() { 5007 return ResourceType.Encounter; 5008 } 5009 5010 /** 5011 * Search parameter: <b>date</b> 5012 * <p> 5013 * Description: <b>A date within the period the Encounter lasted</b><br> 5014 * Type: <b>date</b><br> 5015 * Path: <b>Encounter.period</b><br> 5016 * </p> 5017 */ 5018 @SearchParamDefinition(name = "date", path = "Encounter.period", description = "A date within the period the Encounter lasted", type = "date") 5019 public static final String SP_DATE = "date"; 5020 /** 5021 * <b>Fluent Client</b> search parameter constant for <b>date</b> 5022 * <p> 5023 * Description: <b>A date within the period the Encounter lasted</b><br> 5024 * Type: <b>date</b><br> 5025 * Path: <b>Encounter.period</b><br> 5026 * </p> 5027 */ 5028 public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam( 5029 SP_DATE); 5030 5031 /** 5032 * Search parameter: <b>identifier</b> 5033 * <p> 5034 * Description: <b>Identifier(s) by which this encounter is known</b><br> 5035 * Type: <b>token</b><br> 5036 * Path: <b>Encounter.identifier</b><br> 5037 * </p> 5038 */ 5039 @SearchParamDefinition(name = "identifier", path = "Encounter.identifier", description = "Identifier(s) by which this encounter is known", type = "token") 5040 public static final String SP_IDENTIFIER = "identifier"; 5041 /** 5042 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 5043 * <p> 5044 * Description: <b>Identifier(s) by which this encounter is known</b><br> 5045 * Type: <b>token</b><br> 5046 * Path: <b>Encounter.identifier</b><br> 5047 * </p> 5048 */ 5049 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam( 5050 SP_IDENTIFIER); 5051 5052 /** 5053 * Search parameter: <b>participant-type</b> 5054 * <p> 5055 * Description: <b>Role of participant in encounter</b><br> 5056 * Type: <b>token</b><br> 5057 * Path: <b>Encounter.participant.type</b><br> 5058 * </p> 5059 */ 5060 @SearchParamDefinition(name = "participant-type", path = "Encounter.participant.type", description = "Role of participant in encounter", type = "token") 5061 public static final String SP_PARTICIPANT_TYPE = "participant-type"; 5062 /** 5063 * <b>Fluent Client</b> search parameter constant for <b>participant-type</b> 5064 * <p> 5065 * Description: <b>Role of participant in encounter</b><br> 5066 * Type: <b>token</b><br> 5067 * Path: <b>Encounter.participant.type</b><br> 5068 * </p> 5069 */ 5070 public static final ca.uhn.fhir.rest.gclient.TokenClientParam PARTICIPANT_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam( 5071 SP_PARTICIPANT_TYPE); 5072 5073 /** 5074 * Search parameter: <b>practitioner</b> 5075 * <p> 5076 * Description: <b>Persons involved in the encounter other than the 5077 * patient</b><br> 5078 * Type: <b>reference</b><br> 5079 * Path: <b>Encounter.participant.individual</b><br> 5080 * </p> 5081 */ 5082 @SearchParamDefinition(name = "practitioner", path = "Encounter.participant.individual.where(resolve() is Practitioner)", description = "Persons involved in the encounter other than the patient", type = "reference", providesMembershipIn = { 5083 @ca.uhn.fhir.model.api.annotation.Compartment(name = "Practitioner") }, target = { Practitioner.class }) 5084 public static final String SP_PRACTITIONER = "practitioner"; 5085 /** 5086 * <b>Fluent Client</b> search parameter constant for <b>practitioner</b> 5087 * <p> 5088 * Description: <b>Persons involved in the encounter other than the 5089 * patient</b><br> 5090 * Type: <b>reference</b><br> 5091 * Path: <b>Encounter.participant.individual</b><br> 5092 * </p> 5093 */ 5094 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PRACTITIONER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam( 5095 SP_PRACTITIONER); 5096 5097 /** 5098 * Constant for fluent queries to be used to add include statements. Specifies 5099 * the path value of "<b>Encounter:practitioner</b>". 5100 */ 5101 public static final ca.uhn.fhir.model.api.Include INCLUDE_PRACTITIONER = new ca.uhn.fhir.model.api.Include( 5102 "Encounter:practitioner").toLocked(); 5103 5104 /** 5105 * Search parameter: <b>subject</b> 5106 * <p> 5107 * Description: <b>The patient or group present at the encounter</b><br> 5108 * Type: <b>reference</b><br> 5109 * Path: <b>Encounter.subject</b><br> 5110 * </p> 5111 */ 5112 @SearchParamDefinition(name = "subject", path = "Encounter.subject", description = "The patient or group present at the encounter", type = "reference", target = { 5113 Group.class, Patient.class }) 5114 public static final String SP_SUBJECT = "subject"; 5115 /** 5116 * <b>Fluent Client</b> search parameter constant for <b>subject</b> 5117 * <p> 5118 * Description: <b>The patient or group present at the encounter</b><br> 5119 * Type: <b>reference</b><br> 5120 * Path: <b>Encounter.subject</b><br> 5121 * </p> 5122 */ 5123 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SUBJECT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam( 5124 SP_SUBJECT); 5125 5126 /** 5127 * Constant for fluent queries to be used to add include statements. Specifies 5128 * the path value of "<b>Encounter:subject</b>". 5129 */ 5130 public static final ca.uhn.fhir.model.api.Include INCLUDE_SUBJECT = new ca.uhn.fhir.model.api.Include( 5131 "Encounter:subject").toLocked(); 5132 5133 /** 5134 * Search parameter: <b>length</b> 5135 * <p> 5136 * Description: <b>Length of encounter in days</b><br> 5137 * Type: <b>quantity</b><br> 5138 * Path: <b>Encounter.length</b><br> 5139 * </p> 5140 */ 5141 @SearchParamDefinition(name = "length", path = "Encounter.length", description = "Length of encounter in days", type = "quantity") 5142 public static final String SP_LENGTH = "length"; 5143 /** 5144 * <b>Fluent Client</b> search parameter constant for <b>length</b> 5145 * <p> 5146 * Description: <b>Length of encounter in days</b><br> 5147 * Type: <b>quantity</b><br> 5148 * Path: <b>Encounter.length</b><br> 5149 * </p> 5150 */ 5151 public static final ca.uhn.fhir.rest.gclient.QuantityClientParam LENGTH = new ca.uhn.fhir.rest.gclient.QuantityClientParam( 5152 SP_LENGTH); 5153 5154 /** 5155 * Search parameter: <b>episode-of-care</b> 5156 * <p> 5157 * Description: <b>Episode(s) of care that this encounter should be recorded 5158 * against</b><br> 5159 * Type: <b>reference</b><br> 5160 * Path: <b>Encounter.episodeOfCare</b><br> 5161 * </p> 5162 */ 5163 @SearchParamDefinition(name = "episode-of-care", path = "Encounter.episodeOfCare", description = "Episode(s) of care that this encounter should be recorded against", type = "reference", target = { 5164 EpisodeOfCare.class }) 5165 public static final String SP_EPISODE_OF_CARE = "episode-of-care"; 5166 /** 5167 * <b>Fluent Client</b> search parameter constant for <b>episode-of-care</b> 5168 * <p> 5169 * Description: <b>Episode(s) of care that this encounter should be recorded 5170 * against</b><br> 5171 * Type: <b>reference</b><br> 5172 * Path: <b>Encounter.episodeOfCare</b><br> 5173 * </p> 5174 */ 5175 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam EPISODE_OF_CARE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam( 5176 SP_EPISODE_OF_CARE); 5177 5178 /** 5179 * Constant for fluent queries to be used to add include statements. Specifies 5180 * the path value of "<b>Encounter:episode-of-care</b>". 5181 */ 5182 public static final ca.uhn.fhir.model.api.Include INCLUDE_EPISODE_OF_CARE = new ca.uhn.fhir.model.api.Include( 5183 "Encounter:episode-of-care").toLocked(); 5184 5185 /** 5186 * Search parameter: <b>diagnosis</b> 5187 * <p> 5188 * Description: <b>The diagnosis or procedure relevant to the encounter</b><br> 5189 * Type: <b>reference</b><br> 5190 * Path: <b>Encounter.diagnosis.condition</b><br> 5191 * </p> 5192 */ 5193 @SearchParamDefinition(name = "diagnosis", path = "Encounter.diagnosis.condition", description = "The diagnosis or procedure relevant to the encounter", type = "reference", target = { 5194 Condition.class, Procedure.class }) 5195 public static final String SP_DIAGNOSIS = "diagnosis"; 5196 /** 5197 * <b>Fluent Client</b> search parameter constant for <b>diagnosis</b> 5198 * <p> 5199 * Description: <b>The diagnosis or procedure relevant to the encounter</b><br> 5200 * Type: <b>reference</b><br> 5201 * Path: <b>Encounter.diagnosis.condition</b><br> 5202 * </p> 5203 */ 5204 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam DIAGNOSIS = new ca.uhn.fhir.rest.gclient.ReferenceClientParam( 5205 SP_DIAGNOSIS); 5206 5207 /** 5208 * Constant for fluent queries to be used to add include statements. Specifies 5209 * the path value of "<b>Encounter:diagnosis</b>". 5210 */ 5211 public static final ca.uhn.fhir.model.api.Include INCLUDE_DIAGNOSIS = new ca.uhn.fhir.model.api.Include( 5212 "Encounter:diagnosis").toLocked(); 5213 5214 /** 5215 * Search parameter: <b>appointment</b> 5216 * <p> 5217 * Description: <b>The appointment that scheduled this encounter</b><br> 5218 * Type: <b>reference</b><br> 5219 * Path: <b>Encounter.appointment</b><br> 5220 * </p> 5221 */ 5222 @SearchParamDefinition(name = "appointment", path = "Encounter.appointment", description = "The appointment that scheduled this encounter", type = "reference", target = { 5223 Appointment.class }) 5224 public static final String SP_APPOINTMENT = "appointment"; 5225 /** 5226 * <b>Fluent Client</b> search parameter constant for <b>appointment</b> 5227 * <p> 5228 * Description: <b>The appointment that scheduled this encounter</b><br> 5229 * Type: <b>reference</b><br> 5230 * Path: <b>Encounter.appointment</b><br> 5231 * </p> 5232 */ 5233 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam APPOINTMENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam( 5234 SP_APPOINTMENT); 5235 5236 /** 5237 * Constant for fluent queries to be used to add include statements. Specifies 5238 * the path value of "<b>Encounter:appointment</b>". 5239 */ 5240 public static final ca.uhn.fhir.model.api.Include INCLUDE_APPOINTMENT = new ca.uhn.fhir.model.api.Include( 5241 "Encounter:appointment").toLocked(); 5242 5243 /** 5244 * Search parameter: <b>part-of</b> 5245 * <p> 5246 * Description: <b>Another Encounter this encounter is part of</b><br> 5247 * Type: <b>reference</b><br> 5248 * Path: <b>Encounter.partOf</b><br> 5249 * </p> 5250 */ 5251 @SearchParamDefinition(name = "part-of", path = "Encounter.partOf", description = "Another Encounter this encounter is part of", type = "reference", target = { 5252 Encounter.class }) 5253 public static final String SP_PART_OF = "part-of"; 5254 /** 5255 * <b>Fluent Client</b> search parameter constant for <b>part-of</b> 5256 * <p> 5257 * Description: <b>Another Encounter this encounter is part of</b><br> 5258 * Type: <b>reference</b><br> 5259 * Path: <b>Encounter.partOf</b><br> 5260 * </p> 5261 */ 5262 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PART_OF = new ca.uhn.fhir.rest.gclient.ReferenceClientParam( 5263 SP_PART_OF); 5264 5265 /** 5266 * Constant for fluent queries to be used to add include statements. Specifies 5267 * the path value of "<b>Encounter:part-of</b>". 5268 */ 5269 public static final ca.uhn.fhir.model.api.Include INCLUDE_PART_OF = new ca.uhn.fhir.model.api.Include( 5270 "Encounter:part-of").toLocked(); 5271 5272 /** 5273 * Search parameter: <b>type</b> 5274 * <p> 5275 * Description: <b>Specific type of encounter</b><br> 5276 * Type: <b>token</b><br> 5277 * Path: <b>Encounter.type</b><br> 5278 * </p> 5279 */ 5280 @SearchParamDefinition(name = "type", path = "Encounter.type", description = "Specific type of encounter", type = "token") 5281 public static final String SP_TYPE = "type"; 5282 /** 5283 * <b>Fluent Client</b> search parameter constant for <b>type</b> 5284 * <p> 5285 * Description: <b>Specific type of encounter</b><br> 5286 * Type: <b>token</b><br> 5287 * Path: <b>Encounter.type</b><br> 5288 * </p> 5289 */ 5290 public static final ca.uhn.fhir.rest.gclient.TokenClientParam TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam( 5291 SP_TYPE); 5292 5293 /** 5294 * Search parameter: <b>reason-code</b> 5295 * <p> 5296 * Description: <b>Coded reason the encounter takes place</b><br> 5297 * Type: <b>token</b><br> 5298 * Path: <b>Encounter.reasonCode</b><br> 5299 * </p> 5300 */ 5301 @SearchParamDefinition(name = "reason-code", path = "Encounter.reasonCode", description = "Coded reason the encounter takes place", type = "token") 5302 public static final String SP_REASON_CODE = "reason-code"; 5303 /** 5304 * <b>Fluent Client</b> search parameter constant for <b>reason-code</b> 5305 * <p> 5306 * Description: <b>Coded reason the encounter takes place</b><br> 5307 * Type: <b>token</b><br> 5308 * Path: <b>Encounter.reasonCode</b><br> 5309 * </p> 5310 */ 5311 public static final ca.uhn.fhir.rest.gclient.TokenClientParam REASON_CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam( 5312 SP_REASON_CODE); 5313 5314 /** 5315 * Search parameter: <b>participant</b> 5316 * <p> 5317 * Description: <b>Persons involved in the encounter other than the 5318 * patient</b><br> 5319 * Type: <b>reference</b><br> 5320 * Path: <b>Encounter.participant.individual</b><br> 5321 * </p> 5322 */ 5323 @SearchParamDefinition(name = "participant", path = "Encounter.participant.individual", description = "Persons involved in the encounter other than the patient", type = "reference", providesMembershipIn = { 5324 @ca.uhn.fhir.model.api.annotation.Compartment(name = "Practitioner"), 5325 @ca.uhn.fhir.model.api.annotation.Compartment(name = "RelatedPerson") }, target = { Practitioner.class, 5326 PractitionerRole.class, RelatedPerson.class }) 5327 public static final String SP_PARTICIPANT = "participant"; 5328 /** 5329 * <b>Fluent Client</b> search parameter constant for <b>participant</b> 5330 * <p> 5331 * Description: <b>Persons involved in the encounter other than the 5332 * patient</b><br> 5333 * Type: <b>reference</b><br> 5334 * Path: <b>Encounter.participant.individual</b><br> 5335 * </p> 5336 */ 5337 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PARTICIPANT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam( 5338 SP_PARTICIPANT); 5339 5340 /** 5341 * Constant for fluent queries to be used to add include statements. Specifies 5342 * the path value of "<b>Encounter:participant</b>". 5343 */ 5344 public static final ca.uhn.fhir.model.api.Include INCLUDE_PARTICIPANT = new ca.uhn.fhir.model.api.Include( 5345 "Encounter:participant").toLocked(); 5346 5347 /** 5348 * Search parameter: <b>based-on</b> 5349 * <p> 5350 * Description: <b>The ServiceRequest that initiated this encounter</b><br> 5351 * Type: <b>reference</b><br> 5352 * Path: <b>Encounter.basedOn</b><br> 5353 * </p> 5354 */ 5355 @SearchParamDefinition(name = "based-on", path = "Encounter.basedOn", description = "The ServiceRequest that initiated this encounter", type = "reference", target = { 5356 ServiceRequest.class }) 5357 public static final String SP_BASED_ON = "based-on"; 5358 /** 5359 * <b>Fluent Client</b> search parameter constant for <b>based-on</b> 5360 * <p> 5361 * Description: <b>The ServiceRequest that initiated this encounter</b><br> 5362 * Type: <b>reference</b><br> 5363 * Path: <b>Encounter.basedOn</b><br> 5364 * </p> 5365 */ 5366 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam BASED_ON = new ca.uhn.fhir.rest.gclient.ReferenceClientParam( 5367 SP_BASED_ON); 5368 5369 /** 5370 * Constant for fluent queries to be used to add include statements. Specifies 5371 * the path value of "<b>Encounter:based-on</b>". 5372 */ 5373 public static final ca.uhn.fhir.model.api.Include INCLUDE_BASED_ON = new ca.uhn.fhir.model.api.Include( 5374 "Encounter:based-on").toLocked(); 5375 5376 /** 5377 * Search parameter: <b>patient</b> 5378 * <p> 5379 * Description: <b>The patient or group present at the encounter</b><br> 5380 * Type: <b>reference</b><br> 5381 * Path: <b>Encounter.subject</b><br> 5382 * </p> 5383 */ 5384 @SearchParamDefinition(name = "patient", path = "Encounter.subject.where(resolve() is Patient)", description = "The patient or group present at the encounter", type = "reference", providesMembershipIn = { 5385 @ca.uhn.fhir.model.api.annotation.Compartment(name = "Patient") }, target = { Patient.class }) 5386 public static final String SP_PATIENT = "patient"; 5387 /** 5388 * <b>Fluent Client</b> search parameter constant for <b>patient</b> 5389 * <p> 5390 * Description: <b>The patient or group present at the encounter</b><br> 5391 * Type: <b>reference</b><br> 5392 * Path: <b>Encounter.subject</b><br> 5393 * </p> 5394 */ 5395 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam( 5396 SP_PATIENT); 5397 5398 /** 5399 * Constant for fluent queries to be used to add include statements. Specifies 5400 * the path value of "<b>Encounter:patient</b>". 5401 */ 5402 public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include( 5403 "Encounter:patient").toLocked(); 5404 5405 /** 5406 * Search parameter: <b>reason-reference</b> 5407 * <p> 5408 * Description: <b>Reason the encounter takes place (reference)</b><br> 5409 * Type: <b>reference</b><br> 5410 * Path: <b>Encounter.reasonReference</b><br> 5411 * </p> 5412 */ 5413 @SearchParamDefinition(name = "reason-reference", path = "Encounter.reasonReference", description = "Reason the encounter takes place (reference)", type = "reference", target = { 5414 Condition.class, ImmunizationRecommendation.class, Observation.class, Procedure.class }) 5415 public static final String SP_REASON_REFERENCE = "reason-reference"; 5416 /** 5417 * <b>Fluent Client</b> search parameter constant for <b>reason-reference</b> 5418 * <p> 5419 * Description: <b>Reason the encounter takes place (reference)</b><br> 5420 * Type: <b>reference</b><br> 5421 * Path: <b>Encounter.reasonReference</b><br> 5422 * </p> 5423 */ 5424 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam REASON_REFERENCE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam( 5425 SP_REASON_REFERENCE); 5426 5427 /** 5428 * Constant for fluent queries to be used to add include statements. Specifies 5429 * the path value of "<b>Encounter:reason-reference</b>". 5430 */ 5431 public static final ca.uhn.fhir.model.api.Include INCLUDE_REASON_REFERENCE = new ca.uhn.fhir.model.api.Include( 5432 "Encounter:reason-reference").toLocked(); 5433 5434 /** 5435 * Search parameter: <b>location-period</b> 5436 * <p> 5437 * Description: <b>Time period during which the patient was present at the 5438 * location</b><br> 5439 * Type: <b>date</b><br> 5440 * Path: <b>Encounter.location.period</b><br> 5441 * </p> 5442 */ 5443 @SearchParamDefinition(name = "location-period", path = "Encounter.location.period", description = "Time period during which the patient was present at the location", type = "date") 5444 public static final String SP_LOCATION_PERIOD = "location-period"; 5445 /** 5446 * <b>Fluent Client</b> search parameter constant for <b>location-period</b> 5447 * <p> 5448 * Description: <b>Time period during which the patient was present at the 5449 * location</b><br> 5450 * Type: <b>date</b><br> 5451 * Path: <b>Encounter.location.period</b><br> 5452 * </p> 5453 */ 5454 public static final ca.uhn.fhir.rest.gclient.DateClientParam LOCATION_PERIOD = new ca.uhn.fhir.rest.gclient.DateClientParam( 5455 SP_LOCATION_PERIOD); 5456 5457 /** 5458 * Search parameter: <b>location</b> 5459 * <p> 5460 * Description: <b>Location the encounter takes place</b><br> 5461 * Type: <b>reference</b><br> 5462 * Path: <b>Encounter.location.location</b><br> 5463 * </p> 5464 */ 5465 @SearchParamDefinition(name = "location", path = "Encounter.location.location", description = "Location the encounter takes place", type = "reference", target = { 5466 Location.class }) 5467 public static final String SP_LOCATION = "location"; 5468 /** 5469 * <b>Fluent Client</b> search parameter constant for <b>location</b> 5470 * <p> 5471 * Description: <b>Location the encounter takes place</b><br> 5472 * Type: <b>reference</b><br> 5473 * Path: <b>Encounter.location.location</b><br> 5474 * </p> 5475 */ 5476 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam LOCATION = new ca.uhn.fhir.rest.gclient.ReferenceClientParam( 5477 SP_LOCATION); 5478 5479 /** 5480 * Constant for fluent queries to be used to add include statements. Specifies 5481 * the path value of "<b>Encounter:location</b>". 5482 */ 5483 public static final ca.uhn.fhir.model.api.Include INCLUDE_LOCATION = new ca.uhn.fhir.model.api.Include( 5484 "Encounter:location").toLocked(); 5485 5486 /** 5487 * Search parameter: <b>service-provider</b> 5488 * <p> 5489 * Description: <b>The organization (facility) responsible for this 5490 * encounter</b><br> 5491 * Type: <b>reference</b><br> 5492 * Path: <b>Encounter.serviceProvider</b><br> 5493 * </p> 5494 */ 5495 @SearchParamDefinition(name = "service-provider", path = "Encounter.serviceProvider", description = "The organization (facility) responsible for this encounter", type = "reference", target = { 5496 Organization.class }) 5497 public static final String SP_SERVICE_PROVIDER = "service-provider"; 5498 /** 5499 * <b>Fluent Client</b> search parameter constant for <b>service-provider</b> 5500 * <p> 5501 * Description: <b>The organization (facility) responsible for this 5502 * encounter</b><br> 5503 * Type: <b>reference</b><br> 5504 * Path: <b>Encounter.serviceProvider</b><br> 5505 * </p> 5506 */ 5507 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SERVICE_PROVIDER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam( 5508 SP_SERVICE_PROVIDER); 5509 5510 /** 5511 * Constant for fluent queries to be used to add include statements. Specifies 5512 * the path value of "<b>Encounter:service-provider</b>". 5513 */ 5514 public static final ca.uhn.fhir.model.api.Include INCLUDE_SERVICE_PROVIDER = new ca.uhn.fhir.model.api.Include( 5515 "Encounter:service-provider").toLocked(); 5516 5517 /** 5518 * Search parameter: <b>special-arrangement</b> 5519 * <p> 5520 * Description: <b>Wheelchair, translator, stretcher, etc.</b><br> 5521 * Type: <b>token</b><br> 5522 * Path: <b>Encounter.hospitalization.specialArrangement</b><br> 5523 * </p> 5524 */ 5525 @SearchParamDefinition(name = "special-arrangement", path = "Encounter.hospitalization.specialArrangement", description = "Wheelchair, translator, stretcher, etc.", type = "token") 5526 public static final String SP_SPECIAL_ARRANGEMENT = "special-arrangement"; 5527 /** 5528 * <b>Fluent Client</b> search parameter constant for <b>special-arrangement</b> 5529 * <p> 5530 * Description: <b>Wheelchair, translator, stretcher, etc.</b><br> 5531 * Type: <b>token</b><br> 5532 * Path: <b>Encounter.hospitalization.specialArrangement</b><br> 5533 * </p> 5534 */ 5535 public static final ca.uhn.fhir.rest.gclient.TokenClientParam SPECIAL_ARRANGEMENT = new ca.uhn.fhir.rest.gclient.TokenClientParam( 5536 SP_SPECIAL_ARRANGEMENT); 5537 5538 /** 5539 * Search parameter: <b>class</b> 5540 * <p> 5541 * Description: <b>Classification of patient encounter</b><br> 5542 * Type: <b>token</b><br> 5543 * Path: <b>Encounter.class</b><br> 5544 * </p> 5545 */ 5546 @SearchParamDefinition(name = "class", path = "Encounter.class", description = "Classification of patient encounter", type = "token") 5547 public static final String SP_CLASS = "class"; 5548 /** 5549 * <b>Fluent Client</b> search parameter constant for <b>class</b> 5550 * <p> 5551 * Description: <b>Classification of patient encounter</b><br> 5552 * Type: <b>token</b><br> 5553 * Path: <b>Encounter.class</b><br> 5554 * </p> 5555 */ 5556 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CLASS = new ca.uhn.fhir.rest.gclient.TokenClientParam( 5557 SP_CLASS); 5558 5559 /** 5560 * Search parameter: <b>account</b> 5561 * <p> 5562 * Description: <b>The set of accounts that may be used for billing for this 5563 * Encounter</b><br> 5564 * Type: <b>reference</b><br> 5565 * Path: <b>Encounter.account</b><br> 5566 * </p> 5567 */ 5568 @SearchParamDefinition(name = "account", path = "Encounter.account", description = "The set of accounts that may be used for billing for this Encounter", type = "reference", target = { 5569 Account.class }) 5570 public static final String SP_ACCOUNT = "account"; 5571 /** 5572 * <b>Fluent Client</b> search parameter constant for <b>account</b> 5573 * <p> 5574 * Description: <b>The set of accounts that may be used for billing for this 5575 * Encounter</b><br> 5576 * Type: <b>reference</b><br> 5577 * Path: <b>Encounter.account</b><br> 5578 * </p> 5579 */ 5580 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ACCOUNT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam( 5581 SP_ACCOUNT); 5582 5583 /** 5584 * Constant for fluent queries to be used to add include statements. Specifies 5585 * the path value of "<b>Encounter:account</b>". 5586 */ 5587 public static final ca.uhn.fhir.model.api.Include INCLUDE_ACCOUNT = new ca.uhn.fhir.model.api.Include( 5588 "Encounter:account").toLocked(); 5589 5590 /** 5591 * Search parameter: <b>status</b> 5592 * <p> 5593 * Description: <b>planned | arrived | triaged | in-progress | onleave | 5594 * finished | cancelled +</b><br> 5595 * Type: <b>token</b><br> 5596 * Path: <b>Encounter.status</b><br> 5597 * </p> 5598 */ 5599 @SearchParamDefinition(name = "status", path = "Encounter.status", description = "planned | arrived | triaged | in-progress | onleave | finished | cancelled +", type = "token") 5600 public static final String SP_STATUS = "status"; 5601 /** 5602 * <b>Fluent Client</b> search parameter constant for <b>status</b> 5603 * <p> 5604 * Description: <b>planned | arrived | triaged | in-progress | onleave | 5605 * finished | cancelled +</b><br> 5606 * Type: <b>token</b><br> 5607 * Path: <b>Encounter.status</b><br> 5608 * </p> 5609 */ 5610 public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam( 5611 SP_STATUS); 5612 5613}