001package org.hl7.fhir.r4.model; 002 003/*- 004 * #%L 005 * org.hl7.fhir.r4 006 * %% 007 * Copyright (C) 2014 - 2019 Health Level 7 008 * %% 009 * Licensed under the Apache License, Version 2.0 (the "License"); 010 * you may not use this file except in compliance with the License. 011 * You may obtain a copy of the License at 012 * 013 * http://www.apache.org/licenses/LICENSE-2.0 014 * 015 * Unless required by applicable law or agreed to in writing, software 016 * distributed under the License is distributed on an "AS IS" BASIS, 017 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 018 * See the License for the specific language governing permissions and 019 * limitations under the License. 020 * #L% 021 */ 022 023/* 024 Copyright (c) 2011+, HL7, Inc. 025 All rights reserved. 026 027 Redistribution and use in source and binary forms, with or without modification, 028 are permitted provided that the following conditions are met: 029 030 * Redistributions of source code must retain the above copyright notice, this 031 list of conditions and the following disclaimer. 032 * Redistributions in binary form must reproduce the above copyright notice, 033 this list of conditions and the following disclaimer in the documentation 034 and/or other materials provided with the distribution. 035 * Neither the name of HL7 nor the names of its contributors may be used to 036 endorse or promote products derived from this software without specific 037 prior written permission. 038 039 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 040 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 041 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 042 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 043 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 044 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 045 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 046 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 047 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 048 POSSIBILITY OF SUCH DAMAGE. 049 050*/ 051 052// Generated on Thu, Dec 13, 2018 14:07+1100 for FHIR v4.0.0 053import java.util.ArrayList; 054import java.util.Date; 055import java.util.List; 056 057import org.hl7.fhir.exceptions.FHIRException; 058import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 059 060import ca.uhn.fhir.model.api.annotation.Block; 061import ca.uhn.fhir.model.api.annotation.Child; 062import ca.uhn.fhir.model.api.annotation.Description; 063import ca.uhn.fhir.model.api.annotation.ResourceDef; 064import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 065/** 066 * An occurrence of information being transmitted; e.g. an alert that was sent to a responsible provider, a public health agency that was notified about a reportable condition. 067 */ 068@ResourceDef(name="Communication", profile="http://hl7.org/fhir/StructureDefinition/Communication") 069public class Communication extends DomainResource { 070 071 public enum CommunicationStatus { 072 /** 073 * The core event has not started yet, but some staging activities have begun (e.g. surgical suite preparation). Preparation stages may be tracked for billing purposes. 074 */ 075 PREPARATION, 076 /** 077 * The event is currently occurring. 078 */ 079 INPROGRESS, 080 /** 081 * The event was terminated prior to any activity beyond preparation. I.e. The 'main' activity has not yet begun. The boundary between preparatory and the 'main' activity is context-specific. 082 */ 083 NOTDONE, 084 /** 085 * The event has been temporarily stopped but is expected to resume in the future. 086 */ 087 ONHOLD, 088 /** 089 * The event was terminated prior to the full completion of the intended activity but after at least some of the 'main' activity (beyond preparation) has occurred. 090 */ 091 STOPPED, 092 /** 093 * The event has now concluded. 094 */ 095 COMPLETED, 096 /** 097 * This electronic record should never have existed, though it is possible that real-world decisions were based on it. (If real-world activity has occurred, the status should be "cancelled" rather than "entered-in-error".). 098 */ 099 ENTEREDINERROR, 100 /** 101 * The authoring/source system does not know which of the status values currently applies for this event. Note: This concept is not to be used for "other" - one of the listed statuses is presumed to apply, but the authoring/source system does not know which. 102 */ 103 UNKNOWN, 104 /** 105 * added to help the parsers with the generic types 106 */ 107 NULL; 108 public static CommunicationStatus fromCode(String codeString) throws FHIRException { 109 if (codeString == null || "".equals(codeString)) 110 return null; 111 if ("preparation".equals(codeString)) 112 return PREPARATION; 113 if ("in-progress".equals(codeString)) 114 return INPROGRESS; 115 if ("not-done".equals(codeString)) 116 return NOTDONE; 117 if ("on-hold".equals(codeString)) 118 return ONHOLD; 119 if ("stopped".equals(codeString)) 120 return STOPPED; 121 if ("completed".equals(codeString)) 122 return COMPLETED; 123 if ("entered-in-error".equals(codeString)) 124 return ENTEREDINERROR; 125 if ("unknown".equals(codeString)) 126 return UNKNOWN; 127 if (Configuration.isAcceptInvalidEnums()) 128 return null; 129 else 130 throw new FHIRException("Unknown CommunicationStatus code '"+codeString+"'"); 131 } 132 public String toCode() { 133 switch (this) { 134 case PREPARATION: return "preparation"; 135 case INPROGRESS: return "in-progress"; 136 case NOTDONE: return "not-done"; 137 case ONHOLD: return "on-hold"; 138 case STOPPED: return "stopped"; 139 case COMPLETED: return "completed"; 140 case ENTEREDINERROR: return "entered-in-error"; 141 case UNKNOWN: return "unknown"; 142 default: return "?"; 143 } 144 } 145 public String getSystem() { 146 switch (this) { 147 case PREPARATION: return "http://hl7.org/fhir/event-status"; 148 case INPROGRESS: return "http://hl7.org/fhir/event-status"; 149 case NOTDONE: return "http://hl7.org/fhir/event-status"; 150 case ONHOLD: return "http://hl7.org/fhir/event-status"; 151 case STOPPED: return "http://hl7.org/fhir/event-status"; 152 case COMPLETED: return "http://hl7.org/fhir/event-status"; 153 case ENTEREDINERROR: return "http://hl7.org/fhir/event-status"; 154 case UNKNOWN: return "http://hl7.org/fhir/event-status"; 155 default: return "?"; 156 } 157 } 158 public String getDefinition() { 159 switch (this) { 160 case PREPARATION: return "The core event has not started yet, but some staging activities have begun (e.g. surgical suite preparation). Preparation stages may be tracked for billing purposes."; 161 case INPROGRESS: return "The event is currently occurring."; 162 case NOTDONE: return "The event was terminated prior to any activity beyond preparation. I.e. The 'main' activity has not yet begun. The boundary between preparatory and the 'main' activity is context-specific."; 163 case ONHOLD: return "The event has been temporarily stopped but is expected to resume in the future."; 164 case STOPPED: return "The event was terminated prior to the full completion of the intended activity but after at least some of the 'main' activity (beyond preparation) has occurred."; 165 case COMPLETED: return "The event has now concluded."; 166 case ENTEREDINERROR: return "This electronic record should never have existed, though it is possible that real-world decisions were based on it. (If real-world activity has occurred, the status should be \"cancelled\" rather than \"entered-in-error\".)."; 167 case UNKNOWN: return "The authoring/source system does not know which of the status values currently applies for this event. Note: This concept is not to be used for \"other\" - one of the listed statuses is presumed to apply, but the authoring/source system does not know which."; 168 default: return "?"; 169 } 170 } 171 public String getDisplay() { 172 switch (this) { 173 case PREPARATION: return "Preparation"; 174 case INPROGRESS: return "In Progress"; 175 case NOTDONE: return "Not Done"; 176 case ONHOLD: return "On Hold"; 177 case STOPPED: return "Stopped"; 178 case COMPLETED: return "Completed"; 179 case ENTEREDINERROR: return "Entered in Error"; 180 case UNKNOWN: return "Unknown"; 181 default: return "?"; 182 } 183 } 184 } 185 186 public static class CommunicationStatusEnumFactory implements EnumFactory<CommunicationStatus> { 187 public CommunicationStatus fromCode(String codeString) throws IllegalArgumentException { 188 if (codeString == null || "".equals(codeString)) 189 if (codeString == null || "".equals(codeString)) 190 return null; 191 if ("preparation".equals(codeString)) 192 return CommunicationStatus.PREPARATION; 193 if ("in-progress".equals(codeString)) 194 return CommunicationStatus.INPROGRESS; 195 if ("not-done".equals(codeString)) 196 return CommunicationStatus.NOTDONE; 197 if ("on-hold".equals(codeString)) 198 return CommunicationStatus.ONHOLD; 199 if ("stopped".equals(codeString)) 200 return CommunicationStatus.STOPPED; 201 if ("completed".equals(codeString)) 202 return CommunicationStatus.COMPLETED; 203 if ("entered-in-error".equals(codeString)) 204 return CommunicationStatus.ENTEREDINERROR; 205 if ("unknown".equals(codeString)) 206 return CommunicationStatus.UNKNOWN; 207 throw new IllegalArgumentException("Unknown CommunicationStatus code '"+codeString+"'"); 208 } 209 public Enumeration<CommunicationStatus> fromType(Base code) throws FHIRException { 210 if (code == null) 211 return null; 212 if (code.isEmpty()) 213 return new Enumeration<CommunicationStatus>(this); 214 String codeString = ((PrimitiveType) code).asStringValue(); 215 if (codeString == null || "".equals(codeString)) 216 return null; 217 if ("preparation".equals(codeString)) 218 return new Enumeration<CommunicationStatus>(this, CommunicationStatus.PREPARATION); 219 if ("in-progress".equals(codeString)) 220 return new Enumeration<CommunicationStatus>(this, CommunicationStatus.INPROGRESS); 221 if ("not-done".equals(codeString)) 222 return new Enumeration<CommunicationStatus>(this, CommunicationStatus.NOTDONE); 223 if ("on-hold".equals(codeString)) 224 return new Enumeration<CommunicationStatus>(this, CommunicationStatus.ONHOLD); 225 if ("stopped".equals(codeString)) 226 return new Enumeration<CommunicationStatus>(this, CommunicationStatus.STOPPED); 227 if ("completed".equals(codeString)) 228 return new Enumeration<CommunicationStatus>(this, CommunicationStatus.COMPLETED); 229 if ("entered-in-error".equals(codeString)) 230 return new Enumeration<CommunicationStatus>(this, CommunicationStatus.ENTEREDINERROR); 231 if ("unknown".equals(codeString)) 232 return new Enumeration<CommunicationStatus>(this, CommunicationStatus.UNKNOWN); 233 throw new FHIRException("Unknown CommunicationStatus code '"+codeString+"'"); 234 } 235 public String toCode(CommunicationStatus code) { 236 if (code == CommunicationStatus.PREPARATION) 237 return "preparation"; 238 if (code == CommunicationStatus.INPROGRESS) 239 return "in-progress"; 240 if (code == CommunicationStatus.NOTDONE) 241 return "not-done"; 242 if (code == CommunicationStatus.ONHOLD) 243 return "on-hold"; 244 if (code == CommunicationStatus.STOPPED) 245 return "stopped"; 246 if (code == CommunicationStatus.COMPLETED) 247 return "completed"; 248 if (code == CommunicationStatus.ENTEREDINERROR) 249 return "entered-in-error"; 250 if (code == CommunicationStatus.UNKNOWN) 251 return "unknown"; 252 return "?"; 253 } 254 public String toSystem(CommunicationStatus code) { 255 return code.getSystem(); 256 } 257 } 258 259 public enum CommunicationPriority { 260 /** 261 * The request has normal priority. 262 */ 263 ROUTINE, 264 /** 265 * The request should be actioned promptly - higher priority than routine. 266 */ 267 URGENT, 268 /** 269 * The request should be actioned as soon as possible - higher priority than urgent. 270 */ 271 ASAP, 272 /** 273 * The request should be actioned immediately - highest possible priority. E.g. an emergency. 274 */ 275 STAT, 276 /** 277 * added to help the parsers with the generic types 278 */ 279 NULL; 280 public static CommunicationPriority fromCode(String codeString) throws FHIRException { 281 if (codeString == null || "".equals(codeString)) 282 return null; 283 if ("routine".equals(codeString)) 284 return ROUTINE; 285 if ("urgent".equals(codeString)) 286 return URGENT; 287 if ("asap".equals(codeString)) 288 return ASAP; 289 if ("stat".equals(codeString)) 290 return STAT; 291 if (Configuration.isAcceptInvalidEnums()) 292 return null; 293 else 294 throw new FHIRException("Unknown CommunicationPriority code '"+codeString+"'"); 295 } 296 public String toCode() { 297 switch (this) { 298 case ROUTINE: return "routine"; 299 case URGENT: return "urgent"; 300 case ASAP: return "asap"; 301 case STAT: return "stat"; 302 default: return "?"; 303 } 304 } 305 public String getSystem() { 306 switch (this) { 307 case ROUTINE: return "http://hl7.org/fhir/request-priority"; 308 case URGENT: return "http://hl7.org/fhir/request-priority"; 309 case ASAP: return "http://hl7.org/fhir/request-priority"; 310 case STAT: return "http://hl7.org/fhir/request-priority"; 311 default: return "?"; 312 } 313 } 314 public String getDefinition() { 315 switch (this) { 316 case ROUTINE: return "The request has normal priority."; 317 case URGENT: return "The request should be actioned promptly - higher priority than routine."; 318 case ASAP: return "The request should be actioned as soon as possible - higher priority than urgent."; 319 case STAT: return "The request should be actioned immediately - highest possible priority. E.g. an emergency."; 320 default: return "?"; 321 } 322 } 323 public String getDisplay() { 324 switch (this) { 325 case ROUTINE: return "Routine"; 326 case URGENT: return "Urgent"; 327 case ASAP: return "ASAP"; 328 case STAT: return "STAT"; 329 default: return "?"; 330 } 331 } 332 } 333 334 public static class CommunicationPriorityEnumFactory implements EnumFactory<CommunicationPriority> { 335 public CommunicationPriority fromCode(String codeString) throws IllegalArgumentException { 336 if (codeString == null || "".equals(codeString)) 337 if (codeString == null || "".equals(codeString)) 338 return null; 339 if ("routine".equals(codeString)) 340 return CommunicationPriority.ROUTINE; 341 if ("urgent".equals(codeString)) 342 return CommunicationPriority.URGENT; 343 if ("asap".equals(codeString)) 344 return CommunicationPriority.ASAP; 345 if ("stat".equals(codeString)) 346 return CommunicationPriority.STAT; 347 throw new IllegalArgumentException("Unknown CommunicationPriority code '"+codeString+"'"); 348 } 349 public Enumeration<CommunicationPriority> fromType(Base code) throws FHIRException { 350 if (code == null) 351 return null; 352 if (code.isEmpty()) 353 return new Enumeration<CommunicationPriority>(this); 354 String codeString = ((PrimitiveType) code).asStringValue(); 355 if (codeString == null || "".equals(codeString)) 356 return null; 357 if ("routine".equals(codeString)) 358 return new Enumeration<CommunicationPriority>(this, CommunicationPriority.ROUTINE); 359 if ("urgent".equals(codeString)) 360 return new Enumeration<CommunicationPriority>(this, CommunicationPriority.URGENT); 361 if ("asap".equals(codeString)) 362 return new Enumeration<CommunicationPriority>(this, CommunicationPriority.ASAP); 363 if ("stat".equals(codeString)) 364 return new Enumeration<CommunicationPriority>(this, CommunicationPriority.STAT); 365 throw new FHIRException("Unknown CommunicationPriority code '"+codeString+"'"); 366 } 367 public String toCode(CommunicationPriority code) { 368 if (code == CommunicationPriority.ROUTINE) 369 return "routine"; 370 if (code == CommunicationPriority.URGENT) 371 return "urgent"; 372 if (code == CommunicationPriority.ASAP) 373 return "asap"; 374 if (code == CommunicationPriority.STAT) 375 return "stat"; 376 return "?"; 377 } 378 public String toSystem(CommunicationPriority code) { 379 return code.getSystem(); 380 } 381 } 382 383 @Block() 384 public static class CommunicationPayloadComponent extends BackboneElement implements IBaseBackboneElement { 385 /** 386 * A communicated content (or for multi-part communications, one portion of the communication). 387 */ 388 @Child(name = "content", type = {StringType.class, Attachment.class, Reference.class}, order=1, min=1, max=1, modifier=false, summary=false) 389 @Description(shortDefinition="Message part content", formalDefinition="A communicated content (or for multi-part communications, one portion of the communication)." ) 390 protected Type content; 391 392 private static final long serialVersionUID = -1763459053L; 393 394 /** 395 * Constructor 396 */ 397 public CommunicationPayloadComponent() { 398 super(); 399 } 400 401 /** 402 * Constructor 403 */ 404 public CommunicationPayloadComponent(Type content) { 405 super(); 406 this.content = content; 407 } 408 409 /** 410 * @return {@link #content} (A communicated content (or for multi-part communications, one portion of the communication).) 411 */ 412 public Type getContent() { 413 return this.content; 414 } 415 416 /** 417 * @return {@link #content} (A communicated content (or for multi-part communications, one portion of the communication).) 418 */ 419 public StringType getContentStringType() throws FHIRException { 420 if (this.content == null) 421 this.content = new StringType(); 422 if (!(this.content instanceof StringType)) 423 throw new FHIRException("Type mismatch: the type StringType was expected, but "+this.content.getClass().getName()+" was encountered"); 424 return (StringType) this.content; 425 } 426 427 public boolean hasContentStringType() { 428 return this != null && this.content instanceof StringType; 429 } 430 431 /** 432 * @return {@link #content} (A communicated content (or for multi-part communications, one portion of the communication).) 433 */ 434 public Attachment getContentAttachment() throws FHIRException { 435 if (this.content == null) 436 this.content = new Attachment(); 437 if (!(this.content instanceof Attachment)) 438 throw new FHIRException("Type mismatch: the type Attachment was expected, but "+this.content.getClass().getName()+" was encountered"); 439 return (Attachment) this.content; 440 } 441 442 public boolean hasContentAttachment() { 443 return this != null && this.content instanceof Attachment; 444 } 445 446 /** 447 * @return {@link #content} (A communicated content (or for multi-part communications, one portion of the communication).) 448 */ 449 public Reference getContentReference() throws FHIRException { 450 if (this.content == null) 451 this.content = new Reference(); 452 if (!(this.content instanceof Reference)) 453 throw new FHIRException("Type mismatch: the type Reference was expected, but "+this.content.getClass().getName()+" was encountered"); 454 return (Reference) this.content; 455 } 456 457 public boolean hasContentReference() { 458 return this != null && this.content instanceof Reference; 459 } 460 461 public boolean hasContent() { 462 return this.content != null && !this.content.isEmpty(); 463 } 464 465 /** 466 * @param value {@link #content} (A communicated content (or for multi-part communications, one portion of the communication).) 467 */ 468 public CommunicationPayloadComponent setContent(Type value) { 469 if (value != null && !(value instanceof StringType || value instanceof Attachment || value instanceof Reference)) 470 throw new Error("Not the right type for Communication.payload.content[x]: "+value.fhirType()); 471 this.content = value; 472 return this; 473 } 474 475 protected void listChildren(List<Property> children) { 476 super.listChildren(children); 477 children.add(new Property("content[x]", "string|Attachment|Reference(Any)", "A communicated content (or for multi-part communications, one portion of the communication).", 0, 1, content)); 478 } 479 480 @Override 481 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 482 switch (_hash) { 483 case 264548711: /*content[x]*/ return new Property("content[x]", "string|Attachment|Reference(Any)", "A communicated content (or for multi-part communications, one portion of the communication).", 0, 1, content); 484 case 951530617: /*content*/ return new Property("content[x]", "string|Attachment|Reference(Any)", "A communicated content (or for multi-part communications, one portion of the communication).", 0, 1, content); 485 case -326336022: /*contentString*/ return new Property("content[x]", "string|Attachment|Reference(Any)", "A communicated content (or for multi-part communications, one portion of the communication).", 0, 1, content); 486 case -702028164: /*contentAttachment*/ return new Property("content[x]", "string|Attachment|Reference(Any)", "A communicated content (or for multi-part communications, one portion of the communication).", 0, 1, content); 487 case 1193747154: /*contentReference*/ return new Property("content[x]", "string|Attachment|Reference(Any)", "A communicated content (or for multi-part communications, one portion of the communication).", 0, 1, content); 488 default: return super.getNamedProperty(_hash, _name, _checkValid); 489 } 490 491 } 492 493 @Override 494 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 495 switch (hash) { 496 case 951530617: /*content*/ return this.content == null ? new Base[0] : new Base[] {this.content}; // Type 497 default: return super.getProperty(hash, name, checkValid); 498 } 499 500 } 501 502 @Override 503 public Base setProperty(int hash, String name, Base value) throws FHIRException { 504 switch (hash) { 505 case 951530617: // content 506 this.content = castToType(value); // Type 507 return value; 508 default: return super.setProperty(hash, name, value); 509 } 510 511 } 512 513 @Override 514 public Base setProperty(String name, Base value) throws FHIRException { 515 if (name.equals("content[x]")) { 516 this.content = castToType(value); // Type 517 } else 518 return super.setProperty(name, value); 519 return value; 520 } 521 522 @Override 523 public Base makeProperty(int hash, String name) throws FHIRException { 524 switch (hash) { 525 case 264548711: return getContent(); 526 case 951530617: return getContent(); 527 default: return super.makeProperty(hash, name); 528 } 529 530 } 531 532 @Override 533 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 534 switch (hash) { 535 case 951530617: /*content*/ return new String[] {"string", "Attachment", "Reference"}; 536 default: return super.getTypesForProperty(hash, name); 537 } 538 539 } 540 541 @Override 542 public Base addChild(String name) throws FHIRException { 543 if (name.equals("contentString")) { 544 this.content = new StringType(); 545 return this.content; 546 } 547 else if (name.equals("contentAttachment")) { 548 this.content = new Attachment(); 549 return this.content; 550 } 551 else if (name.equals("contentReference")) { 552 this.content = new Reference(); 553 return this.content; 554 } 555 else 556 return super.addChild(name); 557 } 558 559 public CommunicationPayloadComponent copy() { 560 CommunicationPayloadComponent dst = new CommunicationPayloadComponent(); 561 copyValues(dst); 562 dst.content = content == null ? null : content.copy(); 563 return dst; 564 } 565 566 @Override 567 public boolean equalsDeep(Base other_) { 568 if (!super.equalsDeep(other_)) 569 return false; 570 if (!(other_ instanceof CommunicationPayloadComponent)) 571 return false; 572 CommunicationPayloadComponent o = (CommunicationPayloadComponent) other_; 573 return compareDeep(content, o.content, true); 574 } 575 576 @Override 577 public boolean equalsShallow(Base other_) { 578 if (!super.equalsShallow(other_)) 579 return false; 580 if (!(other_ instanceof CommunicationPayloadComponent)) 581 return false; 582 CommunicationPayloadComponent o = (CommunicationPayloadComponent) other_; 583 return true; 584 } 585 586 public boolean isEmpty() { 587 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(content); 588 } 589 590 public String fhirType() { 591 return "Communication.payload"; 592 593 } 594 595 } 596 597 /** 598 * Business identifiers assigned to this communication by the performer or other systems which remain constant as the resource is updated and propagates from server to server. 599 */ 600 @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 601 @Description(shortDefinition="Unique identifier", formalDefinition="Business identifiers assigned to this communication by the performer or other systems which remain constant as the resource is updated and propagates from server to server." ) 602 protected List<Identifier> identifier; 603 604 /** 605 * The URL pointing to a FHIR-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Communication. 606 */ 607 @Child(name = "instantiatesCanonical", type = {CanonicalType.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 608 @Description(shortDefinition="Instantiates FHIR protocol or definition", formalDefinition="The URL pointing to a FHIR-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Communication." ) 609 protected List<CanonicalType> instantiatesCanonical; 610 611 /** 612 * The URL pointing to an externally maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Communication. 613 */ 614 @Child(name = "instantiatesUri", type = {UriType.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 615 @Description(shortDefinition="Instantiates external protocol or definition", formalDefinition="The URL pointing to an externally maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Communication." ) 616 protected List<UriType> instantiatesUri; 617 618 /** 619 * An order, proposal or plan fulfilled in whole or in part by this Communication. 620 */ 621 @Child(name = "basedOn", type = {Reference.class}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 622 @Description(shortDefinition="Request fulfilled by this communication", formalDefinition="An order, proposal or plan fulfilled in whole or in part by this Communication." ) 623 protected List<Reference> basedOn; 624 /** 625 * The actual objects that are the target of the reference (An order, proposal or plan fulfilled in whole or in part by this Communication.) 626 */ 627 protected List<Resource> basedOnTarget; 628 629 630 /** 631 * Part of this action. 632 */ 633 @Child(name = "partOf", type = {Reference.class}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 634 @Description(shortDefinition="Part of this action", formalDefinition="Part of this action." ) 635 protected List<Reference> partOf; 636 /** 637 * The actual objects that are the target of the reference (Part of this action.) 638 */ 639 protected List<Resource> partOfTarget; 640 641 642 /** 643 * Prior communication that this communication is in response to. 644 */ 645 @Child(name = "inResponseTo", type = {Communication.class}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 646 @Description(shortDefinition="Reply to", formalDefinition="Prior communication that this communication is in response to." ) 647 protected List<Reference> inResponseTo; 648 /** 649 * The actual objects that are the target of the reference (Prior communication that this communication is in response to.) 650 */ 651 protected List<Communication> inResponseToTarget; 652 653 654 /** 655 * The status of the transmission. 656 */ 657 @Child(name = "status", type = {CodeType.class}, order=6, min=1, max=1, modifier=true, summary=true) 658 @Description(shortDefinition="preparation | in-progress | not-done | suspended | aborted | completed | entered-in-error", formalDefinition="The status of the transmission." ) 659 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/event-status") 660 protected Enumeration<CommunicationStatus> status; 661 662 /** 663 * Captures the reason for the current state of the Communication. 664 */ 665 @Child(name = "statusReason", type = {CodeableConcept.class}, order=7, min=0, max=1, modifier=false, summary=true) 666 @Description(shortDefinition="Reason for current status", formalDefinition="Captures the reason for the current state of the Communication." ) 667 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/communication-not-done-reason") 668 protected CodeableConcept statusReason; 669 670 /** 671 * The type of message conveyed such as alert, notification, reminder, instruction, etc. 672 */ 673 @Child(name = "category", type = {CodeableConcept.class}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 674 @Description(shortDefinition="Message category", formalDefinition="The type of message conveyed such as alert, notification, reminder, instruction, etc." ) 675 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/communication-category") 676 protected List<CodeableConcept> category; 677 678 /** 679 * Characterizes how quickly the planned or in progress communication must be addressed. Includes concepts such as stat, urgent, routine. 680 */ 681 @Child(name = "priority", type = {CodeType.class}, order=9, min=0, max=1, modifier=false, summary=true) 682 @Description(shortDefinition="Message urgency", formalDefinition="Characterizes how quickly the planned or in progress communication must be addressed. Includes concepts such as stat, urgent, routine." ) 683 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/request-priority") 684 protected Enumeration<CommunicationPriority> priority; 685 686 /** 687 * A channel that was used for this communication (e.g. email, fax). 688 */ 689 @Child(name = "medium", type = {CodeableConcept.class}, order=10, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 690 @Description(shortDefinition="A channel of communication", formalDefinition="A channel that was used for this communication (e.g. email, fax)." ) 691 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://terminology.hl7.org/ValueSet/v3-ParticipationMode") 692 protected List<CodeableConcept> medium; 693 694 /** 695 * The patient or group that was the focus of this communication. 696 */ 697 @Child(name = "subject", type = {Patient.class, Group.class}, order=11, min=0, max=1, modifier=false, summary=true) 698 @Description(shortDefinition="Focus of message", formalDefinition="The patient or group that was the focus of this communication." ) 699 protected Reference subject; 700 701 /** 702 * The actual object that is the target of the reference (The patient or group that was the focus of this communication.) 703 */ 704 protected Resource subjectTarget; 705 706 /** 707 * Description of the purpose/content, similar to a subject line in an email. 708 */ 709 @Child(name = "topic", type = {CodeableConcept.class}, order=12, min=0, max=1, modifier=false, summary=false) 710 @Description(shortDefinition="Description of the purpose/content", formalDefinition="Description of the purpose/content, similar to a subject line in an email." ) 711 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/communication-topic") 712 protected CodeableConcept topic; 713 714 /** 715 * Other resources that pertain to this communication and to which this communication should be associated. 716 */ 717 @Child(name = "about", type = {Reference.class}, order=13, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 718 @Description(shortDefinition="Resources that pertain to this communication", formalDefinition="Other resources that pertain to this communication and to which this communication should be associated." ) 719 protected List<Reference> about; 720 /** 721 * The actual objects that are the target of the reference (Other resources that pertain to this communication and to which this communication should be associated.) 722 */ 723 protected List<Resource> aboutTarget; 724 725 726 /** 727 * The Encounter during which this Communication was created or to which the creation of this record is tightly associated. 728 */ 729 @Child(name = "encounter", type = {Encounter.class}, order=14, min=0, max=1, modifier=false, summary=true) 730 @Description(shortDefinition="Encounter created as part of", formalDefinition="The Encounter during which this Communication was created or to which the creation of this record is tightly associated." ) 731 protected Reference encounter; 732 733 /** 734 * The actual object that is the target of the reference (The Encounter during which this Communication was created or to which the creation of this record is tightly associated.) 735 */ 736 protected Encounter encounterTarget; 737 738 /** 739 * The time when this communication was sent. 740 */ 741 @Child(name = "sent", type = {DateTimeType.class}, order=15, min=0, max=1, modifier=false, summary=false) 742 @Description(shortDefinition="When sent", formalDefinition="The time when this communication was sent." ) 743 protected DateTimeType sent; 744 745 /** 746 * The time when this communication arrived at the destination. 747 */ 748 @Child(name = "received", type = {DateTimeType.class}, order=16, min=0, max=1, modifier=false, summary=false) 749 @Description(shortDefinition="When received", formalDefinition="The time when this communication arrived at the destination." ) 750 protected DateTimeType received; 751 752 /** 753 * The entity (e.g. person, organization, clinical information system, care team or device) which was the target of the communication. If receipts need to be tracked by an individual, a separate resource instance will need to be created for each recipient. Multiple recipient communications are intended where either receipts are not tracked (e.g. a mass mail-out) or a receipt is captured in aggregate (all emails confirmed received by a particular time). 754 */ 755 @Child(name = "recipient", type = {Device.class, Organization.class, Patient.class, Practitioner.class, PractitionerRole.class, RelatedPerson.class, Group.class, CareTeam.class, HealthcareService.class}, order=17, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 756 @Description(shortDefinition="Message recipient", formalDefinition="The entity (e.g. person, organization, clinical information system, care team or device) which was the target of the communication. If receipts need to be tracked by an individual, a separate resource instance will need to be created for each recipient. Multiple recipient communications are intended where either receipts are not tracked (e.g. a mass mail-out) or a receipt is captured in aggregate (all emails confirmed received by a particular time)." ) 757 protected List<Reference> recipient; 758 /** 759 * The actual objects that are the target of the reference (The entity (e.g. person, organization, clinical information system, care team or device) which was the target of the communication. If receipts need to be tracked by an individual, a separate resource instance will need to be created for each recipient. Multiple recipient communications are intended where either receipts are not tracked (e.g. a mass mail-out) or a receipt is captured in aggregate (all emails confirmed received by a particular time).) 760 */ 761 protected List<Resource> recipientTarget; 762 763 764 /** 765 * The entity (e.g. person, organization, clinical information system, or device) which was the source of the communication. 766 */ 767 @Child(name = "sender", type = {Device.class, Organization.class, Patient.class, Practitioner.class, PractitionerRole.class, RelatedPerson.class, HealthcareService.class}, order=18, min=0, max=1, modifier=false, summary=false) 768 @Description(shortDefinition="Message sender", formalDefinition="The entity (e.g. person, organization, clinical information system, or device) which was the source of the communication." ) 769 protected Reference sender; 770 771 /** 772 * The actual object that is the target of the reference (The entity (e.g. person, organization, clinical information system, or device) which was the source of the communication.) 773 */ 774 protected Resource senderTarget; 775 776 /** 777 * The reason or justification for the communication. 778 */ 779 @Child(name = "reasonCode", type = {CodeableConcept.class}, order=19, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 780 @Description(shortDefinition="Indication for message", formalDefinition="The reason or justification for the communication." ) 781 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/clinical-findings") 782 protected List<CodeableConcept> reasonCode; 783 784 /** 785 * Indicates another resource whose existence justifies this communication. 786 */ 787 @Child(name = "reasonReference", type = {Condition.class, Observation.class, DiagnosticReport.class, DocumentReference.class}, order=20, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 788 @Description(shortDefinition="Why was communication done?", formalDefinition="Indicates another resource whose existence justifies this communication." ) 789 protected List<Reference> reasonReference; 790 /** 791 * The actual objects that are the target of the reference (Indicates another resource whose existence justifies this communication.) 792 */ 793 protected List<Resource> reasonReferenceTarget; 794 795 796 /** 797 * Text, attachment(s), or resource(s) that was communicated to the recipient. 798 */ 799 @Child(name = "payload", type = {}, order=21, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 800 @Description(shortDefinition="Message payload", formalDefinition="Text, attachment(s), or resource(s) that was communicated to the recipient." ) 801 protected List<CommunicationPayloadComponent> payload; 802 803 /** 804 * Additional notes or commentary about the communication by the sender, receiver or other interested parties. 805 */ 806 @Child(name = "note", type = {Annotation.class}, order=22, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 807 @Description(shortDefinition="Comments made about the communication", formalDefinition="Additional notes or commentary about the communication by the sender, receiver or other interested parties." ) 808 protected List<Annotation> note; 809 810 private static final long serialVersionUID = 1325359310L; 811 812 /** 813 * Constructor 814 */ 815 public Communication() { 816 super(); 817 } 818 819 /** 820 * Constructor 821 */ 822 public Communication(Enumeration<CommunicationStatus> status) { 823 super(); 824 this.status = status; 825 } 826 827 /** 828 * @return {@link #identifier} (Business identifiers assigned to this communication by the performer or other systems which remain constant as the resource is updated and propagates from server to server.) 829 */ 830 public List<Identifier> getIdentifier() { 831 if (this.identifier == null) 832 this.identifier = new ArrayList<Identifier>(); 833 return this.identifier; 834 } 835 836 /** 837 * @return Returns a reference to <code>this</code> for easy method chaining 838 */ 839 public Communication setIdentifier(List<Identifier> theIdentifier) { 840 this.identifier = theIdentifier; 841 return this; 842 } 843 844 public boolean hasIdentifier() { 845 if (this.identifier == null) 846 return false; 847 for (Identifier item : this.identifier) 848 if (!item.isEmpty()) 849 return true; 850 return false; 851 } 852 853 public Identifier addIdentifier() { //3 854 Identifier t = new Identifier(); 855 if (this.identifier == null) 856 this.identifier = new ArrayList<Identifier>(); 857 this.identifier.add(t); 858 return t; 859 } 860 861 public Communication addIdentifier(Identifier t) { //3 862 if (t == null) 863 return this; 864 if (this.identifier == null) 865 this.identifier = new ArrayList<Identifier>(); 866 this.identifier.add(t); 867 return this; 868 } 869 870 /** 871 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist 872 */ 873 public Identifier getIdentifierFirstRep() { 874 if (getIdentifier().isEmpty()) { 875 addIdentifier(); 876 } 877 return getIdentifier().get(0); 878 } 879 880 /** 881 * @return {@link #instantiatesCanonical} (The URL pointing to a FHIR-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Communication.) 882 */ 883 public List<CanonicalType> getInstantiatesCanonical() { 884 if (this.instantiatesCanonical == null) 885 this.instantiatesCanonical = new ArrayList<CanonicalType>(); 886 return this.instantiatesCanonical; 887 } 888 889 /** 890 * @return Returns a reference to <code>this</code> for easy method chaining 891 */ 892 public Communication setInstantiatesCanonical(List<CanonicalType> theInstantiatesCanonical) { 893 this.instantiatesCanonical = theInstantiatesCanonical; 894 return this; 895 } 896 897 public boolean hasInstantiatesCanonical() { 898 if (this.instantiatesCanonical == null) 899 return false; 900 for (CanonicalType item : this.instantiatesCanonical) 901 if (!item.isEmpty()) 902 return true; 903 return false; 904 } 905 906 /** 907 * @return {@link #instantiatesCanonical} (The URL pointing to a FHIR-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Communication.) 908 */ 909 public CanonicalType addInstantiatesCanonicalElement() {//2 910 CanonicalType t = new CanonicalType(); 911 if (this.instantiatesCanonical == null) 912 this.instantiatesCanonical = new ArrayList<CanonicalType>(); 913 this.instantiatesCanonical.add(t); 914 return t; 915 } 916 917 /** 918 * @param value {@link #instantiatesCanonical} (The URL pointing to a FHIR-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Communication.) 919 */ 920 public Communication addInstantiatesCanonical(String value) { //1 921 CanonicalType t = new CanonicalType(); 922 t.setValue(value); 923 if (this.instantiatesCanonical == null) 924 this.instantiatesCanonical = new ArrayList<CanonicalType>(); 925 this.instantiatesCanonical.add(t); 926 return this; 927 } 928 929 /** 930 * @param value {@link #instantiatesCanonical} (The URL pointing to a FHIR-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Communication.) 931 */ 932 public boolean hasInstantiatesCanonical(String value) { 933 if (this.instantiatesCanonical == null) 934 return false; 935 for (CanonicalType v : this.instantiatesCanonical) 936 if (v.getValue().equals(value)) // canonical(PlanDefinition|ActivityDefinition|Measure|OperationDefinition|Questionnaire) 937 return true; 938 return false; 939 } 940 941 /** 942 * @return {@link #instantiatesUri} (The URL pointing to an externally maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Communication.) 943 */ 944 public List<UriType> getInstantiatesUri() { 945 if (this.instantiatesUri == null) 946 this.instantiatesUri = new ArrayList<UriType>(); 947 return this.instantiatesUri; 948 } 949 950 /** 951 * @return Returns a reference to <code>this</code> for easy method chaining 952 */ 953 public Communication setInstantiatesUri(List<UriType> theInstantiatesUri) { 954 this.instantiatesUri = theInstantiatesUri; 955 return this; 956 } 957 958 public boolean hasInstantiatesUri() { 959 if (this.instantiatesUri == null) 960 return false; 961 for (UriType item : this.instantiatesUri) 962 if (!item.isEmpty()) 963 return true; 964 return false; 965 } 966 967 /** 968 * @return {@link #instantiatesUri} (The URL pointing to an externally maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Communication.) 969 */ 970 public UriType addInstantiatesUriElement() {//2 971 UriType t = new UriType(); 972 if (this.instantiatesUri == null) 973 this.instantiatesUri = new ArrayList<UriType>(); 974 this.instantiatesUri.add(t); 975 return t; 976 } 977 978 /** 979 * @param value {@link #instantiatesUri} (The URL pointing to an externally maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Communication.) 980 */ 981 public Communication addInstantiatesUri(String value) { //1 982 UriType t = new UriType(); 983 t.setValue(value); 984 if (this.instantiatesUri == null) 985 this.instantiatesUri = new ArrayList<UriType>(); 986 this.instantiatesUri.add(t); 987 return this; 988 } 989 990 /** 991 * @param value {@link #instantiatesUri} (The URL pointing to an externally maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Communication.) 992 */ 993 public boolean hasInstantiatesUri(String value) { 994 if (this.instantiatesUri == null) 995 return false; 996 for (UriType v : this.instantiatesUri) 997 if (v.getValue().equals(value)) // uri 998 return true; 999 return false; 1000 } 1001 1002 /** 1003 * @return {@link #basedOn} (An order, proposal or plan fulfilled in whole or in part by this Communication.) 1004 */ 1005 public List<Reference> getBasedOn() { 1006 if (this.basedOn == null) 1007 this.basedOn = new ArrayList<Reference>(); 1008 return this.basedOn; 1009 } 1010 1011 /** 1012 * @return Returns a reference to <code>this</code> for easy method chaining 1013 */ 1014 public Communication setBasedOn(List<Reference> theBasedOn) { 1015 this.basedOn = theBasedOn; 1016 return this; 1017 } 1018 1019 public boolean hasBasedOn() { 1020 if (this.basedOn == null) 1021 return false; 1022 for (Reference item : this.basedOn) 1023 if (!item.isEmpty()) 1024 return true; 1025 return false; 1026 } 1027 1028 public Reference addBasedOn() { //3 1029 Reference t = new Reference(); 1030 if (this.basedOn == null) 1031 this.basedOn = new ArrayList<Reference>(); 1032 this.basedOn.add(t); 1033 return t; 1034 } 1035 1036 public Communication addBasedOn(Reference t) { //3 1037 if (t == null) 1038 return this; 1039 if (this.basedOn == null) 1040 this.basedOn = new ArrayList<Reference>(); 1041 this.basedOn.add(t); 1042 return this; 1043 } 1044 1045 /** 1046 * @return The first repetition of repeating field {@link #basedOn}, creating it if it does not already exist 1047 */ 1048 public Reference getBasedOnFirstRep() { 1049 if (getBasedOn().isEmpty()) { 1050 addBasedOn(); 1051 } 1052 return getBasedOn().get(0); 1053 } 1054 1055 /** 1056 * @deprecated Use Reference#setResource(IBaseResource) instead 1057 */ 1058 @Deprecated 1059 public List<Resource> getBasedOnTarget() { 1060 if (this.basedOnTarget == null) 1061 this.basedOnTarget = new ArrayList<Resource>(); 1062 return this.basedOnTarget; 1063 } 1064 1065 /** 1066 * @return {@link #partOf} (Part of this action.) 1067 */ 1068 public List<Reference> getPartOf() { 1069 if (this.partOf == null) 1070 this.partOf = new ArrayList<Reference>(); 1071 return this.partOf; 1072 } 1073 1074 /** 1075 * @return Returns a reference to <code>this</code> for easy method chaining 1076 */ 1077 public Communication setPartOf(List<Reference> thePartOf) { 1078 this.partOf = thePartOf; 1079 return this; 1080 } 1081 1082 public boolean hasPartOf() { 1083 if (this.partOf == null) 1084 return false; 1085 for (Reference item : this.partOf) 1086 if (!item.isEmpty()) 1087 return true; 1088 return false; 1089 } 1090 1091 public Reference addPartOf() { //3 1092 Reference t = new Reference(); 1093 if (this.partOf == null) 1094 this.partOf = new ArrayList<Reference>(); 1095 this.partOf.add(t); 1096 return t; 1097 } 1098 1099 public Communication addPartOf(Reference t) { //3 1100 if (t == null) 1101 return this; 1102 if (this.partOf == null) 1103 this.partOf = new ArrayList<Reference>(); 1104 this.partOf.add(t); 1105 return this; 1106 } 1107 1108 /** 1109 * @return The first repetition of repeating field {@link #partOf}, creating it if it does not already exist 1110 */ 1111 public Reference getPartOfFirstRep() { 1112 if (getPartOf().isEmpty()) { 1113 addPartOf(); 1114 } 1115 return getPartOf().get(0); 1116 } 1117 1118 /** 1119 * @deprecated Use Reference#setResource(IBaseResource) instead 1120 */ 1121 @Deprecated 1122 public List<Resource> getPartOfTarget() { 1123 if (this.partOfTarget == null) 1124 this.partOfTarget = new ArrayList<Resource>(); 1125 return this.partOfTarget; 1126 } 1127 1128 /** 1129 * @return {@link #inResponseTo} (Prior communication that this communication is in response to.) 1130 */ 1131 public List<Reference> getInResponseTo() { 1132 if (this.inResponseTo == null) 1133 this.inResponseTo = new ArrayList<Reference>(); 1134 return this.inResponseTo; 1135 } 1136 1137 /** 1138 * @return Returns a reference to <code>this</code> for easy method chaining 1139 */ 1140 public Communication setInResponseTo(List<Reference> theInResponseTo) { 1141 this.inResponseTo = theInResponseTo; 1142 return this; 1143 } 1144 1145 public boolean hasInResponseTo() { 1146 if (this.inResponseTo == null) 1147 return false; 1148 for (Reference item : this.inResponseTo) 1149 if (!item.isEmpty()) 1150 return true; 1151 return false; 1152 } 1153 1154 public Reference addInResponseTo() { //3 1155 Reference t = new Reference(); 1156 if (this.inResponseTo == null) 1157 this.inResponseTo = new ArrayList<Reference>(); 1158 this.inResponseTo.add(t); 1159 return t; 1160 } 1161 1162 public Communication addInResponseTo(Reference t) { //3 1163 if (t == null) 1164 return this; 1165 if (this.inResponseTo == null) 1166 this.inResponseTo = new ArrayList<Reference>(); 1167 this.inResponseTo.add(t); 1168 return this; 1169 } 1170 1171 /** 1172 * @return The first repetition of repeating field {@link #inResponseTo}, creating it if it does not already exist 1173 */ 1174 public Reference getInResponseToFirstRep() { 1175 if (getInResponseTo().isEmpty()) { 1176 addInResponseTo(); 1177 } 1178 return getInResponseTo().get(0); 1179 } 1180 1181 /** 1182 * @deprecated Use Reference#setResource(IBaseResource) instead 1183 */ 1184 @Deprecated 1185 public List<Communication> getInResponseToTarget() { 1186 if (this.inResponseToTarget == null) 1187 this.inResponseToTarget = new ArrayList<Communication>(); 1188 return this.inResponseToTarget; 1189 } 1190 1191 /** 1192 * @deprecated Use Reference#setResource(IBaseResource) instead 1193 */ 1194 @Deprecated 1195 public Communication addInResponseToTarget() { 1196 Communication r = new Communication(); 1197 if (this.inResponseToTarget == null) 1198 this.inResponseToTarget = new ArrayList<Communication>(); 1199 this.inResponseToTarget.add(r); 1200 return r; 1201 } 1202 1203 /** 1204 * @return {@link #status} (The status of the transmission.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 1205 */ 1206 public Enumeration<CommunicationStatus> getStatusElement() { 1207 if (this.status == null) 1208 if (Configuration.errorOnAutoCreate()) 1209 throw new Error("Attempt to auto-create Communication.status"); 1210 else if (Configuration.doAutoCreate()) 1211 this.status = new Enumeration<CommunicationStatus>(new CommunicationStatusEnumFactory()); // bb 1212 return this.status; 1213 } 1214 1215 public boolean hasStatusElement() { 1216 return this.status != null && !this.status.isEmpty(); 1217 } 1218 1219 public boolean hasStatus() { 1220 return this.status != null && !this.status.isEmpty(); 1221 } 1222 1223 /** 1224 * @param value {@link #status} (The status of the transmission.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 1225 */ 1226 public Communication setStatusElement(Enumeration<CommunicationStatus> value) { 1227 this.status = value; 1228 return this; 1229 } 1230 1231 /** 1232 * @return The status of the transmission. 1233 */ 1234 public CommunicationStatus getStatus() { 1235 return this.status == null ? null : this.status.getValue(); 1236 } 1237 1238 /** 1239 * @param value The status of the transmission. 1240 */ 1241 public Communication setStatus(CommunicationStatus value) { 1242 if (this.status == null) 1243 this.status = new Enumeration<CommunicationStatus>(new CommunicationStatusEnumFactory()); 1244 this.status.setValue(value); 1245 return this; 1246 } 1247 1248 /** 1249 * @return {@link #statusReason} (Captures the reason for the current state of the Communication.) 1250 */ 1251 public CodeableConcept getStatusReason() { 1252 if (this.statusReason == null) 1253 if (Configuration.errorOnAutoCreate()) 1254 throw new Error("Attempt to auto-create Communication.statusReason"); 1255 else if (Configuration.doAutoCreate()) 1256 this.statusReason = new CodeableConcept(); // cc 1257 return this.statusReason; 1258 } 1259 1260 public boolean hasStatusReason() { 1261 return this.statusReason != null && !this.statusReason.isEmpty(); 1262 } 1263 1264 /** 1265 * @param value {@link #statusReason} (Captures the reason for the current state of the Communication.) 1266 */ 1267 public Communication setStatusReason(CodeableConcept value) { 1268 this.statusReason = value; 1269 return this; 1270 } 1271 1272 /** 1273 * @return {@link #category} (The type of message conveyed such as alert, notification, reminder, instruction, etc.) 1274 */ 1275 public List<CodeableConcept> getCategory() { 1276 if (this.category == null) 1277 this.category = new ArrayList<CodeableConcept>(); 1278 return this.category; 1279 } 1280 1281 /** 1282 * @return Returns a reference to <code>this</code> for easy method chaining 1283 */ 1284 public Communication setCategory(List<CodeableConcept> theCategory) { 1285 this.category = theCategory; 1286 return this; 1287 } 1288 1289 public boolean hasCategory() { 1290 if (this.category == null) 1291 return false; 1292 for (CodeableConcept item : this.category) 1293 if (!item.isEmpty()) 1294 return true; 1295 return false; 1296 } 1297 1298 public CodeableConcept addCategory() { //3 1299 CodeableConcept t = new CodeableConcept(); 1300 if (this.category == null) 1301 this.category = new ArrayList<CodeableConcept>(); 1302 this.category.add(t); 1303 return t; 1304 } 1305 1306 public Communication addCategory(CodeableConcept t) { //3 1307 if (t == null) 1308 return this; 1309 if (this.category == null) 1310 this.category = new ArrayList<CodeableConcept>(); 1311 this.category.add(t); 1312 return this; 1313 } 1314 1315 /** 1316 * @return The first repetition of repeating field {@link #category}, creating it if it does not already exist 1317 */ 1318 public CodeableConcept getCategoryFirstRep() { 1319 if (getCategory().isEmpty()) { 1320 addCategory(); 1321 } 1322 return getCategory().get(0); 1323 } 1324 1325 /** 1326 * @return {@link #priority} (Characterizes how quickly the planned or in progress communication must be addressed. Includes concepts such as stat, urgent, routine.). This is the underlying object with id, value and extensions. The accessor "getPriority" gives direct access to the value 1327 */ 1328 public Enumeration<CommunicationPriority> getPriorityElement() { 1329 if (this.priority == null) 1330 if (Configuration.errorOnAutoCreate()) 1331 throw new Error("Attempt to auto-create Communication.priority"); 1332 else if (Configuration.doAutoCreate()) 1333 this.priority = new Enumeration<CommunicationPriority>(new CommunicationPriorityEnumFactory()); // bb 1334 return this.priority; 1335 } 1336 1337 public boolean hasPriorityElement() { 1338 return this.priority != null && !this.priority.isEmpty(); 1339 } 1340 1341 public boolean hasPriority() { 1342 return this.priority != null && !this.priority.isEmpty(); 1343 } 1344 1345 /** 1346 * @param value {@link #priority} (Characterizes how quickly the planned or in progress communication must be addressed. Includes concepts such as stat, urgent, routine.). This is the underlying object with id, value and extensions. The accessor "getPriority" gives direct access to the value 1347 */ 1348 public Communication setPriorityElement(Enumeration<CommunicationPriority> value) { 1349 this.priority = value; 1350 return this; 1351 } 1352 1353 /** 1354 * @return Characterizes how quickly the planned or in progress communication must be addressed. Includes concepts such as stat, urgent, routine. 1355 */ 1356 public CommunicationPriority getPriority() { 1357 return this.priority == null ? null : this.priority.getValue(); 1358 } 1359 1360 /** 1361 * @param value Characterizes how quickly the planned or in progress communication must be addressed. Includes concepts such as stat, urgent, routine. 1362 */ 1363 public Communication setPriority(CommunicationPriority value) { 1364 if (value == null) 1365 this.priority = null; 1366 else { 1367 if (this.priority == null) 1368 this.priority = new Enumeration<CommunicationPriority>(new CommunicationPriorityEnumFactory()); 1369 this.priority.setValue(value); 1370 } 1371 return this; 1372 } 1373 1374 /** 1375 * @return {@link #medium} (A channel that was used for this communication (e.g. email, fax).) 1376 */ 1377 public List<CodeableConcept> getMedium() { 1378 if (this.medium == null) 1379 this.medium = new ArrayList<CodeableConcept>(); 1380 return this.medium; 1381 } 1382 1383 /** 1384 * @return Returns a reference to <code>this</code> for easy method chaining 1385 */ 1386 public Communication setMedium(List<CodeableConcept> theMedium) { 1387 this.medium = theMedium; 1388 return this; 1389 } 1390 1391 public boolean hasMedium() { 1392 if (this.medium == null) 1393 return false; 1394 for (CodeableConcept item : this.medium) 1395 if (!item.isEmpty()) 1396 return true; 1397 return false; 1398 } 1399 1400 public CodeableConcept addMedium() { //3 1401 CodeableConcept t = new CodeableConcept(); 1402 if (this.medium == null) 1403 this.medium = new ArrayList<CodeableConcept>(); 1404 this.medium.add(t); 1405 return t; 1406 } 1407 1408 public Communication addMedium(CodeableConcept t) { //3 1409 if (t == null) 1410 return this; 1411 if (this.medium == null) 1412 this.medium = new ArrayList<CodeableConcept>(); 1413 this.medium.add(t); 1414 return this; 1415 } 1416 1417 /** 1418 * @return The first repetition of repeating field {@link #medium}, creating it if it does not already exist 1419 */ 1420 public CodeableConcept getMediumFirstRep() { 1421 if (getMedium().isEmpty()) { 1422 addMedium(); 1423 } 1424 return getMedium().get(0); 1425 } 1426 1427 /** 1428 * @return {@link #subject} (The patient or group that was the focus of this communication.) 1429 */ 1430 public Reference getSubject() { 1431 if (this.subject == null) 1432 if (Configuration.errorOnAutoCreate()) 1433 throw new Error("Attempt to auto-create Communication.subject"); 1434 else if (Configuration.doAutoCreate()) 1435 this.subject = new Reference(); // cc 1436 return this.subject; 1437 } 1438 1439 public boolean hasSubject() { 1440 return this.subject != null && !this.subject.isEmpty(); 1441 } 1442 1443 /** 1444 * @param value {@link #subject} (The patient or group that was the focus of this communication.) 1445 */ 1446 public Communication setSubject(Reference value) { 1447 this.subject = value; 1448 return this; 1449 } 1450 1451 /** 1452 * @return {@link #subject} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The patient or group that was the focus of this communication.) 1453 */ 1454 public Resource getSubjectTarget() { 1455 return this.subjectTarget; 1456 } 1457 1458 /** 1459 * @param value {@link #subject} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The patient or group that was the focus of this communication.) 1460 */ 1461 public Communication setSubjectTarget(Resource value) { 1462 this.subjectTarget = value; 1463 return this; 1464 } 1465 1466 /** 1467 * @return {@link #topic} (Description of the purpose/content, similar to a subject line in an email.) 1468 */ 1469 public CodeableConcept getTopic() { 1470 if (this.topic == null) 1471 if (Configuration.errorOnAutoCreate()) 1472 throw new Error("Attempt to auto-create Communication.topic"); 1473 else if (Configuration.doAutoCreate()) 1474 this.topic = new CodeableConcept(); // cc 1475 return this.topic; 1476 } 1477 1478 public boolean hasTopic() { 1479 return this.topic != null && !this.topic.isEmpty(); 1480 } 1481 1482 /** 1483 * @param value {@link #topic} (Description of the purpose/content, similar to a subject line in an email.) 1484 */ 1485 public Communication setTopic(CodeableConcept value) { 1486 this.topic = value; 1487 return this; 1488 } 1489 1490 /** 1491 * @return {@link #about} (Other resources that pertain to this communication and to which this communication should be associated.) 1492 */ 1493 public List<Reference> getAbout() { 1494 if (this.about == null) 1495 this.about = new ArrayList<Reference>(); 1496 return this.about; 1497 } 1498 1499 /** 1500 * @return Returns a reference to <code>this</code> for easy method chaining 1501 */ 1502 public Communication setAbout(List<Reference> theAbout) { 1503 this.about = theAbout; 1504 return this; 1505 } 1506 1507 public boolean hasAbout() { 1508 if (this.about == null) 1509 return false; 1510 for (Reference item : this.about) 1511 if (!item.isEmpty()) 1512 return true; 1513 return false; 1514 } 1515 1516 public Reference addAbout() { //3 1517 Reference t = new Reference(); 1518 if (this.about == null) 1519 this.about = new ArrayList<Reference>(); 1520 this.about.add(t); 1521 return t; 1522 } 1523 1524 public Communication addAbout(Reference t) { //3 1525 if (t == null) 1526 return this; 1527 if (this.about == null) 1528 this.about = new ArrayList<Reference>(); 1529 this.about.add(t); 1530 return this; 1531 } 1532 1533 /** 1534 * @return The first repetition of repeating field {@link #about}, creating it if it does not already exist 1535 */ 1536 public Reference getAboutFirstRep() { 1537 if (getAbout().isEmpty()) { 1538 addAbout(); 1539 } 1540 return getAbout().get(0); 1541 } 1542 1543 /** 1544 * @deprecated Use Reference#setResource(IBaseResource) instead 1545 */ 1546 @Deprecated 1547 public List<Resource> getAboutTarget() { 1548 if (this.aboutTarget == null) 1549 this.aboutTarget = new ArrayList<Resource>(); 1550 return this.aboutTarget; 1551 } 1552 1553 /** 1554 * @return {@link #encounter} (The Encounter during which this Communication was created or to which the creation of this record is tightly associated.) 1555 */ 1556 public Reference getEncounter() { 1557 if (this.encounter == null) 1558 if (Configuration.errorOnAutoCreate()) 1559 throw new Error("Attempt to auto-create Communication.encounter"); 1560 else if (Configuration.doAutoCreate()) 1561 this.encounter = new Reference(); // cc 1562 return this.encounter; 1563 } 1564 1565 public boolean hasEncounter() { 1566 return this.encounter != null && !this.encounter.isEmpty(); 1567 } 1568 1569 /** 1570 * @param value {@link #encounter} (The Encounter during which this Communication was created or to which the creation of this record is tightly associated.) 1571 */ 1572 public Communication setEncounter(Reference value) { 1573 this.encounter = value; 1574 return this; 1575 } 1576 1577 /** 1578 * @return {@link #encounter} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The Encounter during which this Communication was created or to which the creation of this record is tightly associated.) 1579 */ 1580 public Encounter getEncounterTarget() { 1581 if (this.encounterTarget == null) 1582 if (Configuration.errorOnAutoCreate()) 1583 throw new Error("Attempt to auto-create Communication.encounter"); 1584 else if (Configuration.doAutoCreate()) 1585 this.encounterTarget = new Encounter(); // aa 1586 return this.encounterTarget; 1587 } 1588 1589 /** 1590 * @param value {@link #encounter} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The Encounter during which this Communication was created or to which the creation of this record is tightly associated.) 1591 */ 1592 public Communication setEncounterTarget(Encounter value) { 1593 this.encounterTarget = value; 1594 return this; 1595 } 1596 1597 /** 1598 * @return {@link #sent} (The time when this communication was sent.). This is the underlying object with id, value and extensions. The accessor "getSent" gives direct access to the value 1599 */ 1600 public DateTimeType getSentElement() { 1601 if (this.sent == null) 1602 if (Configuration.errorOnAutoCreate()) 1603 throw new Error("Attempt to auto-create Communication.sent"); 1604 else if (Configuration.doAutoCreate()) 1605 this.sent = new DateTimeType(); // bb 1606 return this.sent; 1607 } 1608 1609 public boolean hasSentElement() { 1610 return this.sent != null && !this.sent.isEmpty(); 1611 } 1612 1613 public boolean hasSent() { 1614 return this.sent != null && !this.sent.isEmpty(); 1615 } 1616 1617 /** 1618 * @param value {@link #sent} (The time when this communication was sent.). This is the underlying object with id, value and extensions. The accessor "getSent" gives direct access to the value 1619 */ 1620 public Communication setSentElement(DateTimeType value) { 1621 this.sent = value; 1622 return this; 1623 } 1624 1625 /** 1626 * @return The time when this communication was sent. 1627 */ 1628 public Date getSent() { 1629 return this.sent == null ? null : this.sent.getValue(); 1630 } 1631 1632 /** 1633 * @param value The time when this communication was sent. 1634 */ 1635 public Communication setSent(Date value) { 1636 if (value == null) 1637 this.sent = null; 1638 else { 1639 if (this.sent == null) 1640 this.sent = new DateTimeType(); 1641 this.sent.setValue(value); 1642 } 1643 return this; 1644 } 1645 1646 /** 1647 * @return {@link #received} (The time when this communication arrived at the destination.). This is the underlying object with id, value and extensions. The accessor "getReceived" gives direct access to the value 1648 */ 1649 public DateTimeType getReceivedElement() { 1650 if (this.received == null) 1651 if (Configuration.errorOnAutoCreate()) 1652 throw new Error("Attempt to auto-create Communication.received"); 1653 else if (Configuration.doAutoCreate()) 1654 this.received = new DateTimeType(); // bb 1655 return this.received; 1656 } 1657 1658 public boolean hasReceivedElement() { 1659 return this.received != null && !this.received.isEmpty(); 1660 } 1661 1662 public boolean hasReceived() { 1663 return this.received != null && !this.received.isEmpty(); 1664 } 1665 1666 /** 1667 * @param value {@link #received} (The time when this communication arrived at the destination.). This is the underlying object with id, value and extensions. The accessor "getReceived" gives direct access to the value 1668 */ 1669 public Communication setReceivedElement(DateTimeType value) { 1670 this.received = value; 1671 return this; 1672 } 1673 1674 /** 1675 * @return The time when this communication arrived at the destination. 1676 */ 1677 public Date getReceived() { 1678 return this.received == null ? null : this.received.getValue(); 1679 } 1680 1681 /** 1682 * @param value The time when this communication arrived at the destination. 1683 */ 1684 public Communication setReceived(Date value) { 1685 if (value == null) 1686 this.received = null; 1687 else { 1688 if (this.received == null) 1689 this.received = new DateTimeType(); 1690 this.received.setValue(value); 1691 } 1692 return this; 1693 } 1694 1695 /** 1696 * @return {@link #recipient} (The entity (e.g. person, organization, clinical information system, care team or device) which was the target of the communication. If receipts need to be tracked by an individual, a separate resource instance will need to be created for each recipient. Multiple recipient communications are intended where either receipts are not tracked (e.g. a mass mail-out) or a receipt is captured in aggregate (all emails confirmed received by a particular time).) 1697 */ 1698 public List<Reference> getRecipient() { 1699 if (this.recipient == null) 1700 this.recipient = new ArrayList<Reference>(); 1701 return this.recipient; 1702 } 1703 1704 /** 1705 * @return Returns a reference to <code>this</code> for easy method chaining 1706 */ 1707 public Communication setRecipient(List<Reference> theRecipient) { 1708 this.recipient = theRecipient; 1709 return this; 1710 } 1711 1712 public boolean hasRecipient() { 1713 if (this.recipient == null) 1714 return false; 1715 for (Reference item : this.recipient) 1716 if (!item.isEmpty()) 1717 return true; 1718 return false; 1719 } 1720 1721 public Reference addRecipient() { //3 1722 Reference t = new Reference(); 1723 if (this.recipient == null) 1724 this.recipient = new ArrayList<Reference>(); 1725 this.recipient.add(t); 1726 return t; 1727 } 1728 1729 public Communication addRecipient(Reference t) { //3 1730 if (t == null) 1731 return this; 1732 if (this.recipient == null) 1733 this.recipient = new ArrayList<Reference>(); 1734 this.recipient.add(t); 1735 return this; 1736 } 1737 1738 /** 1739 * @return The first repetition of repeating field {@link #recipient}, creating it if it does not already exist 1740 */ 1741 public Reference getRecipientFirstRep() { 1742 if (getRecipient().isEmpty()) { 1743 addRecipient(); 1744 } 1745 return getRecipient().get(0); 1746 } 1747 1748 /** 1749 * @deprecated Use Reference#setResource(IBaseResource) instead 1750 */ 1751 @Deprecated 1752 public List<Resource> getRecipientTarget() { 1753 if (this.recipientTarget == null) 1754 this.recipientTarget = new ArrayList<Resource>(); 1755 return this.recipientTarget; 1756 } 1757 1758 /** 1759 * @return {@link #sender} (The entity (e.g. person, organization, clinical information system, or device) which was the source of the communication.) 1760 */ 1761 public Reference getSender() { 1762 if (this.sender == null) 1763 if (Configuration.errorOnAutoCreate()) 1764 throw new Error("Attempt to auto-create Communication.sender"); 1765 else if (Configuration.doAutoCreate()) 1766 this.sender = new Reference(); // cc 1767 return this.sender; 1768 } 1769 1770 public boolean hasSender() { 1771 return this.sender != null && !this.sender.isEmpty(); 1772 } 1773 1774 /** 1775 * @param value {@link #sender} (The entity (e.g. person, organization, clinical information system, or device) which was the source of the communication.) 1776 */ 1777 public Communication setSender(Reference value) { 1778 this.sender = value; 1779 return this; 1780 } 1781 1782 /** 1783 * @return {@link #sender} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The entity (e.g. person, organization, clinical information system, or device) which was the source of the communication.) 1784 */ 1785 public Resource getSenderTarget() { 1786 return this.senderTarget; 1787 } 1788 1789 /** 1790 * @param value {@link #sender} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The entity (e.g. person, organization, clinical information system, or device) which was the source of the communication.) 1791 */ 1792 public Communication setSenderTarget(Resource value) { 1793 this.senderTarget = value; 1794 return this; 1795 } 1796 1797 /** 1798 * @return {@link #reasonCode} (The reason or justification for the communication.) 1799 */ 1800 public List<CodeableConcept> getReasonCode() { 1801 if (this.reasonCode == null) 1802 this.reasonCode = new ArrayList<CodeableConcept>(); 1803 return this.reasonCode; 1804 } 1805 1806 /** 1807 * @return Returns a reference to <code>this</code> for easy method chaining 1808 */ 1809 public Communication setReasonCode(List<CodeableConcept> theReasonCode) { 1810 this.reasonCode = theReasonCode; 1811 return this; 1812 } 1813 1814 public boolean hasReasonCode() { 1815 if (this.reasonCode == null) 1816 return false; 1817 for (CodeableConcept item : this.reasonCode) 1818 if (!item.isEmpty()) 1819 return true; 1820 return false; 1821 } 1822 1823 public CodeableConcept addReasonCode() { //3 1824 CodeableConcept t = new CodeableConcept(); 1825 if (this.reasonCode == null) 1826 this.reasonCode = new ArrayList<CodeableConcept>(); 1827 this.reasonCode.add(t); 1828 return t; 1829 } 1830 1831 public Communication addReasonCode(CodeableConcept t) { //3 1832 if (t == null) 1833 return this; 1834 if (this.reasonCode == null) 1835 this.reasonCode = new ArrayList<CodeableConcept>(); 1836 this.reasonCode.add(t); 1837 return this; 1838 } 1839 1840 /** 1841 * @return The first repetition of repeating field {@link #reasonCode}, creating it if it does not already exist 1842 */ 1843 public CodeableConcept getReasonCodeFirstRep() { 1844 if (getReasonCode().isEmpty()) { 1845 addReasonCode(); 1846 } 1847 return getReasonCode().get(0); 1848 } 1849 1850 /** 1851 * @return {@link #reasonReference} (Indicates another resource whose existence justifies this communication.) 1852 */ 1853 public List<Reference> getReasonReference() { 1854 if (this.reasonReference == null) 1855 this.reasonReference = new ArrayList<Reference>(); 1856 return this.reasonReference; 1857 } 1858 1859 /** 1860 * @return Returns a reference to <code>this</code> for easy method chaining 1861 */ 1862 public Communication setReasonReference(List<Reference> theReasonReference) { 1863 this.reasonReference = theReasonReference; 1864 return this; 1865 } 1866 1867 public boolean hasReasonReference() { 1868 if (this.reasonReference == null) 1869 return false; 1870 for (Reference item : this.reasonReference) 1871 if (!item.isEmpty()) 1872 return true; 1873 return false; 1874 } 1875 1876 public Reference addReasonReference() { //3 1877 Reference t = new Reference(); 1878 if (this.reasonReference == null) 1879 this.reasonReference = new ArrayList<Reference>(); 1880 this.reasonReference.add(t); 1881 return t; 1882 } 1883 1884 public Communication addReasonReference(Reference t) { //3 1885 if (t == null) 1886 return this; 1887 if (this.reasonReference == null) 1888 this.reasonReference = new ArrayList<Reference>(); 1889 this.reasonReference.add(t); 1890 return this; 1891 } 1892 1893 /** 1894 * @return The first repetition of repeating field {@link #reasonReference}, creating it if it does not already exist 1895 */ 1896 public Reference getReasonReferenceFirstRep() { 1897 if (getReasonReference().isEmpty()) { 1898 addReasonReference(); 1899 } 1900 return getReasonReference().get(0); 1901 } 1902 1903 /** 1904 * @deprecated Use Reference#setResource(IBaseResource) instead 1905 */ 1906 @Deprecated 1907 public List<Resource> getReasonReferenceTarget() { 1908 if (this.reasonReferenceTarget == null) 1909 this.reasonReferenceTarget = new ArrayList<Resource>(); 1910 return this.reasonReferenceTarget; 1911 } 1912 1913 /** 1914 * @return {@link #payload} (Text, attachment(s), or resource(s) that was communicated to the recipient.) 1915 */ 1916 public List<CommunicationPayloadComponent> getPayload() { 1917 if (this.payload == null) 1918 this.payload = new ArrayList<CommunicationPayloadComponent>(); 1919 return this.payload; 1920 } 1921 1922 /** 1923 * @return Returns a reference to <code>this</code> for easy method chaining 1924 */ 1925 public Communication setPayload(List<CommunicationPayloadComponent> thePayload) { 1926 this.payload = thePayload; 1927 return this; 1928 } 1929 1930 public boolean hasPayload() { 1931 if (this.payload == null) 1932 return false; 1933 for (CommunicationPayloadComponent item : this.payload) 1934 if (!item.isEmpty()) 1935 return true; 1936 return false; 1937 } 1938 1939 public CommunicationPayloadComponent addPayload() { //3 1940 CommunicationPayloadComponent t = new CommunicationPayloadComponent(); 1941 if (this.payload == null) 1942 this.payload = new ArrayList<CommunicationPayloadComponent>(); 1943 this.payload.add(t); 1944 return t; 1945 } 1946 1947 public Communication addPayload(CommunicationPayloadComponent t) { //3 1948 if (t == null) 1949 return this; 1950 if (this.payload == null) 1951 this.payload = new ArrayList<CommunicationPayloadComponent>(); 1952 this.payload.add(t); 1953 return this; 1954 } 1955 1956 /** 1957 * @return The first repetition of repeating field {@link #payload}, creating it if it does not already exist 1958 */ 1959 public CommunicationPayloadComponent getPayloadFirstRep() { 1960 if (getPayload().isEmpty()) { 1961 addPayload(); 1962 } 1963 return getPayload().get(0); 1964 } 1965 1966 /** 1967 * @return {@link #note} (Additional notes or commentary about the communication by the sender, receiver or other interested parties.) 1968 */ 1969 public List<Annotation> getNote() { 1970 if (this.note == null) 1971 this.note = new ArrayList<Annotation>(); 1972 return this.note; 1973 } 1974 1975 /** 1976 * @return Returns a reference to <code>this</code> for easy method chaining 1977 */ 1978 public Communication setNote(List<Annotation> theNote) { 1979 this.note = theNote; 1980 return this; 1981 } 1982 1983 public boolean hasNote() { 1984 if (this.note == null) 1985 return false; 1986 for (Annotation item : this.note) 1987 if (!item.isEmpty()) 1988 return true; 1989 return false; 1990 } 1991 1992 public Annotation addNote() { //3 1993 Annotation t = new Annotation(); 1994 if (this.note == null) 1995 this.note = new ArrayList<Annotation>(); 1996 this.note.add(t); 1997 return t; 1998 } 1999 2000 public Communication addNote(Annotation t) { //3 2001 if (t == null) 2002 return this; 2003 if (this.note == null) 2004 this.note = new ArrayList<Annotation>(); 2005 this.note.add(t); 2006 return this; 2007 } 2008 2009 /** 2010 * @return The first repetition of repeating field {@link #note}, creating it if it does not already exist 2011 */ 2012 public Annotation getNoteFirstRep() { 2013 if (getNote().isEmpty()) { 2014 addNote(); 2015 } 2016 return getNote().get(0); 2017 } 2018 2019 protected void listChildren(List<Property> children) { 2020 super.listChildren(children); 2021 children.add(new Property("identifier", "Identifier", "Business identifiers assigned to this communication by the performer or other systems which remain constant as the resource is updated and propagates from server to server.", 0, java.lang.Integer.MAX_VALUE, identifier)); 2022 children.add(new Property("instantiatesCanonical", "canonical(PlanDefinition|ActivityDefinition|Measure|OperationDefinition|Questionnaire)", "The URL pointing to a FHIR-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Communication.", 0, java.lang.Integer.MAX_VALUE, instantiatesCanonical)); 2023 children.add(new Property("instantiatesUri", "uri", "The URL pointing to an externally maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Communication.", 0, java.lang.Integer.MAX_VALUE, instantiatesUri)); 2024 children.add(new Property("basedOn", "Reference(Any)", "An order, proposal or plan fulfilled in whole or in part by this Communication.", 0, java.lang.Integer.MAX_VALUE, basedOn)); 2025 children.add(new Property("partOf", "Reference(Any)", "Part of this action.", 0, java.lang.Integer.MAX_VALUE, partOf)); 2026 children.add(new Property("inResponseTo", "Reference(Communication)", "Prior communication that this communication is in response to.", 0, java.lang.Integer.MAX_VALUE, inResponseTo)); 2027 children.add(new Property("status", "code", "The status of the transmission.", 0, 1, status)); 2028 children.add(new Property("statusReason", "CodeableConcept", "Captures the reason for the current state of the Communication.", 0, 1, statusReason)); 2029 children.add(new Property("category", "CodeableConcept", "The type of message conveyed such as alert, notification, reminder, instruction, etc.", 0, java.lang.Integer.MAX_VALUE, category)); 2030 children.add(new Property("priority", "code", "Characterizes how quickly the planned or in progress communication must be addressed. Includes concepts such as stat, urgent, routine.", 0, 1, priority)); 2031 children.add(new Property("medium", "CodeableConcept", "A channel that was used for this communication (e.g. email, fax).", 0, java.lang.Integer.MAX_VALUE, medium)); 2032 children.add(new Property("subject", "Reference(Patient|Group)", "The patient or group that was the focus of this communication.", 0, 1, subject)); 2033 children.add(new Property("topic", "CodeableConcept", "Description of the purpose/content, similar to a subject line in an email.", 0, 1, topic)); 2034 children.add(new Property("about", "Reference(Any)", "Other resources that pertain to this communication and to which this communication should be associated.", 0, java.lang.Integer.MAX_VALUE, about)); 2035 children.add(new Property("encounter", "Reference(Encounter)", "The Encounter during which this Communication was created or to which the creation of this record is tightly associated.", 0, 1, encounter)); 2036 children.add(new Property("sent", "dateTime", "The time when this communication was sent.", 0, 1, sent)); 2037 children.add(new Property("received", "dateTime", "The time when this communication arrived at the destination.", 0, 1, received)); 2038 children.add(new Property("recipient", "Reference(Device|Organization|Patient|Practitioner|PractitionerRole|RelatedPerson|Group|CareTeam|HealthcareService)", "The entity (e.g. person, organization, clinical information system, care team or device) which was the target of the communication. If receipts need to be tracked by an individual, a separate resource instance will need to be created for each recipient. Multiple recipient communications are intended where either receipts are not tracked (e.g. a mass mail-out) or a receipt is captured in aggregate (all emails confirmed received by a particular time).", 0, java.lang.Integer.MAX_VALUE, recipient)); 2039 children.add(new Property("sender", "Reference(Device|Organization|Patient|Practitioner|PractitionerRole|RelatedPerson|HealthcareService)", "The entity (e.g. person, organization, clinical information system, or device) which was the source of the communication.", 0, 1, sender)); 2040 children.add(new Property("reasonCode", "CodeableConcept", "The reason or justification for the communication.", 0, java.lang.Integer.MAX_VALUE, reasonCode)); 2041 children.add(new Property("reasonReference", "Reference(Condition|Observation|DiagnosticReport|DocumentReference)", "Indicates another resource whose existence justifies this communication.", 0, java.lang.Integer.MAX_VALUE, reasonReference)); 2042 children.add(new Property("payload", "", "Text, attachment(s), or resource(s) that was communicated to the recipient.", 0, java.lang.Integer.MAX_VALUE, payload)); 2043 children.add(new Property("note", "Annotation", "Additional notes or commentary about the communication by the sender, receiver or other interested parties.", 0, java.lang.Integer.MAX_VALUE, note)); 2044 } 2045 2046 @Override 2047 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 2048 switch (_hash) { 2049 case -1618432855: /*identifier*/ return new Property("identifier", "Identifier", "Business identifiers assigned to this communication by the performer or other systems which remain constant as the resource is updated and propagates from server to server.", 0, java.lang.Integer.MAX_VALUE, identifier); 2050 case 8911915: /*instantiatesCanonical*/ return new Property("instantiatesCanonical", "canonical(PlanDefinition|ActivityDefinition|Measure|OperationDefinition|Questionnaire)", "The URL pointing to a FHIR-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Communication.", 0, java.lang.Integer.MAX_VALUE, instantiatesCanonical); 2051 case -1926393373: /*instantiatesUri*/ return new Property("instantiatesUri", "uri", "The URL pointing to an externally maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Communication.", 0, java.lang.Integer.MAX_VALUE, instantiatesUri); 2052 case -332612366: /*basedOn*/ return new Property("basedOn", "Reference(Any)", "An order, proposal or plan fulfilled in whole or in part by this Communication.", 0, java.lang.Integer.MAX_VALUE, basedOn); 2053 case -995410646: /*partOf*/ return new Property("partOf", "Reference(Any)", "Part of this action.", 0, java.lang.Integer.MAX_VALUE, partOf); 2054 case 1932956065: /*inResponseTo*/ return new Property("inResponseTo", "Reference(Communication)", "Prior communication that this communication is in response to.", 0, java.lang.Integer.MAX_VALUE, inResponseTo); 2055 case -892481550: /*status*/ return new Property("status", "code", "The status of the transmission.", 0, 1, status); 2056 case 2051346646: /*statusReason*/ return new Property("statusReason", "CodeableConcept", "Captures the reason for the current state of the Communication.", 0, 1, statusReason); 2057 case 50511102: /*category*/ return new Property("category", "CodeableConcept", "The type of message conveyed such as alert, notification, reminder, instruction, etc.", 0, java.lang.Integer.MAX_VALUE, category); 2058 case -1165461084: /*priority*/ return new Property("priority", "code", "Characterizes how quickly the planned or in progress communication must be addressed. Includes concepts such as stat, urgent, routine.", 0, 1, priority); 2059 case -1078030475: /*medium*/ return new Property("medium", "CodeableConcept", "A channel that was used for this communication (e.g. email, fax).", 0, java.lang.Integer.MAX_VALUE, medium); 2060 case -1867885268: /*subject*/ return new Property("subject", "Reference(Patient|Group)", "The patient or group that was the focus of this communication.", 0, 1, subject); 2061 case 110546223: /*topic*/ return new Property("topic", "CodeableConcept", "Description of the purpose/content, similar to a subject line in an email.", 0, 1, topic); 2062 case 92611469: /*about*/ return new Property("about", "Reference(Any)", "Other resources that pertain to this communication and to which this communication should be associated.", 0, java.lang.Integer.MAX_VALUE, about); 2063 case 1524132147: /*encounter*/ return new Property("encounter", "Reference(Encounter)", "The Encounter during which this Communication was created or to which the creation of this record is tightly associated.", 0, 1, encounter); 2064 case 3526552: /*sent*/ return new Property("sent", "dateTime", "The time when this communication was sent.", 0, 1, sent); 2065 case -808719903: /*received*/ return new Property("received", "dateTime", "The time when this communication arrived at the destination.", 0, 1, received); 2066 case 820081177: /*recipient*/ return new Property("recipient", "Reference(Device|Organization|Patient|Practitioner|PractitionerRole|RelatedPerson|Group|CareTeam|HealthcareService)", "The entity (e.g. person, organization, clinical information system, care team or device) which was the target of the communication. If receipts need to be tracked by an individual, a separate resource instance will need to be created for each recipient. Multiple recipient communications are intended where either receipts are not tracked (e.g. a mass mail-out) or a receipt is captured in aggregate (all emails confirmed received by a particular time).", 0, java.lang.Integer.MAX_VALUE, recipient); 2067 case -905962955: /*sender*/ return new Property("sender", "Reference(Device|Organization|Patient|Practitioner|PractitionerRole|RelatedPerson|HealthcareService)", "The entity (e.g. person, organization, clinical information system, or device) which was the source of the communication.", 0, 1, sender); 2068 case 722137681: /*reasonCode*/ return new Property("reasonCode", "CodeableConcept", "The reason or justification for the communication.", 0, java.lang.Integer.MAX_VALUE, reasonCode); 2069 case -1146218137: /*reasonReference*/ return new Property("reasonReference", "Reference(Condition|Observation|DiagnosticReport|DocumentReference)", "Indicates another resource whose existence justifies this communication.", 0, java.lang.Integer.MAX_VALUE, reasonReference); 2070 case -786701938: /*payload*/ return new Property("payload", "", "Text, attachment(s), or resource(s) that was communicated to the recipient.", 0, java.lang.Integer.MAX_VALUE, payload); 2071 case 3387378: /*note*/ return new Property("note", "Annotation", "Additional notes or commentary about the communication by the sender, receiver or other interested parties.", 0, java.lang.Integer.MAX_VALUE, note); 2072 default: return super.getNamedProperty(_hash, _name, _checkValid); 2073 } 2074 2075 } 2076 2077 @Override 2078 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2079 switch (hash) { 2080 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 2081 case 8911915: /*instantiatesCanonical*/ return this.instantiatesCanonical == null ? new Base[0] : this.instantiatesCanonical.toArray(new Base[this.instantiatesCanonical.size()]); // CanonicalType 2082 case -1926393373: /*instantiatesUri*/ return this.instantiatesUri == null ? new Base[0] : this.instantiatesUri.toArray(new Base[this.instantiatesUri.size()]); // UriType 2083 case -332612366: /*basedOn*/ return this.basedOn == null ? new Base[0] : this.basedOn.toArray(new Base[this.basedOn.size()]); // Reference 2084 case -995410646: /*partOf*/ return this.partOf == null ? new Base[0] : this.partOf.toArray(new Base[this.partOf.size()]); // Reference 2085 case 1932956065: /*inResponseTo*/ return this.inResponseTo == null ? new Base[0] : this.inResponseTo.toArray(new Base[this.inResponseTo.size()]); // Reference 2086 case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<CommunicationStatus> 2087 case 2051346646: /*statusReason*/ return this.statusReason == null ? new Base[0] : new Base[] {this.statusReason}; // CodeableConcept 2088 case 50511102: /*category*/ return this.category == null ? new Base[0] : this.category.toArray(new Base[this.category.size()]); // CodeableConcept 2089 case -1165461084: /*priority*/ return this.priority == null ? new Base[0] : new Base[] {this.priority}; // Enumeration<CommunicationPriority> 2090 case -1078030475: /*medium*/ return this.medium == null ? new Base[0] : this.medium.toArray(new Base[this.medium.size()]); // CodeableConcept 2091 case -1867885268: /*subject*/ return this.subject == null ? new Base[0] : new Base[] {this.subject}; // Reference 2092 case 110546223: /*topic*/ return this.topic == null ? new Base[0] : new Base[] {this.topic}; // CodeableConcept 2093 case 92611469: /*about*/ return this.about == null ? new Base[0] : this.about.toArray(new Base[this.about.size()]); // Reference 2094 case 1524132147: /*encounter*/ return this.encounter == null ? new Base[0] : new Base[] {this.encounter}; // Reference 2095 case 3526552: /*sent*/ return this.sent == null ? new Base[0] : new Base[] {this.sent}; // DateTimeType 2096 case -808719903: /*received*/ return this.received == null ? new Base[0] : new Base[] {this.received}; // DateTimeType 2097 case 820081177: /*recipient*/ return this.recipient == null ? new Base[0] : this.recipient.toArray(new Base[this.recipient.size()]); // Reference 2098 case -905962955: /*sender*/ return this.sender == null ? new Base[0] : new Base[] {this.sender}; // Reference 2099 case 722137681: /*reasonCode*/ return this.reasonCode == null ? new Base[0] : this.reasonCode.toArray(new Base[this.reasonCode.size()]); // CodeableConcept 2100 case -1146218137: /*reasonReference*/ return this.reasonReference == null ? new Base[0] : this.reasonReference.toArray(new Base[this.reasonReference.size()]); // Reference 2101 case -786701938: /*payload*/ return this.payload == null ? new Base[0] : this.payload.toArray(new Base[this.payload.size()]); // CommunicationPayloadComponent 2102 case 3387378: /*note*/ return this.note == null ? new Base[0] : this.note.toArray(new Base[this.note.size()]); // Annotation 2103 default: return super.getProperty(hash, name, checkValid); 2104 } 2105 2106 } 2107 2108 @Override 2109 public Base setProperty(int hash, String name, Base value) throws FHIRException { 2110 switch (hash) { 2111 case -1618432855: // identifier 2112 this.getIdentifier().add(castToIdentifier(value)); // Identifier 2113 return value; 2114 case 8911915: // instantiatesCanonical 2115 this.getInstantiatesCanonical().add(castToCanonical(value)); // CanonicalType 2116 return value; 2117 case -1926393373: // instantiatesUri 2118 this.getInstantiatesUri().add(castToUri(value)); // UriType 2119 return value; 2120 case -332612366: // basedOn 2121 this.getBasedOn().add(castToReference(value)); // Reference 2122 return value; 2123 case -995410646: // partOf 2124 this.getPartOf().add(castToReference(value)); // Reference 2125 return value; 2126 case 1932956065: // inResponseTo 2127 this.getInResponseTo().add(castToReference(value)); // Reference 2128 return value; 2129 case -892481550: // status 2130 value = new CommunicationStatusEnumFactory().fromType(castToCode(value)); 2131 this.status = (Enumeration) value; // Enumeration<CommunicationStatus> 2132 return value; 2133 case 2051346646: // statusReason 2134 this.statusReason = castToCodeableConcept(value); // CodeableConcept 2135 return value; 2136 case 50511102: // category 2137 this.getCategory().add(castToCodeableConcept(value)); // CodeableConcept 2138 return value; 2139 case -1165461084: // priority 2140 value = new CommunicationPriorityEnumFactory().fromType(castToCode(value)); 2141 this.priority = (Enumeration) value; // Enumeration<CommunicationPriority> 2142 return value; 2143 case -1078030475: // medium 2144 this.getMedium().add(castToCodeableConcept(value)); // CodeableConcept 2145 return value; 2146 case -1867885268: // subject 2147 this.subject = castToReference(value); // Reference 2148 return value; 2149 case 110546223: // topic 2150 this.topic = castToCodeableConcept(value); // CodeableConcept 2151 return value; 2152 case 92611469: // about 2153 this.getAbout().add(castToReference(value)); // Reference 2154 return value; 2155 case 1524132147: // encounter 2156 this.encounter = castToReference(value); // Reference 2157 return value; 2158 case 3526552: // sent 2159 this.sent = castToDateTime(value); // DateTimeType 2160 return value; 2161 case -808719903: // received 2162 this.received = castToDateTime(value); // DateTimeType 2163 return value; 2164 case 820081177: // recipient 2165 this.getRecipient().add(castToReference(value)); // Reference 2166 return value; 2167 case -905962955: // sender 2168 this.sender = castToReference(value); // Reference 2169 return value; 2170 case 722137681: // reasonCode 2171 this.getReasonCode().add(castToCodeableConcept(value)); // CodeableConcept 2172 return value; 2173 case -1146218137: // reasonReference 2174 this.getReasonReference().add(castToReference(value)); // Reference 2175 return value; 2176 case -786701938: // payload 2177 this.getPayload().add((CommunicationPayloadComponent) value); // CommunicationPayloadComponent 2178 return value; 2179 case 3387378: // note 2180 this.getNote().add(castToAnnotation(value)); // Annotation 2181 return value; 2182 default: return super.setProperty(hash, name, value); 2183 } 2184 2185 } 2186 2187 @Override 2188 public Base setProperty(String name, Base value) throws FHIRException { 2189 if (name.equals("identifier")) { 2190 this.getIdentifier().add(castToIdentifier(value)); 2191 } else if (name.equals("instantiatesCanonical")) { 2192 this.getInstantiatesCanonical().add(castToCanonical(value)); 2193 } else if (name.equals("instantiatesUri")) { 2194 this.getInstantiatesUri().add(castToUri(value)); 2195 } else if (name.equals("basedOn")) { 2196 this.getBasedOn().add(castToReference(value)); 2197 } else if (name.equals("partOf")) { 2198 this.getPartOf().add(castToReference(value)); 2199 } else if (name.equals("inResponseTo")) { 2200 this.getInResponseTo().add(castToReference(value)); 2201 } else if (name.equals("status")) { 2202 value = new CommunicationStatusEnumFactory().fromType(castToCode(value)); 2203 this.status = (Enumeration) value; // Enumeration<CommunicationStatus> 2204 } else if (name.equals("statusReason")) { 2205 this.statusReason = castToCodeableConcept(value); // CodeableConcept 2206 } else if (name.equals("category")) { 2207 this.getCategory().add(castToCodeableConcept(value)); 2208 } else if (name.equals("priority")) { 2209 value = new CommunicationPriorityEnumFactory().fromType(castToCode(value)); 2210 this.priority = (Enumeration) value; // Enumeration<CommunicationPriority> 2211 } else if (name.equals("medium")) { 2212 this.getMedium().add(castToCodeableConcept(value)); 2213 } else if (name.equals("subject")) { 2214 this.subject = castToReference(value); // Reference 2215 } else if (name.equals("topic")) { 2216 this.topic = castToCodeableConcept(value); // CodeableConcept 2217 } else if (name.equals("about")) { 2218 this.getAbout().add(castToReference(value)); 2219 } else if (name.equals("encounter")) { 2220 this.encounter = castToReference(value); // Reference 2221 } else if (name.equals("sent")) { 2222 this.sent = castToDateTime(value); // DateTimeType 2223 } else if (name.equals("received")) { 2224 this.received = castToDateTime(value); // DateTimeType 2225 } else if (name.equals("recipient")) { 2226 this.getRecipient().add(castToReference(value)); 2227 } else if (name.equals("sender")) { 2228 this.sender = castToReference(value); // Reference 2229 } else if (name.equals("reasonCode")) { 2230 this.getReasonCode().add(castToCodeableConcept(value)); 2231 } else if (name.equals("reasonReference")) { 2232 this.getReasonReference().add(castToReference(value)); 2233 } else if (name.equals("payload")) { 2234 this.getPayload().add((CommunicationPayloadComponent) value); 2235 } else if (name.equals("note")) { 2236 this.getNote().add(castToAnnotation(value)); 2237 } else 2238 return super.setProperty(name, value); 2239 return value; 2240 } 2241 2242 @Override 2243 public Base makeProperty(int hash, String name) throws FHIRException { 2244 switch (hash) { 2245 case -1618432855: return addIdentifier(); 2246 case 8911915: return addInstantiatesCanonicalElement(); 2247 case -1926393373: return addInstantiatesUriElement(); 2248 case -332612366: return addBasedOn(); 2249 case -995410646: return addPartOf(); 2250 case 1932956065: return addInResponseTo(); 2251 case -892481550: return getStatusElement(); 2252 case 2051346646: return getStatusReason(); 2253 case 50511102: return addCategory(); 2254 case -1165461084: return getPriorityElement(); 2255 case -1078030475: return addMedium(); 2256 case -1867885268: return getSubject(); 2257 case 110546223: return getTopic(); 2258 case 92611469: return addAbout(); 2259 case 1524132147: return getEncounter(); 2260 case 3526552: return getSentElement(); 2261 case -808719903: return getReceivedElement(); 2262 case 820081177: return addRecipient(); 2263 case -905962955: return getSender(); 2264 case 722137681: return addReasonCode(); 2265 case -1146218137: return addReasonReference(); 2266 case -786701938: return addPayload(); 2267 case 3387378: return addNote(); 2268 default: return super.makeProperty(hash, name); 2269 } 2270 2271 } 2272 2273 @Override 2274 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2275 switch (hash) { 2276 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 2277 case 8911915: /*instantiatesCanonical*/ return new String[] {"canonical"}; 2278 case -1926393373: /*instantiatesUri*/ return new String[] {"uri"}; 2279 case -332612366: /*basedOn*/ return new String[] {"Reference"}; 2280 case -995410646: /*partOf*/ return new String[] {"Reference"}; 2281 case 1932956065: /*inResponseTo*/ return new String[] {"Reference"}; 2282 case -892481550: /*status*/ return new String[] {"code"}; 2283 case 2051346646: /*statusReason*/ return new String[] {"CodeableConcept"}; 2284 case 50511102: /*category*/ return new String[] {"CodeableConcept"}; 2285 case -1165461084: /*priority*/ return new String[] {"code"}; 2286 case -1078030475: /*medium*/ return new String[] {"CodeableConcept"}; 2287 case -1867885268: /*subject*/ return new String[] {"Reference"}; 2288 case 110546223: /*topic*/ return new String[] {"CodeableConcept"}; 2289 case 92611469: /*about*/ return new String[] {"Reference"}; 2290 case 1524132147: /*encounter*/ return new String[] {"Reference"}; 2291 case 3526552: /*sent*/ return new String[] {"dateTime"}; 2292 case -808719903: /*received*/ return new String[] {"dateTime"}; 2293 case 820081177: /*recipient*/ return new String[] {"Reference"}; 2294 case -905962955: /*sender*/ return new String[] {"Reference"}; 2295 case 722137681: /*reasonCode*/ return new String[] {"CodeableConcept"}; 2296 case -1146218137: /*reasonReference*/ return new String[] {"Reference"}; 2297 case -786701938: /*payload*/ return new String[] {}; 2298 case 3387378: /*note*/ return new String[] {"Annotation"}; 2299 default: return super.getTypesForProperty(hash, name); 2300 } 2301 2302 } 2303 2304 @Override 2305 public Base addChild(String name) throws FHIRException { 2306 if (name.equals("identifier")) { 2307 return addIdentifier(); 2308 } 2309 else if (name.equals("instantiatesCanonical")) { 2310 throw new FHIRException("Cannot call addChild on a primitive type Communication.instantiatesCanonical"); 2311 } 2312 else if (name.equals("instantiatesUri")) { 2313 throw new FHIRException("Cannot call addChild on a primitive type Communication.instantiatesUri"); 2314 } 2315 else if (name.equals("basedOn")) { 2316 return addBasedOn(); 2317 } 2318 else if (name.equals("partOf")) { 2319 return addPartOf(); 2320 } 2321 else if (name.equals("inResponseTo")) { 2322 return addInResponseTo(); 2323 } 2324 else if (name.equals("status")) { 2325 throw new FHIRException("Cannot call addChild on a primitive type Communication.status"); 2326 } 2327 else if (name.equals("statusReason")) { 2328 this.statusReason = new CodeableConcept(); 2329 return this.statusReason; 2330 } 2331 else if (name.equals("category")) { 2332 return addCategory(); 2333 } 2334 else if (name.equals("priority")) { 2335 throw new FHIRException("Cannot call addChild on a primitive type Communication.priority"); 2336 } 2337 else if (name.equals("medium")) { 2338 return addMedium(); 2339 } 2340 else if (name.equals("subject")) { 2341 this.subject = new Reference(); 2342 return this.subject; 2343 } 2344 else if (name.equals("topic")) { 2345 this.topic = new CodeableConcept(); 2346 return this.topic; 2347 } 2348 else if (name.equals("about")) { 2349 return addAbout(); 2350 } 2351 else if (name.equals("encounter")) { 2352 this.encounter = new Reference(); 2353 return this.encounter; 2354 } 2355 else if (name.equals("sent")) { 2356 throw new FHIRException("Cannot call addChild on a primitive type Communication.sent"); 2357 } 2358 else if (name.equals("received")) { 2359 throw new FHIRException("Cannot call addChild on a primitive type Communication.received"); 2360 } 2361 else if (name.equals("recipient")) { 2362 return addRecipient(); 2363 } 2364 else if (name.equals("sender")) { 2365 this.sender = new Reference(); 2366 return this.sender; 2367 } 2368 else if (name.equals("reasonCode")) { 2369 return addReasonCode(); 2370 } 2371 else if (name.equals("reasonReference")) { 2372 return addReasonReference(); 2373 } 2374 else if (name.equals("payload")) { 2375 return addPayload(); 2376 } 2377 else if (name.equals("note")) { 2378 return addNote(); 2379 } 2380 else 2381 return super.addChild(name); 2382 } 2383 2384 public String fhirType() { 2385 return "Communication"; 2386 2387 } 2388 2389 public Communication copy() { 2390 Communication dst = new Communication(); 2391 copyValues(dst); 2392 if (identifier != null) { 2393 dst.identifier = new ArrayList<Identifier>(); 2394 for (Identifier i : identifier) 2395 dst.identifier.add(i.copy()); 2396 }; 2397 if (instantiatesCanonical != null) { 2398 dst.instantiatesCanonical = new ArrayList<CanonicalType>(); 2399 for (CanonicalType i : instantiatesCanonical) 2400 dst.instantiatesCanonical.add(i.copy()); 2401 }; 2402 if (instantiatesUri != null) { 2403 dst.instantiatesUri = new ArrayList<UriType>(); 2404 for (UriType i : instantiatesUri) 2405 dst.instantiatesUri.add(i.copy()); 2406 }; 2407 if (basedOn != null) { 2408 dst.basedOn = new ArrayList<Reference>(); 2409 for (Reference i : basedOn) 2410 dst.basedOn.add(i.copy()); 2411 }; 2412 if (partOf != null) { 2413 dst.partOf = new ArrayList<Reference>(); 2414 for (Reference i : partOf) 2415 dst.partOf.add(i.copy()); 2416 }; 2417 if (inResponseTo != null) { 2418 dst.inResponseTo = new ArrayList<Reference>(); 2419 for (Reference i : inResponseTo) 2420 dst.inResponseTo.add(i.copy()); 2421 }; 2422 dst.status = status == null ? null : status.copy(); 2423 dst.statusReason = statusReason == null ? null : statusReason.copy(); 2424 if (category != null) { 2425 dst.category = new ArrayList<CodeableConcept>(); 2426 for (CodeableConcept i : category) 2427 dst.category.add(i.copy()); 2428 }; 2429 dst.priority = priority == null ? null : priority.copy(); 2430 if (medium != null) { 2431 dst.medium = new ArrayList<CodeableConcept>(); 2432 for (CodeableConcept i : medium) 2433 dst.medium.add(i.copy()); 2434 }; 2435 dst.subject = subject == null ? null : subject.copy(); 2436 dst.topic = topic == null ? null : topic.copy(); 2437 if (about != null) { 2438 dst.about = new ArrayList<Reference>(); 2439 for (Reference i : about) 2440 dst.about.add(i.copy()); 2441 }; 2442 dst.encounter = encounter == null ? null : encounter.copy(); 2443 dst.sent = sent == null ? null : sent.copy(); 2444 dst.received = received == null ? null : received.copy(); 2445 if (recipient != null) { 2446 dst.recipient = new ArrayList<Reference>(); 2447 for (Reference i : recipient) 2448 dst.recipient.add(i.copy()); 2449 }; 2450 dst.sender = sender == null ? null : sender.copy(); 2451 if (reasonCode != null) { 2452 dst.reasonCode = new ArrayList<CodeableConcept>(); 2453 for (CodeableConcept i : reasonCode) 2454 dst.reasonCode.add(i.copy()); 2455 }; 2456 if (reasonReference != null) { 2457 dst.reasonReference = new ArrayList<Reference>(); 2458 for (Reference i : reasonReference) 2459 dst.reasonReference.add(i.copy()); 2460 }; 2461 if (payload != null) { 2462 dst.payload = new ArrayList<CommunicationPayloadComponent>(); 2463 for (CommunicationPayloadComponent i : payload) 2464 dst.payload.add(i.copy()); 2465 }; 2466 if (note != null) { 2467 dst.note = new ArrayList<Annotation>(); 2468 for (Annotation i : note) 2469 dst.note.add(i.copy()); 2470 }; 2471 return dst; 2472 } 2473 2474 protected Communication typedCopy() { 2475 return copy(); 2476 } 2477 2478 @Override 2479 public boolean equalsDeep(Base other_) { 2480 if (!super.equalsDeep(other_)) 2481 return false; 2482 if (!(other_ instanceof Communication)) 2483 return false; 2484 Communication o = (Communication) other_; 2485 return compareDeep(identifier, o.identifier, true) && compareDeep(instantiatesCanonical, o.instantiatesCanonical, true) 2486 && compareDeep(instantiatesUri, o.instantiatesUri, true) && compareDeep(basedOn, o.basedOn, true) 2487 && compareDeep(partOf, o.partOf, true) && compareDeep(inResponseTo, o.inResponseTo, true) && compareDeep(status, o.status, true) 2488 && compareDeep(statusReason, o.statusReason, true) && compareDeep(category, o.category, true) && compareDeep(priority, o.priority, true) 2489 && compareDeep(medium, o.medium, true) && compareDeep(subject, o.subject, true) && compareDeep(topic, o.topic, true) 2490 && compareDeep(about, o.about, true) && compareDeep(encounter, o.encounter, true) && compareDeep(sent, o.sent, true) 2491 && compareDeep(received, o.received, true) && compareDeep(recipient, o.recipient, true) && compareDeep(sender, o.sender, true) 2492 && compareDeep(reasonCode, o.reasonCode, true) && compareDeep(reasonReference, o.reasonReference, true) 2493 && compareDeep(payload, o.payload, true) && compareDeep(note, o.note, true); 2494 } 2495 2496 @Override 2497 public boolean equalsShallow(Base other_) { 2498 if (!super.equalsShallow(other_)) 2499 return false; 2500 if (!(other_ instanceof Communication)) 2501 return false; 2502 Communication o = (Communication) other_; 2503 return compareValues(instantiatesUri, o.instantiatesUri, true) && compareValues(status, o.status, true) 2504 && compareValues(priority, o.priority, true) && compareValues(sent, o.sent, true) && compareValues(received, o.received, true) 2505 ; 2506 } 2507 2508 public boolean isEmpty() { 2509 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, instantiatesCanonical 2510 , instantiatesUri, basedOn, partOf, inResponseTo, status, statusReason, category 2511 , priority, medium, subject, topic, about, encounter, sent, received, recipient 2512 , sender, reasonCode, reasonReference, payload, note); 2513 } 2514 2515 @Override 2516 public ResourceType getResourceType() { 2517 return ResourceType.Communication; 2518 } 2519 2520 /** 2521 * Search parameter: <b>identifier</b> 2522 * <p> 2523 * Description: <b>Unique identifier</b><br> 2524 * Type: <b>token</b><br> 2525 * Path: <b>Communication.identifier</b><br> 2526 * </p> 2527 */ 2528 @SearchParamDefinition(name="identifier", path="Communication.identifier", description="Unique identifier", type="token" ) 2529 public static final String SP_IDENTIFIER = "identifier"; 2530 /** 2531 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 2532 * <p> 2533 * Description: <b>Unique identifier</b><br> 2534 * Type: <b>token</b><br> 2535 * Path: <b>Communication.identifier</b><br> 2536 * </p> 2537 */ 2538 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 2539 2540 /** 2541 * Search parameter: <b>subject</b> 2542 * <p> 2543 * Description: <b>Focus of message</b><br> 2544 * Type: <b>reference</b><br> 2545 * Path: <b>Communication.subject</b><br> 2546 * </p> 2547 */ 2548 @SearchParamDefinition(name="subject", path="Communication.subject", description="Focus of message", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Patient") }, target={Group.class, Patient.class } ) 2549 public static final String SP_SUBJECT = "subject"; 2550 /** 2551 * <b>Fluent Client</b> search parameter constant for <b>subject</b> 2552 * <p> 2553 * Description: <b>Focus of message</b><br> 2554 * Type: <b>reference</b><br> 2555 * Path: <b>Communication.subject</b><br> 2556 * </p> 2557 */ 2558 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SUBJECT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SUBJECT); 2559 2560/** 2561 * Constant for fluent queries to be used to add include statements. Specifies 2562 * the path value of "<b>Communication:subject</b>". 2563 */ 2564 public static final ca.uhn.fhir.model.api.Include INCLUDE_SUBJECT = new ca.uhn.fhir.model.api.Include("Communication:subject").toLocked(); 2565 2566 /** 2567 * Search parameter: <b>instantiates-canonical</b> 2568 * <p> 2569 * Description: <b>Instantiates FHIR protocol or definition</b><br> 2570 * Type: <b>reference</b><br> 2571 * Path: <b>Communication.instantiatesCanonical</b><br> 2572 * </p> 2573 */ 2574 @SearchParamDefinition(name="instantiates-canonical", path="Communication.instantiatesCanonical", description="Instantiates FHIR protocol or definition", type="reference", target={ActivityDefinition.class, Measure.class, OperationDefinition.class, PlanDefinition.class, Questionnaire.class } ) 2575 public static final String SP_INSTANTIATES_CANONICAL = "instantiates-canonical"; 2576 /** 2577 * <b>Fluent Client</b> search parameter constant for <b>instantiates-canonical</b> 2578 * <p> 2579 * Description: <b>Instantiates FHIR protocol or definition</b><br> 2580 * Type: <b>reference</b><br> 2581 * Path: <b>Communication.instantiatesCanonical</b><br> 2582 * </p> 2583 */ 2584 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam INSTANTIATES_CANONICAL = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_INSTANTIATES_CANONICAL); 2585 2586/** 2587 * Constant for fluent queries to be used to add include statements. Specifies 2588 * the path value of "<b>Communication:instantiates-canonical</b>". 2589 */ 2590 public static final ca.uhn.fhir.model.api.Include INCLUDE_INSTANTIATES_CANONICAL = new ca.uhn.fhir.model.api.Include("Communication:instantiates-canonical").toLocked(); 2591 2592 /** 2593 * Search parameter: <b>received</b> 2594 * <p> 2595 * Description: <b>When received</b><br> 2596 * Type: <b>date</b><br> 2597 * Path: <b>Communication.received</b><br> 2598 * </p> 2599 */ 2600 @SearchParamDefinition(name="received", path="Communication.received", description="When received", type="date" ) 2601 public static final String SP_RECEIVED = "received"; 2602 /** 2603 * <b>Fluent Client</b> search parameter constant for <b>received</b> 2604 * <p> 2605 * Description: <b>When received</b><br> 2606 * Type: <b>date</b><br> 2607 * Path: <b>Communication.received</b><br> 2608 * </p> 2609 */ 2610 public static final ca.uhn.fhir.rest.gclient.DateClientParam RECEIVED = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_RECEIVED); 2611 2612 /** 2613 * Search parameter: <b>part-of</b> 2614 * <p> 2615 * Description: <b>Part of this action</b><br> 2616 * Type: <b>reference</b><br> 2617 * Path: <b>Communication.partOf</b><br> 2618 * </p> 2619 */ 2620 @SearchParamDefinition(name="part-of", path="Communication.partOf", description="Part of this action", type="reference" ) 2621 public static final String SP_PART_OF = "part-of"; 2622 /** 2623 * <b>Fluent Client</b> search parameter constant for <b>part-of</b> 2624 * <p> 2625 * Description: <b>Part of this action</b><br> 2626 * Type: <b>reference</b><br> 2627 * Path: <b>Communication.partOf</b><br> 2628 * </p> 2629 */ 2630 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PART_OF = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PART_OF); 2631 2632/** 2633 * Constant for fluent queries to be used to add include statements. Specifies 2634 * the path value of "<b>Communication:part-of</b>". 2635 */ 2636 public static final ca.uhn.fhir.model.api.Include INCLUDE_PART_OF = new ca.uhn.fhir.model.api.Include("Communication:part-of").toLocked(); 2637 2638 /** 2639 * Search parameter: <b>medium</b> 2640 * <p> 2641 * Description: <b>A channel of communication</b><br> 2642 * Type: <b>token</b><br> 2643 * Path: <b>Communication.medium</b><br> 2644 * </p> 2645 */ 2646 @SearchParamDefinition(name="medium", path="Communication.medium", description="A channel of communication", type="token" ) 2647 public static final String SP_MEDIUM = "medium"; 2648 /** 2649 * <b>Fluent Client</b> search parameter constant for <b>medium</b> 2650 * <p> 2651 * Description: <b>A channel of communication</b><br> 2652 * Type: <b>token</b><br> 2653 * Path: <b>Communication.medium</b><br> 2654 * </p> 2655 */ 2656 public static final ca.uhn.fhir.rest.gclient.TokenClientParam MEDIUM = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_MEDIUM); 2657 2658 /** 2659 * Search parameter: <b>encounter</b> 2660 * <p> 2661 * Description: <b>Encounter created as part of</b><br> 2662 * Type: <b>reference</b><br> 2663 * Path: <b>Communication.encounter</b><br> 2664 * </p> 2665 */ 2666 @SearchParamDefinition(name="encounter", path="Communication.encounter", description="Encounter created as part of", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Encounter") }, target={Encounter.class } ) 2667 public static final String SP_ENCOUNTER = "encounter"; 2668 /** 2669 * <b>Fluent Client</b> search parameter constant for <b>encounter</b> 2670 * <p> 2671 * Description: <b>Encounter created as part of</b><br> 2672 * Type: <b>reference</b><br> 2673 * Path: <b>Communication.encounter</b><br> 2674 * </p> 2675 */ 2676 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ENCOUNTER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ENCOUNTER); 2677 2678/** 2679 * Constant for fluent queries to be used to add include statements. Specifies 2680 * the path value of "<b>Communication:encounter</b>". 2681 */ 2682 public static final ca.uhn.fhir.model.api.Include INCLUDE_ENCOUNTER = new ca.uhn.fhir.model.api.Include("Communication:encounter").toLocked(); 2683 2684 /** 2685 * Search parameter: <b>sent</b> 2686 * <p> 2687 * Description: <b>When sent</b><br> 2688 * Type: <b>date</b><br> 2689 * Path: <b>Communication.sent</b><br> 2690 * </p> 2691 */ 2692 @SearchParamDefinition(name="sent", path="Communication.sent", description="When sent", type="date" ) 2693 public static final String SP_SENT = "sent"; 2694 /** 2695 * <b>Fluent Client</b> search parameter constant for <b>sent</b> 2696 * <p> 2697 * Description: <b>When sent</b><br> 2698 * Type: <b>date</b><br> 2699 * Path: <b>Communication.sent</b><br> 2700 * </p> 2701 */ 2702 public static final ca.uhn.fhir.rest.gclient.DateClientParam SENT = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_SENT); 2703 2704 /** 2705 * Search parameter: <b>based-on</b> 2706 * <p> 2707 * Description: <b>Request fulfilled by this communication</b><br> 2708 * Type: <b>reference</b><br> 2709 * Path: <b>Communication.basedOn</b><br> 2710 * </p> 2711 */ 2712 @SearchParamDefinition(name="based-on", path="Communication.basedOn", description="Request fulfilled by this communication", type="reference" ) 2713 public static final String SP_BASED_ON = "based-on"; 2714 /** 2715 * <b>Fluent Client</b> search parameter constant for <b>based-on</b> 2716 * <p> 2717 * Description: <b>Request fulfilled by this communication</b><br> 2718 * Type: <b>reference</b><br> 2719 * Path: <b>Communication.basedOn</b><br> 2720 * </p> 2721 */ 2722 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam BASED_ON = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_BASED_ON); 2723 2724/** 2725 * Constant for fluent queries to be used to add include statements. Specifies 2726 * the path value of "<b>Communication:based-on</b>". 2727 */ 2728 public static final ca.uhn.fhir.model.api.Include INCLUDE_BASED_ON = new ca.uhn.fhir.model.api.Include("Communication:based-on").toLocked(); 2729 2730 /** 2731 * Search parameter: <b>sender</b> 2732 * <p> 2733 * Description: <b>Message sender</b><br> 2734 * Type: <b>reference</b><br> 2735 * Path: <b>Communication.sender</b><br> 2736 * </p> 2737 */ 2738 @SearchParamDefinition(name="sender", path="Communication.sender", description="Message sender", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Device"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Patient"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Practitioner"), @ca.uhn.fhir.model.api.annotation.Compartment(name="RelatedPerson") }, target={Device.class, HealthcareService.class, Organization.class, Patient.class, Practitioner.class, PractitionerRole.class, RelatedPerson.class } ) 2739 public static final String SP_SENDER = "sender"; 2740 /** 2741 * <b>Fluent Client</b> search parameter constant for <b>sender</b> 2742 * <p> 2743 * Description: <b>Message sender</b><br> 2744 * Type: <b>reference</b><br> 2745 * Path: <b>Communication.sender</b><br> 2746 * </p> 2747 */ 2748 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SENDER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SENDER); 2749 2750/** 2751 * Constant for fluent queries to be used to add include statements. Specifies 2752 * the path value of "<b>Communication:sender</b>". 2753 */ 2754 public static final ca.uhn.fhir.model.api.Include INCLUDE_SENDER = new ca.uhn.fhir.model.api.Include("Communication:sender").toLocked(); 2755 2756 /** 2757 * Search parameter: <b>patient</b> 2758 * <p> 2759 * Description: <b>Focus of message</b><br> 2760 * Type: <b>reference</b><br> 2761 * Path: <b>Communication.subject</b><br> 2762 * </p> 2763 */ 2764 @SearchParamDefinition(name="patient", path="Communication.subject.where(resolve() is Patient)", description="Focus of message", type="reference", target={Patient.class } ) 2765 public static final String SP_PATIENT = "patient"; 2766 /** 2767 * <b>Fluent Client</b> search parameter constant for <b>patient</b> 2768 * <p> 2769 * Description: <b>Focus of message</b><br> 2770 * Type: <b>reference</b><br> 2771 * Path: <b>Communication.subject</b><br> 2772 * </p> 2773 */ 2774 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PATIENT); 2775 2776/** 2777 * Constant for fluent queries to be used to add include statements. Specifies 2778 * the path value of "<b>Communication:patient</b>". 2779 */ 2780 public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("Communication:patient").toLocked(); 2781 2782 /** 2783 * Search parameter: <b>recipient</b> 2784 * <p> 2785 * Description: <b>Message recipient</b><br> 2786 * Type: <b>reference</b><br> 2787 * Path: <b>Communication.recipient</b><br> 2788 * </p> 2789 */ 2790 @SearchParamDefinition(name="recipient", path="Communication.recipient", description="Message recipient", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Device"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Patient"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Practitioner"), @ca.uhn.fhir.model.api.annotation.Compartment(name="RelatedPerson") }, target={CareTeam.class, Device.class, Group.class, HealthcareService.class, Organization.class, Patient.class, Practitioner.class, PractitionerRole.class, RelatedPerson.class } ) 2791 public static final String SP_RECIPIENT = "recipient"; 2792 /** 2793 * <b>Fluent Client</b> search parameter constant for <b>recipient</b> 2794 * <p> 2795 * Description: <b>Message recipient</b><br> 2796 * Type: <b>reference</b><br> 2797 * Path: <b>Communication.recipient</b><br> 2798 * </p> 2799 */ 2800 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam RECIPIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_RECIPIENT); 2801 2802/** 2803 * Constant for fluent queries to be used to add include statements. Specifies 2804 * the path value of "<b>Communication:recipient</b>". 2805 */ 2806 public static final ca.uhn.fhir.model.api.Include INCLUDE_RECIPIENT = new ca.uhn.fhir.model.api.Include("Communication:recipient").toLocked(); 2807 2808 /** 2809 * Search parameter: <b>instantiates-uri</b> 2810 * <p> 2811 * Description: <b>Instantiates external protocol or definition</b><br> 2812 * Type: <b>uri</b><br> 2813 * Path: <b>Communication.instantiatesUri</b><br> 2814 * </p> 2815 */ 2816 @SearchParamDefinition(name="instantiates-uri", path="Communication.instantiatesUri", description="Instantiates external protocol or definition", type="uri" ) 2817 public static final String SP_INSTANTIATES_URI = "instantiates-uri"; 2818 /** 2819 * <b>Fluent Client</b> search parameter constant for <b>instantiates-uri</b> 2820 * <p> 2821 * Description: <b>Instantiates external protocol or definition</b><br> 2822 * Type: <b>uri</b><br> 2823 * Path: <b>Communication.instantiatesUri</b><br> 2824 * </p> 2825 */ 2826 public static final ca.uhn.fhir.rest.gclient.UriClientParam INSTANTIATES_URI = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_INSTANTIATES_URI); 2827 2828 /** 2829 * Search parameter: <b>category</b> 2830 * <p> 2831 * Description: <b>Message category</b><br> 2832 * Type: <b>token</b><br> 2833 * Path: <b>Communication.category</b><br> 2834 * </p> 2835 */ 2836 @SearchParamDefinition(name="category", path="Communication.category", description="Message category", type="token" ) 2837 public static final String SP_CATEGORY = "category"; 2838 /** 2839 * <b>Fluent Client</b> search parameter constant for <b>category</b> 2840 * <p> 2841 * Description: <b>Message category</b><br> 2842 * Type: <b>token</b><br> 2843 * Path: <b>Communication.category</b><br> 2844 * </p> 2845 */ 2846 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CATEGORY = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CATEGORY); 2847 2848 /** 2849 * Search parameter: <b>status</b> 2850 * <p> 2851 * Description: <b>preparation | in-progress | not-done | suspended | aborted | completed | entered-in-error</b><br> 2852 * Type: <b>token</b><br> 2853 * Path: <b>Communication.status</b><br> 2854 * </p> 2855 */ 2856 @SearchParamDefinition(name="status", path="Communication.status", description="preparation | in-progress | not-done | suspended | aborted | completed | entered-in-error", type="token" ) 2857 public static final String SP_STATUS = "status"; 2858 /** 2859 * <b>Fluent Client</b> search parameter constant for <b>status</b> 2860 * <p> 2861 * Description: <b>preparation | in-progress | not-done | suspended | aborted | completed | entered-in-error</b><br> 2862 * Type: <b>token</b><br> 2863 * Path: <b>Communication.status</b><br> 2864 * </p> 2865 */ 2866 public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS); 2867 2868 2869} 2870