001package org.hl7.fhir.r4b.model; 002 003 004/* 005 Copyright (c) 2011+, HL7, Inc. 006 All rights reserved. 007 008 Redistribution and use in source and binary forms, with or without modification, \ 009 are permitted provided that the following conditions are met: 010 011 * Redistributions of source code must retain the above copyright notice, this \ 012 list of conditions and the following disclaimer. 013 * Redistributions in binary form must reproduce the above copyright notice, \ 014 this list of conditions and the following disclaimer in the documentation \ 015 and/or other materials provided with the distribution. 016 * Neither the name of HL7 nor the names of its contributors may be used to 017 endorse or promote products derived from this software without specific 018 prior written permission. 019 020 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \ 021 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \ 022 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \ 023 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \ 024 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT \ 025 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR \ 026 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, \ 027 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) \ 028 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE \ 029 POSSIBILITY OF SUCH DAMAGE. 030 */ 031 032// Generated on Fri, Dec 31, 2021 05:58+1100 for FHIR v4.3.0-snapshot1 033 034import java.util.ArrayList; 035import java.util.Date; 036import java.util.List; 037import org.hl7.fhir.utilities.Utilities; 038import org.hl7.fhir.r4b.model.Enumerations.*; 039import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 040import org.hl7.fhir.exceptions.FHIRException; 041import org.hl7.fhir.instance.model.api.ICompositeType; 042import ca.uhn.fhir.model.api.annotation.ResourceDef; 043import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 044import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 045import ca.uhn.fhir.model.api.annotation.Child; 046import ca.uhn.fhir.model.api.annotation.ChildOrder; 047import ca.uhn.fhir.model.api.annotation.Description; 048import ca.uhn.fhir.model.api.annotation.Block; 049 050/** 051 * A set of healthcare-related information that is assembled together into a single logical package that provides a single coherent statement of meaning, establishes its own context and that has clinical attestation with regard to who is making the statement. A Composition defines the structure and narrative content necessary for a document. However, a Composition alone does not constitute a document. Rather, the Composition must be the first entry in a Bundle where Bundle.type=document, and any other resources referenced from Composition must be included as subsequent entries in the Bundle (for example Patient, Practitioner, Encounter, etc.). 052 */ 053@ResourceDef(name="Composition", profile="http://hl7.org/fhir/StructureDefinition/Composition") 054public class Composition extends DomainResource { 055 056 public enum CompositionAttestationMode { 057 /** 058 * The person authenticated the content in their personal capacity. 059 */ 060 PERSONAL, 061 /** 062 * The person authenticated the content in their professional capacity. 063 */ 064 PROFESSIONAL, 065 /** 066 * The person authenticated the content and accepted legal responsibility for its content. 067 */ 068 LEGAL, 069 /** 070 * The organization authenticated the content as consistent with their policies and procedures. 071 */ 072 OFFICIAL, 073 /** 074 * added to help the parsers with the generic types 075 */ 076 NULL; 077 public static CompositionAttestationMode fromCode(String codeString) throws FHIRException { 078 if (codeString == null || "".equals(codeString)) 079 return null; 080 if ("personal".equals(codeString)) 081 return PERSONAL; 082 if ("professional".equals(codeString)) 083 return PROFESSIONAL; 084 if ("legal".equals(codeString)) 085 return LEGAL; 086 if ("official".equals(codeString)) 087 return OFFICIAL; 088 if (Configuration.isAcceptInvalidEnums()) 089 return null; 090 else 091 throw new FHIRException("Unknown CompositionAttestationMode code '"+codeString+"'"); 092 } 093 public String toCode() { 094 switch (this) { 095 case PERSONAL: return "personal"; 096 case PROFESSIONAL: return "professional"; 097 case LEGAL: return "legal"; 098 case OFFICIAL: return "official"; 099 case NULL: return null; 100 default: return "?"; 101 } 102 } 103 public String getSystem() { 104 switch (this) { 105 case PERSONAL: return "http://hl7.org/fhir/composition-attestation-mode"; 106 case PROFESSIONAL: return "http://hl7.org/fhir/composition-attestation-mode"; 107 case LEGAL: return "http://hl7.org/fhir/composition-attestation-mode"; 108 case OFFICIAL: return "http://hl7.org/fhir/composition-attestation-mode"; 109 case NULL: return null; 110 default: return "?"; 111 } 112 } 113 public String getDefinition() { 114 switch (this) { 115 case PERSONAL: return "The person authenticated the content in their personal capacity."; 116 case PROFESSIONAL: return "The person authenticated the content in their professional capacity."; 117 case LEGAL: return "The person authenticated the content and accepted legal responsibility for its content."; 118 case OFFICIAL: return "The organization authenticated the content as consistent with their policies and procedures."; 119 case NULL: return null; 120 default: return "?"; 121 } 122 } 123 public String getDisplay() { 124 switch (this) { 125 case PERSONAL: return "Personal"; 126 case PROFESSIONAL: return "Professional"; 127 case LEGAL: return "Legal"; 128 case OFFICIAL: return "Official"; 129 case NULL: return null; 130 default: return "?"; 131 } 132 } 133 } 134 135 public static class CompositionAttestationModeEnumFactory implements EnumFactory<CompositionAttestationMode> { 136 public CompositionAttestationMode fromCode(String codeString) throws IllegalArgumentException { 137 if (codeString == null || "".equals(codeString)) 138 if (codeString == null || "".equals(codeString)) 139 return null; 140 if ("personal".equals(codeString)) 141 return CompositionAttestationMode.PERSONAL; 142 if ("professional".equals(codeString)) 143 return CompositionAttestationMode.PROFESSIONAL; 144 if ("legal".equals(codeString)) 145 return CompositionAttestationMode.LEGAL; 146 if ("official".equals(codeString)) 147 return CompositionAttestationMode.OFFICIAL; 148 throw new IllegalArgumentException("Unknown CompositionAttestationMode code '"+codeString+"'"); 149 } 150 public Enumeration<CompositionAttestationMode> fromType(Base code) throws FHIRException { 151 if (code == null) 152 return null; 153 if (code.isEmpty()) 154 return new Enumeration<CompositionAttestationMode>(this); 155 String codeString = ((PrimitiveType) code).asStringValue(); 156 if (codeString == null || "".equals(codeString)) 157 return null; 158 if ("personal".equals(codeString)) 159 return new Enumeration<CompositionAttestationMode>(this, CompositionAttestationMode.PERSONAL); 160 if ("professional".equals(codeString)) 161 return new Enumeration<CompositionAttestationMode>(this, CompositionAttestationMode.PROFESSIONAL); 162 if ("legal".equals(codeString)) 163 return new Enumeration<CompositionAttestationMode>(this, CompositionAttestationMode.LEGAL); 164 if ("official".equals(codeString)) 165 return new Enumeration<CompositionAttestationMode>(this, CompositionAttestationMode.OFFICIAL); 166 throw new FHIRException("Unknown CompositionAttestationMode code '"+codeString+"'"); 167 } 168 public String toCode(CompositionAttestationMode code) { 169 if (code == CompositionAttestationMode.PERSONAL) 170 return "personal"; 171 if (code == CompositionAttestationMode.PROFESSIONAL) 172 return "professional"; 173 if (code == CompositionAttestationMode.LEGAL) 174 return "legal"; 175 if (code == CompositionAttestationMode.OFFICIAL) 176 return "official"; 177 return "?"; 178 } 179 public String toSystem(CompositionAttestationMode code) { 180 return code.getSystem(); 181 } 182 } 183 184 @Block() 185 public static class CompositionAttesterComponent extends BackboneElement implements IBaseBackboneElement { 186 /** 187 * The type of attestation the authenticator offers. 188 */ 189 @Child(name = "mode", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=false) 190 @Description(shortDefinition="personal | professional | legal | official", formalDefinition="The type of attestation the authenticator offers." ) 191 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/composition-attestation-mode") 192 protected Enumeration<CompositionAttestationMode> mode; 193 194 /** 195 * When the composition was attested by the party. 196 */ 197 @Child(name = "time", type = {DateTimeType.class}, order=2, min=0, max=1, modifier=false, summary=false) 198 @Description(shortDefinition="When the composition was attested", formalDefinition="When the composition was attested by the party." ) 199 protected DateTimeType time; 200 201 /** 202 * Who attested the composition in the specified way. 203 */ 204 @Child(name = "party", type = {Patient.class, RelatedPerson.class, Practitioner.class, PractitionerRole.class, Organization.class}, order=3, min=0, max=1, modifier=false, summary=false) 205 @Description(shortDefinition="Who attested the composition", formalDefinition="Who attested the composition in the specified way." ) 206 protected Reference party; 207 208 private static final long serialVersionUID = 1917167918L; 209 210 /** 211 * Constructor 212 */ 213 public CompositionAttesterComponent() { 214 super(); 215 } 216 217 /** 218 * Constructor 219 */ 220 public CompositionAttesterComponent(CompositionAttestationMode mode) { 221 super(); 222 this.setMode(mode); 223 } 224 225 /** 226 * @return {@link #mode} (The type of attestation the authenticator offers.). This is the underlying object with id, value and extensions. The accessor "getMode" gives direct access to the value 227 */ 228 public Enumeration<CompositionAttestationMode> getModeElement() { 229 if (this.mode == null) 230 if (Configuration.errorOnAutoCreate()) 231 throw new Error("Attempt to auto-create CompositionAttesterComponent.mode"); 232 else if (Configuration.doAutoCreate()) 233 this.mode = new Enumeration<CompositionAttestationMode>(new CompositionAttestationModeEnumFactory()); // bb 234 return this.mode; 235 } 236 237 public boolean hasModeElement() { 238 return this.mode != null && !this.mode.isEmpty(); 239 } 240 241 public boolean hasMode() { 242 return this.mode != null && !this.mode.isEmpty(); 243 } 244 245 /** 246 * @param value {@link #mode} (The type of attestation the authenticator offers.). This is the underlying object with id, value and extensions. The accessor "getMode" gives direct access to the value 247 */ 248 public CompositionAttesterComponent setModeElement(Enumeration<CompositionAttestationMode> value) { 249 this.mode = value; 250 return this; 251 } 252 253 /** 254 * @return The type of attestation the authenticator offers. 255 */ 256 public CompositionAttestationMode getMode() { 257 return this.mode == null ? null : this.mode.getValue(); 258 } 259 260 /** 261 * @param value The type of attestation the authenticator offers. 262 */ 263 public CompositionAttesterComponent setMode(CompositionAttestationMode value) { 264 if (this.mode == null) 265 this.mode = new Enumeration<CompositionAttestationMode>(new CompositionAttestationModeEnumFactory()); 266 this.mode.setValue(value); 267 return this; 268 } 269 270 /** 271 * @return {@link #time} (When the composition was attested by the party.). This is the underlying object with id, value and extensions. The accessor "getTime" gives direct access to the value 272 */ 273 public DateTimeType getTimeElement() { 274 if (this.time == null) 275 if (Configuration.errorOnAutoCreate()) 276 throw new Error("Attempt to auto-create CompositionAttesterComponent.time"); 277 else if (Configuration.doAutoCreate()) 278 this.time = new DateTimeType(); // bb 279 return this.time; 280 } 281 282 public boolean hasTimeElement() { 283 return this.time != null && !this.time.isEmpty(); 284 } 285 286 public boolean hasTime() { 287 return this.time != null && !this.time.isEmpty(); 288 } 289 290 /** 291 * @param value {@link #time} (When the composition was attested by the party.). This is the underlying object with id, value and extensions. The accessor "getTime" gives direct access to the value 292 */ 293 public CompositionAttesterComponent setTimeElement(DateTimeType value) { 294 this.time = value; 295 return this; 296 } 297 298 /** 299 * @return When the composition was attested by the party. 300 */ 301 public Date getTime() { 302 return this.time == null ? null : this.time.getValue(); 303 } 304 305 /** 306 * @param value When the composition was attested by the party. 307 */ 308 public CompositionAttesterComponent setTime(Date value) { 309 if (value == null) 310 this.time = null; 311 else { 312 if (this.time == null) 313 this.time = new DateTimeType(); 314 this.time.setValue(value); 315 } 316 return this; 317 } 318 319 /** 320 * @return {@link #party} (Who attested the composition in the specified way.) 321 */ 322 public Reference getParty() { 323 if (this.party == null) 324 if (Configuration.errorOnAutoCreate()) 325 throw new Error("Attempt to auto-create CompositionAttesterComponent.party"); 326 else if (Configuration.doAutoCreate()) 327 this.party = new Reference(); // cc 328 return this.party; 329 } 330 331 public boolean hasParty() { 332 return this.party != null && !this.party.isEmpty(); 333 } 334 335 /** 336 * @param value {@link #party} (Who attested the composition in the specified way.) 337 */ 338 public CompositionAttesterComponent setParty(Reference value) { 339 this.party = value; 340 return this; 341 } 342 343 protected void listChildren(List<Property> children) { 344 super.listChildren(children); 345 children.add(new Property("mode", "code", "The type of attestation the authenticator offers.", 0, 1, mode)); 346 children.add(new Property("time", "dateTime", "When the composition was attested by the party.", 0, 1, time)); 347 children.add(new Property("party", "Reference(Patient|RelatedPerson|Practitioner|PractitionerRole|Organization)", "Who attested the composition in the specified way.", 0, 1, party)); 348 } 349 350 @Override 351 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 352 switch (_hash) { 353 case 3357091: /*mode*/ return new Property("mode", "code", "The type of attestation the authenticator offers.", 0, 1, mode); 354 case 3560141: /*time*/ return new Property("time", "dateTime", "When the composition was attested by the party.", 0, 1, time); 355 case 106437350: /*party*/ return new Property("party", "Reference(Patient|RelatedPerson|Practitioner|PractitionerRole|Organization)", "Who attested the composition in the specified way.", 0, 1, party); 356 default: return super.getNamedProperty(_hash, _name, _checkValid); 357 } 358 359 } 360 361 @Override 362 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 363 switch (hash) { 364 case 3357091: /*mode*/ return this.mode == null ? new Base[0] : new Base[] {this.mode}; // Enumeration<CompositionAttestationMode> 365 case 3560141: /*time*/ return this.time == null ? new Base[0] : new Base[] {this.time}; // DateTimeType 366 case 106437350: /*party*/ return this.party == null ? new Base[0] : new Base[] {this.party}; // Reference 367 default: return super.getProperty(hash, name, checkValid); 368 } 369 370 } 371 372 @Override 373 public Base setProperty(int hash, String name, Base value) throws FHIRException { 374 switch (hash) { 375 case 3357091: // mode 376 value = new CompositionAttestationModeEnumFactory().fromType(TypeConvertor.castToCode(value)); 377 this.mode = (Enumeration) value; // Enumeration<CompositionAttestationMode> 378 return value; 379 case 3560141: // time 380 this.time = TypeConvertor.castToDateTime(value); // DateTimeType 381 return value; 382 case 106437350: // party 383 this.party = TypeConvertor.castToReference(value); // Reference 384 return value; 385 default: return super.setProperty(hash, name, value); 386 } 387 388 } 389 390 @Override 391 public Base setProperty(String name, Base value) throws FHIRException { 392 if (name.equals("mode")) { 393 value = new CompositionAttestationModeEnumFactory().fromType(TypeConvertor.castToCode(value)); 394 this.mode = (Enumeration) value; // Enumeration<CompositionAttestationMode> 395 } else if (name.equals("time")) { 396 this.time = TypeConvertor.castToDateTime(value); // DateTimeType 397 } else if (name.equals("party")) { 398 this.party = TypeConvertor.castToReference(value); // Reference 399 } else 400 return super.setProperty(name, value); 401 return value; 402 } 403 404 @Override 405 public Base makeProperty(int hash, String name) throws FHIRException { 406 switch (hash) { 407 case 3357091: return getModeElement(); 408 case 3560141: return getTimeElement(); 409 case 106437350: return getParty(); 410 default: return super.makeProperty(hash, name); 411 } 412 413 } 414 415 @Override 416 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 417 switch (hash) { 418 case 3357091: /*mode*/ return new String[] {"code"}; 419 case 3560141: /*time*/ return new String[] {"dateTime"}; 420 case 106437350: /*party*/ return new String[] {"Reference"}; 421 default: return super.getTypesForProperty(hash, name); 422 } 423 424 } 425 426 @Override 427 public Base addChild(String name) throws FHIRException { 428 if (name.equals("mode")) { 429 throw new FHIRException("Cannot call addChild on a primitive type Composition.attester.mode"); 430 } 431 else if (name.equals("time")) { 432 throw new FHIRException("Cannot call addChild on a primitive type Composition.attester.time"); 433 } 434 else if (name.equals("party")) { 435 this.party = new Reference(); 436 return this.party; 437 } 438 else 439 return super.addChild(name); 440 } 441 442 public CompositionAttesterComponent copy() { 443 CompositionAttesterComponent dst = new CompositionAttesterComponent(); 444 copyValues(dst); 445 return dst; 446 } 447 448 public void copyValues(CompositionAttesterComponent dst) { 449 super.copyValues(dst); 450 dst.mode = mode == null ? null : mode.copy(); 451 dst.time = time == null ? null : time.copy(); 452 dst.party = party == null ? null : party.copy(); 453 } 454 455 @Override 456 public boolean equalsDeep(Base other_) { 457 if (!super.equalsDeep(other_)) 458 return false; 459 if (!(other_ instanceof CompositionAttesterComponent)) 460 return false; 461 CompositionAttesterComponent o = (CompositionAttesterComponent) other_; 462 return compareDeep(mode, o.mode, true) && compareDeep(time, o.time, true) && compareDeep(party, o.party, true) 463 ; 464 } 465 466 @Override 467 public boolean equalsShallow(Base other_) { 468 if (!super.equalsShallow(other_)) 469 return false; 470 if (!(other_ instanceof CompositionAttesterComponent)) 471 return false; 472 CompositionAttesterComponent o = (CompositionAttesterComponent) other_; 473 return compareValues(mode, o.mode, true) && compareValues(time, o.time, true); 474 } 475 476 public boolean isEmpty() { 477 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(mode, time, party); 478 } 479 480 public String fhirType() { 481 return "Composition.attester"; 482 483 } 484 485 } 486 487 @Block() 488 public static class CompositionRelatesToComponent extends BackboneElement implements IBaseBackboneElement { 489 /** 490 * The type of relationship that this composition has with anther composition or document. 491 */ 492 @Child(name = "code", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=false) 493 @Description(shortDefinition="replaces | transforms | signs | appends", formalDefinition="The type of relationship that this composition has with anther composition or document." ) 494 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/document-relationship-type") 495 protected Enumeration<DocumentRelationshipType> code; 496 497 /** 498 * The target composition/document of this relationship. 499 */ 500 @Child(name = "target", type = {Identifier.class, Composition.class}, order=2, min=1, max=1, modifier=false, summary=false) 501 @Description(shortDefinition="Target of the relationship", formalDefinition="The target composition/document of this relationship." ) 502 protected DataType target; 503 504 private static final long serialVersionUID = -897077070L; 505 506 /** 507 * Constructor 508 */ 509 public CompositionRelatesToComponent() { 510 super(); 511 } 512 513 /** 514 * Constructor 515 */ 516 public CompositionRelatesToComponent(DocumentRelationshipType code, DataType target) { 517 super(); 518 this.setCode(code); 519 this.setTarget(target); 520 } 521 522 /** 523 * @return {@link #code} (The type of relationship that this composition has with anther composition or document.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value 524 */ 525 public Enumeration<DocumentRelationshipType> getCodeElement() { 526 if (this.code == null) 527 if (Configuration.errorOnAutoCreate()) 528 throw new Error("Attempt to auto-create CompositionRelatesToComponent.code"); 529 else if (Configuration.doAutoCreate()) 530 this.code = new Enumeration<DocumentRelationshipType>(new DocumentRelationshipTypeEnumFactory()); // bb 531 return this.code; 532 } 533 534 public boolean hasCodeElement() { 535 return this.code != null && !this.code.isEmpty(); 536 } 537 538 public boolean hasCode() { 539 return this.code != null && !this.code.isEmpty(); 540 } 541 542 /** 543 * @param value {@link #code} (The type of relationship that this composition has with anther composition or document.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value 544 */ 545 public CompositionRelatesToComponent setCodeElement(Enumeration<DocumentRelationshipType> value) { 546 this.code = value; 547 return this; 548 } 549 550 /** 551 * @return The type of relationship that this composition has with anther composition or document. 552 */ 553 public DocumentRelationshipType getCode() { 554 return this.code == null ? null : this.code.getValue(); 555 } 556 557 /** 558 * @param value The type of relationship that this composition has with anther composition or document. 559 */ 560 public CompositionRelatesToComponent setCode(DocumentRelationshipType value) { 561 if (this.code == null) 562 this.code = new Enumeration<DocumentRelationshipType>(new DocumentRelationshipTypeEnumFactory()); 563 this.code.setValue(value); 564 return this; 565 } 566 567 /** 568 * @return {@link #target} (The target composition/document of this relationship.) 569 */ 570 public DataType getTarget() { 571 return this.target; 572 } 573 574 /** 575 * @return {@link #target} (The target composition/document of this relationship.) 576 */ 577 public Identifier getTargetIdentifier() throws FHIRException { 578 if (this.target == null) 579 this.target = new Identifier(); 580 if (!(this.target instanceof Identifier)) 581 throw new FHIRException("Type mismatch: the type Identifier was expected, but "+this.target.getClass().getName()+" was encountered"); 582 return (Identifier) this.target; 583 } 584 585 public boolean hasTargetIdentifier() { 586 return this != null && this.target instanceof Identifier; 587 } 588 589 /** 590 * @return {@link #target} (The target composition/document of this relationship.) 591 */ 592 public Reference getTargetReference() throws FHIRException { 593 if (this.target == null) 594 this.target = new Reference(); 595 if (!(this.target instanceof Reference)) 596 throw new FHIRException("Type mismatch: the type Reference was expected, but "+this.target.getClass().getName()+" was encountered"); 597 return (Reference) this.target; 598 } 599 600 public boolean hasTargetReference() { 601 return this != null && this.target instanceof Reference; 602 } 603 604 public boolean hasTarget() { 605 return this.target != null && !this.target.isEmpty(); 606 } 607 608 /** 609 * @param value {@link #target} (The target composition/document of this relationship.) 610 */ 611 public CompositionRelatesToComponent setTarget(DataType value) { 612 if (value != null && !(value instanceof Identifier || value instanceof Reference)) 613 throw new Error("Not the right type for Composition.relatesTo.target[x]: "+value.fhirType()); 614 this.target = value; 615 return this; 616 } 617 618 protected void listChildren(List<Property> children) { 619 super.listChildren(children); 620 children.add(new Property("code", "code", "The type of relationship that this composition has with anther composition or document.", 0, 1, code)); 621 children.add(new Property("target[x]", "Identifier|Reference(Composition)", "The target composition/document of this relationship.", 0, 1, target)); 622 } 623 624 @Override 625 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 626 switch (_hash) { 627 case 3059181: /*code*/ return new Property("code", "code", "The type of relationship that this composition has with anther composition or document.", 0, 1, code); 628 case -815579825: /*target[x]*/ return new Property("target[x]", "Identifier|Reference(Composition)", "The target composition/document of this relationship.", 0, 1, target); 629 case -880905839: /*target*/ return new Property("target[x]", "Identifier|Reference(Composition)", "The target composition/document of this relationship.", 0, 1, target); 630 case 1690892570: /*targetIdentifier*/ return new Property("target[x]", "Identifier", "The target composition/document of this relationship.", 0, 1, target); 631 case 1259806906: /*targetReference*/ return new Property("target[x]", "Reference(Composition)", "The target composition/document of this relationship.", 0, 1, target); 632 default: return super.getNamedProperty(_hash, _name, _checkValid); 633 } 634 635 } 636 637 @Override 638 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 639 switch (hash) { 640 case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // Enumeration<DocumentRelationshipType> 641 case -880905839: /*target*/ return this.target == null ? new Base[0] : new Base[] {this.target}; // DataType 642 default: return super.getProperty(hash, name, checkValid); 643 } 644 645 } 646 647 @Override 648 public Base setProperty(int hash, String name, Base value) throws FHIRException { 649 switch (hash) { 650 case 3059181: // code 651 value = new DocumentRelationshipTypeEnumFactory().fromType(TypeConvertor.castToCode(value)); 652 this.code = (Enumeration) value; // Enumeration<DocumentRelationshipType> 653 return value; 654 case -880905839: // target 655 this.target = TypeConvertor.castToType(value); // DataType 656 return value; 657 default: return super.setProperty(hash, name, value); 658 } 659 660 } 661 662 @Override 663 public Base setProperty(String name, Base value) throws FHIRException { 664 if (name.equals("code")) { 665 value = new DocumentRelationshipTypeEnumFactory().fromType(TypeConvertor.castToCode(value)); 666 this.code = (Enumeration) value; // Enumeration<DocumentRelationshipType> 667 } else if (name.equals("target[x]")) { 668 this.target = TypeConvertor.castToType(value); // DataType 669 } else 670 return super.setProperty(name, value); 671 return value; 672 } 673 674 @Override 675 public Base makeProperty(int hash, String name) throws FHIRException { 676 switch (hash) { 677 case 3059181: return getCodeElement(); 678 case -815579825: return getTarget(); 679 case -880905839: return getTarget(); 680 default: return super.makeProperty(hash, name); 681 } 682 683 } 684 685 @Override 686 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 687 switch (hash) { 688 case 3059181: /*code*/ return new String[] {"code"}; 689 case -880905839: /*target*/ return new String[] {"Identifier", "Reference"}; 690 default: return super.getTypesForProperty(hash, name); 691 } 692 693 } 694 695 @Override 696 public Base addChild(String name) throws FHIRException { 697 if (name.equals("code")) { 698 throw new FHIRException("Cannot call addChild on a primitive type Composition.relatesTo.code"); 699 } 700 else if (name.equals("targetIdentifier")) { 701 this.target = new Identifier(); 702 return this.target; 703 } 704 else if (name.equals("targetReference")) { 705 this.target = new Reference(); 706 return this.target; 707 } 708 else 709 return super.addChild(name); 710 } 711 712 public CompositionRelatesToComponent copy() { 713 CompositionRelatesToComponent dst = new CompositionRelatesToComponent(); 714 copyValues(dst); 715 return dst; 716 } 717 718 public void copyValues(CompositionRelatesToComponent dst) { 719 super.copyValues(dst); 720 dst.code = code == null ? null : code.copy(); 721 dst.target = target == null ? null : target.copy(); 722 } 723 724 @Override 725 public boolean equalsDeep(Base other_) { 726 if (!super.equalsDeep(other_)) 727 return false; 728 if (!(other_ instanceof CompositionRelatesToComponent)) 729 return false; 730 CompositionRelatesToComponent o = (CompositionRelatesToComponent) other_; 731 return compareDeep(code, o.code, true) && compareDeep(target, o.target, true); 732 } 733 734 @Override 735 public boolean equalsShallow(Base other_) { 736 if (!super.equalsShallow(other_)) 737 return false; 738 if (!(other_ instanceof CompositionRelatesToComponent)) 739 return false; 740 CompositionRelatesToComponent o = (CompositionRelatesToComponent) other_; 741 return compareValues(code, o.code, true); 742 } 743 744 public boolean isEmpty() { 745 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, target); 746 } 747 748 public String fhirType() { 749 return "Composition.relatesTo"; 750 751 } 752 753 } 754 755 @Block() 756 public static class CompositionEventComponent extends BackboneElement implements IBaseBackboneElement { 757 /** 758 * This list of codes represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the typeCode, such as a "History and Physical Report" in which the procedure being documented is necessarily a "History and Physical" act. 759 */ 760 @Child(name = "code", type = {CodeableConcept.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 761 @Description(shortDefinition="Code(s) that apply to the event being documented", formalDefinition="This list of codes represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the typeCode, such as a \"History and Physical Report\" in which the procedure being documented is necessarily a \"History and Physical\" act." ) 762 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://terminology.hl7.org/ValueSet/v3-ActCode") 763 protected List<CodeableConcept> code; 764 765 /** 766 * The period of time covered by the documentation. There is no assertion that the documentation is a complete representation for this period, only that it documents events during this time. 767 */ 768 @Child(name = "period", type = {Period.class}, order=2, min=0, max=1, modifier=false, summary=true) 769 @Description(shortDefinition="The period covered by the documentation", formalDefinition="The period of time covered by the documentation. There is no assertion that the documentation is a complete representation for this period, only that it documents events during this time." ) 770 protected Period period; 771 772 /** 773 * The description and/or reference of the event(s) being documented. For example, this could be used to document such a colonoscopy or an appendectomy. 774 */ 775 @Child(name = "detail", type = {Reference.class}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 776 @Description(shortDefinition="The event(s) being documented", formalDefinition="The description and/or reference of the event(s) being documented. For example, this could be used to document such a colonoscopy or an appendectomy." ) 777 protected List<Reference> detail; 778 779 private static final long serialVersionUID = 1593079240L; 780 781 /** 782 * Constructor 783 */ 784 public CompositionEventComponent() { 785 super(); 786 } 787 788 /** 789 * @return {@link #code} (This list of codes represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the typeCode, such as a "History and Physical Report" in which the procedure being documented is necessarily a "History and Physical" act.) 790 */ 791 public List<CodeableConcept> getCode() { 792 if (this.code == null) 793 this.code = new ArrayList<CodeableConcept>(); 794 return this.code; 795 } 796 797 /** 798 * @return Returns a reference to <code>this</code> for easy method chaining 799 */ 800 public CompositionEventComponent setCode(List<CodeableConcept> theCode) { 801 this.code = theCode; 802 return this; 803 } 804 805 public boolean hasCode() { 806 if (this.code == null) 807 return false; 808 for (CodeableConcept item : this.code) 809 if (!item.isEmpty()) 810 return true; 811 return false; 812 } 813 814 public CodeableConcept addCode() { //3 815 CodeableConcept t = new CodeableConcept(); 816 if (this.code == null) 817 this.code = new ArrayList<CodeableConcept>(); 818 this.code.add(t); 819 return t; 820 } 821 822 public CompositionEventComponent addCode(CodeableConcept t) { //3 823 if (t == null) 824 return this; 825 if (this.code == null) 826 this.code = new ArrayList<CodeableConcept>(); 827 this.code.add(t); 828 return this; 829 } 830 831 /** 832 * @return The first repetition of repeating field {@link #code}, creating it if it does not already exist {3} 833 */ 834 public CodeableConcept getCodeFirstRep() { 835 if (getCode().isEmpty()) { 836 addCode(); 837 } 838 return getCode().get(0); 839 } 840 841 /** 842 * @return {@link #period} (The period of time covered by the documentation. There is no assertion that the documentation is a complete representation for this period, only that it documents events during this time.) 843 */ 844 public Period getPeriod() { 845 if (this.period == null) 846 if (Configuration.errorOnAutoCreate()) 847 throw new Error("Attempt to auto-create CompositionEventComponent.period"); 848 else if (Configuration.doAutoCreate()) 849 this.period = new Period(); // cc 850 return this.period; 851 } 852 853 public boolean hasPeriod() { 854 return this.period != null && !this.period.isEmpty(); 855 } 856 857 /** 858 * @param value {@link #period} (The period of time covered by the documentation. There is no assertion that the documentation is a complete representation for this period, only that it documents events during this time.) 859 */ 860 public CompositionEventComponent setPeriod(Period value) { 861 this.period = value; 862 return this; 863 } 864 865 /** 866 * @return {@link #detail} (The description and/or reference of the event(s) being documented. For example, this could be used to document such a colonoscopy or an appendectomy.) 867 */ 868 public List<Reference> getDetail() { 869 if (this.detail == null) 870 this.detail = new ArrayList<Reference>(); 871 return this.detail; 872 } 873 874 /** 875 * @return Returns a reference to <code>this</code> for easy method chaining 876 */ 877 public CompositionEventComponent setDetail(List<Reference> theDetail) { 878 this.detail = theDetail; 879 return this; 880 } 881 882 public boolean hasDetail() { 883 if (this.detail == null) 884 return false; 885 for (Reference item : this.detail) 886 if (!item.isEmpty()) 887 return true; 888 return false; 889 } 890 891 public Reference addDetail() { //3 892 Reference t = new Reference(); 893 if (this.detail == null) 894 this.detail = new ArrayList<Reference>(); 895 this.detail.add(t); 896 return t; 897 } 898 899 public CompositionEventComponent addDetail(Reference t) { //3 900 if (t == null) 901 return this; 902 if (this.detail == null) 903 this.detail = new ArrayList<Reference>(); 904 this.detail.add(t); 905 return this; 906 } 907 908 /** 909 * @return The first repetition of repeating field {@link #detail}, creating it if it does not already exist {3} 910 */ 911 public Reference getDetailFirstRep() { 912 if (getDetail().isEmpty()) { 913 addDetail(); 914 } 915 return getDetail().get(0); 916 } 917 918 protected void listChildren(List<Property> children) { 919 super.listChildren(children); 920 children.add(new Property("code", "CodeableConcept", "This list of codes represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the typeCode, such as a \"History and Physical Report\" in which the procedure being documented is necessarily a \"History and Physical\" act.", 0, java.lang.Integer.MAX_VALUE, code)); 921 children.add(new Property("period", "Period", "The period of time covered by the documentation. There is no assertion that the documentation is a complete representation for this period, only that it documents events during this time.", 0, 1, period)); 922 children.add(new Property("detail", "Reference(Any)", "The description and/or reference of the event(s) being documented. For example, this could be used to document such a colonoscopy or an appendectomy.", 0, java.lang.Integer.MAX_VALUE, detail)); 923 } 924 925 @Override 926 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 927 switch (_hash) { 928 case 3059181: /*code*/ return new Property("code", "CodeableConcept", "This list of codes represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the typeCode, such as a \"History and Physical Report\" in which the procedure being documented is necessarily a \"History and Physical\" act.", 0, java.lang.Integer.MAX_VALUE, code); 929 case -991726143: /*period*/ return new Property("period", "Period", "The period of time covered by the documentation. There is no assertion that the documentation is a complete representation for this period, only that it documents events during this time.", 0, 1, period); 930 case -1335224239: /*detail*/ return new Property("detail", "Reference(Any)", "The description and/or reference of the event(s) being documented. For example, this could be used to document such a colonoscopy or an appendectomy.", 0, java.lang.Integer.MAX_VALUE, detail); 931 default: return super.getNamedProperty(_hash, _name, _checkValid); 932 } 933 934 } 935 936 @Override 937 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 938 switch (hash) { 939 case 3059181: /*code*/ return this.code == null ? new Base[0] : this.code.toArray(new Base[this.code.size()]); // CodeableConcept 940 case -991726143: /*period*/ return this.period == null ? new Base[0] : new Base[] {this.period}; // Period 941 case -1335224239: /*detail*/ return this.detail == null ? new Base[0] : this.detail.toArray(new Base[this.detail.size()]); // Reference 942 default: return super.getProperty(hash, name, checkValid); 943 } 944 945 } 946 947 @Override 948 public Base setProperty(int hash, String name, Base value) throws FHIRException { 949 switch (hash) { 950 case 3059181: // code 951 this.getCode().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 952 return value; 953 case -991726143: // period 954 this.period = TypeConvertor.castToPeriod(value); // Period 955 return value; 956 case -1335224239: // detail 957 this.getDetail().add(TypeConvertor.castToReference(value)); // Reference 958 return value; 959 default: return super.setProperty(hash, name, value); 960 } 961 962 } 963 964 @Override 965 public Base setProperty(String name, Base value) throws FHIRException { 966 if (name.equals("code")) { 967 this.getCode().add(TypeConvertor.castToCodeableConcept(value)); 968 } else if (name.equals("period")) { 969 this.period = TypeConvertor.castToPeriod(value); // Period 970 } else if (name.equals("detail")) { 971 this.getDetail().add(TypeConvertor.castToReference(value)); 972 } else 973 return super.setProperty(name, value); 974 return value; 975 } 976 977 @Override 978 public Base makeProperty(int hash, String name) throws FHIRException { 979 switch (hash) { 980 case 3059181: return addCode(); 981 case -991726143: return getPeriod(); 982 case -1335224239: return addDetail(); 983 default: return super.makeProperty(hash, name); 984 } 985 986 } 987 988 @Override 989 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 990 switch (hash) { 991 case 3059181: /*code*/ return new String[] {"CodeableConcept"}; 992 case -991726143: /*period*/ return new String[] {"Period"}; 993 case -1335224239: /*detail*/ return new String[] {"Reference"}; 994 default: return super.getTypesForProperty(hash, name); 995 } 996 997 } 998 999 @Override 1000 public Base addChild(String name) throws FHIRException { 1001 if (name.equals("code")) { 1002 return addCode(); 1003 } 1004 else if (name.equals("period")) { 1005 this.period = new Period(); 1006 return this.period; 1007 } 1008 else if (name.equals("detail")) { 1009 return addDetail(); 1010 } 1011 else 1012 return super.addChild(name); 1013 } 1014 1015 public CompositionEventComponent copy() { 1016 CompositionEventComponent dst = new CompositionEventComponent(); 1017 copyValues(dst); 1018 return dst; 1019 } 1020 1021 public void copyValues(CompositionEventComponent dst) { 1022 super.copyValues(dst); 1023 if (code != null) { 1024 dst.code = new ArrayList<CodeableConcept>(); 1025 for (CodeableConcept i : code) 1026 dst.code.add(i.copy()); 1027 }; 1028 dst.period = period == null ? null : period.copy(); 1029 if (detail != null) { 1030 dst.detail = new ArrayList<Reference>(); 1031 for (Reference i : detail) 1032 dst.detail.add(i.copy()); 1033 }; 1034 } 1035 1036 @Override 1037 public boolean equalsDeep(Base other_) { 1038 if (!super.equalsDeep(other_)) 1039 return false; 1040 if (!(other_ instanceof CompositionEventComponent)) 1041 return false; 1042 CompositionEventComponent o = (CompositionEventComponent) other_; 1043 return compareDeep(code, o.code, true) && compareDeep(period, o.period, true) && compareDeep(detail, o.detail, true) 1044 ; 1045 } 1046 1047 @Override 1048 public boolean equalsShallow(Base other_) { 1049 if (!super.equalsShallow(other_)) 1050 return false; 1051 if (!(other_ instanceof CompositionEventComponent)) 1052 return false; 1053 CompositionEventComponent o = (CompositionEventComponent) other_; 1054 return true; 1055 } 1056 1057 public boolean isEmpty() { 1058 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, period, detail); 1059 } 1060 1061 public String fhirType() { 1062 return "Composition.event"; 1063 1064 } 1065 1066 } 1067 1068 @Block() 1069 public static class SectionComponent extends BackboneElement implements IBaseBackboneElement { 1070 /** 1071 * The label for this particular section. This will be part of the rendered content for the document, and is often used to build a table of contents. 1072 */ 1073 @Child(name = "title", type = {StringType.class}, order=1, min=0, max=1, modifier=false, summary=false) 1074 @Description(shortDefinition="Label for section (e.g. for ToC)", formalDefinition="The label for this particular section. This will be part of the rendered content for the document, and is often used to build a table of contents." ) 1075 protected StringType title; 1076 1077 /** 1078 * A code identifying the kind of content contained within the section. This must be consistent with the section title. 1079 */ 1080 @Child(name = "code", type = {CodeableConcept.class}, order=2, min=0, max=1, modifier=false, summary=false) 1081 @Description(shortDefinition="Classification of section (recommended)", formalDefinition="A code identifying the kind of content contained within the section. This must be consistent with the section title." ) 1082 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/doc-section-codes") 1083 protected CodeableConcept code; 1084 1085 /** 1086 * Identifies who is responsible for the information in this section, not necessarily who typed it in. 1087 */ 1088 @Child(name = "author", type = {Practitioner.class, PractitionerRole.class, Device.class, Patient.class, RelatedPerson.class, Organization.class}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1089 @Description(shortDefinition="Who and/or what authored the section", formalDefinition="Identifies who is responsible for the information in this section, not necessarily who typed it in." ) 1090 protected List<Reference> author; 1091 1092 /** 1093 * The actual focus of the section when it is not the subject of the composition, but instead represents something or someone associated with the subject such as (for a patient subject) a spouse, parent, fetus, or donor. If not focus is specified, the focus is assumed to be focus of the parent section, or, for a section in the Composition itself, the subject of the composition. Sections with a focus SHALL only include resources where the logical subject (patient, subject, focus, etc.) matches the section focus, or the resources have no logical subject (few resources). 1094 */ 1095 @Child(name = "focus", type = {Reference.class}, order=4, min=0, max=1, modifier=false, summary=false) 1096 @Description(shortDefinition="Who/what the section is about, when it is not about the subject of composition", formalDefinition="The actual focus of the section when it is not the subject of the composition, but instead represents something or someone associated with the subject such as (for a patient subject) a spouse, parent, fetus, or donor. If not focus is specified, the focus is assumed to be focus of the parent section, or, for a section in the Composition itself, the subject of the composition. Sections with a focus SHALL only include resources where the logical subject (patient, subject, focus, etc.) matches the section focus, or the resources have no logical subject (few resources)." ) 1097 protected Reference focus; 1098 1099 /** 1100 * A human-readable narrative that contains the attested content of the section, used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it "clinically safe" for a human to just read the narrative. 1101 */ 1102 @Child(name = "text", type = {Narrative.class}, order=5, min=0, max=1, modifier=false, summary=false) 1103 @Description(shortDefinition="Text summary of the section, for human interpretation", formalDefinition="A human-readable narrative that contains the attested content of the section, used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it \"clinically safe\" for a human to just read the narrative." ) 1104 protected Narrative text; 1105 1106 /** 1107 * How the entry list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted. 1108 */ 1109 @Child(name = "mode", type = {CodeType.class}, order=6, min=0, max=1, modifier=false, summary=false) 1110 @Description(shortDefinition="working | snapshot | changes", formalDefinition="How the entry list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted." ) 1111 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/list-mode") 1112 protected Enumeration<ListMode> mode; 1113 1114 /** 1115 * Specifies the order applied to the items in the section entries. 1116 */ 1117 @Child(name = "orderedBy", type = {CodeableConcept.class}, order=7, min=0, max=1, modifier=false, summary=false) 1118 @Description(shortDefinition="Order of section entries", formalDefinition="Specifies the order applied to the items in the section entries." ) 1119 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/list-order") 1120 protected CodeableConcept orderedBy; 1121 1122 /** 1123 * A reference to the actual resource from which the narrative in the section is derived. 1124 */ 1125 @Child(name = "entry", type = {Reference.class}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1126 @Description(shortDefinition="A reference to data that supports this section", formalDefinition="A reference to the actual resource from which the narrative in the section is derived." ) 1127 protected List<Reference> entry; 1128 1129 /** 1130 * If the section is empty, why the list is empty. An empty section typically has some text explaining the empty reason. 1131 */ 1132 @Child(name = "emptyReason", type = {CodeableConcept.class}, order=9, min=0, max=1, modifier=false, summary=false) 1133 @Description(shortDefinition="Why the section is empty", formalDefinition="If the section is empty, why the list is empty. An empty section typically has some text explaining the empty reason." ) 1134 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/list-empty-reason") 1135 protected CodeableConcept emptyReason; 1136 1137 /** 1138 * A nested sub-section within this section. 1139 */ 1140 @Child(name = "section", type = {SectionComponent.class}, order=10, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1141 @Description(shortDefinition="Nested Section", formalDefinition="A nested sub-section within this section." ) 1142 protected List<SectionComponent> section; 1143 1144 private static final long serialVersionUID = 911563193L; 1145 1146 /** 1147 * Constructor 1148 */ 1149 public SectionComponent() { 1150 super(); 1151 } 1152 1153 /** 1154 * @return {@link #title} (The label for this particular section. This will be part of the rendered content for the document, and is often used to build a table of contents.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value 1155 */ 1156 public StringType getTitleElement() { 1157 if (this.title == null) 1158 if (Configuration.errorOnAutoCreate()) 1159 throw new Error("Attempt to auto-create SectionComponent.title"); 1160 else if (Configuration.doAutoCreate()) 1161 this.title = new StringType(); // bb 1162 return this.title; 1163 } 1164 1165 public boolean hasTitleElement() { 1166 return this.title != null && !this.title.isEmpty(); 1167 } 1168 1169 public boolean hasTitle() { 1170 return this.title != null && !this.title.isEmpty(); 1171 } 1172 1173 /** 1174 * @param value {@link #title} (The label for this particular section. This will be part of the rendered content for the document, and is often used to build a table of contents.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value 1175 */ 1176 public SectionComponent setTitleElement(StringType value) { 1177 this.title = value; 1178 return this; 1179 } 1180 1181 /** 1182 * @return The label for this particular section. This will be part of the rendered content for the document, and is often used to build a table of contents. 1183 */ 1184 public String getTitle() { 1185 return this.title == null ? null : this.title.getValue(); 1186 } 1187 1188 /** 1189 * @param value The label for this particular section. This will be part of the rendered content for the document, and is often used to build a table of contents. 1190 */ 1191 public SectionComponent setTitle(String value) { 1192 if (Utilities.noString(value)) 1193 this.title = null; 1194 else { 1195 if (this.title == null) 1196 this.title = new StringType(); 1197 this.title.setValue(value); 1198 } 1199 return this; 1200 } 1201 1202 /** 1203 * @return {@link #code} (A code identifying the kind of content contained within the section. This must be consistent with the section title.) 1204 */ 1205 public CodeableConcept getCode() { 1206 if (this.code == null) 1207 if (Configuration.errorOnAutoCreate()) 1208 throw new Error("Attempt to auto-create SectionComponent.code"); 1209 else if (Configuration.doAutoCreate()) 1210 this.code = new CodeableConcept(); // cc 1211 return this.code; 1212 } 1213 1214 public boolean hasCode() { 1215 return this.code != null && !this.code.isEmpty(); 1216 } 1217 1218 /** 1219 * @param value {@link #code} (A code identifying the kind of content contained within the section. This must be consistent with the section title.) 1220 */ 1221 public SectionComponent setCode(CodeableConcept value) { 1222 this.code = value; 1223 return this; 1224 } 1225 1226 /** 1227 * @return {@link #author} (Identifies who is responsible for the information in this section, not necessarily who typed it in.) 1228 */ 1229 public List<Reference> getAuthor() { 1230 if (this.author == null) 1231 this.author = new ArrayList<Reference>(); 1232 return this.author; 1233 } 1234 1235 /** 1236 * @return Returns a reference to <code>this</code> for easy method chaining 1237 */ 1238 public SectionComponent setAuthor(List<Reference> theAuthor) { 1239 this.author = theAuthor; 1240 return this; 1241 } 1242 1243 public boolean hasAuthor() { 1244 if (this.author == null) 1245 return false; 1246 for (Reference item : this.author) 1247 if (!item.isEmpty()) 1248 return true; 1249 return false; 1250 } 1251 1252 public Reference addAuthor() { //3 1253 Reference t = new Reference(); 1254 if (this.author == null) 1255 this.author = new ArrayList<Reference>(); 1256 this.author.add(t); 1257 return t; 1258 } 1259 1260 public SectionComponent addAuthor(Reference t) { //3 1261 if (t == null) 1262 return this; 1263 if (this.author == null) 1264 this.author = new ArrayList<Reference>(); 1265 this.author.add(t); 1266 return this; 1267 } 1268 1269 /** 1270 * @return The first repetition of repeating field {@link #author}, creating it if it does not already exist {3} 1271 */ 1272 public Reference getAuthorFirstRep() { 1273 if (getAuthor().isEmpty()) { 1274 addAuthor(); 1275 } 1276 return getAuthor().get(0); 1277 } 1278 1279 /** 1280 * @return {@link #focus} (The actual focus of the section when it is not the subject of the composition, but instead represents something or someone associated with the subject such as (for a patient subject) a spouse, parent, fetus, or donor. If not focus is specified, the focus is assumed to be focus of the parent section, or, for a section in the Composition itself, the subject of the composition. Sections with a focus SHALL only include resources where the logical subject (patient, subject, focus, etc.) matches the section focus, or the resources have no logical subject (few resources).) 1281 */ 1282 public Reference getFocus() { 1283 if (this.focus == null) 1284 if (Configuration.errorOnAutoCreate()) 1285 throw new Error("Attempt to auto-create SectionComponent.focus"); 1286 else if (Configuration.doAutoCreate()) 1287 this.focus = new Reference(); // cc 1288 return this.focus; 1289 } 1290 1291 public boolean hasFocus() { 1292 return this.focus != null && !this.focus.isEmpty(); 1293 } 1294 1295 /** 1296 * @param value {@link #focus} (The actual focus of the section when it is not the subject of the composition, but instead represents something or someone associated with the subject such as (for a patient subject) a spouse, parent, fetus, or donor. If not focus is specified, the focus is assumed to be focus of the parent section, or, for a section in the Composition itself, the subject of the composition. Sections with a focus SHALL only include resources where the logical subject (patient, subject, focus, etc.) matches the section focus, or the resources have no logical subject (few resources).) 1297 */ 1298 public SectionComponent setFocus(Reference value) { 1299 this.focus = value; 1300 return this; 1301 } 1302 1303 /** 1304 * @return {@link #text} (A human-readable narrative that contains the attested content of the section, used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it "clinically safe" for a human to just read the narrative.) 1305 */ 1306 public Narrative getText() { 1307 if (this.text == null) 1308 if (Configuration.errorOnAutoCreate()) 1309 throw new Error("Attempt to auto-create SectionComponent.text"); 1310 else if (Configuration.doAutoCreate()) 1311 this.text = new Narrative(); // cc 1312 return this.text; 1313 } 1314 1315 public boolean hasText() { 1316 return this.text != null && !this.text.isEmpty(); 1317 } 1318 1319 /** 1320 * @param value {@link #text} (A human-readable narrative that contains the attested content of the section, used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it "clinically safe" for a human to just read the narrative.) 1321 */ 1322 public SectionComponent setText(Narrative value) { 1323 this.text = value; 1324 return this; 1325 } 1326 1327 /** 1328 * @return {@link #mode} (How the entry list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted.). This is the underlying object with id, value and extensions. The accessor "getMode" gives direct access to the value 1329 */ 1330 public Enumeration<ListMode> getModeElement() { 1331 if (this.mode == null) 1332 if (Configuration.errorOnAutoCreate()) 1333 throw new Error("Attempt to auto-create SectionComponent.mode"); 1334 else if (Configuration.doAutoCreate()) 1335 this.mode = new Enumeration<ListMode>(new ListModeEnumFactory()); // bb 1336 return this.mode; 1337 } 1338 1339 public boolean hasModeElement() { 1340 return this.mode != null && !this.mode.isEmpty(); 1341 } 1342 1343 public boolean hasMode() { 1344 return this.mode != null && !this.mode.isEmpty(); 1345 } 1346 1347 /** 1348 * @param value {@link #mode} (How the entry list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted.). This is the underlying object with id, value and extensions. The accessor "getMode" gives direct access to the value 1349 */ 1350 public SectionComponent setModeElement(Enumeration<ListMode> value) { 1351 this.mode = value; 1352 return this; 1353 } 1354 1355 /** 1356 * @return How the entry list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted. 1357 */ 1358 public ListMode getMode() { 1359 return this.mode == null ? null : this.mode.getValue(); 1360 } 1361 1362 /** 1363 * @param value How the entry list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted. 1364 */ 1365 public SectionComponent setMode(ListMode value) { 1366 if (value == null) 1367 this.mode = null; 1368 else { 1369 if (this.mode == null) 1370 this.mode = new Enumeration<ListMode>(new ListModeEnumFactory()); 1371 this.mode.setValue(value); 1372 } 1373 return this; 1374 } 1375 1376 /** 1377 * @return {@link #orderedBy} (Specifies the order applied to the items in the section entries.) 1378 */ 1379 public CodeableConcept getOrderedBy() { 1380 if (this.orderedBy == null) 1381 if (Configuration.errorOnAutoCreate()) 1382 throw new Error("Attempt to auto-create SectionComponent.orderedBy"); 1383 else if (Configuration.doAutoCreate()) 1384 this.orderedBy = new CodeableConcept(); // cc 1385 return this.orderedBy; 1386 } 1387 1388 public boolean hasOrderedBy() { 1389 return this.orderedBy != null && !this.orderedBy.isEmpty(); 1390 } 1391 1392 /** 1393 * @param value {@link #orderedBy} (Specifies the order applied to the items in the section entries.) 1394 */ 1395 public SectionComponent setOrderedBy(CodeableConcept value) { 1396 this.orderedBy = value; 1397 return this; 1398 } 1399 1400 /** 1401 * @return {@link #entry} (A reference to the actual resource from which the narrative in the section is derived.) 1402 */ 1403 public List<Reference> getEntry() { 1404 if (this.entry == null) 1405 this.entry = new ArrayList<Reference>(); 1406 return this.entry; 1407 } 1408 1409 /** 1410 * @return Returns a reference to <code>this</code> for easy method chaining 1411 */ 1412 public SectionComponent setEntry(List<Reference> theEntry) { 1413 this.entry = theEntry; 1414 return this; 1415 } 1416 1417 public boolean hasEntry() { 1418 if (this.entry == null) 1419 return false; 1420 for (Reference item : this.entry) 1421 if (!item.isEmpty()) 1422 return true; 1423 return false; 1424 } 1425 1426 public Reference addEntry() { //3 1427 Reference t = new Reference(); 1428 if (this.entry == null) 1429 this.entry = new ArrayList<Reference>(); 1430 this.entry.add(t); 1431 return t; 1432 } 1433 1434 public SectionComponent addEntry(Reference t) { //3 1435 if (t == null) 1436 return this; 1437 if (this.entry == null) 1438 this.entry = new ArrayList<Reference>(); 1439 this.entry.add(t); 1440 return this; 1441 } 1442 1443 /** 1444 * @return The first repetition of repeating field {@link #entry}, creating it if it does not already exist {3} 1445 */ 1446 public Reference getEntryFirstRep() { 1447 if (getEntry().isEmpty()) { 1448 addEntry(); 1449 } 1450 return getEntry().get(0); 1451 } 1452 1453 /** 1454 * @return {@link #emptyReason} (If the section is empty, why the list is empty. An empty section typically has some text explaining the empty reason.) 1455 */ 1456 public CodeableConcept getEmptyReason() { 1457 if (this.emptyReason == null) 1458 if (Configuration.errorOnAutoCreate()) 1459 throw new Error("Attempt to auto-create SectionComponent.emptyReason"); 1460 else if (Configuration.doAutoCreate()) 1461 this.emptyReason = new CodeableConcept(); // cc 1462 return this.emptyReason; 1463 } 1464 1465 public boolean hasEmptyReason() { 1466 return this.emptyReason != null && !this.emptyReason.isEmpty(); 1467 } 1468 1469 /** 1470 * @param value {@link #emptyReason} (If the section is empty, why the list is empty. An empty section typically has some text explaining the empty reason.) 1471 */ 1472 public SectionComponent setEmptyReason(CodeableConcept value) { 1473 this.emptyReason = value; 1474 return this; 1475 } 1476 1477 /** 1478 * @return {@link #section} (A nested sub-section within this section.) 1479 */ 1480 public List<SectionComponent> getSection() { 1481 if (this.section == null) 1482 this.section = new ArrayList<SectionComponent>(); 1483 return this.section; 1484 } 1485 1486 /** 1487 * @return Returns a reference to <code>this</code> for easy method chaining 1488 */ 1489 public SectionComponent setSection(List<SectionComponent> theSection) { 1490 this.section = theSection; 1491 return this; 1492 } 1493 1494 public boolean hasSection() { 1495 if (this.section == null) 1496 return false; 1497 for (SectionComponent item : this.section) 1498 if (!item.isEmpty()) 1499 return true; 1500 return false; 1501 } 1502 1503 public SectionComponent addSection() { //3 1504 SectionComponent t = new SectionComponent(); 1505 if (this.section == null) 1506 this.section = new ArrayList<SectionComponent>(); 1507 this.section.add(t); 1508 return t; 1509 } 1510 1511 public SectionComponent addSection(SectionComponent t) { //3 1512 if (t == null) 1513 return this; 1514 if (this.section == null) 1515 this.section = new ArrayList<SectionComponent>(); 1516 this.section.add(t); 1517 return this; 1518 } 1519 1520 /** 1521 * @return The first repetition of repeating field {@link #section}, creating it if it does not already exist {3} 1522 */ 1523 public SectionComponent getSectionFirstRep() { 1524 if (getSection().isEmpty()) { 1525 addSection(); 1526 } 1527 return getSection().get(0); 1528 } 1529 1530 protected void listChildren(List<Property> children) { 1531 super.listChildren(children); 1532 children.add(new Property("title", "string", "The label for this particular section. This will be part of the rendered content for the document, and is often used to build a table of contents.", 0, 1, title)); 1533 children.add(new Property("code", "CodeableConcept", "A code identifying the kind of content contained within the section. This must be consistent with the section title.", 0, 1, code)); 1534 children.add(new Property("author", "Reference(Practitioner|PractitionerRole|Device|Patient|RelatedPerson|Organization)", "Identifies who is responsible for the information in this section, not necessarily who typed it in.", 0, java.lang.Integer.MAX_VALUE, author)); 1535 children.add(new Property("focus", "Reference(Any)", "The actual focus of the section when it is not the subject of the composition, but instead represents something or someone associated with the subject such as (for a patient subject) a spouse, parent, fetus, or donor. If not focus is specified, the focus is assumed to be focus of the parent section, or, for a section in the Composition itself, the subject of the composition. Sections with a focus SHALL only include resources where the logical subject (patient, subject, focus, etc.) matches the section focus, or the resources have no logical subject (few resources).", 0, 1, focus)); 1536 children.add(new Property("text", "Narrative", "A human-readable narrative that contains the attested content of the section, used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it \"clinically safe\" for a human to just read the narrative.", 0, 1, text)); 1537 children.add(new Property("mode", "code", "How the entry list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted.", 0, 1, mode)); 1538 children.add(new Property("orderedBy", "CodeableConcept", "Specifies the order applied to the items in the section entries.", 0, 1, orderedBy)); 1539 children.add(new Property("entry", "Reference(Any)", "A reference to the actual resource from which the narrative in the section is derived.", 0, java.lang.Integer.MAX_VALUE, entry)); 1540 children.add(new Property("emptyReason", "CodeableConcept", "If the section is empty, why the list is empty. An empty section typically has some text explaining the empty reason.", 0, 1, emptyReason)); 1541 children.add(new Property("section", "@Composition.section", "A nested sub-section within this section.", 0, java.lang.Integer.MAX_VALUE, section)); 1542 } 1543 1544 @Override 1545 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1546 switch (_hash) { 1547 case 110371416: /*title*/ return new Property("title", "string", "The label for this particular section. This will be part of the rendered content for the document, and is often used to build a table of contents.", 0, 1, title); 1548 case 3059181: /*code*/ return new Property("code", "CodeableConcept", "A code identifying the kind of content contained within the section. This must be consistent with the section title.", 0, 1, code); 1549 case -1406328437: /*author*/ return new Property("author", "Reference(Practitioner|PractitionerRole|Device|Patient|RelatedPerson|Organization)", "Identifies who is responsible for the information in this section, not necessarily who typed it in.", 0, java.lang.Integer.MAX_VALUE, author); 1550 case 97604824: /*focus*/ return new Property("focus", "Reference(Any)", "The actual focus of the section when it is not the subject of the composition, but instead represents something or someone associated with the subject such as (for a patient subject) a spouse, parent, fetus, or donor. If not focus is specified, the focus is assumed to be focus of the parent section, or, for a section in the Composition itself, the subject of the composition. Sections with a focus SHALL only include resources where the logical subject (patient, subject, focus, etc.) matches the section focus, or the resources have no logical subject (few resources).", 0, 1, focus); 1551 case 3556653: /*text*/ return new Property("text", "Narrative", "A human-readable narrative that contains the attested content of the section, used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it \"clinically safe\" for a human to just read the narrative.", 0, 1, text); 1552 case 3357091: /*mode*/ return new Property("mode", "code", "How the entry list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted.", 0, 1, mode); 1553 case -391079516: /*orderedBy*/ return new Property("orderedBy", "CodeableConcept", "Specifies the order applied to the items in the section entries.", 0, 1, orderedBy); 1554 case 96667762: /*entry*/ return new Property("entry", "Reference(Any)", "A reference to the actual resource from which the narrative in the section is derived.", 0, java.lang.Integer.MAX_VALUE, entry); 1555 case 1140135409: /*emptyReason*/ return new Property("emptyReason", "CodeableConcept", "If the section is empty, why the list is empty. An empty section typically has some text explaining the empty reason.", 0, 1, emptyReason); 1556 case 1970241253: /*section*/ return new Property("section", "@Composition.section", "A nested sub-section within this section.", 0, java.lang.Integer.MAX_VALUE, section); 1557 default: return super.getNamedProperty(_hash, _name, _checkValid); 1558 } 1559 1560 } 1561 1562 @Override 1563 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1564 switch (hash) { 1565 case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType 1566 case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept 1567 case -1406328437: /*author*/ return this.author == null ? new Base[0] : this.author.toArray(new Base[this.author.size()]); // Reference 1568 case 97604824: /*focus*/ return this.focus == null ? new Base[0] : new Base[] {this.focus}; // Reference 1569 case 3556653: /*text*/ return this.text == null ? new Base[0] : new Base[] {this.text}; // Narrative 1570 case 3357091: /*mode*/ return this.mode == null ? new Base[0] : new Base[] {this.mode}; // Enumeration<ListMode> 1571 case -391079516: /*orderedBy*/ return this.orderedBy == null ? new Base[0] : new Base[] {this.orderedBy}; // CodeableConcept 1572 case 96667762: /*entry*/ return this.entry == null ? new Base[0] : this.entry.toArray(new Base[this.entry.size()]); // Reference 1573 case 1140135409: /*emptyReason*/ return this.emptyReason == null ? new Base[0] : new Base[] {this.emptyReason}; // CodeableConcept 1574 case 1970241253: /*section*/ return this.section == null ? new Base[0] : this.section.toArray(new Base[this.section.size()]); // SectionComponent 1575 default: return super.getProperty(hash, name, checkValid); 1576 } 1577 1578 } 1579 1580 @Override 1581 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1582 switch (hash) { 1583 case 110371416: // title 1584 this.title = TypeConvertor.castToString(value); // StringType 1585 return value; 1586 case 3059181: // code 1587 this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1588 return value; 1589 case -1406328437: // author 1590 this.getAuthor().add(TypeConvertor.castToReference(value)); // Reference 1591 return value; 1592 case 97604824: // focus 1593 this.focus = TypeConvertor.castToReference(value); // Reference 1594 return value; 1595 case 3556653: // text 1596 this.text = TypeConvertor.castToNarrative(value); // Narrative 1597 return value; 1598 case 3357091: // mode 1599 value = new ListModeEnumFactory().fromType(TypeConvertor.castToCode(value)); 1600 this.mode = (Enumeration) value; // Enumeration<ListMode> 1601 return value; 1602 case -391079516: // orderedBy 1603 this.orderedBy = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1604 return value; 1605 case 96667762: // entry 1606 this.getEntry().add(TypeConvertor.castToReference(value)); // Reference 1607 return value; 1608 case 1140135409: // emptyReason 1609 this.emptyReason = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1610 return value; 1611 case 1970241253: // section 1612 this.getSection().add((SectionComponent) value); // SectionComponent 1613 return value; 1614 default: return super.setProperty(hash, name, value); 1615 } 1616 1617 } 1618 1619 @Override 1620 public Base setProperty(String name, Base value) throws FHIRException { 1621 if (name.equals("title")) { 1622 this.title = TypeConvertor.castToString(value); // StringType 1623 } else if (name.equals("code")) { 1624 this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1625 } else if (name.equals("author")) { 1626 this.getAuthor().add(TypeConvertor.castToReference(value)); 1627 } else if (name.equals("focus")) { 1628 this.focus = TypeConvertor.castToReference(value); // Reference 1629 } else if (name.equals("text")) { 1630 this.text = TypeConvertor.castToNarrative(value); // Narrative 1631 } else if (name.equals("mode")) { 1632 value = new ListModeEnumFactory().fromType(TypeConvertor.castToCode(value)); 1633 this.mode = (Enumeration) value; // Enumeration<ListMode> 1634 } else if (name.equals("orderedBy")) { 1635 this.orderedBy = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1636 } else if (name.equals("entry")) { 1637 this.getEntry().add(TypeConvertor.castToReference(value)); 1638 } else if (name.equals("emptyReason")) { 1639 this.emptyReason = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1640 } else if (name.equals("section")) { 1641 this.getSection().add((SectionComponent) value); 1642 } else 1643 return super.setProperty(name, value); 1644 return value; 1645 } 1646 1647 @Override 1648 public Base makeProperty(int hash, String name) throws FHIRException { 1649 switch (hash) { 1650 case 110371416: return getTitleElement(); 1651 case 3059181: return getCode(); 1652 case -1406328437: return addAuthor(); 1653 case 97604824: return getFocus(); 1654 case 3556653: return getText(); 1655 case 3357091: return getModeElement(); 1656 case -391079516: return getOrderedBy(); 1657 case 96667762: return addEntry(); 1658 case 1140135409: return getEmptyReason(); 1659 case 1970241253: return addSection(); 1660 default: return super.makeProperty(hash, name); 1661 } 1662 1663 } 1664 1665 @Override 1666 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1667 switch (hash) { 1668 case 110371416: /*title*/ return new String[] {"string"}; 1669 case 3059181: /*code*/ return new String[] {"CodeableConcept"}; 1670 case -1406328437: /*author*/ return new String[] {"Reference"}; 1671 case 97604824: /*focus*/ return new String[] {"Reference"}; 1672 case 3556653: /*text*/ return new String[] {"Narrative"}; 1673 case 3357091: /*mode*/ return new String[] {"code"}; 1674 case -391079516: /*orderedBy*/ return new String[] {"CodeableConcept"}; 1675 case 96667762: /*entry*/ return new String[] {"Reference"}; 1676 case 1140135409: /*emptyReason*/ return new String[] {"CodeableConcept"}; 1677 case 1970241253: /*section*/ return new String[] {"@Composition.section"}; 1678 default: return super.getTypesForProperty(hash, name); 1679 } 1680 1681 } 1682 1683 @Override 1684 public Base addChild(String name) throws FHIRException { 1685 if (name.equals("title")) { 1686 throw new FHIRException("Cannot call addChild on a primitive type Composition.section.title"); 1687 } 1688 else if (name.equals("code")) { 1689 this.code = new CodeableConcept(); 1690 return this.code; 1691 } 1692 else if (name.equals("author")) { 1693 return addAuthor(); 1694 } 1695 else if (name.equals("focus")) { 1696 this.focus = new Reference(); 1697 return this.focus; 1698 } 1699 else if (name.equals("text")) { 1700 this.text = new Narrative(); 1701 return this.text; 1702 } 1703 else if (name.equals("mode")) { 1704 throw new FHIRException("Cannot call addChild on a primitive type Composition.section.mode"); 1705 } 1706 else if (name.equals("orderedBy")) { 1707 this.orderedBy = new CodeableConcept(); 1708 return this.orderedBy; 1709 } 1710 else if (name.equals("entry")) { 1711 return addEntry(); 1712 } 1713 else if (name.equals("emptyReason")) { 1714 this.emptyReason = new CodeableConcept(); 1715 return this.emptyReason; 1716 } 1717 else if (name.equals("section")) { 1718 return addSection(); 1719 } 1720 else 1721 return super.addChild(name); 1722 } 1723 1724 public SectionComponent copy() { 1725 SectionComponent dst = new SectionComponent(); 1726 copyValues(dst); 1727 return dst; 1728 } 1729 1730 public void copyValues(SectionComponent dst) { 1731 super.copyValues(dst); 1732 dst.title = title == null ? null : title.copy(); 1733 dst.code = code == null ? null : code.copy(); 1734 if (author != null) { 1735 dst.author = new ArrayList<Reference>(); 1736 for (Reference i : author) 1737 dst.author.add(i.copy()); 1738 }; 1739 dst.focus = focus == null ? null : focus.copy(); 1740 dst.text = text == null ? null : text.copy(); 1741 dst.mode = mode == null ? null : mode.copy(); 1742 dst.orderedBy = orderedBy == null ? null : orderedBy.copy(); 1743 if (entry != null) { 1744 dst.entry = new ArrayList<Reference>(); 1745 for (Reference i : entry) 1746 dst.entry.add(i.copy()); 1747 }; 1748 dst.emptyReason = emptyReason == null ? null : emptyReason.copy(); 1749 if (section != null) { 1750 dst.section = new ArrayList<SectionComponent>(); 1751 for (SectionComponent i : section) 1752 dst.section.add(i.copy()); 1753 }; 1754 } 1755 1756 @Override 1757 public boolean equalsDeep(Base other_) { 1758 if (!super.equalsDeep(other_)) 1759 return false; 1760 if (!(other_ instanceof SectionComponent)) 1761 return false; 1762 SectionComponent o = (SectionComponent) other_; 1763 return compareDeep(title, o.title, true) && compareDeep(code, o.code, true) && compareDeep(author, o.author, true) 1764 && compareDeep(focus, o.focus, true) && compareDeep(text, o.text, true) && compareDeep(mode, o.mode, true) 1765 && compareDeep(orderedBy, o.orderedBy, true) && compareDeep(entry, o.entry, true) && compareDeep(emptyReason, o.emptyReason, true) 1766 && compareDeep(section, o.section, true); 1767 } 1768 1769 @Override 1770 public boolean equalsShallow(Base other_) { 1771 if (!super.equalsShallow(other_)) 1772 return false; 1773 if (!(other_ instanceof SectionComponent)) 1774 return false; 1775 SectionComponent o = (SectionComponent) other_; 1776 return compareValues(title, o.title, true) && compareValues(mode, o.mode, true); 1777 } 1778 1779 public boolean isEmpty() { 1780 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(title, code, author, focus 1781 , text, mode, orderedBy, entry, emptyReason, section); 1782 } 1783 1784 public String fhirType() { 1785 return "Composition.section"; 1786 1787 } 1788 1789 } 1790 1791 /** 1792 * A version-independent identifier for the Composition. This identifier stays constant as the composition is changed over time. 1793 */ 1794 @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=1, modifier=false, summary=true) 1795 @Description(shortDefinition="Version-independent identifier for the Composition", formalDefinition="A version-independent identifier for the Composition. This identifier stays constant as the composition is changed over time." ) 1796 protected Identifier identifier; 1797 1798 /** 1799 * The workflow/clinical status of this composition. The status is a marker for the clinical standing of the document. 1800 */ 1801 @Child(name = "status", type = {CodeType.class}, order=1, min=1, max=1, modifier=true, summary=true) 1802 @Description(shortDefinition="preliminary | final | amended | entered-in-error", formalDefinition="The workflow/clinical status of this composition. The status is a marker for the clinical standing of the document." ) 1803 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/composition-status") 1804 protected Enumeration<CompositionStatus> status; 1805 1806 /** 1807 * Specifies the particular kind of composition (e.g. History and Physical, Discharge Summary, Progress Note). This usually equates to the purpose of making the composition. 1808 */ 1809 @Child(name = "type", type = {CodeableConcept.class}, order=2, min=1, max=1, modifier=false, summary=true) 1810 @Description(shortDefinition="Kind of composition (LOINC if possible)", formalDefinition="Specifies the particular kind of composition (e.g. History and Physical, Discharge Summary, Progress Note). This usually equates to the purpose of making the composition." ) 1811 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/doc-typecodes") 1812 protected CodeableConcept type; 1813 1814 /** 1815 * A categorization for the type of the composition - helps for indexing and searching. This may be implied by or derived from the code specified in the Composition Type. 1816 */ 1817 @Child(name = "category", type = {CodeableConcept.class}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 1818 @Description(shortDefinition="Categorization of Composition", formalDefinition="A categorization for the type of the composition - helps for indexing and searching. This may be implied by or derived from the code specified in the Composition Type." ) 1819 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/document-classcodes") 1820 protected List<CodeableConcept> category; 1821 1822 /** 1823 * Who or what the composition is about. The composition can be about a person, (patient or healthcare practitioner), a device (e.g. a machine) or even a group of subjects (such as a document about a herd of livestock, or a set of patients that share a common exposure). 1824 */ 1825 @Child(name = "subject", type = {Reference.class}, order=4, min=0, max=1, modifier=false, summary=true) 1826 @Description(shortDefinition="Who and/or what the composition is about", formalDefinition="Who or what the composition is about. The composition can be about a person, (patient or healthcare practitioner), a device (e.g. a machine) or even a group of subjects (such as a document about a herd of livestock, or a set of patients that share a common exposure)." ) 1827 protected Reference subject; 1828 1829 /** 1830 * Describes the clinical encounter or type of care this documentation is associated with. 1831 */ 1832 @Child(name = "encounter", type = {Encounter.class}, order=5, min=0, max=1, modifier=false, summary=true) 1833 @Description(shortDefinition="Context of the Composition", formalDefinition="Describes the clinical encounter or type of care this documentation is associated with." ) 1834 protected Reference encounter; 1835 1836 /** 1837 * The composition editing time, when the composition was last logically changed by the author. 1838 */ 1839 @Child(name = "date", type = {DateTimeType.class}, order=6, min=1, max=1, modifier=false, summary=true) 1840 @Description(shortDefinition="Composition editing time", formalDefinition="The composition editing time, when the composition was last logically changed by the author." ) 1841 protected DateTimeType date; 1842 1843 /** 1844 * Identifies who is responsible for the information in the composition, not necessarily who typed it in. 1845 */ 1846 @Child(name = "author", type = {Practitioner.class, PractitionerRole.class, Device.class, Patient.class, RelatedPerson.class, Organization.class}, order=7, min=1, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 1847 @Description(shortDefinition="Who and/or what authored the composition", formalDefinition="Identifies who is responsible for the information in the composition, not necessarily who typed it in." ) 1848 protected List<Reference> author; 1849 1850 /** 1851 * Official human-readable label for the composition. 1852 */ 1853 @Child(name = "title", type = {StringType.class}, order=8, min=1, max=1, modifier=false, summary=true) 1854 @Description(shortDefinition="Human Readable name/title", formalDefinition="Official human-readable label for the composition." ) 1855 protected StringType title; 1856 1857 /** 1858 * The code specifying the level of confidentiality of the Composition. 1859 */ 1860 @Child(name = "confidentiality", type = {CodeType.class}, order=9, min=0, max=1, modifier=false, summary=true) 1861 @Description(shortDefinition="As defined by affinity domain", formalDefinition="The code specifying the level of confidentiality of the Composition." ) 1862 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://terminology.hl7.org/ValueSet/v3-Confidentiality") 1863 protected CodeType confidentiality; 1864 1865 /** 1866 * A participant who has attested to the accuracy of the composition/document. 1867 */ 1868 @Child(name = "attester", type = {}, order=10, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1869 @Description(shortDefinition="Attests to accuracy of composition", formalDefinition="A participant who has attested to the accuracy of the composition/document." ) 1870 protected List<CompositionAttesterComponent> attester; 1871 1872 /** 1873 * Identifies the organization or group who is responsible for ongoing maintenance of and access to the composition/document information. 1874 */ 1875 @Child(name = "custodian", type = {Organization.class}, order=11, min=0, max=1, modifier=false, summary=true) 1876 @Description(shortDefinition="Organization which maintains the composition", formalDefinition="Identifies the organization or group who is responsible for ongoing maintenance of and access to the composition/document information." ) 1877 protected Reference custodian; 1878 1879 /** 1880 * Relationships that this composition has with other compositions or documents that already exist. 1881 */ 1882 @Child(name = "relatesTo", type = {}, order=12, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1883 @Description(shortDefinition="Relationships to other compositions/documents", formalDefinition="Relationships that this composition has with other compositions or documents that already exist." ) 1884 protected List<CompositionRelatesToComponent> relatesTo; 1885 1886 /** 1887 * The clinical service, such as a colonoscopy or an appendectomy, being documented. 1888 */ 1889 @Child(name = "event", type = {}, order=13, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 1890 @Description(shortDefinition="The clinical service(s) being documented", formalDefinition="The clinical service, such as a colonoscopy or an appendectomy, being documented." ) 1891 protected List<CompositionEventComponent> event; 1892 1893 /** 1894 * The root of the sections that make up the composition. 1895 */ 1896 @Child(name = "section", type = {}, order=14, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1897 @Description(shortDefinition="Composition is broken into sections", formalDefinition="The root of the sections that make up the composition." ) 1898 protected List<SectionComponent> section; 1899 1900 private static final long serialVersionUID = 1733513890L; 1901 1902 /** 1903 * Constructor 1904 */ 1905 public Composition() { 1906 super(); 1907 } 1908 1909 /** 1910 * Constructor 1911 */ 1912 public Composition(CompositionStatus status, CodeableConcept type, Date date, Reference author, String title) { 1913 super(); 1914 this.setStatus(status); 1915 this.setType(type); 1916 this.setDate(date); 1917 this.addAuthor(author); 1918 this.setTitle(title); 1919 } 1920 1921 /** 1922 * @return {@link #identifier} (A version-independent identifier for the Composition. This identifier stays constant as the composition is changed over time.) 1923 */ 1924 public Identifier getIdentifier() { 1925 if (this.identifier == null) 1926 if (Configuration.errorOnAutoCreate()) 1927 throw new Error("Attempt to auto-create Composition.identifier"); 1928 else if (Configuration.doAutoCreate()) 1929 this.identifier = new Identifier(); // cc 1930 return this.identifier; 1931 } 1932 1933 public boolean hasIdentifier() { 1934 return this.identifier != null && !this.identifier.isEmpty(); 1935 } 1936 1937 /** 1938 * @param value {@link #identifier} (A version-independent identifier for the Composition. This identifier stays constant as the composition is changed over time.) 1939 */ 1940 public Composition setIdentifier(Identifier value) { 1941 this.identifier = value; 1942 return this; 1943 } 1944 1945 /** 1946 * @return {@link #status} (The workflow/clinical status of this composition. The status is a marker for the clinical standing of the document.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 1947 */ 1948 public Enumeration<CompositionStatus> getStatusElement() { 1949 if (this.status == null) 1950 if (Configuration.errorOnAutoCreate()) 1951 throw new Error("Attempt to auto-create Composition.status"); 1952 else if (Configuration.doAutoCreate()) 1953 this.status = new Enumeration<CompositionStatus>(new CompositionStatusEnumFactory()); // bb 1954 return this.status; 1955 } 1956 1957 public boolean hasStatusElement() { 1958 return this.status != null && !this.status.isEmpty(); 1959 } 1960 1961 public boolean hasStatus() { 1962 return this.status != null && !this.status.isEmpty(); 1963 } 1964 1965 /** 1966 * @param value {@link #status} (The workflow/clinical status of this composition. The status is a marker for the clinical standing of the document.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 1967 */ 1968 public Composition setStatusElement(Enumeration<CompositionStatus> value) { 1969 this.status = value; 1970 return this; 1971 } 1972 1973 /** 1974 * @return The workflow/clinical status of this composition. The status is a marker for the clinical standing of the document. 1975 */ 1976 public CompositionStatus getStatus() { 1977 return this.status == null ? null : this.status.getValue(); 1978 } 1979 1980 /** 1981 * @param value The workflow/clinical status of this composition. The status is a marker for the clinical standing of the document. 1982 */ 1983 public Composition setStatus(CompositionStatus value) { 1984 if (this.status == null) 1985 this.status = new Enumeration<CompositionStatus>(new CompositionStatusEnumFactory()); 1986 this.status.setValue(value); 1987 return this; 1988 } 1989 1990 /** 1991 * @return {@link #type} (Specifies the particular kind of composition (e.g. History and Physical, Discharge Summary, Progress Note). This usually equates to the purpose of making the composition.) 1992 */ 1993 public CodeableConcept getType() { 1994 if (this.type == null) 1995 if (Configuration.errorOnAutoCreate()) 1996 throw new Error("Attempt to auto-create Composition.type"); 1997 else if (Configuration.doAutoCreate()) 1998 this.type = new CodeableConcept(); // cc 1999 return this.type; 2000 } 2001 2002 public boolean hasType() { 2003 return this.type != null && !this.type.isEmpty(); 2004 } 2005 2006 /** 2007 * @param value {@link #type} (Specifies the particular kind of composition (e.g. History and Physical, Discharge Summary, Progress Note). This usually equates to the purpose of making the composition.) 2008 */ 2009 public Composition setType(CodeableConcept value) { 2010 this.type = value; 2011 return this; 2012 } 2013 2014 /** 2015 * @return {@link #category} (A categorization for the type of the composition - helps for indexing and searching. This may be implied by or derived from the code specified in the Composition Type.) 2016 */ 2017 public List<CodeableConcept> getCategory() { 2018 if (this.category == null) 2019 this.category = new ArrayList<CodeableConcept>(); 2020 return this.category; 2021 } 2022 2023 /** 2024 * @return Returns a reference to <code>this</code> for easy method chaining 2025 */ 2026 public Composition setCategory(List<CodeableConcept> theCategory) { 2027 this.category = theCategory; 2028 return this; 2029 } 2030 2031 public boolean hasCategory() { 2032 if (this.category == null) 2033 return false; 2034 for (CodeableConcept item : this.category) 2035 if (!item.isEmpty()) 2036 return true; 2037 return false; 2038 } 2039 2040 public CodeableConcept addCategory() { //3 2041 CodeableConcept t = new CodeableConcept(); 2042 if (this.category == null) 2043 this.category = new ArrayList<CodeableConcept>(); 2044 this.category.add(t); 2045 return t; 2046 } 2047 2048 public Composition addCategory(CodeableConcept t) { //3 2049 if (t == null) 2050 return this; 2051 if (this.category == null) 2052 this.category = new ArrayList<CodeableConcept>(); 2053 this.category.add(t); 2054 return this; 2055 } 2056 2057 /** 2058 * @return The first repetition of repeating field {@link #category}, creating it if it does not already exist {3} 2059 */ 2060 public CodeableConcept getCategoryFirstRep() { 2061 if (getCategory().isEmpty()) { 2062 addCategory(); 2063 } 2064 return getCategory().get(0); 2065 } 2066 2067 /** 2068 * @return {@link #subject} (Who or what the composition is about. The composition can be about a person, (patient or healthcare practitioner), a device (e.g. a machine) or even a group of subjects (such as a document about a herd of livestock, or a set of patients that share a common exposure).) 2069 */ 2070 public Reference getSubject() { 2071 if (this.subject == null) 2072 if (Configuration.errorOnAutoCreate()) 2073 throw new Error("Attempt to auto-create Composition.subject"); 2074 else if (Configuration.doAutoCreate()) 2075 this.subject = new Reference(); // cc 2076 return this.subject; 2077 } 2078 2079 public boolean hasSubject() { 2080 return this.subject != null && !this.subject.isEmpty(); 2081 } 2082 2083 /** 2084 * @param value {@link #subject} (Who or what the composition is about. The composition can be about a person, (patient or healthcare practitioner), a device (e.g. a machine) or even a group of subjects (such as a document about a herd of livestock, or a set of patients that share a common exposure).) 2085 */ 2086 public Composition setSubject(Reference value) { 2087 this.subject = value; 2088 return this; 2089 } 2090 2091 /** 2092 * @return {@link #encounter} (Describes the clinical encounter or type of care this documentation is associated with.) 2093 */ 2094 public Reference getEncounter() { 2095 if (this.encounter == null) 2096 if (Configuration.errorOnAutoCreate()) 2097 throw new Error("Attempt to auto-create Composition.encounter"); 2098 else if (Configuration.doAutoCreate()) 2099 this.encounter = new Reference(); // cc 2100 return this.encounter; 2101 } 2102 2103 public boolean hasEncounter() { 2104 return this.encounter != null && !this.encounter.isEmpty(); 2105 } 2106 2107 /** 2108 * @param value {@link #encounter} (Describes the clinical encounter or type of care this documentation is associated with.) 2109 */ 2110 public Composition setEncounter(Reference value) { 2111 this.encounter = value; 2112 return this; 2113 } 2114 2115 /** 2116 * @return {@link #date} (The composition editing time, when the composition was last logically changed by the author.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value 2117 */ 2118 public DateTimeType getDateElement() { 2119 if (this.date == null) 2120 if (Configuration.errorOnAutoCreate()) 2121 throw new Error("Attempt to auto-create Composition.date"); 2122 else if (Configuration.doAutoCreate()) 2123 this.date = new DateTimeType(); // bb 2124 return this.date; 2125 } 2126 2127 public boolean hasDateElement() { 2128 return this.date != null && !this.date.isEmpty(); 2129 } 2130 2131 public boolean hasDate() { 2132 return this.date != null && !this.date.isEmpty(); 2133 } 2134 2135 /** 2136 * @param value {@link #date} (The composition editing time, when the composition was last logically changed by the author.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value 2137 */ 2138 public Composition setDateElement(DateTimeType value) { 2139 this.date = value; 2140 return this; 2141 } 2142 2143 /** 2144 * @return The composition editing time, when the composition was last logically changed by the author. 2145 */ 2146 public Date getDate() { 2147 return this.date == null ? null : this.date.getValue(); 2148 } 2149 2150 /** 2151 * @param value The composition editing time, when the composition was last logically changed by the author. 2152 */ 2153 public Composition setDate(Date value) { 2154 if (this.date == null) 2155 this.date = new DateTimeType(); 2156 this.date.setValue(value); 2157 return this; 2158 } 2159 2160 /** 2161 * @return {@link #author} (Identifies who is responsible for the information in the composition, not necessarily who typed it in.) 2162 */ 2163 public List<Reference> getAuthor() { 2164 if (this.author == null) 2165 this.author = new ArrayList<Reference>(); 2166 return this.author; 2167 } 2168 2169 /** 2170 * @return Returns a reference to <code>this</code> for easy method chaining 2171 */ 2172 public Composition setAuthor(List<Reference> theAuthor) { 2173 this.author = theAuthor; 2174 return this; 2175 } 2176 2177 public boolean hasAuthor() { 2178 if (this.author == null) 2179 return false; 2180 for (Reference item : this.author) 2181 if (!item.isEmpty()) 2182 return true; 2183 return false; 2184 } 2185 2186 public Reference addAuthor() { //3 2187 Reference t = new Reference(); 2188 if (this.author == null) 2189 this.author = new ArrayList<Reference>(); 2190 this.author.add(t); 2191 return t; 2192 } 2193 2194 public Composition addAuthor(Reference t) { //3 2195 if (t == null) 2196 return this; 2197 if (this.author == null) 2198 this.author = new ArrayList<Reference>(); 2199 this.author.add(t); 2200 return this; 2201 } 2202 2203 /** 2204 * @return The first repetition of repeating field {@link #author}, creating it if it does not already exist {3} 2205 */ 2206 public Reference getAuthorFirstRep() { 2207 if (getAuthor().isEmpty()) { 2208 addAuthor(); 2209 } 2210 return getAuthor().get(0); 2211 } 2212 2213 /** 2214 * @return {@link #title} (Official human-readable label for the composition.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value 2215 */ 2216 public StringType getTitleElement() { 2217 if (this.title == null) 2218 if (Configuration.errorOnAutoCreate()) 2219 throw new Error("Attempt to auto-create Composition.title"); 2220 else if (Configuration.doAutoCreate()) 2221 this.title = new StringType(); // bb 2222 return this.title; 2223 } 2224 2225 public boolean hasTitleElement() { 2226 return this.title != null && !this.title.isEmpty(); 2227 } 2228 2229 public boolean hasTitle() { 2230 return this.title != null && !this.title.isEmpty(); 2231 } 2232 2233 /** 2234 * @param value {@link #title} (Official human-readable label for the composition.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value 2235 */ 2236 public Composition setTitleElement(StringType value) { 2237 this.title = value; 2238 return this; 2239 } 2240 2241 /** 2242 * @return Official human-readable label for the composition. 2243 */ 2244 public String getTitle() { 2245 return this.title == null ? null : this.title.getValue(); 2246 } 2247 2248 /** 2249 * @param value Official human-readable label for the composition. 2250 */ 2251 public Composition setTitle(String value) { 2252 if (this.title == null) 2253 this.title = new StringType(); 2254 this.title.setValue(value); 2255 return this; 2256 } 2257 2258 /** 2259 * @return {@link #confidentiality} (The code specifying the level of confidentiality of the Composition.). This is the underlying object with id, value and extensions. The accessor "getConfidentiality" gives direct access to the value 2260 */ 2261 public CodeType getConfidentialityElement() { 2262 if (this.confidentiality == null) 2263 if (Configuration.errorOnAutoCreate()) 2264 throw new Error("Attempt to auto-create Composition.confidentiality"); 2265 else if (Configuration.doAutoCreate()) 2266 this.confidentiality = new CodeType(); // bb 2267 return this.confidentiality; 2268 } 2269 2270 public boolean hasConfidentialityElement() { 2271 return this.confidentiality != null && !this.confidentiality.isEmpty(); 2272 } 2273 2274 public boolean hasConfidentiality() { 2275 return this.confidentiality != null && !this.confidentiality.isEmpty(); 2276 } 2277 2278 /** 2279 * @param value {@link #confidentiality} (The code specifying the level of confidentiality of the Composition.). This is the underlying object with id, value and extensions. The accessor "getConfidentiality" gives direct access to the value 2280 */ 2281 public Composition setConfidentialityElement(CodeType value) { 2282 this.confidentiality = value; 2283 return this; 2284 } 2285 2286 /** 2287 * @return The code specifying the level of confidentiality of the Composition. 2288 */ 2289 public String getConfidentiality() { 2290 return this.confidentiality == null ? null : this.confidentiality.getValue(); 2291 } 2292 2293 /** 2294 * @param value The code specifying the level of confidentiality of the Composition. 2295 */ 2296 public Composition setConfidentiality(String value) { 2297 if (Utilities.noString(value)) 2298 this.confidentiality = null; 2299 else { 2300 if (this.confidentiality == null) 2301 this.confidentiality = new CodeType(); 2302 this.confidentiality.setValue(value); 2303 } 2304 return this; 2305 } 2306 2307 /** 2308 * @return {@link #attester} (A participant who has attested to the accuracy of the composition/document.) 2309 */ 2310 public List<CompositionAttesterComponent> getAttester() { 2311 if (this.attester == null) 2312 this.attester = new ArrayList<CompositionAttesterComponent>(); 2313 return this.attester; 2314 } 2315 2316 /** 2317 * @return Returns a reference to <code>this</code> for easy method chaining 2318 */ 2319 public Composition setAttester(List<CompositionAttesterComponent> theAttester) { 2320 this.attester = theAttester; 2321 return this; 2322 } 2323 2324 public boolean hasAttester() { 2325 if (this.attester == null) 2326 return false; 2327 for (CompositionAttesterComponent item : this.attester) 2328 if (!item.isEmpty()) 2329 return true; 2330 return false; 2331 } 2332 2333 public CompositionAttesterComponent addAttester() { //3 2334 CompositionAttesterComponent t = new CompositionAttesterComponent(); 2335 if (this.attester == null) 2336 this.attester = new ArrayList<CompositionAttesterComponent>(); 2337 this.attester.add(t); 2338 return t; 2339 } 2340 2341 public Composition addAttester(CompositionAttesterComponent t) { //3 2342 if (t == null) 2343 return this; 2344 if (this.attester == null) 2345 this.attester = new ArrayList<CompositionAttesterComponent>(); 2346 this.attester.add(t); 2347 return this; 2348 } 2349 2350 /** 2351 * @return The first repetition of repeating field {@link #attester}, creating it if it does not already exist {3} 2352 */ 2353 public CompositionAttesterComponent getAttesterFirstRep() { 2354 if (getAttester().isEmpty()) { 2355 addAttester(); 2356 } 2357 return getAttester().get(0); 2358 } 2359 2360 /** 2361 * @return {@link #custodian} (Identifies the organization or group who is responsible for ongoing maintenance of and access to the composition/document information.) 2362 */ 2363 public Reference getCustodian() { 2364 if (this.custodian == null) 2365 if (Configuration.errorOnAutoCreate()) 2366 throw new Error("Attempt to auto-create Composition.custodian"); 2367 else if (Configuration.doAutoCreate()) 2368 this.custodian = new Reference(); // cc 2369 return this.custodian; 2370 } 2371 2372 public boolean hasCustodian() { 2373 return this.custodian != null && !this.custodian.isEmpty(); 2374 } 2375 2376 /** 2377 * @param value {@link #custodian} (Identifies the organization or group who is responsible for ongoing maintenance of and access to the composition/document information.) 2378 */ 2379 public Composition setCustodian(Reference value) { 2380 this.custodian = value; 2381 return this; 2382 } 2383 2384 /** 2385 * @return {@link #relatesTo} (Relationships that this composition has with other compositions or documents that already exist.) 2386 */ 2387 public List<CompositionRelatesToComponent> getRelatesTo() { 2388 if (this.relatesTo == null) 2389 this.relatesTo = new ArrayList<CompositionRelatesToComponent>(); 2390 return this.relatesTo; 2391 } 2392 2393 /** 2394 * @return Returns a reference to <code>this</code> for easy method chaining 2395 */ 2396 public Composition setRelatesTo(List<CompositionRelatesToComponent> theRelatesTo) { 2397 this.relatesTo = theRelatesTo; 2398 return this; 2399 } 2400 2401 public boolean hasRelatesTo() { 2402 if (this.relatesTo == null) 2403 return false; 2404 for (CompositionRelatesToComponent item : this.relatesTo) 2405 if (!item.isEmpty()) 2406 return true; 2407 return false; 2408 } 2409 2410 public CompositionRelatesToComponent addRelatesTo() { //3 2411 CompositionRelatesToComponent t = new CompositionRelatesToComponent(); 2412 if (this.relatesTo == null) 2413 this.relatesTo = new ArrayList<CompositionRelatesToComponent>(); 2414 this.relatesTo.add(t); 2415 return t; 2416 } 2417 2418 public Composition addRelatesTo(CompositionRelatesToComponent t) { //3 2419 if (t == null) 2420 return this; 2421 if (this.relatesTo == null) 2422 this.relatesTo = new ArrayList<CompositionRelatesToComponent>(); 2423 this.relatesTo.add(t); 2424 return this; 2425 } 2426 2427 /** 2428 * @return The first repetition of repeating field {@link #relatesTo}, creating it if it does not already exist {3} 2429 */ 2430 public CompositionRelatesToComponent getRelatesToFirstRep() { 2431 if (getRelatesTo().isEmpty()) { 2432 addRelatesTo(); 2433 } 2434 return getRelatesTo().get(0); 2435 } 2436 2437 /** 2438 * @return {@link #event} (The clinical service, such as a colonoscopy or an appendectomy, being documented.) 2439 */ 2440 public List<CompositionEventComponent> getEvent() { 2441 if (this.event == null) 2442 this.event = new ArrayList<CompositionEventComponent>(); 2443 return this.event; 2444 } 2445 2446 /** 2447 * @return Returns a reference to <code>this</code> for easy method chaining 2448 */ 2449 public Composition setEvent(List<CompositionEventComponent> theEvent) { 2450 this.event = theEvent; 2451 return this; 2452 } 2453 2454 public boolean hasEvent() { 2455 if (this.event == null) 2456 return false; 2457 for (CompositionEventComponent item : this.event) 2458 if (!item.isEmpty()) 2459 return true; 2460 return false; 2461 } 2462 2463 public CompositionEventComponent addEvent() { //3 2464 CompositionEventComponent t = new CompositionEventComponent(); 2465 if (this.event == null) 2466 this.event = new ArrayList<CompositionEventComponent>(); 2467 this.event.add(t); 2468 return t; 2469 } 2470 2471 public Composition addEvent(CompositionEventComponent t) { //3 2472 if (t == null) 2473 return this; 2474 if (this.event == null) 2475 this.event = new ArrayList<CompositionEventComponent>(); 2476 this.event.add(t); 2477 return this; 2478 } 2479 2480 /** 2481 * @return The first repetition of repeating field {@link #event}, creating it if it does not already exist {3} 2482 */ 2483 public CompositionEventComponent getEventFirstRep() { 2484 if (getEvent().isEmpty()) { 2485 addEvent(); 2486 } 2487 return getEvent().get(0); 2488 } 2489 2490 /** 2491 * @return {@link #section} (The root of the sections that make up the composition.) 2492 */ 2493 public List<SectionComponent> getSection() { 2494 if (this.section == null) 2495 this.section = new ArrayList<SectionComponent>(); 2496 return this.section; 2497 } 2498 2499 /** 2500 * @return Returns a reference to <code>this</code> for easy method chaining 2501 */ 2502 public Composition setSection(List<SectionComponent> theSection) { 2503 this.section = theSection; 2504 return this; 2505 } 2506 2507 public boolean hasSection() { 2508 if (this.section == null) 2509 return false; 2510 for (SectionComponent item : this.section) 2511 if (!item.isEmpty()) 2512 return true; 2513 return false; 2514 } 2515 2516 public SectionComponent addSection() { //3 2517 SectionComponent t = new SectionComponent(); 2518 if (this.section == null) 2519 this.section = new ArrayList<SectionComponent>(); 2520 this.section.add(t); 2521 return t; 2522 } 2523 2524 public Composition addSection(SectionComponent t) { //3 2525 if (t == null) 2526 return this; 2527 if (this.section == null) 2528 this.section = new ArrayList<SectionComponent>(); 2529 this.section.add(t); 2530 return this; 2531 } 2532 2533 /** 2534 * @return The first repetition of repeating field {@link #section}, creating it if it does not already exist {3} 2535 */ 2536 public SectionComponent getSectionFirstRep() { 2537 if (getSection().isEmpty()) { 2538 addSection(); 2539 } 2540 return getSection().get(0); 2541 } 2542 2543 protected void listChildren(List<Property> children) { 2544 super.listChildren(children); 2545 children.add(new Property("identifier", "Identifier", "A version-independent identifier for the Composition. This identifier stays constant as the composition is changed over time.", 0, 1, identifier)); 2546 children.add(new Property("status", "code", "The workflow/clinical status of this composition. The status is a marker for the clinical standing of the document.", 0, 1, status)); 2547 children.add(new Property("type", "CodeableConcept", "Specifies the particular kind of composition (e.g. History and Physical, Discharge Summary, Progress Note). This usually equates to the purpose of making the composition.", 0, 1, type)); 2548 children.add(new Property("category", "CodeableConcept", "A categorization for the type of the composition - helps for indexing and searching. This may be implied by or derived from the code specified in the Composition Type.", 0, java.lang.Integer.MAX_VALUE, category)); 2549 children.add(new Property("subject", "Reference(Any)", "Who or what the composition is about. The composition can be about a person, (patient or healthcare practitioner), a device (e.g. a machine) or even a group of subjects (such as a document about a herd of livestock, or a set of patients that share a common exposure).", 0, 1, subject)); 2550 children.add(new Property("encounter", "Reference(Encounter)", "Describes the clinical encounter or type of care this documentation is associated with.", 0, 1, encounter)); 2551 children.add(new Property("date", "dateTime", "The composition editing time, when the composition was last logically changed by the author.", 0, 1, date)); 2552 children.add(new Property("author", "Reference(Practitioner|PractitionerRole|Device|Patient|RelatedPerson|Organization)", "Identifies who is responsible for the information in the composition, not necessarily who typed it in.", 0, java.lang.Integer.MAX_VALUE, author)); 2553 children.add(new Property("title", "string", "Official human-readable label for the composition.", 0, 1, title)); 2554 children.add(new Property("confidentiality", "code", "The code specifying the level of confidentiality of the Composition.", 0, 1, confidentiality)); 2555 children.add(new Property("attester", "", "A participant who has attested to the accuracy of the composition/document.", 0, java.lang.Integer.MAX_VALUE, attester)); 2556 children.add(new Property("custodian", "Reference(Organization)", "Identifies the organization or group who is responsible for ongoing maintenance of and access to the composition/document information.", 0, 1, custodian)); 2557 children.add(new Property("relatesTo", "", "Relationships that this composition has with other compositions or documents that already exist.", 0, java.lang.Integer.MAX_VALUE, relatesTo)); 2558 children.add(new Property("event", "", "The clinical service, such as a colonoscopy or an appendectomy, being documented.", 0, java.lang.Integer.MAX_VALUE, event)); 2559 children.add(new Property("section", "", "The root of the sections that make up the composition.", 0, java.lang.Integer.MAX_VALUE, section)); 2560 } 2561 2562 @Override 2563 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 2564 switch (_hash) { 2565 case -1618432855: /*identifier*/ return new Property("identifier", "Identifier", "A version-independent identifier for the Composition. This identifier stays constant as the composition is changed over time.", 0, 1, identifier); 2566 case -892481550: /*status*/ return new Property("status", "code", "The workflow/clinical status of this composition. The status is a marker for the clinical standing of the document.", 0, 1, status); 2567 case 3575610: /*type*/ return new Property("type", "CodeableConcept", "Specifies the particular kind of composition (e.g. History and Physical, Discharge Summary, Progress Note). This usually equates to the purpose of making the composition.", 0, 1, type); 2568 case 50511102: /*category*/ return new Property("category", "CodeableConcept", "A categorization for the type of the composition - helps for indexing and searching. This may be implied by or derived from the code specified in the Composition Type.", 0, java.lang.Integer.MAX_VALUE, category); 2569 case -1867885268: /*subject*/ return new Property("subject", "Reference(Any)", "Who or what the composition is about. The composition can be about a person, (patient or healthcare practitioner), a device (e.g. a machine) or even a group of subjects (such as a document about a herd of livestock, or a set of patients that share a common exposure).", 0, 1, subject); 2570 case 1524132147: /*encounter*/ return new Property("encounter", "Reference(Encounter)", "Describes the clinical encounter or type of care this documentation is associated with.", 0, 1, encounter); 2571 case 3076014: /*date*/ return new Property("date", "dateTime", "The composition editing time, when the composition was last logically changed by the author.", 0, 1, date); 2572 case -1406328437: /*author*/ return new Property("author", "Reference(Practitioner|PractitionerRole|Device|Patient|RelatedPerson|Organization)", "Identifies who is responsible for the information in the composition, not necessarily who typed it in.", 0, java.lang.Integer.MAX_VALUE, author); 2573 case 110371416: /*title*/ return new Property("title", "string", "Official human-readable label for the composition.", 0, 1, title); 2574 case -1923018202: /*confidentiality*/ return new Property("confidentiality", "code", "The code specifying the level of confidentiality of the Composition.", 0, 1, confidentiality); 2575 case 542920370: /*attester*/ return new Property("attester", "", "A participant who has attested to the accuracy of the composition/document.", 0, java.lang.Integer.MAX_VALUE, attester); 2576 case 1611297262: /*custodian*/ return new Property("custodian", "Reference(Organization)", "Identifies the organization or group who is responsible for ongoing maintenance of and access to the composition/document information.", 0, 1, custodian); 2577 case -7765931: /*relatesTo*/ return new Property("relatesTo", "", "Relationships that this composition has with other compositions or documents that already exist.", 0, java.lang.Integer.MAX_VALUE, relatesTo); 2578 case 96891546: /*event*/ return new Property("event", "", "The clinical service, such as a colonoscopy or an appendectomy, being documented.", 0, java.lang.Integer.MAX_VALUE, event); 2579 case 1970241253: /*section*/ return new Property("section", "", "The root of the sections that make up the composition.", 0, java.lang.Integer.MAX_VALUE, section); 2580 default: return super.getNamedProperty(_hash, _name, _checkValid); 2581 } 2582 2583 } 2584 2585 @Override 2586 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2587 switch (hash) { 2588 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : new Base[] {this.identifier}; // Identifier 2589 case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<CompositionStatus> 2590 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // CodeableConcept 2591 case 50511102: /*category*/ return this.category == null ? new Base[0] : this.category.toArray(new Base[this.category.size()]); // CodeableConcept 2592 case -1867885268: /*subject*/ return this.subject == null ? new Base[0] : new Base[] {this.subject}; // Reference 2593 case 1524132147: /*encounter*/ return this.encounter == null ? new Base[0] : new Base[] {this.encounter}; // Reference 2594 case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType 2595 case -1406328437: /*author*/ return this.author == null ? new Base[0] : this.author.toArray(new Base[this.author.size()]); // Reference 2596 case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType 2597 case -1923018202: /*confidentiality*/ return this.confidentiality == null ? new Base[0] : new Base[] {this.confidentiality}; // CodeType 2598 case 542920370: /*attester*/ return this.attester == null ? new Base[0] : this.attester.toArray(new Base[this.attester.size()]); // CompositionAttesterComponent 2599 case 1611297262: /*custodian*/ return this.custodian == null ? new Base[0] : new Base[] {this.custodian}; // Reference 2600 case -7765931: /*relatesTo*/ return this.relatesTo == null ? new Base[0] : this.relatesTo.toArray(new Base[this.relatesTo.size()]); // CompositionRelatesToComponent 2601 case 96891546: /*event*/ return this.event == null ? new Base[0] : this.event.toArray(new Base[this.event.size()]); // CompositionEventComponent 2602 case 1970241253: /*section*/ return this.section == null ? new Base[0] : this.section.toArray(new Base[this.section.size()]); // SectionComponent 2603 default: return super.getProperty(hash, name, checkValid); 2604 } 2605 2606 } 2607 2608 @Override 2609 public Base setProperty(int hash, String name, Base value) throws FHIRException { 2610 switch (hash) { 2611 case -1618432855: // identifier 2612 this.identifier = TypeConvertor.castToIdentifier(value); // Identifier 2613 return value; 2614 case -892481550: // status 2615 value = new CompositionStatusEnumFactory().fromType(TypeConvertor.castToCode(value)); 2616 this.status = (Enumeration) value; // Enumeration<CompositionStatus> 2617 return value; 2618 case 3575610: // type 2619 this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 2620 return value; 2621 case 50511102: // category 2622 this.getCategory().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 2623 return value; 2624 case -1867885268: // subject 2625 this.subject = TypeConvertor.castToReference(value); // Reference 2626 return value; 2627 case 1524132147: // encounter 2628 this.encounter = TypeConvertor.castToReference(value); // Reference 2629 return value; 2630 case 3076014: // date 2631 this.date = TypeConvertor.castToDateTime(value); // DateTimeType 2632 return value; 2633 case -1406328437: // author 2634 this.getAuthor().add(TypeConvertor.castToReference(value)); // Reference 2635 return value; 2636 case 110371416: // title 2637 this.title = TypeConvertor.castToString(value); // StringType 2638 return value; 2639 case -1923018202: // confidentiality 2640 this.confidentiality = TypeConvertor.castToCode(value); // CodeType 2641 return value; 2642 case 542920370: // attester 2643 this.getAttester().add((CompositionAttesterComponent) value); // CompositionAttesterComponent 2644 return value; 2645 case 1611297262: // custodian 2646 this.custodian = TypeConvertor.castToReference(value); // Reference 2647 return value; 2648 case -7765931: // relatesTo 2649 this.getRelatesTo().add((CompositionRelatesToComponent) value); // CompositionRelatesToComponent 2650 return value; 2651 case 96891546: // event 2652 this.getEvent().add((CompositionEventComponent) value); // CompositionEventComponent 2653 return value; 2654 case 1970241253: // section 2655 this.getSection().add((SectionComponent) value); // SectionComponent 2656 return value; 2657 default: return super.setProperty(hash, name, value); 2658 } 2659 2660 } 2661 2662 @Override 2663 public Base setProperty(String name, Base value) throws FHIRException { 2664 if (name.equals("identifier")) { 2665 this.identifier = TypeConvertor.castToIdentifier(value); // Identifier 2666 } else if (name.equals("status")) { 2667 value = new CompositionStatusEnumFactory().fromType(TypeConvertor.castToCode(value)); 2668 this.status = (Enumeration) value; // Enumeration<CompositionStatus> 2669 } else if (name.equals("type")) { 2670 this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 2671 } else if (name.equals("category")) { 2672 this.getCategory().add(TypeConvertor.castToCodeableConcept(value)); 2673 } else if (name.equals("subject")) { 2674 this.subject = TypeConvertor.castToReference(value); // Reference 2675 } else if (name.equals("encounter")) { 2676 this.encounter = TypeConvertor.castToReference(value); // Reference 2677 } else if (name.equals("date")) { 2678 this.date = TypeConvertor.castToDateTime(value); // DateTimeType 2679 } else if (name.equals("author")) { 2680 this.getAuthor().add(TypeConvertor.castToReference(value)); 2681 } else if (name.equals("title")) { 2682 this.title = TypeConvertor.castToString(value); // StringType 2683 } else if (name.equals("confidentiality")) { 2684 this.confidentiality = TypeConvertor.castToCode(value); // CodeType 2685 } else if (name.equals("attester")) { 2686 this.getAttester().add((CompositionAttesterComponent) value); 2687 } else if (name.equals("custodian")) { 2688 this.custodian = TypeConvertor.castToReference(value); // Reference 2689 } else if (name.equals("relatesTo")) { 2690 this.getRelatesTo().add((CompositionRelatesToComponent) value); 2691 } else if (name.equals("event")) { 2692 this.getEvent().add((CompositionEventComponent) value); 2693 } else if (name.equals("section")) { 2694 this.getSection().add((SectionComponent) value); 2695 } else 2696 return super.setProperty(name, value); 2697 return value; 2698 } 2699 2700 @Override 2701 public Base makeProperty(int hash, String name) throws FHIRException { 2702 switch (hash) { 2703 case -1618432855: return getIdentifier(); 2704 case -892481550: return getStatusElement(); 2705 case 3575610: return getType(); 2706 case 50511102: return addCategory(); 2707 case -1867885268: return getSubject(); 2708 case 1524132147: return getEncounter(); 2709 case 3076014: return getDateElement(); 2710 case -1406328437: return addAuthor(); 2711 case 110371416: return getTitleElement(); 2712 case -1923018202: return getConfidentialityElement(); 2713 case 542920370: return addAttester(); 2714 case 1611297262: return getCustodian(); 2715 case -7765931: return addRelatesTo(); 2716 case 96891546: return addEvent(); 2717 case 1970241253: return addSection(); 2718 default: return super.makeProperty(hash, name); 2719 } 2720 2721 } 2722 2723 @Override 2724 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2725 switch (hash) { 2726 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 2727 case -892481550: /*status*/ return new String[] {"code"}; 2728 case 3575610: /*type*/ return new String[] {"CodeableConcept"}; 2729 case 50511102: /*category*/ return new String[] {"CodeableConcept"}; 2730 case -1867885268: /*subject*/ return new String[] {"Reference"}; 2731 case 1524132147: /*encounter*/ return new String[] {"Reference"}; 2732 case 3076014: /*date*/ return new String[] {"dateTime"}; 2733 case -1406328437: /*author*/ return new String[] {"Reference"}; 2734 case 110371416: /*title*/ return new String[] {"string"}; 2735 case -1923018202: /*confidentiality*/ return new String[] {"code"}; 2736 case 542920370: /*attester*/ return new String[] {}; 2737 case 1611297262: /*custodian*/ return new String[] {"Reference"}; 2738 case -7765931: /*relatesTo*/ return new String[] {}; 2739 case 96891546: /*event*/ return new String[] {}; 2740 case 1970241253: /*section*/ return new String[] {}; 2741 default: return super.getTypesForProperty(hash, name); 2742 } 2743 2744 } 2745 2746 @Override 2747 public Base addChild(String name) throws FHIRException { 2748 if (name.equals("identifier")) { 2749 this.identifier = new Identifier(); 2750 return this.identifier; 2751 } 2752 else if (name.equals("status")) { 2753 throw new FHIRException("Cannot call addChild on a primitive type Composition.status"); 2754 } 2755 else if (name.equals("type")) { 2756 this.type = new CodeableConcept(); 2757 return this.type; 2758 } 2759 else if (name.equals("category")) { 2760 return addCategory(); 2761 } 2762 else if (name.equals("subject")) { 2763 this.subject = new Reference(); 2764 return this.subject; 2765 } 2766 else if (name.equals("encounter")) { 2767 this.encounter = new Reference(); 2768 return this.encounter; 2769 } 2770 else if (name.equals("date")) { 2771 throw new FHIRException("Cannot call addChild on a primitive type Composition.date"); 2772 } 2773 else if (name.equals("author")) { 2774 return addAuthor(); 2775 } 2776 else if (name.equals("title")) { 2777 throw new FHIRException("Cannot call addChild on a primitive type Composition.title"); 2778 } 2779 else if (name.equals("confidentiality")) { 2780 throw new FHIRException("Cannot call addChild on a primitive type Composition.confidentiality"); 2781 } 2782 else if (name.equals("attester")) { 2783 return addAttester(); 2784 } 2785 else if (name.equals("custodian")) { 2786 this.custodian = new Reference(); 2787 return this.custodian; 2788 } 2789 else if (name.equals("relatesTo")) { 2790 return addRelatesTo(); 2791 } 2792 else if (name.equals("event")) { 2793 return addEvent(); 2794 } 2795 else if (name.equals("section")) { 2796 return addSection(); 2797 } 2798 else 2799 return super.addChild(name); 2800 } 2801 2802 public String fhirType() { 2803 return "Composition"; 2804 2805 } 2806 2807 public Composition copy() { 2808 Composition dst = new Composition(); 2809 copyValues(dst); 2810 return dst; 2811 } 2812 2813 public void copyValues(Composition dst) { 2814 super.copyValues(dst); 2815 dst.identifier = identifier == null ? null : identifier.copy(); 2816 dst.status = status == null ? null : status.copy(); 2817 dst.type = type == null ? null : type.copy(); 2818 if (category != null) { 2819 dst.category = new ArrayList<CodeableConcept>(); 2820 for (CodeableConcept i : category) 2821 dst.category.add(i.copy()); 2822 }; 2823 dst.subject = subject == null ? null : subject.copy(); 2824 dst.encounter = encounter == null ? null : encounter.copy(); 2825 dst.date = date == null ? null : date.copy(); 2826 if (author != null) { 2827 dst.author = new ArrayList<Reference>(); 2828 for (Reference i : author) 2829 dst.author.add(i.copy()); 2830 }; 2831 dst.title = title == null ? null : title.copy(); 2832 dst.confidentiality = confidentiality == null ? null : confidentiality.copy(); 2833 if (attester != null) { 2834 dst.attester = new ArrayList<CompositionAttesterComponent>(); 2835 for (CompositionAttesterComponent i : attester) 2836 dst.attester.add(i.copy()); 2837 }; 2838 dst.custodian = custodian == null ? null : custodian.copy(); 2839 if (relatesTo != null) { 2840 dst.relatesTo = new ArrayList<CompositionRelatesToComponent>(); 2841 for (CompositionRelatesToComponent i : relatesTo) 2842 dst.relatesTo.add(i.copy()); 2843 }; 2844 if (event != null) { 2845 dst.event = new ArrayList<CompositionEventComponent>(); 2846 for (CompositionEventComponent i : event) 2847 dst.event.add(i.copy()); 2848 }; 2849 if (section != null) { 2850 dst.section = new ArrayList<SectionComponent>(); 2851 for (SectionComponent i : section) 2852 dst.section.add(i.copy()); 2853 }; 2854 } 2855 2856 protected Composition typedCopy() { 2857 return copy(); 2858 } 2859 2860 @Override 2861 public boolean equalsDeep(Base other_) { 2862 if (!super.equalsDeep(other_)) 2863 return false; 2864 if (!(other_ instanceof Composition)) 2865 return false; 2866 Composition o = (Composition) other_; 2867 return compareDeep(identifier, o.identifier, true) && compareDeep(status, o.status, true) && compareDeep(type, o.type, true) 2868 && compareDeep(category, o.category, true) && compareDeep(subject, o.subject, true) && compareDeep(encounter, o.encounter, true) 2869 && compareDeep(date, o.date, true) && compareDeep(author, o.author, true) && compareDeep(title, o.title, true) 2870 && compareDeep(confidentiality, o.confidentiality, true) && compareDeep(attester, o.attester, true) 2871 && compareDeep(custodian, o.custodian, true) && compareDeep(relatesTo, o.relatesTo, true) && compareDeep(event, o.event, true) 2872 && compareDeep(section, o.section, true); 2873 } 2874 2875 @Override 2876 public boolean equalsShallow(Base other_) { 2877 if (!super.equalsShallow(other_)) 2878 return false; 2879 if (!(other_ instanceof Composition)) 2880 return false; 2881 Composition o = (Composition) other_; 2882 return compareValues(status, o.status, true) && compareValues(date, o.date, true) && compareValues(title, o.title, true) 2883 && compareValues(confidentiality, o.confidentiality, true); 2884 } 2885 2886 public boolean isEmpty() { 2887 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, status, type 2888 , category, subject, encounter, date, author, title, confidentiality, attester 2889 , custodian, relatesTo, event, section); 2890 } 2891 2892 @Override 2893 public ResourceType getResourceType() { 2894 return ResourceType.Composition; 2895 } 2896 2897 /** 2898 * Search parameter: <b>attester</b> 2899 * <p> 2900 * Description: <b>Who attested the composition</b><br> 2901 * Type: <b>reference</b><br> 2902 * Path: <b>Composition.attester.party</b><br> 2903 * </p> 2904 */ 2905 @SearchParamDefinition(name="attester", path="Composition.attester.party", description="Who attested the composition", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Patient"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Practitioner") }, target={Organization.class, Patient.class, Practitioner.class, PractitionerRole.class, RelatedPerson.class } ) 2906 public static final String SP_ATTESTER = "attester"; 2907 /** 2908 * <b>Fluent Client</b> search parameter constant for <b>attester</b> 2909 * <p> 2910 * Description: <b>Who attested the composition</b><br> 2911 * Type: <b>reference</b><br> 2912 * Path: <b>Composition.attester.party</b><br> 2913 * </p> 2914 */ 2915 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ATTESTER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ATTESTER); 2916 2917/** 2918 * Constant for fluent queries to be used to add include statements. Specifies 2919 * the path value of "<b>Composition:attester</b>". 2920 */ 2921 public static final ca.uhn.fhir.model.api.Include INCLUDE_ATTESTER = new ca.uhn.fhir.model.api.Include("Composition:attester").toLocked(); 2922 2923 /** 2924 * Search parameter: <b>author</b> 2925 * <p> 2926 * Description: <b>Who and/or what authored the composition</b><br> 2927 * Type: <b>reference</b><br> 2928 * Path: <b>Composition.author</b><br> 2929 * </p> 2930 */ 2931 @SearchParamDefinition(name="author", path="Composition.author", description="Who and/or what authored the composition", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Device"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Patient"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Practitioner"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for RelatedPerson") }, target={Device.class, Organization.class, Patient.class, Practitioner.class, PractitionerRole.class, RelatedPerson.class } ) 2932 public static final String SP_AUTHOR = "author"; 2933 /** 2934 * <b>Fluent Client</b> search parameter constant for <b>author</b> 2935 * <p> 2936 * Description: <b>Who and/or what authored the composition</b><br> 2937 * Type: <b>reference</b><br> 2938 * Path: <b>Composition.author</b><br> 2939 * </p> 2940 */ 2941 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam AUTHOR = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_AUTHOR); 2942 2943/** 2944 * Constant for fluent queries to be used to add include statements. Specifies 2945 * the path value of "<b>Composition:author</b>". 2946 */ 2947 public static final ca.uhn.fhir.model.api.Include INCLUDE_AUTHOR = new ca.uhn.fhir.model.api.Include("Composition:author").toLocked(); 2948 2949 /** 2950 * Search parameter: <b>category</b> 2951 * <p> 2952 * Description: <b>Categorization of Composition</b><br> 2953 * Type: <b>token</b><br> 2954 * Path: <b>Composition.category</b><br> 2955 * </p> 2956 */ 2957 @SearchParamDefinition(name="category", path="Composition.category", description="Categorization of Composition", type="token" ) 2958 public static final String SP_CATEGORY = "category"; 2959 /** 2960 * <b>Fluent Client</b> search parameter constant for <b>category</b> 2961 * <p> 2962 * Description: <b>Categorization of Composition</b><br> 2963 * Type: <b>token</b><br> 2964 * Path: <b>Composition.category</b><br> 2965 * </p> 2966 */ 2967 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CATEGORY = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CATEGORY); 2968 2969 /** 2970 * Search parameter: <b>confidentiality</b> 2971 * <p> 2972 * Description: <b>As defined by affinity domain</b><br> 2973 * Type: <b>token</b><br> 2974 * Path: <b>Composition.confidentiality</b><br> 2975 * </p> 2976 */ 2977 @SearchParamDefinition(name="confidentiality", path="Composition.confidentiality", description="As defined by affinity domain", type="token" ) 2978 public static final String SP_CONFIDENTIALITY = "confidentiality"; 2979 /** 2980 * <b>Fluent Client</b> search parameter constant for <b>confidentiality</b> 2981 * <p> 2982 * Description: <b>As defined by affinity domain</b><br> 2983 * Type: <b>token</b><br> 2984 * Path: <b>Composition.confidentiality</b><br> 2985 * </p> 2986 */ 2987 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONFIDENTIALITY = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONFIDENTIALITY); 2988 2989 /** 2990 * Search parameter: <b>context</b> 2991 * <p> 2992 * Description: <b>Code(s) that apply to the event being documented</b><br> 2993 * Type: <b>token</b><br> 2994 * Path: <b>Composition.event.code</b><br> 2995 * </p> 2996 */ 2997 @SearchParamDefinition(name="context", path="Composition.event.code", description="Code(s) that apply to the event being documented", type="token" ) 2998 public static final String SP_CONTEXT = "context"; 2999 /** 3000 * <b>Fluent Client</b> search parameter constant for <b>context</b> 3001 * <p> 3002 * Description: <b>Code(s) that apply to the event being documented</b><br> 3003 * Type: <b>token</b><br> 3004 * Path: <b>Composition.event.code</b><br> 3005 * </p> 3006 */ 3007 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT); 3008 3009 /** 3010 * Search parameter: <b>entry</b> 3011 * <p> 3012 * Description: <b>A reference to data that supports this section</b><br> 3013 * Type: <b>reference</b><br> 3014 * Path: <b>Composition.section.entry</b><br> 3015 * </p> 3016 */ 3017 @SearchParamDefinition(name="entry", path="Composition.section.entry", description="A reference to data that supports this section", type="reference", target={Account.class, ActivityDefinition.class, AdministrableProductDefinition.class, AdverseEvent.class, AllergyIntolerance.class, Appointment.class, AppointmentResponse.class, AuditEvent.class, Basic.class, Binary.class, BiologicallyDerivedProduct.class, BodyStructure.class, Bundle.class, CapabilityStatement.class, CarePlan.class, CareTeam.class, CatalogEntry.class, ChargeItem.class, ChargeItemDefinition.class, Citation.class, Claim.class, ClaimResponse.class, ClinicalImpression.class, ClinicalUseDefinition.class, CodeSystem.class, Communication.class, CommunicationRequest.class, CompartmentDefinition.class, Composition.class, ConceptMap.class, Condition.class, Consent.class, Contract.class, Coverage.class, CoverageEligibilityRequest.class, CoverageEligibilityResponse.class, DetectedIssue.class, Device.class, DeviceDefinition.class, DeviceMetric.class, DeviceRequest.class, DeviceUseStatement.class, DiagnosticReport.class, DocumentManifest.class, DocumentReference.class, Encounter.class, Endpoint.class, EnrollmentRequest.class, EnrollmentResponse.class, EpisodeOfCare.class, EventDefinition.class, Evidence.class, EvidenceReport.class, EvidenceVariable.class, ExampleScenario.class, ExplanationOfBenefit.class, FamilyMemberHistory.class, Flag.class, Goal.class, GraphDefinition.class, Group.class, GuidanceResponse.class, HealthcareService.class, ImagingStudy.class, Immunization.class, ImmunizationEvaluation.class, ImmunizationRecommendation.class, ImplementationGuide.class, Ingredient.class, InsurancePlan.class, Invoice.class, Library.class, Linkage.class, ListResource.class, Location.class, ManufacturedItemDefinition.class, Measure.class, MeasureReport.class, Media.class, Medication.class, MedicationAdministration.class, MedicationDispense.class, MedicationKnowledge.class, MedicationRequest.class, MedicationStatement.class, MedicinalProductDefinition.class, MessageDefinition.class, MessageHeader.class, MolecularSequence.class, NamingSystem.class, NutritionOrder.class, NutritionProduct.class, Observation.class, ObservationDefinition.class, OperationDefinition.class, OperationOutcome.class, Organization.class, OrganizationAffiliation.class, PackagedProductDefinition.class, Patient.class, PaymentNotice.class, PaymentReconciliation.class, Person.class, PlanDefinition.class, Practitioner.class, PractitionerRole.class, Procedure.class, Provenance.class, Questionnaire.class, QuestionnaireResponse.class, RegulatedAuthorization.class, RelatedPerson.class, RequestGroup.class, ResearchDefinition.class, ResearchElementDefinition.class, ResearchStudy.class, ResearchSubject.class, RiskAssessment.class, Schedule.class, SearchParameter.class, ServiceRequest.class, Slot.class, Specimen.class, SpecimenDefinition.class, StructureDefinition.class, StructureMap.class, Subscription.class, SubscriptionStatus.class, SubscriptionTopic.class, Substance.class, SubstanceDefinition.class, SupplyDelivery.class, SupplyRequest.class, Task.class, TerminologyCapabilities.class, TestReport.class, TestScript.class, ValueSet.class, VerificationResult.class, VisionPrescription.class } ) 3018 public static final String SP_ENTRY = "entry"; 3019 /** 3020 * <b>Fluent Client</b> search parameter constant for <b>entry</b> 3021 * <p> 3022 * Description: <b>A reference to data that supports this section</b><br> 3023 * Type: <b>reference</b><br> 3024 * Path: <b>Composition.section.entry</b><br> 3025 * </p> 3026 */ 3027 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ENTRY = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ENTRY); 3028 3029/** 3030 * Constant for fluent queries to be used to add include statements. Specifies 3031 * the path value of "<b>Composition:entry</b>". 3032 */ 3033 public static final ca.uhn.fhir.model.api.Include INCLUDE_ENTRY = new ca.uhn.fhir.model.api.Include("Composition:entry").toLocked(); 3034 3035 /** 3036 * Search parameter: <b>period</b> 3037 * <p> 3038 * Description: <b>The period covered by the documentation</b><br> 3039 * Type: <b>date</b><br> 3040 * Path: <b>Composition.event.period</b><br> 3041 * </p> 3042 */ 3043 @SearchParamDefinition(name="period", path="Composition.event.period", description="The period covered by the documentation", type="date" ) 3044 public static final String SP_PERIOD = "period"; 3045 /** 3046 * <b>Fluent Client</b> search parameter constant for <b>period</b> 3047 * <p> 3048 * Description: <b>The period covered by the documentation</b><br> 3049 * Type: <b>date</b><br> 3050 * Path: <b>Composition.event.period</b><br> 3051 * </p> 3052 */ 3053 public static final ca.uhn.fhir.rest.gclient.DateClientParam PERIOD = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_PERIOD); 3054 3055 /** 3056 * Search parameter: <b>related-id</b> 3057 * <p> 3058 * Description: <b>Target of the relationship</b><br> 3059 * Type: <b>token</b><br> 3060 * Path: <b>(Composition.relatesTo.target as Identifier)</b><br> 3061 * </p> 3062 */ 3063 @SearchParamDefinition(name="related-id", path="(Composition.relatesTo.target as Identifier)", description="Target of the relationship", type="token" ) 3064 public static final String SP_RELATED_ID = "related-id"; 3065 /** 3066 * <b>Fluent Client</b> search parameter constant for <b>related-id</b> 3067 * <p> 3068 * Description: <b>Target of the relationship</b><br> 3069 * Type: <b>token</b><br> 3070 * Path: <b>(Composition.relatesTo.target as Identifier)</b><br> 3071 * </p> 3072 */ 3073 public static final ca.uhn.fhir.rest.gclient.TokenClientParam RELATED_ID = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_RELATED_ID); 3074 3075 /** 3076 * Search parameter: <b>related-ref</b> 3077 * <p> 3078 * Description: <b>Target of the relationship</b><br> 3079 * Type: <b>reference</b><br> 3080 * Path: <b>(Composition.relatesTo.target as Reference)</b><br> 3081 * </p> 3082 */ 3083 @SearchParamDefinition(name="related-ref", path="(Composition.relatesTo.target as Reference)", description="Target of the relationship", type="reference", target={Composition.class } ) 3084 public static final String SP_RELATED_REF = "related-ref"; 3085 /** 3086 * <b>Fluent Client</b> search parameter constant for <b>related-ref</b> 3087 * <p> 3088 * Description: <b>Target of the relationship</b><br> 3089 * Type: <b>reference</b><br> 3090 * Path: <b>(Composition.relatesTo.target as Reference)</b><br> 3091 * </p> 3092 */ 3093 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam RELATED_REF = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_RELATED_REF); 3094 3095/** 3096 * Constant for fluent queries to be used to add include statements. Specifies 3097 * the path value of "<b>Composition:related-ref</b>". 3098 */ 3099 public static final ca.uhn.fhir.model.api.Include INCLUDE_RELATED_REF = new ca.uhn.fhir.model.api.Include("Composition:related-ref").toLocked(); 3100 3101 /** 3102 * Search parameter: <b>section</b> 3103 * <p> 3104 * Description: <b>Classification of section (recommended)</b><br> 3105 * Type: <b>token</b><br> 3106 * Path: <b>Composition.section.code</b><br> 3107 * </p> 3108 */ 3109 @SearchParamDefinition(name="section", path="Composition.section.code", description="Classification of section (recommended)", type="token" ) 3110 public static final String SP_SECTION = "section"; 3111 /** 3112 * <b>Fluent Client</b> search parameter constant for <b>section</b> 3113 * <p> 3114 * Description: <b>Classification of section (recommended)</b><br> 3115 * Type: <b>token</b><br> 3116 * Path: <b>Composition.section.code</b><br> 3117 * </p> 3118 */ 3119 public static final ca.uhn.fhir.rest.gclient.TokenClientParam SECTION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_SECTION); 3120 3121 /** 3122 * Search parameter: <b>status</b> 3123 * <p> 3124 * Description: <b>preliminary | final | amended | entered-in-error</b><br> 3125 * Type: <b>token</b><br> 3126 * Path: <b>Composition.status</b><br> 3127 * </p> 3128 */ 3129 @SearchParamDefinition(name="status", path="Composition.status", description="preliminary | final | amended | entered-in-error", type="token" ) 3130 public static final String SP_STATUS = "status"; 3131 /** 3132 * <b>Fluent Client</b> search parameter constant for <b>status</b> 3133 * <p> 3134 * Description: <b>preliminary | final | amended | entered-in-error</b><br> 3135 * Type: <b>token</b><br> 3136 * Path: <b>Composition.status</b><br> 3137 * </p> 3138 */ 3139 public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS); 3140 3141 /** 3142 * Search parameter: <b>subject</b> 3143 * <p> 3144 * Description: <b>Who and/or what the composition is about</b><br> 3145 * Type: <b>reference</b><br> 3146 * Path: <b>Composition.subject</b><br> 3147 * </p> 3148 */ 3149 @SearchParamDefinition(name="subject", path="Composition.subject", description="Who and/or what the composition is about", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Patient"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Practitioner") }, target={Account.class, ActivityDefinition.class, AdministrableProductDefinition.class, AdverseEvent.class, AllergyIntolerance.class, Appointment.class, AppointmentResponse.class, AuditEvent.class, Basic.class, Binary.class, BiologicallyDerivedProduct.class, BodyStructure.class, Bundle.class, CapabilityStatement.class, CarePlan.class, CareTeam.class, CatalogEntry.class, ChargeItem.class, ChargeItemDefinition.class, Citation.class, Claim.class, ClaimResponse.class, ClinicalImpression.class, ClinicalUseDefinition.class, CodeSystem.class, Communication.class, CommunicationRequest.class, CompartmentDefinition.class, Composition.class, ConceptMap.class, Condition.class, Consent.class, Contract.class, Coverage.class, CoverageEligibilityRequest.class, CoverageEligibilityResponse.class, DetectedIssue.class, Device.class, DeviceDefinition.class, DeviceMetric.class, DeviceRequest.class, DeviceUseStatement.class, DiagnosticReport.class, DocumentManifest.class, DocumentReference.class, Encounter.class, Endpoint.class, EnrollmentRequest.class, EnrollmentResponse.class, EpisodeOfCare.class, EventDefinition.class, Evidence.class, EvidenceReport.class, EvidenceVariable.class, ExampleScenario.class, ExplanationOfBenefit.class, FamilyMemberHistory.class, Flag.class, Goal.class, GraphDefinition.class, Group.class, GuidanceResponse.class, HealthcareService.class, ImagingStudy.class, Immunization.class, ImmunizationEvaluation.class, ImmunizationRecommendation.class, ImplementationGuide.class, Ingredient.class, InsurancePlan.class, Invoice.class, Library.class, Linkage.class, ListResource.class, Location.class, ManufacturedItemDefinition.class, Measure.class, MeasureReport.class, Media.class, Medication.class, MedicationAdministration.class, MedicationDispense.class, MedicationKnowledge.class, MedicationRequest.class, MedicationStatement.class, MedicinalProductDefinition.class, MessageDefinition.class, MessageHeader.class, MolecularSequence.class, NamingSystem.class, NutritionOrder.class, NutritionProduct.class, Observation.class, ObservationDefinition.class, OperationDefinition.class, OperationOutcome.class, Organization.class, OrganizationAffiliation.class, PackagedProductDefinition.class, Patient.class, PaymentNotice.class, PaymentReconciliation.class, Person.class, PlanDefinition.class, Practitioner.class, PractitionerRole.class, Procedure.class, Provenance.class, Questionnaire.class, QuestionnaireResponse.class, RegulatedAuthorization.class, RelatedPerson.class, RequestGroup.class, ResearchDefinition.class, ResearchElementDefinition.class, ResearchStudy.class, ResearchSubject.class, RiskAssessment.class, Schedule.class, SearchParameter.class, ServiceRequest.class, Slot.class, Specimen.class, SpecimenDefinition.class, StructureDefinition.class, StructureMap.class, Subscription.class, SubscriptionStatus.class, SubscriptionTopic.class, Substance.class, SubstanceDefinition.class, SupplyDelivery.class, SupplyRequest.class, Task.class, TerminologyCapabilities.class, TestReport.class, TestScript.class, ValueSet.class, VerificationResult.class, VisionPrescription.class } ) 3150 public static final String SP_SUBJECT = "subject"; 3151 /** 3152 * <b>Fluent Client</b> search parameter constant for <b>subject</b> 3153 * <p> 3154 * Description: <b>Who and/or what the composition is about</b><br> 3155 * Type: <b>reference</b><br> 3156 * Path: <b>Composition.subject</b><br> 3157 * </p> 3158 */ 3159 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SUBJECT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SUBJECT); 3160 3161/** 3162 * Constant for fluent queries to be used to add include statements. Specifies 3163 * the path value of "<b>Composition:subject</b>". 3164 */ 3165 public static final ca.uhn.fhir.model.api.Include INCLUDE_SUBJECT = new ca.uhn.fhir.model.api.Include("Composition:subject").toLocked(); 3166 3167 /** 3168 * Search parameter: <b>title</b> 3169 * <p> 3170 * Description: <b>Human Readable name/title</b><br> 3171 * Type: <b>string</b><br> 3172 * Path: <b>Composition.title</b><br> 3173 * </p> 3174 */ 3175 @SearchParamDefinition(name="title", path="Composition.title", description="Human Readable name/title", type="string" ) 3176 public static final String SP_TITLE = "title"; 3177 /** 3178 * <b>Fluent Client</b> search parameter constant for <b>title</b> 3179 * <p> 3180 * Description: <b>Human Readable name/title</b><br> 3181 * Type: <b>string</b><br> 3182 * Path: <b>Composition.title</b><br> 3183 * </p> 3184 */ 3185 public static final ca.uhn.fhir.rest.gclient.StringClientParam TITLE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_TITLE); 3186 3187 /** 3188 * Search parameter: <b>date</b> 3189 * <p> 3190 * Description: <b>Multiple Resources: 3191 3192* [AllergyIntolerance](allergyintolerance.html): Date first version of the resource instance was recorded 3193* [CarePlan](careplan.html): Time period plan covers 3194* [CareTeam](careteam.html): Time period team covers 3195* [ClinicalImpression](clinicalimpression.html): When the assessment was documented 3196* [Composition](composition.html): Composition editing time 3197* [Consent](consent.html): When this Consent was created or indexed 3198* [DiagnosticReport](diagnosticreport.html): The clinically relevant time of the report 3199* [Encounter](encounter.html): A date within the period the Encounter lasted 3200* [EpisodeOfCare](episodeofcare.html): The provided date search value falls within the episode of care's period 3201* [FamilyMemberHistory](familymemberhistory.html): When history was recorded or last updated 3202* [Flag](flag.html): Time period when flag is active 3203* [Immunization](immunization.html): Vaccination (non)-Administration Date 3204* [List](list.html): When the list was prepared 3205* [Observation](observation.html): Obtained date/time. If the obtained element is a period, a date that falls in the period 3206* [Procedure](procedure.html): When the procedure was performed 3207* [RiskAssessment](riskassessment.html): When was assessment made? 3208* [SupplyRequest](supplyrequest.html): When the request was made 3209</b><br> 3210 * Type: <b>date</b><br> 3211 * Path: <b>AllergyIntolerance.recordedDate | CarePlan.period | CareTeam.period | ClinicalImpression.date | Composition.date | Consent.dateTime | DiagnosticReport.effective | Encounter.period | EpisodeOfCare.period | FamilyMemberHistory.date | Flag.period | Immunization.occurrence | List.date | Observation.effective | Procedure.performed | (RiskAssessment.occurrence as dateTime) | SupplyRequest.authoredOn</b><br> 3212 * </p> 3213 */ 3214 @SearchParamDefinition(name="date", path="AllergyIntolerance.recordedDate | CarePlan.period | CareTeam.period | ClinicalImpression.date | Composition.date | Consent.dateTime | DiagnosticReport.effective | Encounter.period | EpisodeOfCare.period | FamilyMemberHistory.date | Flag.period | Immunization.occurrence | List.date | Observation.effective | Procedure.performed | (RiskAssessment.occurrence as dateTime) | SupplyRequest.authoredOn", description="Multiple Resources: \r\n\r\n* [AllergyIntolerance](allergyintolerance.html): Date first version of the resource instance was recorded\r\n* [CarePlan](careplan.html): Time period plan covers\r\n* [CareTeam](careteam.html): Time period team covers\r\n* [ClinicalImpression](clinicalimpression.html): When the assessment was documented\r\n* [Composition](composition.html): Composition editing time\r\n* [Consent](consent.html): When this Consent was created or indexed\r\n* [DiagnosticReport](diagnosticreport.html): The clinically relevant time of the report\r\n* [Encounter](encounter.html): A date within the period the Encounter lasted\r\n* [EpisodeOfCare](episodeofcare.html): The provided date search value falls within the episode of care's period\r\n* [FamilyMemberHistory](familymemberhistory.html): When history was recorded or last updated\r\n* [Flag](flag.html): Time period when flag is active\r\n* [Immunization](immunization.html): Vaccination (non)-Administration Date\r\n* [List](list.html): When the list was prepared\r\n* [Observation](observation.html): Obtained date/time. If the obtained element is a period, a date that falls in the period\r\n* [Procedure](procedure.html): When the procedure was performed\r\n* [RiskAssessment](riskassessment.html): When was assessment made?\r\n* [SupplyRequest](supplyrequest.html): When the request was made\r\n", type="date" ) 3215 public static final String SP_DATE = "date"; 3216 /** 3217 * <b>Fluent Client</b> search parameter constant for <b>date</b> 3218 * <p> 3219 * Description: <b>Multiple Resources: 3220 3221* [AllergyIntolerance](allergyintolerance.html): Date first version of the resource instance was recorded 3222* [CarePlan](careplan.html): Time period plan covers 3223* [CareTeam](careteam.html): Time period team covers 3224* [ClinicalImpression](clinicalimpression.html): When the assessment was documented 3225* [Composition](composition.html): Composition editing time 3226* [Consent](consent.html): When this Consent was created or indexed 3227* [DiagnosticReport](diagnosticreport.html): The clinically relevant time of the report 3228* [Encounter](encounter.html): A date within the period the Encounter lasted 3229* [EpisodeOfCare](episodeofcare.html): The provided date search value falls within the episode of care's period 3230* [FamilyMemberHistory](familymemberhistory.html): When history was recorded or last updated 3231* [Flag](flag.html): Time period when flag is active 3232* [Immunization](immunization.html): Vaccination (non)-Administration Date 3233* [List](list.html): When the list was prepared 3234* [Observation](observation.html): Obtained date/time. If the obtained element is a period, a date that falls in the period 3235* [Procedure](procedure.html): When the procedure was performed 3236* [RiskAssessment](riskassessment.html): When was assessment made? 3237* [SupplyRequest](supplyrequest.html): When the request was made 3238</b><br> 3239 * Type: <b>date</b><br> 3240 * Path: <b>AllergyIntolerance.recordedDate | CarePlan.period | CareTeam.period | ClinicalImpression.date | Composition.date | Consent.dateTime | DiagnosticReport.effective | Encounter.period | EpisodeOfCare.period | FamilyMemberHistory.date | Flag.period | Immunization.occurrence | List.date | Observation.effective | Procedure.performed | (RiskAssessment.occurrence as dateTime) | SupplyRequest.authoredOn</b><br> 3241 * </p> 3242 */ 3243 public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE); 3244 3245 /** 3246 * Search parameter: <b>encounter</b> 3247 * <p> 3248 * Description: <b>Multiple Resources: 3249 3250* [Composition](composition.html): Context of the Composition 3251* [DeviceRequest](devicerequest.html): Encounter during which request was created 3252* [DiagnosticReport](diagnosticreport.html): The Encounter when the order was made 3253* [DocumentReference](documentreference.html): Context of the document content 3254* [Flag](flag.html): Alert relevant during encounter 3255* [List](list.html): Context in which list created 3256* [NutritionOrder](nutritionorder.html): Return nutrition orders with this encounter identifier 3257* [Observation](observation.html): Encounter related to the observation 3258* [Procedure](procedure.html): Encounter created as part of 3259* [RiskAssessment](riskassessment.html): Where was assessment performed? 3260* [ServiceRequest](servicerequest.html): An encounter in which this request is made 3261* [VisionPrescription](visionprescription.html): Return prescriptions with this encounter identifier 3262</b><br> 3263 * Type: <b>reference</b><br> 3264 * Path: <b>Composition.encounter | DeviceRequest.encounter | DiagnosticReport.encounter | DocumentReference.context.encounter | Flag.encounter | List.encounter | NutritionOrder.encounter | Observation.encounter | Procedure.encounter | RiskAssessment.encounter | ServiceRequest.encounter | VisionPrescription.encounter</b><br> 3265 * </p> 3266 */ 3267 @SearchParamDefinition(name="encounter", path="Composition.encounter | DeviceRequest.encounter | DiagnosticReport.encounter | DocumentReference.context.encounter | Flag.encounter | List.encounter | NutritionOrder.encounter | Observation.encounter | Procedure.encounter | RiskAssessment.encounter | ServiceRequest.encounter | VisionPrescription.encounter", description="Multiple Resources: \r\n\r\n* [Composition](composition.html): Context of the Composition\r\n* [DeviceRequest](devicerequest.html): Encounter during which request was created\r\n* [DiagnosticReport](diagnosticreport.html): The Encounter when the order was made\r\n* [DocumentReference](documentreference.html): Context of the document content\r\n* [Flag](flag.html): Alert relevant during encounter\r\n* [List](list.html): Context in which list created\r\n* [NutritionOrder](nutritionorder.html): Return nutrition orders with this encounter identifier\r\n* [Observation](observation.html): Encounter related to the observation\r\n* [Procedure](procedure.html): Encounter created as part of\r\n* [RiskAssessment](riskassessment.html): Where was assessment performed?\r\n* [ServiceRequest](servicerequest.html): An encounter in which this request is made\r\n* [VisionPrescription](visionprescription.html): Return prescriptions with this encounter identifier\r\n", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Encounter") }, target={Encounter.class, EpisodeOfCare.class } ) 3268 public static final String SP_ENCOUNTER = "encounter"; 3269 /** 3270 * <b>Fluent Client</b> search parameter constant for <b>encounter</b> 3271 * <p> 3272 * Description: <b>Multiple Resources: 3273 3274* [Composition](composition.html): Context of the Composition 3275* [DeviceRequest](devicerequest.html): Encounter during which request was created 3276* [DiagnosticReport](diagnosticreport.html): The Encounter when the order was made 3277* [DocumentReference](documentreference.html): Context of the document content 3278* [Flag](flag.html): Alert relevant during encounter 3279* [List](list.html): Context in which list created 3280* [NutritionOrder](nutritionorder.html): Return nutrition orders with this encounter identifier 3281* [Observation](observation.html): Encounter related to the observation 3282* [Procedure](procedure.html): Encounter created as part of 3283* [RiskAssessment](riskassessment.html): Where was assessment performed? 3284* [ServiceRequest](servicerequest.html): An encounter in which this request is made 3285* [VisionPrescription](visionprescription.html): Return prescriptions with this encounter identifier 3286</b><br> 3287 * Type: <b>reference</b><br> 3288 * Path: <b>Composition.encounter | DeviceRequest.encounter | DiagnosticReport.encounter | DocumentReference.context.encounter | Flag.encounter | List.encounter | NutritionOrder.encounter | Observation.encounter | Procedure.encounter | RiskAssessment.encounter | ServiceRequest.encounter | VisionPrescription.encounter</b><br> 3289 * </p> 3290 */ 3291 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ENCOUNTER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ENCOUNTER); 3292 3293/** 3294 * Constant for fluent queries to be used to add include statements. Specifies 3295 * the path value of "<b>Composition:encounter</b>". 3296 */ 3297 public static final ca.uhn.fhir.model.api.Include INCLUDE_ENCOUNTER = new ca.uhn.fhir.model.api.Include("Composition:encounter").toLocked(); 3298 3299 /** 3300 * Search parameter: <b>identifier</b> 3301 * <p> 3302 * Description: <b>Multiple Resources: 3303 3304* [AllergyIntolerance](allergyintolerance.html): External ids for this item 3305* [CarePlan](careplan.html): External Ids for this plan 3306* [CareTeam](careteam.html): External Ids for this team 3307* [Composition](composition.html): Version-independent identifier for the Composition 3308* [Condition](condition.html): A unique identifier of the condition record 3309* [Consent](consent.html): Identifier for this record (external references) 3310* [DetectedIssue](detectedissue.html): Unique id for the detected issue 3311* [DeviceRequest](devicerequest.html): Business identifier for request/order 3312* [DiagnosticReport](diagnosticreport.html): An identifier for the report 3313* [DocumentManifest](documentmanifest.html): Unique Identifier for the set of documents 3314* [DocumentReference](documentreference.html): Master Version Specific Identifier 3315* [Encounter](encounter.html): Identifier(s) by which this encounter is known 3316* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare 3317* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier 3318* [Goal](goal.html): External Ids for this goal 3319* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID and Accession number 3320* [Immunization](immunization.html): Business identifier 3321* [List](list.html): Business identifier 3322* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier 3323* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier 3324* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier 3325* [MedicationStatement](medicationstatement.html): Return statements with this external identifier 3326* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier 3327* [Observation](observation.html): The unique id for a particular observation 3328* [Procedure](procedure.html): A unique identifier for a procedure 3329* [RiskAssessment](riskassessment.html): Unique identifier for the assessment 3330* [ServiceRequest](servicerequest.html): Identifiers assigned to this order 3331* [SupplyDelivery](supplydelivery.html): External identifier 3332* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest 3333* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier 3334</b><br> 3335 * Type: <b>token</b><br> 3336 * Path: <b>AllergyIntolerance.identifier | CarePlan.identifier | CareTeam.identifier | Composition.identifier | Condition.identifier | Consent.identifier | DetectedIssue.identifier | DeviceRequest.identifier | DiagnosticReport.identifier | DocumentManifest.masterIdentifier | DocumentManifest.identifier | DocumentReference.masterIdentifier | DocumentReference.identifier | Encounter.identifier | EpisodeOfCare.identifier | FamilyMemberHistory.identifier | Goal.identifier | ImagingStudy.identifier | Immunization.identifier | List.identifier | MedicationAdministration.identifier | MedicationDispense.identifier | MedicationRequest.identifier | MedicationStatement.identifier | NutritionOrder.identifier | Observation.identifier | Procedure.identifier | RiskAssessment.identifier | ServiceRequest.identifier | SupplyDelivery.identifier | SupplyRequest.identifier | VisionPrescription.identifier</b><br> 3337 * </p> 3338 */ 3339 @SearchParamDefinition(name="identifier", path="AllergyIntolerance.identifier | CarePlan.identifier | CareTeam.identifier | Composition.identifier | Condition.identifier | Consent.identifier | DetectedIssue.identifier | DeviceRequest.identifier | DiagnosticReport.identifier | DocumentManifest.masterIdentifier | DocumentManifest.identifier | DocumentReference.masterIdentifier | DocumentReference.identifier | Encounter.identifier | EpisodeOfCare.identifier | FamilyMemberHistory.identifier | Goal.identifier | ImagingStudy.identifier | Immunization.identifier | List.identifier | MedicationAdministration.identifier | MedicationDispense.identifier | MedicationRequest.identifier | MedicationStatement.identifier | NutritionOrder.identifier | Observation.identifier | Procedure.identifier | RiskAssessment.identifier | ServiceRequest.identifier | SupplyDelivery.identifier | SupplyRequest.identifier | VisionPrescription.identifier", description="Multiple Resources: \r\n\r\n* [AllergyIntolerance](allergyintolerance.html): External ids for this item\r\n* [CarePlan](careplan.html): External Ids for this plan\r\n* [CareTeam](careteam.html): External Ids for this team\r\n* [Composition](composition.html): Version-independent identifier for the Composition\r\n* [Condition](condition.html): A unique identifier of the condition record\r\n* [Consent](consent.html): Identifier for this record (external references)\r\n* [DetectedIssue](detectedissue.html): Unique id for the detected issue\r\n* [DeviceRequest](devicerequest.html): Business identifier for request/order\r\n* [DiagnosticReport](diagnosticreport.html): An identifier for the report\r\n* [DocumentManifest](documentmanifest.html): Unique Identifier for the set of documents\r\n* [DocumentReference](documentreference.html): Master Version Specific Identifier\r\n* [Encounter](encounter.html): Identifier(s) by which this encounter is known\r\n* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare\r\n* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier\r\n* [Goal](goal.html): External Ids for this goal\r\n* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID and Accession number\r\n* [Immunization](immunization.html): Business identifier\r\n* [List](list.html): Business identifier\r\n* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier\r\n* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier\r\n* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier\r\n* [MedicationStatement](medicationstatement.html): Return statements with this external identifier\r\n* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier\r\n* [Observation](observation.html): The unique id for a particular observation\r\n* [Procedure](procedure.html): A unique identifier for a procedure\r\n* [RiskAssessment](riskassessment.html): Unique identifier for the assessment\r\n* [ServiceRequest](servicerequest.html): Identifiers assigned to this order\r\n* [SupplyDelivery](supplydelivery.html): External identifier\r\n* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest\r\n* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier\r\n", type="token" ) 3340 public static final String SP_IDENTIFIER = "identifier"; 3341 /** 3342 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 3343 * <p> 3344 * Description: <b>Multiple Resources: 3345 3346* [AllergyIntolerance](allergyintolerance.html): External ids for this item 3347* [CarePlan](careplan.html): External Ids for this plan 3348* [CareTeam](careteam.html): External Ids for this team 3349* [Composition](composition.html): Version-independent identifier for the Composition 3350* [Condition](condition.html): A unique identifier of the condition record 3351* [Consent](consent.html): Identifier for this record (external references) 3352* [DetectedIssue](detectedissue.html): Unique id for the detected issue 3353* [DeviceRequest](devicerequest.html): Business identifier for request/order 3354* [DiagnosticReport](diagnosticreport.html): An identifier for the report 3355* [DocumentManifest](documentmanifest.html): Unique Identifier for the set of documents 3356* [DocumentReference](documentreference.html): Master Version Specific Identifier 3357* [Encounter](encounter.html): Identifier(s) by which this encounter is known 3358* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare 3359* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier 3360* [Goal](goal.html): External Ids for this goal 3361* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID and Accession number 3362* [Immunization](immunization.html): Business identifier 3363* [List](list.html): Business identifier 3364* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier 3365* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier 3366* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier 3367* [MedicationStatement](medicationstatement.html): Return statements with this external identifier 3368* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier 3369* [Observation](observation.html): The unique id for a particular observation 3370* [Procedure](procedure.html): A unique identifier for a procedure 3371* [RiskAssessment](riskassessment.html): Unique identifier for the assessment 3372* [ServiceRequest](servicerequest.html): Identifiers assigned to this order 3373* [SupplyDelivery](supplydelivery.html): External identifier 3374* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest 3375* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier 3376</b><br> 3377 * Type: <b>token</b><br> 3378 * Path: <b>AllergyIntolerance.identifier | CarePlan.identifier | CareTeam.identifier | Composition.identifier | Condition.identifier | Consent.identifier | DetectedIssue.identifier | DeviceRequest.identifier | DiagnosticReport.identifier | DocumentManifest.masterIdentifier | DocumentManifest.identifier | DocumentReference.masterIdentifier | DocumentReference.identifier | Encounter.identifier | EpisodeOfCare.identifier | FamilyMemberHistory.identifier | Goal.identifier | ImagingStudy.identifier | Immunization.identifier | List.identifier | MedicationAdministration.identifier | MedicationDispense.identifier | MedicationRequest.identifier | MedicationStatement.identifier | NutritionOrder.identifier | Observation.identifier | Procedure.identifier | RiskAssessment.identifier | ServiceRequest.identifier | SupplyDelivery.identifier | SupplyRequest.identifier | VisionPrescription.identifier</b><br> 3379 * </p> 3380 */ 3381 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 3382 3383 /** 3384 * Search parameter: <b>patient</b> 3385 * <p> 3386 * Description: <b>Multiple Resources: 3387 3388* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for 3389* [CarePlan](careplan.html): Who the care plan is for 3390* [CareTeam](careteam.html): Who care team is for 3391* [ClinicalImpression](clinicalimpression.html): Patient or group assessed 3392* [Composition](composition.html): Who and/or what the composition is about 3393* [Condition](condition.html): Who has the condition? 3394* [Consent](consent.html): Who the consent applies to 3395* [DetectedIssue](detectedissue.html): Associated patient 3396* [DeviceRequest](devicerequest.html): Individual the service is ordered for 3397* [DeviceUseStatement](deviceusestatement.html): Search by subject - a patient 3398* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient 3399* [DocumentManifest](documentmanifest.html): The subject of the set of documents 3400* [DocumentReference](documentreference.html): Who/what is the subject of the document 3401* [Encounter](encounter.html): The patient or group present at the encounter 3402* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care 3403* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for 3404* [Flag](flag.html): The identity of a subject to list flags for 3405* [Goal](goal.html): Who this goal is intended for 3406* [ImagingStudy](imagingstudy.html): Who the study is about 3407* [Immunization](immunization.html): The patient for the vaccination record 3408* [List](list.html): If all resources have the same subject 3409* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations for 3410* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses for 3411* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient 3412* [MedicationStatement](medicationstatement.html): Returns statements for a specific patient. 3413* [NutritionOrder](nutritionorder.html): The identity of the person who requires the diet, formula or nutritional supplement 3414* [Observation](observation.html): The subject that the observation is about (if patient) 3415* [Procedure](procedure.html): Search by subject - a patient 3416* [RiskAssessment](riskassessment.html): Who/what does assessment apply to? 3417* [ServiceRequest](servicerequest.html): Search by subject - a patient 3418* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied 3419* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for 3420</b><br> 3421 * Type: <b>reference</b><br> 3422 * Path: <b>AllergyIntolerance.patient | CarePlan.subject.where(resolve() is Patient) | CareTeam.subject.where(resolve() is Patient) | ClinicalImpression.subject.where(resolve() is Patient) | Composition.subject.where(resolve() is Patient) | Condition.subject.where(resolve() is Patient) | Consent.patient | DetectedIssue.patient | DeviceRequest.subject.where(resolve() is Patient) | DeviceUseStatement.subject.where(resolve() is Patient) | DiagnosticReport.subject.where(resolve() is Patient) | DocumentManifest.subject.where(resolve() is Patient) | DocumentReference.subject.where(resolve() is Patient) | Encounter.subject.where(resolve() is Patient) | EpisodeOfCare.patient | FamilyMemberHistory.patient | Flag.subject.where(resolve() is Patient) | Goal.subject.where(resolve() is Patient) | ImagingStudy.subject.where(resolve() is Patient) | Immunization.patient | List.subject.where(resolve() is Patient) | MedicationAdministration.subject.where(resolve() is Patient) | MedicationDispense.subject.where(resolve() is Patient) | MedicationRequest.subject.where(resolve() is Patient) | MedicationStatement.subject.where(resolve() is Patient) | NutritionOrder.patient | Observation.subject.where(resolve() is Patient) | Procedure.subject.where(resolve() is Patient) | RiskAssessment.subject.where(resolve() is Patient) | ServiceRequest.subject.where(resolve() is Patient) | SupplyDelivery.patient | VisionPrescription.patient</b><br> 3423 * </p> 3424 */ 3425 @SearchParamDefinition(name="patient", path="AllergyIntolerance.patient | CarePlan.subject.where(resolve() is Patient) | CareTeam.subject.where(resolve() is Patient) | ClinicalImpression.subject.where(resolve() is Patient) | Composition.subject.where(resolve() is Patient) | Condition.subject.where(resolve() is Patient) | Consent.patient | DetectedIssue.patient | DeviceRequest.subject.where(resolve() is Patient) | DeviceUseStatement.subject.where(resolve() is Patient) | DiagnosticReport.subject.where(resolve() is Patient) | DocumentManifest.subject.where(resolve() is Patient) | DocumentReference.subject.where(resolve() is Patient) | Encounter.subject.where(resolve() is Patient) | EpisodeOfCare.patient | FamilyMemberHistory.patient | Flag.subject.where(resolve() is Patient) | Goal.subject.where(resolve() is Patient) | ImagingStudy.subject.where(resolve() is Patient) | Immunization.patient | List.subject.where(resolve() is Patient) | MedicationAdministration.subject.where(resolve() is Patient) | MedicationDispense.subject.where(resolve() is Patient) | MedicationRequest.subject.where(resolve() is Patient) | MedicationStatement.subject.where(resolve() is Patient) | NutritionOrder.patient | Observation.subject.where(resolve() is Patient) | Procedure.subject.where(resolve() is Patient) | RiskAssessment.subject.where(resolve() is Patient) | ServiceRequest.subject.where(resolve() is Patient) | SupplyDelivery.patient | VisionPrescription.patient", description="Multiple Resources: \r\n\r\n* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for\r\n* [CarePlan](careplan.html): Who the care plan is for\r\n* [CareTeam](careteam.html): Who care team is for\r\n* [ClinicalImpression](clinicalimpression.html): Patient or group assessed\r\n* [Composition](composition.html): Who and/or what the composition is about\r\n* [Condition](condition.html): Who has the condition?\r\n* [Consent](consent.html): Who the consent applies to\r\n* [DetectedIssue](detectedissue.html): Associated patient\r\n* [DeviceRequest](devicerequest.html): Individual the service is ordered for\r\n* [DeviceUseStatement](deviceusestatement.html): Search by subject - a patient\r\n* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient\r\n* [DocumentManifest](documentmanifest.html): The subject of the set of documents\r\n* [DocumentReference](documentreference.html): Who/what is the subject of the document\r\n* [Encounter](encounter.html): The patient or group present at the encounter\r\n* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care\r\n* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for\r\n* [Flag](flag.html): The identity of a subject to list flags for\r\n* [Goal](goal.html): Who this goal is intended for\r\n* [ImagingStudy](imagingstudy.html): Who the study is about\r\n* [Immunization](immunization.html): The patient for the vaccination record\r\n* [List](list.html): If all resources have the same subject\r\n* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations for\r\n* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses for\r\n* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient\r\n* [MedicationStatement](medicationstatement.html): Returns statements for a specific patient.\r\n* [NutritionOrder](nutritionorder.html): The identity of the person who requires the diet, formula or nutritional supplement\r\n* [Observation](observation.html): The subject that the observation is about (if patient)\r\n* [Procedure](procedure.html): Search by subject - a patient\r\n* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?\r\n* [ServiceRequest](servicerequest.html): Search by subject - a patient\r\n* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied\r\n* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for\r\n", type="reference", target={Account.class, ActivityDefinition.class, AdministrableProductDefinition.class, AdverseEvent.class, AllergyIntolerance.class, Appointment.class, AppointmentResponse.class, AuditEvent.class, Basic.class, Binary.class, BiologicallyDerivedProduct.class, BodyStructure.class, Bundle.class, CapabilityStatement.class, CarePlan.class, CareTeam.class, CatalogEntry.class, ChargeItem.class, ChargeItemDefinition.class, Citation.class, Claim.class, ClaimResponse.class, ClinicalImpression.class, ClinicalUseDefinition.class, CodeSystem.class, Communication.class, CommunicationRequest.class, CompartmentDefinition.class, Composition.class, ConceptMap.class, Condition.class, Consent.class, Contract.class, Coverage.class, CoverageEligibilityRequest.class, CoverageEligibilityResponse.class, DetectedIssue.class, Device.class, DeviceDefinition.class, DeviceMetric.class, DeviceRequest.class, DeviceUseStatement.class, DiagnosticReport.class, DocumentManifest.class, DocumentReference.class, Encounter.class, Endpoint.class, EnrollmentRequest.class, EnrollmentResponse.class, EpisodeOfCare.class, EventDefinition.class, Evidence.class, EvidenceReport.class, EvidenceVariable.class, ExampleScenario.class, ExplanationOfBenefit.class, FamilyMemberHistory.class, Flag.class, Goal.class, GraphDefinition.class, Group.class, GuidanceResponse.class, HealthcareService.class, ImagingStudy.class, Immunization.class, ImmunizationEvaluation.class, ImmunizationRecommendation.class, ImplementationGuide.class, Ingredient.class, InsurancePlan.class, Invoice.class, Library.class, Linkage.class, ListResource.class, Location.class, ManufacturedItemDefinition.class, Measure.class, MeasureReport.class, Media.class, Medication.class, MedicationAdministration.class, MedicationDispense.class, MedicationKnowledge.class, MedicationRequest.class, MedicationStatement.class, MedicinalProductDefinition.class, MessageDefinition.class, MessageHeader.class, MolecularSequence.class, NamingSystem.class, NutritionOrder.class, NutritionProduct.class, Observation.class, ObservationDefinition.class, OperationDefinition.class, OperationOutcome.class, Organization.class, OrganizationAffiliation.class, PackagedProductDefinition.class, Patient.class, PaymentNotice.class, PaymentReconciliation.class, Person.class, PlanDefinition.class, Practitioner.class, PractitionerRole.class, Procedure.class, Provenance.class, Questionnaire.class, QuestionnaireResponse.class, RegulatedAuthorization.class, RelatedPerson.class, RequestGroup.class, ResearchDefinition.class, ResearchElementDefinition.class, ResearchStudy.class, ResearchSubject.class, RiskAssessment.class, Schedule.class, SearchParameter.class, ServiceRequest.class, Slot.class, Specimen.class, SpecimenDefinition.class, StructureDefinition.class, StructureMap.class, Subscription.class, SubscriptionStatus.class, SubscriptionTopic.class, Substance.class, SubstanceDefinition.class, SupplyDelivery.class, SupplyRequest.class, Task.class, TerminologyCapabilities.class, TestReport.class, TestScript.class, ValueSet.class, VerificationResult.class, VisionPrescription.class } ) 3426 public static final String SP_PATIENT = "patient"; 3427 /** 3428 * <b>Fluent Client</b> search parameter constant for <b>patient</b> 3429 * <p> 3430 * Description: <b>Multiple Resources: 3431 3432* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for 3433* [CarePlan](careplan.html): Who the care plan is for 3434* [CareTeam](careteam.html): Who care team is for 3435* [ClinicalImpression](clinicalimpression.html): Patient or group assessed 3436* [Composition](composition.html): Who and/or what the composition is about 3437* [Condition](condition.html): Who has the condition? 3438* [Consent](consent.html): Who the consent applies to 3439* [DetectedIssue](detectedissue.html): Associated patient 3440* [DeviceRequest](devicerequest.html): Individual the service is ordered for 3441* [DeviceUseStatement](deviceusestatement.html): Search by subject - a patient 3442* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient 3443* [DocumentManifest](documentmanifest.html): The subject of the set of documents 3444* [DocumentReference](documentreference.html): Who/what is the subject of the document 3445* [Encounter](encounter.html): The patient or group present at the encounter 3446* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care 3447* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for 3448* [Flag](flag.html): The identity of a subject to list flags for 3449* [Goal](goal.html): Who this goal is intended for 3450* [ImagingStudy](imagingstudy.html): Who the study is about 3451* [Immunization](immunization.html): The patient for the vaccination record 3452* [List](list.html): If all resources have the same subject 3453* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations for 3454* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses for 3455* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient 3456* [MedicationStatement](medicationstatement.html): Returns statements for a specific patient. 3457* [NutritionOrder](nutritionorder.html): The identity of the person who requires the diet, formula or nutritional supplement 3458* [Observation](observation.html): The subject that the observation is about (if patient) 3459* [Procedure](procedure.html): Search by subject - a patient 3460* [RiskAssessment](riskassessment.html): Who/what does assessment apply to? 3461* [ServiceRequest](servicerequest.html): Search by subject - a patient 3462* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied 3463* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for 3464</b><br> 3465 * Type: <b>reference</b><br> 3466 * Path: <b>AllergyIntolerance.patient | CarePlan.subject.where(resolve() is Patient) | CareTeam.subject.where(resolve() is Patient) | ClinicalImpression.subject.where(resolve() is Patient) | Composition.subject.where(resolve() is Patient) | Condition.subject.where(resolve() is Patient) | Consent.patient | DetectedIssue.patient | DeviceRequest.subject.where(resolve() is Patient) | DeviceUseStatement.subject.where(resolve() is Patient) | DiagnosticReport.subject.where(resolve() is Patient) | DocumentManifest.subject.where(resolve() is Patient) | DocumentReference.subject.where(resolve() is Patient) | Encounter.subject.where(resolve() is Patient) | EpisodeOfCare.patient | FamilyMemberHistory.patient | Flag.subject.where(resolve() is Patient) | Goal.subject.where(resolve() is Patient) | ImagingStudy.subject.where(resolve() is Patient) | Immunization.patient | List.subject.where(resolve() is Patient) | MedicationAdministration.subject.where(resolve() is Patient) | MedicationDispense.subject.where(resolve() is Patient) | MedicationRequest.subject.where(resolve() is Patient) | MedicationStatement.subject.where(resolve() is Patient) | NutritionOrder.patient | Observation.subject.where(resolve() is Patient) | Procedure.subject.where(resolve() is Patient) | RiskAssessment.subject.where(resolve() is Patient) | ServiceRequest.subject.where(resolve() is Patient) | SupplyDelivery.patient | VisionPrescription.patient</b><br> 3467 * </p> 3468 */ 3469 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PATIENT); 3470 3471/** 3472 * Constant for fluent queries to be used to add include statements. Specifies 3473 * the path value of "<b>Composition:patient</b>". 3474 */ 3475 public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("Composition:patient").toLocked(); 3476 3477 /** 3478 * Search parameter: <b>type</b> 3479 * <p> 3480 * Description: <b>Multiple Resources: 3481 3482* [AllergyIntolerance](allergyintolerance.html): allergy | intolerance - Underlying mechanism (if known) 3483* [Composition](composition.html): Kind of composition (LOINC if possible) 3484* [DocumentManifest](documentmanifest.html): Kind of document set 3485* [DocumentReference](documentreference.html): Kind of document (LOINC if possible) 3486* [Encounter](encounter.html): Specific type of encounter 3487* [EpisodeOfCare](episodeofcare.html): Type/class - e.g. specialist referral, disease management 3488</b><br> 3489 * Type: <b>token</b><br> 3490 * Path: <b>AllergyIntolerance.type | Composition.type | DocumentManifest.type | DocumentReference.type | Encounter.type | EpisodeOfCare.type</b><br> 3491 * </p> 3492 */ 3493 @SearchParamDefinition(name="type", path="AllergyIntolerance.type | Composition.type | DocumentManifest.type | DocumentReference.type | Encounter.type | EpisodeOfCare.type", description="Multiple Resources: \r\n\r\n* [AllergyIntolerance](allergyintolerance.html): allergy | intolerance - Underlying mechanism (if known)\r\n* [Composition](composition.html): Kind of composition (LOINC if possible)\r\n* [DocumentManifest](documentmanifest.html): Kind of document set\r\n* [DocumentReference](documentreference.html): Kind of document (LOINC if possible)\r\n* [Encounter](encounter.html): Specific type of encounter\r\n* [EpisodeOfCare](episodeofcare.html): Type/class - e.g. specialist referral, disease management\r\n", type="token" ) 3494 public static final String SP_TYPE = "type"; 3495 /** 3496 * <b>Fluent Client</b> search parameter constant for <b>type</b> 3497 * <p> 3498 * Description: <b>Multiple Resources: 3499 3500* [AllergyIntolerance](allergyintolerance.html): allergy | intolerance - Underlying mechanism (if known) 3501* [Composition](composition.html): Kind of composition (LOINC if possible) 3502* [DocumentManifest](documentmanifest.html): Kind of document set 3503* [DocumentReference](documentreference.html): Kind of document (LOINC if possible) 3504* [Encounter](encounter.html): Specific type of encounter 3505* [EpisodeOfCare](episodeofcare.html): Type/class - e.g. specialist referral, disease management 3506</b><br> 3507 * Type: <b>token</b><br> 3508 * Path: <b>AllergyIntolerance.type | Composition.type | DocumentManifest.type | DocumentReference.type | Encounter.type | EpisodeOfCare.type</b><br> 3509 * </p> 3510 */ 3511 public static final ca.uhn.fhir.rest.gclient.TokenClientParam TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TYPE); 3512 3513 3514} 3515