
001package org.hl7.fhir.r5.model; 002 003 004/* 005 Copyright (c) 2011+, HL7, Inc. 006 All rights reserved. 007 008 Redistribution and use in source and binary forms, with or without modification, \ 009 are permitted provided that the following conditions are met: 010 011 * Redistributions of source code must retain the above copyright notice, this \ 012 list of conditions and the following disclaimer. 013 * Redistributions in binary form must reproduce the above copyright notice, \ 014 this list of conditions and the following disclaimer in the documentation \ 015 and/or other materials provided with the distribution. 016 * Neither the name of HL7 nor the names of its contributors may be used to 017 endorse or promote products derived from this software without specific 018 prior written permission. 019 020 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \ 021 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \ 022 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \ 023 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \ 024 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT \ 025 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR \ 026 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, \ 027 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) \ 028 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE \ 029 POSSIBILITY OF SUCH DAMAGE. 030 */ 031 032// Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot 033 034import java.util.ArrayList; 035import java.util.Date; 036import java.util.List; 037import org.hl7.fhir.utilities.Utilities; 038import org.hl7.fhir.r5.model.Enumerations.*; 039import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 040import org.hl7.fhir.exceptions.FHIRException; 041import org.hl7.fhir.instance.model.api.ICompositeType; 042import ca.uhn.fhir.model.api.annotation.ResourceDef; 043import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 044import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 045import ca.uhn.fhir.model.api.annotation.Child; 046import ca.uhn.fhir.model.api.annotation.ChildOrder; 047import ca.uhn.fhir.model.api.annotation.Description; 048import ca.uhn.fhir.model.api.annotation.Block; 049 050/** 051 * A record of a healthcare consumer?s choices or choices made on their behalf by a third party, which permits or denies identified recipient(s) or recipient role(s) to perform one or more actions within a given policy context, for specific purposes and periods of time. 052 */ 053@ResourceDef(name="Consent", profile="http://hl7.org/fhir/StructureDefinition/Consent") 054public class Consent extends DomainResource { 055 056 public enum ConsentState { 057 /** 058 * The consent is in development or awaiting use but is not yet intended to be acted upon. 059 */ 060 DRAFT, 061 /** 062 * The consent is to be followed and enforced. 063 */ 064 ACTIVE, 065 /** 066 * The consent is terminated or replaced. 067 */ 068 INACTIVE, 069 /** 070 * The consent development has been terminated prior to completion. 071 */ 072 NOTDONE, 073 /** 074 * The consent was created wrongly (e.g. wrong patient) and should be ignored. 075 */ 076 ENTEREDINERROR, 077 /** 078 * The resource is in an indeterminate state. 079 */ 080 UNKNOWN, 081 /** 082 * added to help the parsers with the generic types 083 */ 084 NULL; 085 public static ConsentState fromCode(String codeString) throws FHIRException { 086 if (codeString == null || "".equals(codeString)) 087 return null; 088 if ("draft".equals(codeString)) 089 return DRAFT; 090 if ("active".equals(codeString)) 091 return ACTIVE; 092 if ("inactive".equals(codeString)) 093 return INACTIVE; 094 if ("not-done".equals(codeString)) 095 return NOTDONE; 096 if ("entered-in-error".equals(codeString)) 097 return ENTEREDINERROR; 098 if ("unknown".equals(codeString)) 099 return UNKNOWN; 100 if (Configuration.isAcceptInvalidEnums()) 101 return null; 102 else 103 throw new FHIRException("Unknown ConsentState code '"+codeString+"'"); 104 } 105 public String toCode() { 106 switch (this) { 107 case DRAFT: return "draft"; 108 case ACTIVE: return "active"; 109 case INACTIVE: return "inactive"; 110 case NOTDONE: return "not-done"; 111 case ENTEREDINERROR: return "entered-in-error"; 112 case UNKNOWN: return "unknown"; 113 case NULL: return null; 114 default: return "?"; 115 } 116 } 117 public String getSystem() { 118 switch (this) { 119 case DRAFT: return "http://hl7.org/fhir/consent-state-codes"; 120 case ACTIVE: return "http://hl7.org/fhir/consent-state-codes"; 121 case INACTIVE: return "http://hl7.org/fhir/consent-state-codes"; 122 case NOTDONE: return "http://hl7.org/fhir/consent-state-codes"; 123 case ENTEREDINERROR: return "http://hl7.org/fhir/consent-state-codes"; 124 case UNKNOWN: return "http://hl7.org/fhir/consent-state-codes"; 125 case NULL: return null; 126 default: return "?"; 127 } 128 } 129 public String getDefinition() { 130 switch (this) { 131 case DRAFT: return "The consent is in development or awaiting use but is not yet intended to be acted upon."; 132 case ACTIVE: return "The consent is to be followed and enforced."; 133 case INACTIVE: return "The consent is terminated or replaced."; 134 case NOTDONE: return "The consent development has been terminated prior to completion."; 135 case ENTEREDINERROR: return "The consent was created wrongly (e.g. wrong patient) and should be ignored."; 136 case UNKNOWN: return "The resource is in an indeterminate state."; 137 case NULL: return null; 138 default: return "?"; 139 } 140 } 141 public String getDisplay() { 142 switch (this) { 143 case DRAFT: return "Pending"; 144 case ACTIVE: return "Active"; 145 case INACTIVE: return "Inactive"; 146 case NOTDONE: return "Abandoned"; 147 case ENTEREDINERROR: return "Entered in Error"; 148 case UNKNOWN: return "Unknown"; 149 case NULL: return null; 150 default: return "?"; 151 } 152 } 153 } 154 155 public static class ConsentStateEnumFactory implements EnumFactory<ConsentState> { 156 public ConsentState fromCode(String codeString) throws IllegalArgumentException { 157 if (codeString == null || "".equals(codeString)) 158 if (codeString == null || "".equals(codeString)) 159 return null; 160 if ("draft".equals(codeString)) 161 return ConsentState.DRAFT; 162 if ("active".equals(codeString)) 163 return ConsentState.ACTIVE; 164 if ("inactive".equals(codeString)) 165 return ConsentState.INACTIVE; 166 if ("not-done".equals(codeString)) 167 return ConsentState.NOTDONE; 168 if ("entered-in-error".equals(codeString)) 169 return ConsentState.ENTEREDINERROR; 170 if ("unknown".equals(codeString)) 171 return ConsentState.UNKNOWN; 172 throw new IllegalArgumentException("Unknown ConsentState code '"+codeString+"'"); 173 } 174 public Enumeration<ConsentState> fromType(Base code) throws FHIRException { 175 if (code == null) 176 return null; 177 if (code.isEmpty()) 178 return new Enumeration<ConsentState>(this); 179 String codeString = ((PrimitiveType) code).asStringValue(); 180 if (codeString == null || "".equals(codeString)) 181 return null; 182 if ("draft".equals(codeString)) 183 return new Enumeration<ConsentState>(this, ConsentState.DRAFT); 184 if ("active".equals(codeString)) 185 return new Enumeration<ConsentState>(this, ConsentState.ACTIVE); 186 if ("inactive".equals(codeString)) 187 return new Enumeration<ConsentState>(this, ConsentState.INACTIVE); 188 if ("not-done".equals(codeString)) 189 return new Enumeration<ConsentState>(this, ConsentState.NOTDONE); 190 if ("entered-in-error".equals(codeString)) 191 return new Enumeration<ConsentState>(this, ConsentState.ENTEREDINERROR); 192 if ("unknown".equals(codeString)) 193 return new Enumeration<ConsentState>(this, ConsentState.UNKNOWN); 194 throw new FHIRException("Unknown ConsentState code '"+codeString+"'"); 195 } 196 public String toCode(ConsentState code) { 197 if (code == ConsentState.DRAFT) 198 return "draft"; 199 if (code == ConsentState.ACTIVE) 200 return "active"; 201 if (code == ConsentState.INACTIVE) 202 return "inactive"; 203 if (code == ConsentState.NOTDONE) 204 return "not-done"; 205 if (code == ConsentState.ENTEREDINERROR) 206 return "entered-in-error"; 207 if (code == ConsentState.UNKNOWN) 208 return "unknown"; 209 return "?"; 210 } 211 public String toSystem(ConsentState code) { 212 return code.getSystem(); 213 } 214 } 215 216 @Block() 217 public static class ConsentPolicyBasisComponent extends BackboneElement implements IBaseBackboneElement { 218 /** 219 * A Reference that identifies the policy the organization will enforce for this Consent. 220 */ 221 @Child(name = "reference", type = {Reference.class}, order=1, min=0, max=1, modifier=false, summary=false) 222 @Description(shortDefinition="Reference backing policy resource", formalDefinition="A Reference that identifies the policy the organization will enforce for this Consent." ) 223 protected Reference reference; 224 225 /** 226 * A URL that links to a computable version of the policy the organization will enforce for this Consent. 227 */ 228 @Child(name = "url", type = {UrlType.class}, order=2, min=0, max=1, modifier=false, summary=false) 229 @Description(shortDefinition="URL to a computable backing policy", formalDefinition="A URL that links to a computable version of the policy the organization will enforce for this Consent." ) 230 protected UrlType url; 231 232 private static final long serialVersionUID = 252506182L; 233 234 /** 235 * Constructor 236 */ 237 public ConsentPolicyBasisComponent() { 238 super(); 239 } 240 241 /** 242 * @return {@link #reference} (A Reference that identifies the policy the organization will enforce for this Consent.) 243 */ 244 public Reference getReference() { 245 if (this.reference == null) 246 if (Configuration.errorOnAutoCreate()) 247 throw new Error("Attempt to auto-create ConsentPolicyBasisComponent.reference"); 248 else if (Configuration.doAutoCreate()) 249 this.reference = new Reference(); // cc 250 return this.reference; 251 } 252 253 public boolean hasReference() { 254 return this.reference != null && !this.reference.isEmpty(); 255 } 256 257 /** 258 * @param value {@link #reference} (A Reference that identifies the policy the organization will enforce for this Consent.) 259 */ 260 public ConsentPolicyBasisComponent setReference(Reference value) { 261 this.reference = value; 262 return this; 263 } 264 265 /** 266 * @return {@link #url} (A URL that links to a computable version of the policy the organization will enforce for this Consent.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value 267 */ 268 public UrlType getUrlElement() { 269 if (this.url == null) 270 if (Configuration.errorOnAutoCreate()) 271 throw new Error("Attempt to auto-create ConsentPolicyBasisComponent.url"); 272 else if (Configuration.doAutoCreate()) 273 this.url = new UrlType(); // bb 274 return this.url; 275 } 276 277 public boolean hasUrlElement() { 278 return this.url != null && !this.url.isEmpty(); 279 } 280 281 public boolean hasUrl() { 282 return this.url != null && !this.url.isEmpty(); 283 } 284 285 /** 286 * @param value {@link #url} (A URL that links to a computable version of the policy the organization will enforce for this Consent.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value 287 */ 288 public ConsentPolicyBasisComponent setUrlElement(UrlType value) { 289 this.url = value; 290 return this; 291 } 292 293 /** 294 * @return A URL that links to a computable version of the policy the organization will enforce for this Consent. 295 */ 296 public String getUrl() { 297 return this.url == null ? null : this.url.getValue(); 298 } 299 300 /** 301 * @param value A URL that links to a computable version of the policy the organization will enforce for this Consent. 302 */ 303 public ConsentPolicyBasisComponent setUrl(String value) { 304 if (Utilities.noString(value)) 305 this.url = null; 306 else { 307 if (this.url == null) 308 this.url = new UrlType(); 309 this.url.setValue(value); 310 } 311 return this; 312 } 313 314 protected void listChildren(List<Property> children) { 315 super.listChildren(children); 316 children.add(new Property("reference", "Reference(Any)", "A Reference that identifies the policy the organization will enforce for this Consent.", 0, 1, reference)); 317 children.add(new Property("url", "url", "A URL that links to a computable version of the policy the organization will enforce for this Consent.", 0, 1, url)); 318 } 319 320 @Override 321 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 322 switch (_hash) { 323 case -925155509: /*reference*/ return new Property("reference", "Reference(Any)", "A Reference that identifies the policy the organization will enforce for this Consent.", 0, 1, reference); 324 case 116079: /*url*/ return new Property("url", "url", "A URL that links to a computable version of the policy the organization will enforce for this Consent.", 0, 1, url); 325 default: return super.getNamedProperty(_hash, _name, _checkValid); 326 } 327 328 } 329 330 @Override 331 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 332 switch (hash) { 333 case -925155509: /*reference*/ return this.reference == null ? new Base[0] : new Base[] {this.reference}; // Reference 334 case 116079: /*url*/ return this.url == null ? new Base[0] : new Base[] {this.url}; // UrlType 335 default: return super.getProperty(hash, name, checkValid); 336 } 337 338 } 339 340 @Override 341 public Base setProperty(int hash, String name, Base value) throws FHIRException { 342 switch (hash) { 343 case -925155509: // reference 344 this.reference = TypeConvertor.castToReference(value); // Reference 345 return value; 346 case 116079: // url 347 this.url = TypeConvertor.castToUrl(value); // UrlType 348 return value; 349 default: return super.setProperty(hash, name, value); 350 } 351 352 } 353 354 @Override 355 public Base setProperty(String name, Base value) throws FHIRException { 356 if (name.equals("reference")) { 357 this.reference = TypeConvertor.castToReference(value); // Reference 358 } else if (name.equals("url")) { 359 this.url = TypeConvertor.castToUrl(value); // UrlType 360 } else 361 return super.setProperty(name, value); 362 return value; 363 } 364 365 @Override 366 public Base makeProperty(int hash, String name) throws FHIRException { 367 switch (hash) { 368 case -925155509: return getReference(); 369 case 116079: return getUrlElement(); 370 default: return super.makeProperty(hash, name); 371 } 372 373 } 374 375 @Override 376 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 377 switch (hash) { 378 case -925155509: /*reference*/ return new String[] {"Reference"}; 379 case 116079: /*url*/ return new String[] {"url"}; 380 default: return super.getTypesForProperty(hash, name); 381 } 382 383 } 384 385 @Override 386 public Base addChild(String name) throws FHIRException { 387 if (name.equals("reference")) { 388 this.reference = new Reference(); 389 return this.reference; 390 } 391 else if (name.equals("url")) { 392 throw new FHIRException("Cannot call addChild on a primitive type Consent.policyBasis.url"); 393 } 394 else 395 return super.addChild(name); 396 } 397 398 public ConsentPolicyBasisComponent copy() { 399 ConsentPolicyBasisComponent dst = new ConsentPolicyBasisComponent(); 400 copyValues(dst); 401 return dst; 402 } 403 404 public void copyValues(ConsentPolicyBasisComponent dst) { 405 super.copyValues(dst); 406 dst.reference = reference == null ? null : reference.copy(); 407 dst.url = url == null ? null : url.copy(); 408 } 409 410 @Override 411 public boolean equalsDeep(Base other_) { 412 if (!super.equalsDeep(other_)) 413 return false; 414 if (!(other_ instanceof ConsentPolicyBasisComponent)) 415 return false; 416 ConsentPolicyBasisComponent o = (ConsentPolicyBasisComponent) other_; 417 return compareDeep(reference, o.reference, true) && compareDeep(url, o.url, true); 418 } 419 420 @Override 421 public boolean equalsShallow(Base other_) { 422 if (!super.equalsShallow(other_)) 423 return false; 424 if (!(other_ instanceof ConsentPolicyBasisComponent)) 425 return false; 426 ConsentPolicyBasisComponent o = (ConsentPolicyBasisComponent) other_; 427 return compareValues(url, o.url, true); 428 } 429 430 public boolean isEmpty() { 431 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(reference, url); 432 } 433 434 public String fhirType() { 435 return "Consent.policyBasis"; 436 437 } 438 439 } 440 441 @Block() 442 public static class ConsentVerificationComponent extends BackboneElement implements IBaseBackboneElement { 443 /** 444 * Has the instruction been verified. 445 */ 446 @Child(name = "verified", type = {BooleanType.class}, order=1, min=1, max=1, modifier=false, summary=true) 447 @Description(shortDefinition="Has been verified", formalDefinition="Has the instruction been verified." ) 448 protected BooleanType verified; 449 450 /** 451 * Extensible list of verification type starting with verification and re-validation. 452 */ 453 @Child(name = "verificationType", type = {CodeableConcept.class}, order=2, min=0, max=1, modifier=false, summary=false) 454 @Description(shortDefinition="Business case of verification", formalDefinition="Extensible list of verification type starting with verification and re-validation." ) 455 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/consent-verification") 456 protected CodeableConcept verificationType; 457 458 /** 459 * The person who conducted the verification/validation of the Grantor decision. 460 */ 461 @Child(name = "verifiedBy", type = {Organization.class, Practitioner.class, PractitionerRole.class}, order=3, min=0, max=1, modifier=false, summary=false) 462 @Description(shortDefinition="Person conducting verification", formalDefinition="The person who conducted the verification/validation of the Grantor decision." ) 463 protected Reference verifiedBy; 464 465 /** 466 * Who verified the instruction (Patient, Relative or other Authorized Person). 467 */ 468 @Child(name = "verifiedWith", type = {Patient.class, RelatedPerson.class}, order=4, min=0, max=1, modifier=false, summary=false) 469 @Description(shortDefinition="Person who verified", formalDefinition="Who verified the instruction (Patient, Relative or other Authorized Person)." ) 470 protected Reference verifiedWith; 471 472 /** 473 * Date(s) verification was collected. 474 */ 475 @Child(name = "verificationDate", type = {DateTimeType.class}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 476 @Description(shortDefinition="When consent verified", formalDefinition="Date(s) verification was collected." ) 477 protected List<DateTimeType> verificationDate; 478 479 private static final long serialVersionUID = -1266157329L; 480 481 /** 482 * Constructor 483 */ 484 public ConsentVerificationComponent() { 485 super(); 486 } 487 488 /** 489 * Constructor 490 */ 491 public ConsentVerificationComponent(boolean verified) { 492 super(); 493 this.setVerified(verified); 494 } 495 496 /** 497 * @return {@link #verified} (Has the instruction been verified.). This is the underlying object with id, value and extensions. The accessor "getVerified" gives direct access to the value 498 */ 499 public BooleanType getVerifiedElement() { 500 if (this.verified == null) 501 if (Configuration.errorOnAutoCreate()) 502 throw new Error("Attempt to auto-create ConsentVerificationComponent.verified"); 503 else if (Configuration.doAutoCreate()) 504 this.verified = new BooleanType(); // bb 505 return this.verified; 506 } 507 508 public boolean hasVerifiedElement() { 509 return this.verified != null && !this.verified.isEmpty(); 510 } 511 512 public boolean hasVerified() { 513 return this.verified != null && !this.verified.isEmpty(); 514 } 515 516 /** 517 * @param value {@link #verified} (Has the instruction been verified.). This is the underlying object with id, value and extensions. The accessor "getVerified" gives direct access to the value 518 */ 519 public ConsentVerificationComponent setVerifiedElement(BooleanType value) { 520 this.verified = value; 521 return this; 522 } 523 524 /** 525 * @return Has the instruction been verified. 526 */ 527 public boolean getVerified() { 528 return this.verified == null || this.verified.isEmpty() ? false : this.verified.getValue(); 529 } 530 531 /** 532 * @param value Has the instruction been verified. 533 */ 534 public ConsentVerificationComponent setVerified(boolean value) { 535 if (this.verified == null) 536 this.verified = new BooleanType(); 537 this.verified.setValue(value); 538 return this; 539 } 540 541 /** 542 * @return {@link #verificationType} (Extensible list of verification type starting with verification and re-validation.) 543 */ 544 public CodeableConcept getVerificationType() { 545 if (this.verificationType == null) 546 if (Configuration.errorOnAutoCreate()) 547 throw new Error("Attempt to auto-create ConsentVerificationComponent.verificationType"); 548 else if (Configuration.doAutoCreate()) 549 this.verificationType = new CodeableConcept(); // cc 550 return this.verificationType; 551 } 552 553 public boolean hasVerificationType() { 554 return this.verificationType != null && !this.verificationType.isEmpty(); 555 } 556 557 /** 558 * @param value {@link #verificationType} (Extensible list of verification type starting with verification and re-validation.) 559 */ 560 public ConsentVerificationComponent setVerificationType(CodeableConcept value) { 561 this.verificationType = value; 562 return this; 563 } 564 565 /** 566 * @return {@link #verifiedBy} (The person who conducted the verification/validation of the Grantor decision.) 567 */ 568 public Reference getVerifiedBy() { 569 if (this.verifiedBy == null) 570 if (Configuration.errorOnAutoCreate()) 571 throw new Error("Attempt to auto-create ConsentVerificationComponent.verifiedBy"); 572 else if (Configuration.doAutoCreate()) 573 this.verifiedBy = new Reference(); // cc 574 return this.verifiedBy; 575 } 576 577 public boolean hasVerifiedBy() { 578 return this.verifiedBy != null && !this.verifiedBy.isEmpty(); 579 } 580 581 /** 582 * @param value {@link #verifiedBy} (The person who conducted the verification/validation of the Grantor decision.) 583 */ 584 public ConsentVerificationComponent setVerifiedBy(Reference value) { 585 this.verifiedBy = value; 586 return this; 587 } 588 589 /** 590 * @return {@link #verifiedWith} (Who verified the instruction (Patient, Relative or other Authorized Person).) 591 */ 592 public Reference getVerifiedWith() { 593 if (this.verifiedWith == null) 594 if (Configuration.errorOnAutoCreate()) 595 throw new Error("Attempt to auto-create ConsentVerificationComponent.verifiedWith"); 596 else if (Configuration.doAutoCreate()) 597 this.verifiedWith = new Reference(); // cc 598 return this.verifiedWith; 599 } 600 601 public boolean hasVerifiedWith() { 602 return this.verifiedWith != null && !this.verifiedWith.isEmpty(); 603 } 604 605 /** 606 * @param value {@link #verifiedWith} (Who verified the instruction (Patient, Relative or other Authorized Person).) 607 */ 608 public ConsentVerificationComponent setVerifiedWith(Reference value) { 609 this.verifiedWith = value; 610 return this; 611 } 612 613 /** 614 * @return {@link #verificationDate} (Date(s) verification was collected.) 615 */ 616 public List<DateTimeType> getVerificationDate() { 617 if (this.verificationDate == null) 618 this.verificationDate = new ArrayList<DateTimeType>(); 619 return this.verificationDate; 620 } 621 622 /** 623 * @return Returns a reference to <code>this</code> for easy method chaining 624 */ 625 public ConsentVerificationComponent setVerificationDate(List<DateTimeType> theVerificationDate) { 626 this.verificationDate = theVerificationDate; 627 return this; 628 } 629 630 public boolean hasVerificationDate() { 631 if (this.verificationDate == null) 632 return false; 633 for (DateTimeType item : this.verificationDate) 634 if (!item.isEmpty()) 635 return true; 636 return false; 637 } 638 639 /** 640 * @return {@link #verificationDate} (Date(s) verification was collected.) 641 */ 642 public DateTimeType addVerificationDateElement() {//2 643 DateTimeType t = new DateTimeType(); 644 if (this.verificationDate == null) 645 this.verificationDate = new ArrayList<DateTimeType>(); 646 this.verificationDate.add(t); 647 return t; 648 } 649 650 /** 651 * @param value {@link #verificationDate} (Date(s) verification was collected.) 652 */ 653 public ConsentVerificationComponent addVerificationDate(Date value) { //1 654 DateTimeType t = new DateTimeType(); 655 t.setValue(value); 656 if (this.verificationDate == null) 657 this.verificationDate = new ArrayList<DateTimeType>(); 658 this.verificationDate.add(t); 659 return this; 660 } 661 662 /** 663 * @param value {@link #verificationDate} (Date(s) verification was collected.) 664 */ 665 public boolean hasVerificationDate(Date value) { 666 if (this.verificationDate == null) 667 return false; 668 for (DateTimeType v : this.verificationDate) 669 if (v.getValue().equals(value)) // dateTime 670 return true; 671 return false; 672 } 673 674 protected void listChildren(List<Property> children) { 675 super.listChildren(children); 676 children.add(new Property("verified", "boolean", "Has the instruction been verified.", 0, 1, verified)); 677 children.add(new Property("verificationType", "CodeableConcept", "Extensible list of verification type starting with verification and re-validation.", 0, 1, verificationType)); 678 children.add(new Property("verifiedBy", "Reference(Organization|Practitioner|PractitionerRole)", "The person who conducted the verification/validation of the Grantor decision.", 0, 1, verifiedBy)); 679 children.add(new Property("verifiedWith", "Reference(Patient|RelatedPerson)", "Who verified the instruction (Patient, Relative or other Authorized Person).", 0, 1, verifiedWith)); 680 children.add(new Property("verificationDate", "dateTime", "Date(s) verification was collected.", 0, java.lang.Integer.MAX_VALUE, verificationDate)); 681 } 682 683 @Override 684 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 685 switch (_hash) { 686 case -1994383672: /*verified*/ return new Property("verified", "boolean", "Has the instruction been verified.", 0, 1, verified); 687 case 642733045: /*verificationType*/ return new Property("verificationType", "CodeableConcept", "Extensible list of verification type starting with verification and re-validation.", 0, 1, verificationType); 688 case -1047292609: /*verifiedBy*/ return new Property("verifiedBy", "Reference(Organization|Practitioner|PractitionerRole)", "The person who conducted the verification/validation of the Grantor decision.", 0, 1, verifiedBy); 689 case -1425236050: /*verifiedWith*/ return new Property("verifiedWith", "Reference(Patient|RelatedPerson)", "Who verified the instruction (Patient, Relative or other Authorized Person).", 0, 1, verifiedWith); 690 case 642233449: /*verificationDate*/ return new Property("verificationDate", "dateTime", "Date(s) verification was collected.", 0, java.lang.Integer.MAX_VALUE, verificationDate); 691 default: return super.getNamedProperty(_hash, _name, _checkValid); 692 } 693 694 } 695 696 @Override 697 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 698 switch (hash) { 699 case -1994383672: /*verified*/ return this.verified == null ? new Base[0] : new Base[] {this.verified}; // BooleanType 700 case 642733045: /*verificationType*/ return this.verificationType == null ? new Base[0] : new Base[] {this.verificationType}; // CodeableConcept 701 case -1047292609: /*verifiedBy*/ return this.verifiedBy == null ? new Base[0] : new Base[] {this.verifiedBy}; // Reference 702 case -1425236050: /*verifiedWith*/ return this.verifiedWith == null ? new Base[0] : new Base[] {this.verifiedWith}; // Reference 703 case 642233449: /*verificationDate*/ return this.verificationDate == null ? new Base[0] : this.verificationDate.toArray(new Base[this.verificationDate.size()]); // DateTimeType 704 default: return super.getProperty(hash, name, checkValid); 705 } 706 707 } 708 709 @Override 710 public Base setProperty(int hash, String name, Base value) throws FHIRException { 711 switch (hash) { 712 case -1994383672: // verified 713 this.verified = TypeConvertor.castToBoolean(value); // BooleanType 714 return value; 715 case 642733045: // verificationType 716 this.verificationType = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 717 return value; 718 case -1047292609: // verifiedBy 719 this.verifiedBy = TypeConvertor.castToReference(value); // Reference 720 return value; 721 case -1425236050: // verifiedWith 722 this.verifiedWith = TypeConvertor.castToReference(value); // Reference 723 return value; 724 case 642233449: // verificationDate 725 this.getVerificationDate().add(TypeConvertor.castToDateTime(value)); // DateTimeType 726 return value; 727 default: return super.setProperty(hash, name, value); 728 } 729 730 } 731 732 @Override 733 public Base setProperty(String name, Base value) throws FHIRException { 734 if (name.equals("verified")) { 735 this.verified = TypeConvertor.castToBoolean(value); // BooleanType 736 } else if (name.equals("verificationType")) { 737 this.verificationType = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 738 } else if (name.equals("verifiedBy")) { 739 this.verifiedBy = TypeConvertor.castToReference(value); // Reference 740 } else if (name.equals("verifiedWith")) { 741 this.verifiedWith = TypeConvertor.castToReference(value); // Reference 742 } else if (name.equals("verificationDate")) { 743 this.getVerificationDate().add(TypeConvertor.castToDateTime(value)); 744 } else 745 return super.setProperty(name, value); 746 return value; 747 } 748 749 @Override 750 public Base makeProperty(int hash, String name) throws FHIRException { 751 switch (hash) { 752 case -1994383672: return getVerifiedElement(); 753 case 642733045: return getVerificationType(); 754 case -1047292609: return getVerifiedBy(); 755 case -1425236050: return getVerifiedWith(); 756 case 642233449: return addVerificationDateElement(); 757 default: return super.makeProperty(hash, name); 758 } 759 760 } 761 762 @Override 763 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 764 switch (hash) { 765 case -1994383672: /*verified*/ return new String[] {"boolean"}; 766 case 642733045: /*verificationType*/ return new String[] {"CodeableConcept"}; 767 case -1047292609: /*verifiedBy*/ return new String[] {"Reference"}; 768 case -1425236050: /*verifiedWith*/ return new String[] {"Reference"}; 769 case 642233449: /*verificationDate*/ return new String[] {"dateTime"}; 770 default: return super.getTypesForProperty(hash, name); 771 } 772 773 } 774 775 @Override 776 public Base addChild(String name) throws FHIRException { 777 if (name.equals("verified")) { 778 throw new FHIRException("Cannot call addChild on a primitive type Consent.verification.verified"); 779 } 780 else if (name.equals("verificationType")) { 781 this.verificationType = new CodeableConcept(); 782 return this.verificationType; 783 } 784 else if (name.equals("verifiedBy")) { 785 this.verifiedBy = new Reference(); 786 return this.verifiedBy; 787 } 788 else if (name.equals("verifiedWith")) { 789 this.verifiedWith = new Reference(); 790 return this.verifiedWith; 791 } 792 else if (name.equals("verificationDate")) { 793 throw new FHIRException("Cannot call addChild on a primitive type Consent.verification.verificationDate"); 794 } 795 else 796 return super.addChild(name); 797 } 798 799 public ConsentVerificationComponent copy() { 800 ConsentVerificationComponent dst = new ConsentVerificationComponent(); 801 copyValues(dst); 802 return dst; 803 } 804 805 public void copyValues(ConsentVerificationComponent dst) { 806 super.copyValues(dst); 807 dst.verified = verified == null ? null : verified.copy(); 808 dst.verificationType = verificationType == null ? null : verificationType.copy(); 809 dst.verifiedBy = verifiedBy == null ? null : verifiedBy.copy(); 810 dst.verifiedWith = verifiedWith == null ? null : verifiedWith.copy(); 811 if (verificationDate != null) { 812 dst.verificationDate = new ArrayList<DateTimeType>(); 813 for (DateTimeType i : verificationDate) 814 dst.verificationDate.add(i.copy()); 815 }; 816 } 817 818 @Override 819 public boolean equalsDeep(Base other_) { 820 if (!super.equalsDeep(other_)) 821 return false; 822 if (!(other_ instanceof ConsentVerificationComponent)) 823 return false; 824 ConsentVerificationComponent o = (ConsentVerificationComponent) other_; 825 return compareDeep(verified, o.verified, true) && compareDeep(verificationType, o.verificationType, true) 826 && compareDeep(verifiedBy, o.verifiedBy, true) && compareDeep(verifiedWith, o.verifiedWith, true) 827 && compareDeep(verificationDate, o.verificationDate, true); 828 } 829 830 @Override 831 public boolean equalsShallow(Base other_) { 832 if (!super.equalsShallow(other_)) 833 return false; 834 if (!(other_ instanceof ConsentVerificationComponent)) 835 return false; 836 ConsentVerificationComponent o = (ConsentVerificationComponent) other_; 837 return compareValues(verified, o.verified, true) && compareValues(verificationDate, o.verificationDate, true) 838 ; 839 } 840 841 public boolean isEmpty() { 842 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(verified, verificationType 843 , verifiedBy, verifiedWith, verificationDate); 844 } 845 846 public String fhirType() { 847 return "Consent.verification"; 848 849 } 850 851 } 852 853 @Block() 854 public static class ProvisionComponent extends BackboneElement implements IBaseBackboneElement { 855 /** 856 * Action to take - permit or deny - when the rule conditions are met. Not permitted in root rule, required in all nested rules. 857 */ 858 @Child(name = "type", type = {CodeType.class}, order=1, min=0, max=1, modifier=true, summary=true) 859 @Description(shortDefinition="deny | permit", formalDefinition="Action to take - permit or deny - when the rule conditions are met. Not permitted in root rule, required in all nested rules." ) 860 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/consent-provision-type") 861 protected Enumeration<ConsentProvisionType> type; 862 863 /** 864 * The timeframe in this rule is valid. 865 */ 866 @Child(name = "period", type = {Period.class}, order=2, min=0, max=1, modifier=false, summary=true) 867 @Description(shortDefinition="Timeframe for this rule", formalDefinition="The timeframe in this rule is valid." ) 868 protected Period period; 869 870 /** 871 * Who or what is controlled by this rule. Use group to identify a set of actors by some property they share (e.g. 'admitting officers'). 872 */ 873 @Child(name = "actor", type = {}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 874 @Description(shortDefinition="Who|what controlled by this rule (or group, by role)", formalDefinition="Who or what is controlled by this rule. Use group to identify a set of actors by some property they share (e.g. 'admitting officers')." ) 875 protected List<ProvisionActorComponent> actor; 876 877 /** 878 * Actions controlled by this Rule. 879 */ 880 @Child(name = "action", type = {CodeableConcept.class}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 881 @Description(shortDefinition="Actions controlled by this rule", formalDefinition="Actions controlled by this Rule." ) 882 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/consent-action") 883 protected List<CodeableConcept> action; 884 885 /** 886 * A security label, comprised of 0..* security label fields (Privacy tags), which define which resources are controlled by this exception. 887 */ 888 @Child(name = "securityLabel", type = {Coding.class}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 889 @Description(shortDefinition="Security Labels that define affected resources", formalDefinition="A security label, comprised of 0..* security label fields (Privacy tags), which define which resources are controlled by this exception." ) 890 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/security-label-examples") 891 protected List<Coding> securityLabel; 892 893 /** 894 * The context of the activities a user is taking - why the user is accessing the data - that are controlled by this rule. 895 */ 896 @Child(name = "purpose", type = {Coding.class}, order=6, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 897 @Description(shortDefinition="Context of activities covered by this rule", formalDefinition="The context of the activities a user is taking - why the user is accessing the data - that are controlled by this rule." ) 898 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://terminology.hl7.org/ValueSet/v3-PurposeOfUse") 899 protected List<Coding> purpose; 900 901 /** 902 * The class of information covered by this rule. The type can be a FHIR resource type, a profile on a type, or a CDA document, or some other type that indicates what sort of information the consent relates to. 903 */ 904 @Child(name = "class", type = {Coding.class}, order=7, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 905 @Description(shortDefinition="e.g. Resource Type, Profile, CDA, etc.", formalDefinition="The class of information covered by this rule. The type can be a FHIR resource type, a profile on a type, or a CDA document, or some other type that indicates what sort of information the consent relates to." ) 906 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/consent-content-class") 907 protected List<Coding> class_; 908 909 /** 910 * If this code is found in an instance, then the rule applies. 911 */ 912 @Child(name = "code", type = {CodeableConcept.class}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 913 @Description(shortDefinition="e.g. LOINC or SNOMED CT code, etc. in the content", formalDefinition="If this code is found in an instance, then the rule applies." ) 914 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/consent-content-code") 915 protected List<CodeableConcept> code; 916 917 /** 918 * Clinical or Operational Relevant period of time that bounds the data controlled by this rule. 919 */ 920 @Child(name = "dataPeriod", type = {Period.class}, order=9, min=0, max=1, modifier=false, summary=true) 921 @Description(shortDefinition="Timeframe for data controlled by this rule", formalDefinition="Clinical or Operational Relevant period of time that bounds the data controlled by this rule." ) 922 protected Period dataPeriod; 923 924 /** 925 * The resources controlled by this rule if specific resources are referenced. 926 */ 927 @Child(name = "data", type = {}, order=10, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 928 @Description(shortDefinition="Data controlled by this rule", formalDefinition="The resources controlled by this rule if specific resources are referenced." ) 929 protected List<ProvisionDataComponent> data; 930 931 /** 932 * A computable (FHIRPath or other) definition of what is controlled by this consent. 933 */ 934 @Child(name = "expression", type = {Expression.class}, order=11, min=0, max=1, modifier=false, summary=false) 935 @Description(shortDefinition="A computable expression of the consent", formalDefinition="A computable (FHIRPath or other) definition of what is controlled by this consent." ) 936 protected Expression expression; 937 938 /** 939 * Rules which provide exceptions to the base rule or subrules. 940 */ 941 @Child(name = "provision", type = {ProvisionComponent.class}, order=12, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 942 @Description(shortDefinition="Nested Exception Rules", formalDefinition="Rules which provide exceptions to the base rule or subrules." ) 943 protected List<ProvisionComponent> provision; 944 945 private static final long serialVersionUID = 649023539L; 946 947 /** 948 * Constructor 949 */ 950 public ProvisionComponent() { 951 super(); 952 } 953 954 /** 955 * @return {@link #type} (Action to take - permit or deny - when the rule conditions are met. Not permitted in root rule, required in all nested rules.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value 956 */ 957 public Enumeration<ConsentProvisionType> getTypeElement() { 958 if (this.type == null) 959 if (Configuration.errorOnAutoCreate()) 960 throw new Error("Attempt to auto-create ProvisionComponent.type"); 961 else if (Configuration.doAutoCreate()) 962 this.type = new Enumeration<ConsentProvisionType>(new ConsentProvisionTypeEnumFactory()); // bb 963 return this.type; 964 } 965 966 public boolean hasTypeElement() { 967 return this.type != null && !this.type.isEmpty(); 968 } 969 970 public boolean hasType() { 971 return this.type != null && !this.type.isEmpty(); 972 } 973 974 /** 975 * @param value {@link #type} (Action to take - permit or deny - when the rule conditions are met. Not permitted in root rule, required in all nested rules.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value 976 */ 977 public ProvisionComponent setTypeElement(Enumeration<ConsentProvisionType> value) { 978 this.type = value; 979 return this; 980 } 981 982 /** 983 * @return Action to take - permit or deny - when the rule conditions are met. Not permitted in root rule, required in all nested rules. 984 */ 985 public ConsentProvisionType getType() { 986 return this.type == null ? null : this.type.getValue(); 987 } 988 989 /** 990 * @param value Action to take - permit or deny - when the rule conditions are met. Not permitted in root rule, required in all nested rules. 991 */ 992 public ProvisionComponent setType(ConsentProvisionType value) { 993 if (value == null) 994 this.type = null; 995 else { 996 if (this.type == null) 997 this.type = new Enumeration<ConsentProvisionType>(new ConsentProvisionTypeEnumFactory()); 998 this.type.setValue(value); 999 } 1000 return this; 1001 } 1002 1003 /** 1004 * @return {@link #period} (The timeframe in this rule is valid.) 1005 */ 1006 public Period getPeriod() { 1007 if (this.period == null) 1008 if (Configuration.errorOnAutoCreate()) 1009 throw new Error("Attempt to auto-create ProvisionComponent.period"); 1010 else if (Configuration.doAutoCreate()) 1011 this.period = new Period(); // cc 1012 return this.period; 1013 } 1014 1015 public boolean hasPeriod() { 1016 return this.period != null && !this.period.isEmpty(); 1017 } 1018 1019 /** 1020 * @param value {@link #period} (The timeframe in this rule is valid.) 1021 */ 1022 public ProvisionComponent setPeriod(Period value) { 1023 this.period = value; 1024 return this; 1025 } 1026 1027 /** 1028 * @return {@link #actor} (Who or what is controlled by this rule. Use group to identify a set of actors by some property they share (e.g. 'admitting officers').) 1029 */ 1030 public List<ProvisionActorComponent> getActor() { 1031 if (this.actor == null) 1032 this.actor = new ArrayList<ProvisionActorComponent>(); 1033 return this.actor; 1034 } 1035 1036 /** 1037 * @return Returns a reference to <code>this</code> for easy method chaining 1038 */ 1039 public ProvisionComponent setActor(List<ProvisionActorComponent> theActor) { 1040 this.actor = theActor; 1041 return this; 1042 } 1043 1044 public boolean hasActor() { 1045 if (this.actor == null) 1046 return false; 1047 for (ProvisionActorComponent item : this.actor) 1048 if (!item.isEmpty()) 1049 return true; 1050 return false; 1051 } 1052 1053 public ProvisionActorComponent addActor() { //3 1054 ProvisionActorComponent t = new ProvisionActorComponent(); 1055 if (this.actor == null) 1056 this.actor = new ArrayList<ProvisionActorComponent>(); 1057 this.actor.add(t); 1058 return t; 1059 } 1060 1061 public ProvisionComponent addActor(ProvisionActorComponent t) { //3 1062 if (t == null) 1063 return this; 1064 if (this.actor == null) 1065 this.actor = new ArrayList<ProvisionActorComponent>(); 1066 this.actor.add(t); 1067 return this; 1068 } 1069 1070 /** 1071 * @return The first repetition of repeating field {@link #actor}, creating it if it does not already exist {3} 1072 */ 1073 public ProvisionActorComponent getActorFirstRep() { 1074 if (getActor().isEmpty()) { 1075 addActor(); 1076 } 1077 return getActor().get(0); 1078 } 1079 1080 /** 1081 * @return {@link #action} (Actions controlled by this Rule.) 1082 */ 1083 public List<CodeableConcept> getAction() { 1084 if (this.action == null) 1085 this.action = new ArrayList<CodeableConcept>(); 1086 return this.action; 1087 } 1088 1089 /** 1090 * @return Returns a reference to <code>this</code> for easy method chaining 1091 */ 1092 public ProvisionComponent setAction(List<CodeableConcept> theAction) { 1093 this.action = theAction; 1094 return this; 1095 } 1096 1097 public boolean hasAction() { 1098 if (this.action == null) 1099 return false; 1100 for (CodeableConcept item : this.action) 1101 if (!item.isEmpty()) 1102 return true; 1103 return false; 1104 } 1105 1106 public CodeableConcept addAction() { //3 1107 CodeableConcept t = new CodeableConcept(); 1108 if (this.action == null) 1109 this.action = new ArrayList<CodeableConcept>(); 1110 this.action.add(t); 1111 return t; 1112 } 1113 1114 public ProvisionComponent addAction(CodeableConcept t) { //3 1115 if (t == null) 1116 return this; 1117 if (this.action == null) 1118 this.action = new ArrayList<CodeableConcept>(); 1119 this.action.add(t); 1120 return this; 1121 } 1122 1123 /** 1124 * @return The first repetition of repeating field {@link #action}, creating it if it does not already exist {3} 1125 */ 1126 public CodeableConcept getActionFirstRep() { 1127 if (getAction().isEmpty()) { 1128 addAction(); 1129 } 1130 return getAction().get(0); 1131 } 1132 1133 /** 1134 * @return {@link #securityLabel} (A security label, comprised of 0..* security label fields (Privacy tags), which define which resources are controlled by this exception.) 1135 */ 1136 public List<Coding> getSecurityLabel() { 1137 if (this.securityLabel == null) 1138 this.securityLabel = new ArrayList<Coding>(); 1139 return this.securityLabel; 1140 } 1141 1142 /** 1143 * @return Returns a reference to <code>this</code> for easy method chaining 1144 */ 1145 public ProvisionComponent setSecurityLabel(List<Coding> theSecurityLabel) { 1146 this.securityLabel = theSecurityLabel; 1147 return this; 1148 } 1149 1150 public boolean hasSecurityLabel() { 1151 if (this.securityLabel == null) 1152 return false; 1153 for (Coding item : this.securityLabel) 1154 if (!item.isEmpty()) 1155 return true; 1156 return false; 1157 } 1158 1159 public Coding addSecurityLabel() { //3 1160 Coding t = new Coding(); 1161 if (this.securityLabel == null) 1162 this.securityLabel = new ArrayList<Coding>(); 1163 this.securityLabel.add(t); 1164 return t; 1165 } 1166 1167 public ProvisionComponent addSecurityLabel(Coding t) { //3 1168 if (t == null) 1169 return this; 1170 if (this.securityLabel == null) 1171 this.securityLabel = new ArrayList<Coding>(); 1172 this.securityLabel.add(t); 1173 return this; 1174 } 1175 1176 /** 1177 * @return The first repetition of repeating field {@link #securityLabel}, creating it if it does not already exist {3} 1178 */ 1179 public Coding getSecurityLabelFirstRep() { 1180 if (getSecurityLabel().isEmpty()) { 1181 addSecurityLabel(); 1182 } 1183 return getSecurityLabel().get(0); 1184 } 1185 1186 /** 1187 * @return {@link #purpose} (The context of the activities a user is taking - why the user is accessing the data - that are controlled by this rule.) 1188 */ 1189 public List<Coding> getPurpose() { 1190 if (this.purpose == null) 1191 this.purpose = new ArrayList<Coding>(); 1192 return this.purpose; 1193 } 1194 1195 /** 1196 * @return Returns a reference to <code>this</code> for easy method chaining 1197 */ 1198 public ProvisionComponent setPurpose(List<Coding> thePurpose) { 1199 this.purpose = thePurpose; 1200 return this; 1201 } 1202 1203 public boolean hasPurpose() { 1204 if (this.purpose == null) 1205 return false; 1206 for (Coding item : this.purpose) 1207 if (!item.isEmpty()) 1208 return true; 1209 return false; 1210 } 1211 1212 public Coding addPurpose() { //3 1213 Coding t = new Coding(); 1214 if (this.purpose == null) 1215 this.purpose = new ArrayList<Coding>(); 1216 this.purpose.add(t); 1217 return t; 1218 } 1219 1220 public ProvisionComponent addPurpose(Coding t) { //3 1221 if (t == null) 1222 return this; 1223 if (this.purpose == null) 1224 this.purpose = new ArrayList<Coding>(); 1225 this.purpose.add(t); 1226 return this; 1227 } 1228 1229 /** 1230 * @return The first repetition of repeating field {@link #purpose}, creating it if it does not already exist {3} 1231 */ 1232 public Coding getPurposeFirstRep() { 1233 if (getPurpose().isEmpty()) { 1234 addPurpose(); 1235 } 1236 return getPurpose().get(0); 1237 } 1238 1239 /** 1240 * @return {@link #class_} (The class of information covered by this rule. The type can be a FHIR resource type, a profile on a type, or a CDA document, or some other type that indicates what sort of information the consent relates to.) 1241 */ 1242 public List<Coding> getClass_() { 1243 if (this.class_ == null) 1244 this.class_ = new ArrayList<Coding>(); 1245 return this.class_; 1246 } 1247 1248 /** 1249 * @return Returns a reference to <code>this</code> for easy method chaining 1250 */ 1251 public ProvisionComponent setClass_(List<Coding> theClass_) { 1252 this.class_ = theClass_; 1253 return this; 1254 } 1255 1256 public boolean hasClass_() { 1257 if (this.class_ == null) 1258 return false; 1259 for (Coding item : this.class_) 1260 if (!item.isEmpty()) 1261 return true; 1262 return false; 1263 } 1264 1265 public Coding addClass_() { //3 1266 Coding t = new Coding(); 1267 if (this.class_ == null) 1268 this.class_ = new ArrayList<Coding>(); 1269 this.class_.add(t); 1270 return t; 1271 } 1272 1273 public ProvisionComponent addClass_(Coding t) { //3 1274 if (t == null) 1275 return this; 1276 if (this.class_ == null) 1277 this.class_ = new ArrayList<Coding>(); 1278 this.class_.add(t); 1279 return this; 1280 } 1281 1282 /** 1283 * @return The first repetition of repeating field {@link #class_}, creating it if it does not already exist {3} 1284 */ 1285 public Coding getClass_FirstRep() { 1286 if (getClass_().isEmpty()) { 1287 addClass_(); 1288 } 1289 return getClass_().get(0); 1290 } 1291 1292 /** 1293 * @return {@link #code} (If this code is found in an instance, then the rule applies.) 1294 */ 1295 public List<CodeableConcept> getCode() { 1296 if (this.code == null) 1297 this.code = new ArrayList<CodeableConcept>(); 1298 return this.code; 1299 } 1300 1301 /** 1302 * @return Returns a reference to <code>this</code> for easy method chaining 1303 */ 1304 public ProvisionComponent setCode(List<CodeableConcept> theCode) { 1305 this.code = theCode; 1306 return this; 1307 } 1308 1309 public boolean hasCode() { 1310 if (this.code == null) 1311 return false; 1312 for (CodeableConcept item : this.code) 1313 if (!item.isEmpty()) 1314 return true; 1315 return false; 1316 } 1317 1318 public CodeableConcept addCode() { //3 1319 CodeableConcept t = new CodeableConcept(); 1320 if (this.code == null) 1321 this.code = new ArrayList<CodeableConcept>(); 1322 this.code.add(t); 1323 return t; 1324 } 1325 1326 public ProvisionComponent addCode(CodeableConcept t) { //3 1327 if (t == null) 1328 return this; 1329 if (this.code == null) 1330 this.code = new ArrayList<CodeableConcept>(); 1331 this.code.add(t); 1332 return this; 1333 } 1334 1335 /** 1336 * @return The first repetition of repeating field {@link #code}, creating it if it does not already exist {3} 1337 */ 1338 public CodeableConcept getCodeFirstRep() { 1339 if (getCode().isEmpty()) { 1340 addCode(); 1341 } 1342 return getCode().get(0); 1343 } 1344 1345 /** 1346 * @return {@link #dataPeriod} (Clinical or Operational Relevant period of time that bounds the data controlled by this rule.) 1347 */ 1348 public Period getDataPeriod() { 1349 if (this.dataPeriod == null) 1350 if (Configuration.errorOnAutoCreate()) 1351 throw new Error("Attempt to auto-create ProvisionComponent.dataPeriod"); 1352 else if (Configuration.doAutoCreate()) 1353 this.dataPeriod = new Period(); // cc 1354 return this.dataPeriod; 1355 } 1356 1357 public boolean hasDataPeriod() { 1358 return this.dataPeriod != null && !this.dataPeriod.isEmpty(); 1359 } 1360 1361 /** 1362 * @param value {@link #dataPeriod} (Clinical or Operational Relevant period of time that bounds the data controlled by this rule.) 1363 */ 1364 public ProvisionComponent setDataPeriod(Period value) { 1365 this.dataPeriod = value; 1366 return this; 1367 } 1368 1369 /** 1370 * @return {@link #data} (The resources controlled by this rule if specific resources are referenced.) 1371 */ 1372 public List<ProvisionDataComponent> getData() { 1373 if (this.data == null) 1374 this.data = new ArrayList<ProvisionDataComponent>(); 1375 return this.data; 1376 } 1377 1378 /** 1379 * @return Returns a reference to <code>this</code> for easy method chaining 1380 */ 1381 public ProvisionComponent setData(List<ProvisionDataComponent> theData) { 1382 this.data = theData; 1383 return this; 1384 } 1385 1386 public boolean hasData() { 1387 if (this.data == null) 1388 return false; 1389 for (ProvisionDataComponent item : this.data) 1390 if (!item.isEmpty()) 1391 return true; 1392 return false; 1393 } 1394 1395 public ProvisionDataComponent addData() { //3 1396 ProvisionDataComponent t = new ProvisionDataComponent(); 1397 if (this.data == null) 1398 this.data = new ArrayList<ProvisionDataComponent>(); 1399 this.data.add(t); 1400 return t; 1401 } 1402 1403 public ProvisionComponent addData(ProvisionDataComponent t) { //3 1404 if (t == null) 1405 return this; 1406 if (this.data == null) 1407 this.data = new ArrayList<ProvisionDataComponent>(); 1408 this.data.add(t); 1409 return this; 1410 } 1411 1412 /** 1413 * @return The first repetition of repeating field {@link #data}, creating it if it does not already exist {3} 1414 */ 1415 public ProvisionDataComponent getDataFirstRep() { 1416 if (getData().isEmpty()) { 1417 addData(); 1418 } 1419 return getData().get(0); 1420 } 1421 1422 /** 1423 * @return {@link #expression} (A computable (FHIRPath or other) definition of what is controlled by this consent.) 1424 */ 1425 public Expression getExpression() { 1426 if (this.expression == null) 1427 if (Configuration.errorOnAutoCreate()) 1428 throw new Error("Attempt to auto-create ProvisionComponent.expression"); 1429 else if (Configuration.doAutoCreate()) 1430 this.expression = new Expression(); // cc 1431 return this.expression; 1432 } 1433 1434 public boolean hasExpression() { 1435 return this.expression != null && !this.expression.isEmpty(); 1436 } 1437 1438 /** 1439 * @param value {@link #expression} (A computable (FHIRPath or other) definition of what is controlled by this consent.) 1440 */ 1441 public ProvisionComponent setExpression(Expression value) { 1442 this.expression = value; 1443 return this; 1444 } 1445 1446 /** 1447 * @return {@link #provision} (Rules which provide exceptions to the base rule or subrules.) 1448 */ 1449 public List<ProvisionComponent> getProvision() { 1450 if (this.provision == null) 1451 this.provision = new ArrayList<ProvisionComponent>(); 1452 return this.provision; 1453 } 1454 1455 /** 1456 * @return Returns a reference to <code>this</code> for easy method chaining 1457 */ 1458 public ProvisionComponent setProvision(List<ProvisionComponent> theProvision) { 1459 this.provision = theProvision; 1460 return this; 1461 } 1462 1463 public boolean hasProvision() { 1464 if (this.provision == null) 1465 return false; 1466 for (ProvisionComponent item : this.provision) 1467 if (!item.isEmpty()) 1468 return true; 1469 return false; 1470 } 1471 1472 public ProvisionComponent addProvision() { //3 1473 ProvisionComponent t = new ProvisionComponent(); 1474 if (this.provision == null) 1475 this.provision = new ArrayList<ProvisionComponent>(); 1476 this.provision.add(t); 1477 return t; 1478 } 1479 1480 public ProvisionComponent addProvision(ProvisionComponent t) { //3 1481 if (t == null) 1482 return this; 1483 if (this.provision == null) 1484 this.provision = new ArrayList<ProvisionComponent>(); 1485 this.provision.add(t); 1486 return this; 1487 } 1488 1489 /** 1490 * @return The first repetition of repeating field {@link #provision}, creating it if it does not already exist {3} 1491 */ 1492 public ProvisionComponent getProvisionFirstRep() { 1493 if (getProvision().isEmpty()) { 1494 addProvision(); 1495 } 1496 return getProvision().get(0); 1497 } 1498 1499 protected void listChildren(List<Property> children) { 1500 super.listChildren(children); 1501 children.add(new Property("type", "code", "Action to take - permit or deny - when the rule conditions are met. Not permitted in root rule, required in all nested rules.", 0, 1, type)); 1502 children.add(new Property("period", "Period", "The timeframe in this rule is valid.", 0, 1, period)); 1503 children.add(new Property("actor", "", "Who or what is controlled by this rule. Use group to identify a set of actors by some property they share (e.g. 'admitting officers').", 0, java.lang.Integer.MAX_VALUE, actor)); 1504 children.add(new Property("action", "CodeableConcept", "Actions controlled by this Rule.", 0, java.lang.Integer.MAX_VALUE, action)); 1505 children.add(new Property("securityLabel", "Coding", "A security label, comprised of 0..* security label fields (Privacy tags), which define which resources are controlled by this exception.", 0, java.lang.Integer.MAX_VALUE, securityLabel)); 1506 children.add(new Property("purpose", "Coding", "The context of the activities a user is taking - why the user is accessing the data - that are controlled by this rule.", 0, java.lang.Integer.MAX_VALUE, purpose)); 1507 children.add(new Property("class", "Coding", "The class of information covered by this rule. The type can be a FHIR resource type, a profile on a type, or a CDA document, or some other type that indicates what sort of information the consent relates to.", 0, java.lang.Integer.MAX_VALUE, class_)); 1508 children.add(new Property("code", "CodeableConcept", "If this code is found in an instance, then the rule applies.", 0, java.lang.Integer.MAX_VALUE, code)); 1509 children.add(new Property("dataPeriod", "Period", "Clinical or Operational Relevant period of time that bounds the data controlled by this rule.", 0, 1, dataPeriod)); 1510 children.add(new Property("data", "", "The resources controlled by this rule if specific resources are referenced.", 0, java.lang.Integer.MAX_VALUE, data)); 1511 children.add(new Property("expression", "Expression", "A computable (FHIRPath or other) definition of what is controlled by this consent.", 0, 1, expression)); 1512 children.add(new Property("provision", "@Consent.provision", "Rules which provide exceptions to the base rule or subrules.", 0, java.lang.Integer.MAX_VALUE, provision)); 1513 } 1514 1515 @Override 1516 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1517 switch (_hash) { 1518 case 3575610: /*type*/ return new Property("type", "code", "Action to take - permit or deny - when the rule conditions are met. Not permitted in root rule, required in all nested rules.", 0, 1, type); 1519 case -991726143: /*period*/ return new Property("period", "Period", "The timeframe in this rule is valid.", 0, 1, period); 1520 case 92645877: /*actor*/ return new Property("actor", "", "Who or what is controlled by this rule. Use group to identify a set of actors by some property they share (e.g. 'admitting officers').", 0, java.lang.Integer.MAX_VALUE, actor); 1521 case -1422950858: /*action*/ return new Property("action", "CodeableConcept", "Actions controlled by this Rule.", 0, java.lang.Integer.MAX_VALUE, action); 1522 case -722296940: /*securityLabel*/ return new Property("securityLabel", "Coding", "A security label, comprised of 0..* security label fields (Privacy tags), which define which resources are controlled by this exception.", 0, java.lang.Integer.MAX_VALUE, securityLabel); 1523 case -220463842: /*purpose*/ return new Property("purpose", "Coding", "The context of the activities a user is taking - why the user is accessing the data - that are controlled by this rule.", 0, java.lang.Integer.MAX_VALUE, purpose); 1524 case 94742904: /*class*/ return new Property("class", "Coding", "The class of information covered by this rule. The type can be a FHIR resource type, a profile on a type, or a CDA document, or some other type that indicates what sort of information the consent relates to.", 0, java.lang.Integer.MAX_VALUE, class_); 1525 case 3059181: /*code*/ return new Property("code", "CodeableConcept", "If this code is found in an instance, then the rule applies.", 0, java.lang.Integer.MAX_VALUE, code); 1526 case 1177250315: /*dataPeriod*/ return new Property("dataPeriod", "Period", "Clinical or Operational Relevant period of time that bounds the data controlled by this rule.", 0, 1, dataPeriod); 1527 case 3076010: /*data*/ return new Property("data", "", "The resources controlled by this rule if specific resources are referenced.", 0, java.lang.Integer.MAX_VALUE, data); 1528 case -1795452264: /*expression*/ return new Property("expression", "Expression", "A computable (FHIRPath or other) definition of what is controlled by this consent.", 0, 1, expression); 1529 case -547120939: /*provision*/ return new Property("provision", "@Consent.provision", "Rules which provide exceptions to the base rule or subrules.", 0, java.lang.Integer.MAX_VALUE, provision); 1530 default: return super.getNamedProperty(_hash, _name, _checkValid); 1531 } 1532 1533 } 1534 1535 @Override 1536 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1537 switch (hash) { 1538 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // Enumeration<ConsentProvisionType> 1539 case -991726143: /*period*/ return this.period == null ? new Base[0] : new Base[] {this.period}; // Period 1540 case 92645877: /*actor*/ return this.actor == null ? new Base[0] : this.actor.toArray(new Base[this.actor.size()]); // ProvisionActorComponent 1541 case -1422950858: /*action*/ return this.action == null ? new Base[0] : this.action.toArray(new Base[this.action.size()]); // CodeableConcept 1542 case -722296940: /*securityLabel*/ return this.securityLabel == null ? new Base[0] : this.securityLabel.toArray(new Base[this.securityLabel.size()]); // Coding 1543 case -220463842: /*purpose*/ return this.purpose == null ? new Base[0] : this.purpose.toArray(new Base[this.purpose.size()]); // Coding 1544 case 94742904: /*class*/ return this.class_ == null ? new Base[0] : this.class_.toArray(new Base[this.class_.size()]); // Coding 1545 case 3059181: /*code*/ return this.code == null ? new Base[0] : this.code.toArray(new Base[this.code.size()]); // CodeableConcept 1546 case 1177250315: /*dataPeriod*/ return this.dataPeriod == null ? new Base[0] : new Base[] {this.dataPeriod}; // Period 1547 case 3076010: /*data*/ return this.data == null ? new Base[0] : this.data.toArray(new Base[this.data.size()]); // ProvisionDataComponent 1548 case -1795452264: /*expression*/ return this.expression == null ? new Base[0] : new Base[] {this.expression}; // Expression 1549 case -547120939: /*provision*/ return this.provision == null ? new Base[0] : this.provision.toArray(new Base[this.provision.size()]); // ProvisionComponent 1550 default: return super.getProperty(hash, name, checkValid); 1551 } 1552 1553 } 1554 1555 @Override 1556 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1557 switch (hash) { 1558 case 3575610: // type 1559 value = new ConsentProvisionTypeEnumFactory().fromType(TypeConvertor.castToCode(value)); 1560 this.type = (Enumeration) value; // Enumeration<ConsentProvisionType> 1561 return value; 1562 case -991726143: // period 1563 this.period = TypeConvertor.castToPeriod(value); // Period 1564 return value; 1565 case 92645877: // actor 1566 this.getActor().add((ProvisionActorComponent) value); // ProvisionActorComponent 1567 return value; 1568 case -1422950858: // action 1569 this.getAction().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 1570 return value; 1571 case -722296940: // securityLabel 1572 this.getSecurityLabel().add(TypeConvertor.castToCoding(value)); // Coding 1573 return value; 1574 case -220463842: // purpose 1575 this.getPurpose().add(TypeConvertor.castToCoding(value)); // Coding 1576 return value; 1577 case 94742904: // class 1578 this.getClass_().add(TypeConvertor.castToCoding(value)); // Coding 1579 return value; 1580 case 3059181: // code 1581 this.getCode().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 1582 return value; 1583 case 1177250315: // dataPeriod 1584 this.dataPeriod = TypeConvertor.castToPeriod(value); // Period 1585 return value; 1586 case 3076010: // data 1587 this.getData().add((ProvisionDataComponent) value); // ProvisionDataComponent 1588 return value; 1589 case -1795452264: // expression 1590 this.expression = TypeConvertor.castToExpression(value); // Expression 1591 return value; 1592 case -547120939: // provision 1593 this.getProvision().add((ProvisionComponent) value); // ProvisionComponent 1594 return value; 1595 default: return super.setProperty(hash, name, value); 1596 } 1597 1598 } 1599 1600 @Override 1601 public Base setProperty(String name, Base value) throws FHIRException { 1602 if (name.equals("type")) { 1603 value = new ConsentProvisionTypeEnumFactory().fromType(TypeConvertor.castToCode(value)); 1604 this.type = (Enumeration) value; // Enumeration<ConsentProvisionType> 1605 } else if (name.equals("period")) { 1606 this.period = TypeConvertor.castToPeriod(value); // Period 1607 } else if (name.equals("actor")) { 1608 this.getActor().add((ProvisionActorComponent) value); 1609 } else if (name.equals("action")) { 1610 this.getAction().add(TypeConvertor.castToCodeableConcept(value)); 1611 } else if (name.equals("securityLabel")) { 1612 this.getSecurityLabel().add(TypeConvertor.castToCoding(value)); 1613 } else if (name.equals("purpose")) { 1614 this.getPurpose().add(TypeConvertor.castToCoding(value)); 1615 } else if (name.equals("class")) { 1616 this.getClass_().add(TypeConvertor.castToCoding(value)); 1617 } else if (name.equals("code")) { 1618 this.getCode().add(TypeConvertor.castToCodeableConcept(value)); 1619 } else if (name.equals("dataPeriod")) { 1620 this.dataPeriod = TypeConvertor.castToPeriod(value); // Period 1621 } else if (name.equals("data")) { 1622 this.getData().add((ProvisionDataComponent) value); 1623 } else if (name.equals("expression")) { 1624 this.expression = TypeConvertor.castToExpression(value); // Expression 1625 } else if (name.equals("provision")) { 1626 this.getProvision().add((ProvisionComponent) value); 1627 } else 1628 return super.setProperty(name, value); 1629 return value; 1630 } 1631 1632 @Override 1633 public Base makeProperty(int hash, String name) throws FHIRException { 1634 switch (hash) { 1635 case 3575610: return getTypeElement(); 1636 case -991726143: return getPeriod(); 1637 case 92645877: return addActor(); 1638 case -1422950858: return addAction(); 1639 case -722296940: return addSecurityLabel(); 1640 case -220463842: return addPurpose(); 1641 case 94742904: return addClass_(); 1642 case 3059181: return addCode(); 1643 case 1177250315: return getDataPeriod(); 1644 case 3076010: return addData(); 1645 case -1795452264: return getExpression(); 1646 case -547120939: return addProvision(); 1647 default: return super.makeProperty(hash, name); 1648 } 1649 1650 } 1651 1652 @Override 1653 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1654 switch (hash) { 1655 case 3575610: /*type*/ return new String[] {"code"}; 1656 case -991726143: /*period*/ return new String[] {"Period"}; 1657 case 92645877: /*actor*/ return new String[] {}; 1658 case -1422950858: /*action*/ return new String[] {"CodeableConcept"}; 1659 case -722296940: /*securityLabel*/ return new String[] {"Coding"}; 1660 case -220463842: /*purpose*/ return new String[] {"Coding"}; 1661 case 94742904: /*class*/ return new String[] {"Coding"}; 1662 case 3059181: /*code*/ return new String[] {"CodeableConcept"}; 1663 case 1177250315: /*dataPeriod*/ return new String[] {"Period"}; 1664 case 3076010: /*data*/ return new String[] {}; 1665 case -1795452264: /*expression*/ return new String[] {"Expression"}; 1666 case -547120939: /*provision*/ return new String[] {"@Consent.provision"}; 1667 default: return super.getTypesForProperty(hash, name); 1668 } 1669 1670 } 1671 1672 @Override 1673 public Base addChild(String name) throws FHIRException { 1674 if (name.equals("type")) { 1675 throw new FHIRException("Cannot call addChild on a primitive type Consent.provision.type"); 1676 } 1677 else if (name.equals("period")) { 1678 this.period = new Period(); 1679 return this.period; 1680 } 1681 else if (name.equals("actor")) { 1682 return addActor(); 1683 } 1684 else if (name.equals("action")) { 1685 return addAction(); 1686 } 1687 else if (name.equals("securityLabel")) { 1688 return addSecurityLabel(); 1689 } 1690 else if (name.equals("purpose")) { 1691 return addPurpose(); 1692 } 1693 else if (name.equals("class")) { 1694 return addClass_(); 1695 } 1696 else if (name.equals("code")) { 1697 return addCode(); 1698 } 1699 else if (name.equals("dataPeriod")) { 1700 this.dataPeriod = new Period(); 1701 return this.dataPeriod; 1702 } 1703 else if (name.equals("data")) { 1704 return addData(); 1705 } 1706 else if (name.equals("expression")) { 1707 this.expression = new Expression(); 1708 return this.expression; 1709 } 1710 else if (name.equals("provision")) { 1711 return addProvision(); 1712 } 1713 else 1714 return super.addChild(name); 1715 } 1716 1717 public ProvisionComponent copy() { 1718 ProvisionComponent dst = new ProvisionComponent(); 1719 copyValues(dst); 1720 return dst; 1721 } 1722 1723 public void copyValues(ProvisionComponent dst) { 1724 super.copyValues(dst); 1725 dst.type = type == null ? null : type.copy(); 1726 dst.period = period == null ? null : period.copy(); 1727 if (actor != null) { 1728 dst.actor = new ArrayList<ProvisionActorComponent>(); 1729 for (ProvisionActorComponent i : actor) 1730 dst.actor.add(i.copy()); 1731 }; 1732 if (action != null) { 1733 dst.action = new ArrayList<CodeableConcept>(); 1734 for (CodeableConcept i : action) 1735 dst.action.add(i.copy()); 1736 }; 1737 if (securityLabel != null) { 1738 dst.securityLabel = new ArrayList<Coding>(); 1739 for (Coding i : securityLabel) 1740 dst.securityLabel.add(i.copy()); 1741 }; 1742 if (purpose != null) { 1743 dst.purpose = new ArrayList<Coding>(); 1744 for (Coding i : purpose) 1745 dst.purpose.add(i.copy()); 1746 }; 1747 if (class_ != null) { 1748 dst.class_ = new ArrayList<Coding>(); 1749 for (Coding i : class_) 1750 dst.class_.add(i.copy()); 1751 }; 1752 if (code != null) { 1753 dst.code = new ArrayList<CodeableConcept>(); 1754 for (CodeableConcept i : code) 1755 dst.code.add(i.copy()); 1756 }; 1757 dst.dataPeriod = dataPeriod == null ? null : dataPeriod.copy(); 1758 if (data != null) { 1759 dst.data = new ArrayList<ProvisionDataComponent>(); 1760 for (ProvisionDataComponent i : data) 1761 dst.data.add(i.copy()); 1762 }; 1763 dst.expression = expression == null ? null : expression.copy(); 1764 if (provision != null) { 1765 dst.provision = new ArrayList<ProvisionComponent>(); 1766 for (ProvisionComponent i : provision) 1767 dst.provision.add(i.copy()); 1768 }; 1769 } 1770 1771 @Override 1772 public boolean equalsDeep(Base other_) { 1773 if (!super.equalsDeep(other_)) 1774 return false; 1775 if (!(other_ instanceof ProvisionComponent)) 1776 return false; 1777 ProvisionComponent o = (ProvisionComponent) other_; 1778 return compareDeep(type, o.type, true) && compareDeep(period, o.period, true) && compareDeep(actor, o.actor, true) 1779 && compareDeep(action, o.action, true) && compareDeep(securityLabel, o.securityLabel, true) && compareDeep(purpose, o.purpose, true) 1780 && compareDeep(class_, o.class_, true) && compareDeep(code, o.code, true) && compareDeep(dataPeriod, o.dataPeriod, true) 1781 && compareDeep(data, o.data, true) && compareDeep(expression, o.expression, true) && compareDeep(provision, o.provision, true) 1782 ; 1783 } 1784 1785 @Override 1786 public boolean equalsShallow(Base other_) { 1787 if (!super.equalsShallow(other_)) 1788 return false; 1789 if (!(other_ instanceof ProvisionComponent)) 1790 return false; 1791 ProvisionComponent o = (ProvisionComponent) other_; 1792 return compareValues(type, o.type, true); 1793 } 1794 1795 public boolean isEmpty() { 1796 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(type, period, actor, action 1797 , securityLabel, purpose, class_, code, dataPeriod, data, expression, provision 1798 ); 1799 } 1800 1801 public String fhirType() { 1802 return "Consent.provision"; 1803 1804 } 1805 1806 } 1807 1808 @Block() 1809 public static class ProvisionActorComponent extends BackboneElement implements IBaseBackboneElement { 1810 /** 1811 * How the individual is involved in the resources content that is described in the exception. 1812 */ 1813 @Child(name = "role", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=false, summary=false) 1814 @Description(shortDefinition="How the actor is involved", formalDefinition="How the individual is involved in the resources content that is described in the exception." ) 1815 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/participation-role-type") 1816 protected CodeableConcept role; 1817 1818 /** 1819 * The resource that identifies the actor. To identify actors by type, use group to identify a set of actors by some property they share (e.g. 'admitting officers'). 1820 */ 1821 @Child(name = "reference", type = {Device.class, Group.class, CareTeam.class, Organization.class, Patient.class, Practitioner.class, RelatedPerson.class, PractitionerRole.class}, order=2, min=0, max=1, modifier=false, summary=false) 1822 @Description(shortDefinition="Resource for the actor (or group, by role)", formalDefinition="The resource that identifies the actor. To identify actors by type, use group to identify a set of actors by some property they share (e.g. 'admitting officers')." ) 1823 protected Reference reference; 1824 1825 private static final long serialVersionUID = -1992921787L; 1826 1827 /** 1828 * Constructor 1829 */ 1830 public ProvisionActorComponent() { 1831 super(); 1832 } 1833 1834 /** 1835 * @return {@link #role} (How the individual is involved in the resources content that is described in the exception.) 1836 */ 1837 public CodeableConcept getRole() { 1838 if (this.role == null) 1839 if (Configuration.errorOnAutoCreate()) 1840 throw new Error("Attempt to auto-create ProvisionActorComponent.role"); 1841 else if (Configuration.doAutoCreate()) 1842 this.role = new CodeableConcept(); // cc 1843 return this.role; 1844 } 1845 1846 public boolean hasRole() { 1847 return this.role != null && !this.role.isEmpty(); 1848 } 1849 1850 /** 1851 * @param value {@link #role} (How the individual is involved in the resources content that is described in the exception.) 1852 */ 1853 public ProvisionActorComponent setRole(CodeableConcept value) { 1854 this.role = value; 1855 return this; 1856 } 1857 1858 /** 1859 * @return {@link #reference} (The resource that identifies the actor. To identify actors by type, use group to identify a set of actors by some property they share (e.g. 'admitting officers').) 1860 */ 1861 public Reference getReference() { 1862 if (this.reference == null) 1863 if (Configuration.errorOnAutoCreate()) 1864 throw new Error("Attempt to auto-create ProvisionActorComponent.reference"); 1865 else if (Configuration.doAutoCreate()) 1866 this.reference = new Reference(); // cc 1867 return this.reference; 1868 } 1869 1870 public boolean hasReference() { 1871 return this.reference != null && !this.reference.isEmpty(); 1872 } 1873 1874 /** 1875 * @param value {@link #reference} (The resource that identifies the actor. To identify actors by type, use group to identify a set of actors by some property they share (e.g. 'admitting officers').) 1876 */ 1877 public ProvisionActorComponent setReference(Reference value) { 1878 this.reference = value; 1879 return this; 1880 } 1881 1882 protected void listChildren(List<Property> children) { 1883 super.listChildren(children); 1884 children.add(new Property("role", "CodeableConcept", "How the individual is involved in the resources content that is described in the exception.", 0, 1, role)); 1885 children.add(new Property("reference", "Reference(Device|Group|CareTeam|Organization|Patient|Practitioner|RelatedPerson|PractitionerRole)", "The resource that identifies the actor. To identify actors by type, use group to identify a set of actors by some property they share (e.g. 'admitting officers').", 0, 1, reference)); 1886 } 1887 1888 @Override 1889 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1890 switch (_hash) { 1891 case 3506294: /*role*/ return new Property("role", "CodeableConcept", "How the individual is involved in the resources content that is described in the exception.", 0, 1, role); 1892 case -925155509: /*reference*/ return new Property("reference", "Reference(Device|Group|CareTeam|Organization|Patient|Practitioner|RelatedPerson|PractitionerRole)", "The resource that identifies the actor. To identify actors by type, use group to identify a set of actors by some property they share (e.g. 'admitting officers').", 0, 1, reference); 1893 default: return super.getNamedProperty(_hash, _name, _checkValid); 1894 } 1895 1896 } 1897 1898 @Override 1899 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1900 switch (hash) { 1901 case 3506294: /*role*/ return this.role == null ? new Base[0] : new Base[] {this.role}; // CodeableConcept 1902 case -925155509: /*reference*/ return this.reference == null ? new Base[0] : new Base[] {this.reference}; // Reference 1903 default: return super.getProperty(hash, name, checkValid); 1904 } 1905 1906 } 1907 1908 @Override 1909 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1910 switch (hash) { 1911 case 3506294: // role 1912 this.role = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1913 return value; 1914 case -925155509: // reference 1915 this.reference = TypeConvertor.castToReference(value); // Reference 1916 return value; 1917 default: return super.setProperty(hash, name, value); 1918 } 1919 1920 } 1921 1922 @Override 1923 public Base setProperty(String name, Base value) throws FHIRException { 1924 if (name.equals("role")) { 1925 this.role = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1926 } else if (name.equals("reference")) { 1927 this.reference = TypeConvertor.castToReference(value); // Reference 1928 } else 1929 return super.setProperty(name, value); 1930 return value; 1931 } 1932 1933 @Override 1934 public Base makeProperty(int hash, String name) throws FHIRException { 1935 switch (hash) { 1936 case 3506294: return getRole(); 1937 case -925155509: return getReference(); 1938 default: return super.makeProperty(hash, name); 1939 } 1940 1941 } 1942 1943 @Override 1944 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1945 switch (hash) { 1946 case 3506294: /*role*/ return new String[] {"CodeableConcept"}; 1947 case -925155509: /*reference*/ return new String[] {"Reference"}; 1948 default: return super.getTypesForProperty(hash, name); 1949 } 1950 1951 } 1952 1953 @Override 1954 public Base addChild(String name) throws FHIRException { 1955 if (name.equals("role")) { 1956 this.role = new CodeableConcept(); 1957 return this.role; 1958 } 1959 else if (name.equals("reference")) { 1960 this.reference = new Reference(); 1961 return this.reference; 1962 } 1963 else 1964 return super.addChild(name); 1965 } 1966 1967 public ProvisionActorComponent copy() { 1968 ProvisionActorComponent dst = new ProvisionActorComponent(); 1969 copyValues(dst); 1970 return dst; 1971 } 1972 1973 public void copyValues(ProvisionActorComponent dst) { 1974 super.copyValues(dst); 1975 dst.role = role == null ? null : role.copy(); 1976 dst.reference = reference == null ? null : reference.copy(); 1977 } 1978 1979 @Override 1980 public boolean equalsDeep(Base other_) { 1981 if (!super.equalsDeep(other_)) 1982 return false; 1983 if (!(other_ instanceof ProvisionActorComponent)) 1984 return false; 1985 ProvisionActorComponent o = (ProvisionActorComponent) other_; 1986 return compareDeep(role, o.role, true) && compareDeep(reference, o.reference, true); 1987 } 1988 1989 @Override 1990 public boolean equalsShallow(Base other_) { 1991 if (!super.equalsShallow(other_)) 1992 return false; 1993 if (!(other_ instanceof ProvisionActorComponent)) 1994 return false; 1995 ProvisionActorComponent o = (ProvisionActorComponent) other_; 1996 return true; 1997 } 1998 1999 public boolean isEmpty() { 2000 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(role, reference); 2001 } 2002 2003 public String fhirType() { 2004 return "Consent.provision.actor"; 2005 2006 } 2007 2008 } 2009 2010 @Block() 2011 public static class ProvisionDataComponent extends BackboneElement implements IBaseBackboneElement { 2012 /** 2013 * How the resource reference is interpreted when testing consent restrictions. 2014 */ 2015 @Child(name = "meaning", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=true) 2016 @Description(shortDefinition="instance | related | dependents | authoredby", formalDefinition="How the resource reference is interpreted when testing consent restrictions." ) 2017 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/consent-data-meaning") 2018 protected Enumeration<ConsentDataMeaning> meaning; 2019 2020 /** 2021 * A reference to a specific resource that defines which resources are covered by this consent. 2022 */ 2023 @Child(name = "reference", type = {Reference.class}, order=2, min=1, max=1, modifier=false, summary=true) 2024 @Description(shortDefinition="The actual data reference", formalDefinition="A reference to a specific resource that defines which resources are covered by this consent." ) 2025 protected Reference reference; 2026 2027 private static final long serialVersionUID = 1735979153L; 2028 2029 /** 2030 * Constructor 2031 */ 2032 public ProvisionDataComponent() { 2033 super(); 2034 } 2035 2036 /** 2037 * Constructor 2038 */ 2039 public ProvisionDataComponent(ConsentDataMeaning meaning, Reference reference) { 2040 super(); 2041 this.setMeaning(meaning); 2042 this.setReference(reference); 2043 } 2044 2045 /** 2046 * @return {@link #meaning} (How the resource reference is interpreted when testing consent restrictions.). This is the underlying object with id, value and extensions. The accessor "getMeaning" gives direct access to the value 2047 */ 2048 public Enumeration<ConsentDataMeaning> getMeaningElement() { 2049 if (this.meaning == null) 2050 if (Configuration.errorOnAutoCreate()) 2051 throw new Error("Attempt to auto-create ProvisionDataComponent.meaning"); 2052 else if (Configuration.doAutoCreate()) 2053 this.meaning = new Enumeration<ConsentDataMeaning>(new ConsentDataMeaningEnumFactory()); // bb 2054 return this.meaning; 2055 } 2056 2057 public boolean hasMeaningElement() { 2058 return this.meaning != null && !this.meaning.isEmpty(); 2059 } 2060 2061 public boolean hasMeaning() { 2062 return this.meaning != null && !this.meaning.isEmpty(); 2063 } 2064 2065 /** 2066 * @param value {@link #meaning} (How the resource reference is interpreted when testing consent restrictions.). This is the underlying object with id, value and extensions. The accessor "getMeaning" gives direct access to the value 2067 */ 2068 public ProvisionDataComponent setMeaningElement(Enumeration<ConsentDataMeaning> value) { 2069 this.meaning = value; 2070 return this; 2071 } 2072 2073 /** 2074 * @return How the resource reference is interpreted when testing consent restrictions. 2075 */ 2076 public ConsentDataMeaning getMeaning() { 2077 return this.meaning == null ? null : this.meaning.getValue(); 2078 } 2079 2080 /** 2081 * @param value How the resource reference is interpreted when testing consent restrictions. 2082 */ 2083 public ProvisionDataComponent setMeaning(ConsentDataMeaning value) { 2084 if (this.meaning == null) 2085 this.meaning = new Enumeration<ConsentDataMeaning>(new ConsentDataMeaningEnumFactory()); 2086 this.meaning.setValue(value); 2087 return this; 2088 } 2089 2090 /** 2091 * @return {@link #reference} (A reference to a specific resource that defines which resources are covered by this consent.) 2092 */ 2093 public Reference getReference() { 2094 if (this.reference == null) 2095 if (Configuration.errorOnAutoCreate()) 2096 throw new Error("Attempt to auto-create ProvisionDataComponent.reference"); 2097 else if (Configuration.doAutoCreate()) 2098 this.reference = new Reference(); // cc 2099 return this.reference; 2100 } 2101 2102 public boolean hasReference() { 2103 return this.reference != null && !this.reference.isEmpty(); 2104 } 2105 2106 /** 2107 * @param value {@link #reference} (A reference to a specific resource that defines which resources are covered by this consent.) 2108 */ 2109 public ProvisionDataComponent setReference(Reference value) { 2110 this.reference = value; 2111 return this; 2112 } 2113 2114 protected void listChildren(List<Property> children) { 2115 super.listChildren(children); 2116 children.add(new Property("meaning", "code", "How the resource reference is interpreted when testing consent restrictions.", 0, 1, meaning)); 2117 children.add(new Property("reference", "Reference(Any)", "A reference to a specific resource that defines which resources are covered by this consent.", 0, 1, reference)); 2118 } 2119 2120 @Override 2121 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 2122 switch (_hash) { 2123 case 938160637: /*meaning*/ return new Property("meaning", "code", "How the resource reference is interpreted when testing consent restrictions.", 0, 1, meaning); 2124 case -925155509: /*reference*/ return new Property("reference", "Reference(Any)", "A reference to a specific resource that defines which resources are covered by this consent.", 0, 1, reference); 2125 default: return super.getNamedProperty(_hash, _name, _checkValid); 2126 } 2127 2128 } 2129 2130 @Override 2131 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2132 switch (hash) { 2133 case 938160637: /*meaning*/ return this.meaning == null ? new Base[0] : new Base[] {this.meaning}; // Enumeration<ConsentDataMeaning> 2134 case -925155509: /*reference*/ return this.reference == null ? new Base[0] : new Base[] {this.reference}; // Reference 2135 default: return super.getProperty(hash, name, checkValid); 2136 } 2137 2138 } 2139 2140 @Override 2141 public Base setProperty(int hash, String name, Base value) throws FHIRException { 2142 switch (hash) { 2143 case 938160637: // meaning 2144 value = new ConsentDataMeaningEnumFactory().fromType(TypeConvertor.castToCode(value)); 2145 this.meaning = (Enumeration) value; // Enumeration<ConsentDataMeaning> 2146 return value; 2147 case -925155509: // reference 2148 this.reference = TypeConvertor.castToReference(value); // Reference 2149 return value; 2150 default: return super.setProperty(hash, name, value); 2151 } 2152 2153 } 2154 2155 @Override 2156 public Base setProperty(String name, Base value) throws FHIRException { 2157 if (name.equals("meaning")) { 2158 value = new ConsentDataMeaningEnumFactory().fromType(TypeConvertor.castToCode(value)); 2159 this.meaning = (Enumeration) value; // Enumeration<ConsentDataMeaning> 2160 } else if (name.equals("reference")) { 2161 this.reference = TypeConvertor.castToReference(value); // Reference 2162 } else 2163 return super.setProperty(name, value); 2164 return value; 2165 } 2166 2167 @Override 2168 public Base makeProperty(int hash, String name) throws FHIRException { 2169 switch (hash) { 2170 case 938160637: return getMeaningElement(); 2171 case -925155509: return getReference(); 2172 default: return super.makeProperty(hash, name); 2173 } 2174 2175 } 2176 2177 @Override 2178 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2179 switch (hash) { 2180 case 938160637: /*meaning*/ return new String[] {"code"}; 2181 case -925155509: /*reference*/ return new String[] {"Reference"}; 2182 default: return super.getTypesForProperty(hash, name); 2183 } 2184 2185 } 2186 2187 @Override 2188 public Base addChild(String name) throws FHIRException { 2189 if (name.equals("meaning")) { 2190 throw new FHIRException("Cannot call addChild on a primitive type Consent.provision.data.meaning"); 2191 } 2192 else if (name.equals("reference")) { 2193 this.reference = new Reference(); 2194 return this.reference; 2195 } 2196 else 2197 return super.addChild(name); 2198 } 2199 2200 public ProvisionDataComponent copy() { 2201 ProvisionDataComponent dst = new ProvisionDataComponent(); 2202 copyValues(dst); 2203 return dst; 2204 } 2205 2206 public void copyValues(ProvisionDataComponent dst) { 2207 super.copyValues(dst); 2208 dst.meaning = meaning == null ? null : meaning.copy(); 2209 dst.reference = reference == null ? null : reference.copy(); 2210 } 2211 2212 @Override 2213 public boolean equalsDeep(Base other_) { 2214 if (!super.equalsDeep(other_)) 2215 return false; 2216 if (!(other_ instanceof ProvisionDataComponent)) 2217 return false; 2218 ProvisionDataComponent o = (ProvisionDataComponent) other_; 2219 return compareDeep(meaning, o.meaning, true) && compareDeep(reference, o.reference, true); 2220 } 2221 2222 @Override 2223 public boolean equalsShallow(Base other_) { 2224 if (!super.equalsShallow(other_)) 2225 return false; 2226 if (!(other_ instanceof ProvisionDataComponent)) 2227 return false; 2228 ProvisionDataComponent o = (ProvisionDataComponent) other_; 2229 return compareValues(meaning, o.meaning, true); 2230 } 2231 2232 public boolean isEmpty() { 2233 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(meaning, reference); 2234 } 2235 2236 public String fhirType() { 2237 return "Consent.provision.data"; 2238 2239 } 2240 2241 } 2242 2243 /** 2244 * Unique identifier for this copy of the Consent Statement. 2245 */ 2246 @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 2247 @Description(shortDefinition="Identifier for this record (external references)", formalDefinition="Unique identifier for this copy of the Consent Statement." ) 2248 protected List<Identifier> identifier; 2249 2250 /** 2251 * Indicates the current state of this Consent resource. 2252 */ 2253 @Child(name = "status", type = {CodeType.class}, order=1, min=1, max=1, modifier=true, summary=true) 2254 @Description(shortDefinition="draft | active | inactive | not-done | entered-in-error | unknown", formalDefinition="Indicates the current state of this Consent resource." ) 2255 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/consent-state-codes") 2256 protected Enumeration<ConsentState> status; 2257 2258 /** 2259 * A classification of the type of consents found in the statement. This element supports indexing and retrieval of consent statements. 2260 */ 2261 @Child(name = "category", type = {CodeableConcept.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 2262 @Description(shortDefinition="Classification of the consent statement - for indexing/retrieval", formalDefinition="A classification of the type of consents found in the statement. This element supports indexing and retrieval of consent statements." ) 2263 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/consent-category") 2264 protected List<CodeableConcept> category; 2265 2266 /** 2267 * The patient/healthcare practitioner or group of persons to whom this consent applies. 2268 */ 2269 @Child(name = "subject", type = {Patient.class, Practitioner.class, Group.class}, order=3, min=0, max=1, modifier=false, summary=true) 2270 @Description(shortDefinition="Who the consent applies to", formalDefinition="The patient/healthcare practitioner or group of persons to whom this consent applies." ) 2271 protected Reference subject; 2272 2273 /** 2274 * Date and time the consent instance was agreed to. 2275 */ 2276 @Child(name = "dateTime", type = {DateTimeType.class}, order=4, min=0, max=1, modifier=false, summary=true) 2277 @Description(shortDefinition="When consent was agreed to", formalDefinition="Date and time the consent instance was agreed to." ) 2278 protected DateTimeType dateTime; 2279 2280 /** 2281 * The entity responsible for granting the rights listed in a Consent Directive. 2282 */ 2283 @Child(name = "grantor", type = {CareTeam.class, HealthcareService.class, Organization.class, Patient.class, Practitioner.class, RelatedPerson.class, PractitionerRole.class}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 2284 @Description(shortDefinition="Who is granting rights according to the policy and rules", formalDefinition="The entity responsible for granting the rights listed in a Consent Directive." ) 2285 protected List<Reference> grantor; 2286 2287 /** 2288 * The entity responsible for complying with the Consent Directive, including any obligations or limitations on authorizations and enforcement of prohibitions. 2289 */ 2290 @Child(name = "grantee", type = {CareTeam.class, HealthcareService.class, Organization.class, Patient.class, Practitioner.class, RelatedPerson.class, PractitionerRole.class}, order=6, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 2291 @Description(shortDefinition="Who is agreeing to the policy and rules", formalDefinition="The entity responsible for complying with the Consent Directive, including any obligations or limitations on authorizations and enforcement of prohibitions." ) 2292 protected List<Reference> grantee; 2293 2294 /** 2295 * The actor that manages the consent through its lifecycle. 2296 */ 2297 @Child(name = "manager", type = {HealthcareService.class, Organization.class, Patient.class, Practitioner.class}, order=7, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 2298 @Description(shortDefinition="Consent workflow management", formalDefinition="The actor that manages the consent through its lifecycle." ) 2299 protected List<Reference> manager; 2300 2301 /** 2302 * The actor that controls/enforces the access according to the consent. 2303 */ 2304 @Child(name = "controller", type = {HealthcareService.class, Organization.class, Patient.class, Practitioner.class}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 2305 @Description(shortDefinition="Consent Enforcer", formalDefinition="The actor that controls/enforces the access according to the consent." ) 2306 protected List<Reference> controller; 2307 2308 /** 2309 * The source on which this consent statement is based. The source might be a scanned original paper form. 2310 */ 2311 @Child(name = "sourceAttachment", type = {Attachment.class}, order=9, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 2312 @Description(shortDefinition="Source from which this consent is taken", formalDefinition="The source on which this consent statement is based. The source might be a scanned original paper form." ) 2313 protected List<Attachment> sourceAttachment; 2314 2315 /** 2316 * A reference to a consent that links back to such a source, a reference to a document repository (e.g. XDS) that stores the original consent document. 2317 */ 2318 @Child(name = "sourceReference", type = {Consent.class, DocumentReference.class, Contract.class, QuestionnaireResponse.class}, order=10, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 2319 @Description(shortDefinition="Source from which this consent is taken", formalDefinition="A reference to a consent that links back to such a source, a reference to a document repository (e.g. XDS) that stores the original consent document." ) 2320 protected List<Reference> sourceReference; 2321 2322 /** 2323 * A set of codes that indicate the regulatory basis (if any) that this consent supports. 2324 */ 2325 @Child(name = "regulatoryBasis", type = {CodeableConcept.class}, order=11, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 2326 @Description(shortDefinition="Regulations establishing base Consent", formalDefinition="A set of codes that indicate the regulatory basis (if any) that this consent supports." ) 2327 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/consent-policy") 2328 protected List<CodeableConcept> regulatoryBasis; 2329 2330 /** 2331 * A Reference or URL used to uniquely identify the policy the organization will enforce for this Consent. This Reference or URL should be specific to the version of the policy and should be dereferencable to a computable policy of some form. 2332 */ 2333 @Child(name = "policyBasis", type = {}, order=12, min=0, max=1, modifier=false, summary=false) 2334 @Description(shortDefinition="Computable version of the backing policy", formalDefinition="A Reference or URL used to uniquely identify the policy the organization will enforce for this Consent. This Reference or URL should be specific to the version of the policy and should be dereferencable to a computable policy of some form." ) 2335 protected ConsentPolicyBasisComponent policyBasis; 2336 2337 /** 2338 * A Reference to the human readable policy explaining the basis for the Consent. 2339 */ 2340 @Child(name = "policyText", type = {DocumentReference.class}, order=13, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 2341 @Description(shortDefinition="Human Readable Policy", formalDefinition="A Reference to the human readable policy explaining the basis for the Consent." ) 2342 protected List<Reference> policyText; 2343 2344 /** 2345 * Whether a treatment instruction (e.g. artificial respiration: yes or no) was verified with the patient, his/her family or another authorized person. 2346 */ 2347 @Child(name = "verification", type = {}, order=14, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 2348 @Description(shortDefinition="Consent Verified by patient or family", formalDefinition="Whether a treatment instruction (e.g. artificial respiration: yes or no) was verified with the patient, his/her family or another authorized person." ) 2349 protected List<ConsentVerificationComponent> verification; 2350 2351 /** 2352 * An exception to the base policy of this consent. An exception can be an addition or removal of access permissions. 2353 */ 2354 @Child(name = "provision", type = {}, order=15, min=0, max=1, modifier=false, summary=true) 2355 @Description(shortDefinition="Constraints to the base Consent.policyRule/Consent.policy", formalDefinition="An exception to the base policy of this consent. An exception can be an addition or removal of access permissions." ) 2356 protected ProvisionComponent provision; 2357 2358 private static final long serialVersionUID = 1252772004L; 2359 2360 /** 2361 * Constructor 2362 */ 2363 public Consent() { 2364 super(); 2365 } 2366 2367 /** 2368 * Constructor 2369 */ 2370 public Consent(ConsentState status) { 2371 super(); 2372 this.setStatus(status); 2373 } 2374 2375 /** 2376 * @return {@link #identifier} (Unique identifier for this copy of the Consent Statement.) 2377 */ 2378 public List<Identifier> getIdentifier() { 2379 if (this.identifier == null) 2380 this.identifier = new ArrayList<Identifier>(); 2381 return this.identifier; 2382 } 2383 2384 /** 2385 * @return Returns a reference to <code>this</code> for easy method chaining 2386 */ 2387 public Consent setIdentifier(List<Identifier> theIdentifier) { 2388 this.identifier = theIdentifier; 2389 return this; 2390 } 2391 2392 public boolean hasIdentifier() { 2393 if (this.identifier == null) 2394 return false; 2395 for (Identifier item : this.identifier) 2396 if (!item.isEmpty()) 2397 return true; 2398 return false; 2399 } 2400 2401 public Identifier addIdentifier() { //3 2402 Identifier t = new Identifier(); 2403 if (this.identifier == null) 2404 this.identifier = new ArrayList<Identifier>(); 2405 this.identifier.add(t); 2406 return t; 2407 } 2408 2409 public Consent addIdentifier(Identifier t) { //3 2410 if (t == null) 2411 return this; 2412 if (this.identifier == null) 2413 this.identifier = new ArrayList<Identifier>(); 2414 this.identifier.add(t); 2415 return this; 2416 } 2417 2418 /** 2419 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3} 2420 */ 2421 public Identifier getIdentifierFirstRep() { 2422 if (getIdentifier().isEmpty()) { 2423 addIdentifier(); 2424 } 2425 return getIdentifier().get(0); 2426 } 2427 2428 /** 2429 * @return {@link #status} (Indicates the current state of this Consent resource.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 2430 */ 2431 public Enumeration<ConsentState> getStatusElement() { 2432 if (this.status == null) 2433 if (Configuration.errorOnAutoCreate()) 2434 throw new Error("Attempt to auto-create Consent.status"); 2435 else if (Configuration.doAutoCreate()) 2436 this.status = new Enumeration<ConsentState>(new ConsentStateEnumFactory()); // bb 2437 return this.status; 2438 } 2439 2440 public boolean hasStatusElement() { 2441 return this.status != null && !this.status.isEmpty(); 2442 } 2443 2444 public boolean hasStatus() { 2445 return this.status != null && !this.status.isEmpty(); 2446 } 2447 2448 /** 2449 * @param value {@link #status} (Indicates the current state of this Consent resource.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 2450 */ 2451 public Consent setStatusElement(Enumeration<ConsentState> value) { 2452 this.status = value; 2453 return this; 2454 } 2455 2456 /** 2457 * @return Indicates the current state of this Consent resource. 2458 */ 2459 public ConsentState getStatus() { 2460 return this.status == null ? null : this.status.getValue(); 2461 } 2462 2463 /** 2464 * @param value Indicates the current state of this Consent resource. 2465 */ 2466 public Consent setStatus(ConsentState value) { 2467 if (this.status == null) 2468 this.status = new Enumeration<ConsentState>(new ConsentStateEnumFactory()); 2469 this.status.setValue(value); 2470 return this; 2471 } 2472 2473 /** 2474 * @return {@link #category} (A classification of the type of consents found in the statement. This element supports indexing and retrieval of consent statements.) 2475 */ 2476 public List<CodeableConcept> getCategory() { 2477 if (this.category == null) 2478 this.category = new ArrayList<CodeableConcept>(); 2479 return this.category; 2480 } 2481 2482 /** 2483 * @return Returns a reference to <code>this</code> for easy method chaining 2484 */ 2485 public Consent setCategory(List<CodeableConcept> theCategory) { 2486 this.category = theCategory; 2487 return this; 2488 } 2489 2490 public boolean hasCategory() { 2491 if (this.category == null) 2492 return false; 2493 for (CodeableConcept item : this.category) 2494 if (!item.isEmpty()) 2495 return true; 2496 return false; 2497 } 2498 2499 public CodeableConcept addCategory() { //3 2500 CodeableConcept t = new CodeableConcept(); 2501 if (this.category == null) 2502 this.category = new ArrayList<CodeableConcept>(); 2503 this.category.add(t); 2504 return t; 2505 } 2506 2507 public Consent addCategory(CodeableConcept t) { //3 2508 if (t == null) 2509 return this; 2510 if (this.category == null) 2511 this.category = new ArrayList<CodeableConcept>(); 2512 this.category.add(t); 2513 return this; 2514 } 2515 2516 /** 2517 * @return The first repetition of repeating field {@link #category}, creating it if it does not already exist {3} 2518 */ 2519 public CodeableConcept getCategoryFirstRep() { 2520 if (getCategory().isEmpty()) { 2521 addCategory(); 2522 } 2523 return getCategory().get(0); 2524 } 2525 2526 /** 2527 * @return {@link #subject} (The patient/healthcare practitioner or group of persons to whom this consent applies.) 2528 */ 2529 public Reference getSubject() { 2530 if (this.subject == null) 2531 if (Configuration.errorOnAutoCreate()) 2532 throw new Error("Attempt to auto-create Consent.subject"); 2533 else if (Configuration.doAutoCreate()) 2534 this.subject = new Reference(); // cc 2535 return this.subject; 2536 } 2537 2538 public boolean hasSubject() { 2539 return this.subject != null && !this.subject.isEmpty(); 2540 } 2541 2542 /** 2543 * @param value {@link #subject} (The patient/healthcare practitioner or group of persons to whom this consent applies.) 2544 */ 2545 public Consent setSubject(Reference value) { 2546 this.subject = value; 2547 return this; 2548 } 2549 2550 /** 2551 * @return {@link #dateTime} (Date and time the consent instance was agreed to.). This is the underlying object with id, value and extensions. The accessor "getDateTime" gives direct access to the value 2552 */ 2553 public DateTimeType getDateTimeElement() { 2554 if (this.dateTime == null) 2555 if (Configuration.errorOnAutoCreate()) 2556 throw new Error("Attempt to auto-create Consent.dateTime"); 2557 else if (Configuration.doAutoCreate()) 2558 this.dateTime = new DateTimeType(); // bb 2559 return this.dateTime; 2560 } 2561 2562 public boolean hasDateTimeElement() { 2563 return this.dateTime != null && !this.dateTime.isEmpty(); 2564 } 2565 2566 public boolean hasDateTime() { 2567 return this.dateTime != null && !this.dateTime.isEmpty(); 2568 } 2569 2570 /** 2571 * @param value {@link #dateTime} (Date and time the consent instance was agreed to.). This is the underlying object with id, value and extensions. The accessor "getDateTime" gives direct access to the value 2572 */ 2573 public Consent setDateTimeElement(DateTimeType value) { 2574 this.dateTime = value; 2575 return this; 2576 } 2577 2578 /** 2579 * @return Date and time the consent instance was agreed to. 2580 */ 2581 public Date getDateTime() { 2582 return this.dateTime == null ? null : this.dateTime.getValue(); 2583 } 2584 2585 /** 2586 * @param value Date and time the consent instance was agreed to. 2587 */ 2588 public Consent setDateTime(Date value) { 2589 if (value == null) 2590 this.dateTime = null; 2591 else { 2592 if (this.dateTime == null) 2593 this.dateTime = new DateTimeType(); 2594 this.dateTime.setValue(value); 2595 } 2596 return this; 2597 } 2598 2599 /** 2600 * @return {@link #grantor} (The entity responsible for granting the rights listed in a Consent Directive.) 2601 */ 2602 public List<Reference> getGrantor() { 2603 if (this.grantor == null) 2604 this.grantor = new ArrayList<Reference>(); 2605 return this.grantor; 2606 } 2607 2608 /** 2609 * @return Returns a reference to <code>this</code> for easy method chaining 2610 */ 2611 public Consent setGrantor(List<Reference> theGrantor) { 2612 this.grantor = theGrantor; 2613 return this; 2614 } 2615 2616 public boolean hasGrantor() { 2617 if (this.grantor == null) 2618 return false; 2619 for (Reference item : this.grantor) 2620 if (!item.isEmpty()) 2621 return true; 2622 return false; 2623 } 2624 2625 public Reference addGrantor() { //3 2626 Reference t = new Reference(); 2627 if (this.grantor == null) 2628 this.grantor = new ArrayList<Reference>(); 2629 this.grantor.add(t); 2630 return t; 2631 } 2632 2633 public Consent addGrantor(Reference t) { //3 2634 if (t == null) 2635 return this; 2636 if (this.grantor == null) 2637 this.grantor = new ArrayList<Reference>(); 2638 this.grantor.add(t); 2639 return this; 2640 } 2641 2642 /** 2643 * @return The first repetition of repeating field {@link #grantor}, creating it if it does not already exist {3} 2644 */ 2645 public Reference getGrantorFirstRep() { 2646 if (getGrantor().isEmpty()) { 2647 addGrantor(); 2648 } 2649 return getGrantor().get(0); 2650 } 2651 2652 /** 2653 * @return {@link #grantee} (The entity responsible for complying with the Consent Directive, including any obligations or limitations on authorizations and enforcement of prohibitions.) 2654 */ 2655 public List<Reference> getGrantee() { 2656 if (this.grantee == null) 2657 this.grantee = new ArrayList<Reference>(); 2658 return this.grantee; 2659 } 2660 2661 /** 2662 * @return Returns a reference to <code>this</code> for easy method chaining 2663 */ 2664 public Consent setGrantee(List<Reference> theGrantee) { 2665 this.grantee = theGrantee; 2666 return this; 2667 } 2668 2669 public boolean hasGrantee() { 2670 if (this.grantee == null) 2671 return false; 2672 for (Reference item : this.grantee) 2673 if (!item.isEmpty()) 2674 return true; 2675 return false; 2676 } 2677 2678 public Reference addGrantee() { //3 2679 Reference t = new Reference(); 2680 if (this.grantee == null) 2681 this.grantee = new ArrayList<Reference>(); 2682 this.grantee.add(t); 2683 return t; 2684 } 2685 2686 public Consent addGrantee(Reference t) { //3 2687 if (t == null) 2688 return this; 2689 if (this.grantee == null) 2690 this.grantee = new ArrayList<Reference>(); 2691 this.grantee.add(t); 2692 return this; 2693 } 2694 2695 /** 2696 * @return The first repetition of repeating field {@link #grantee}, creating it if it does not already exist {3} 2697 */ 2698 public Reference getGranteeFirstRep() { 2699 if (getGrantee().isEmpty()) { 2700 addGrantee(); 2701 } 2702 return getGrantee().get(0); 2703 } 2704 2705 /** 2706 * @return {@link #manager} (The actor that manages the consent through its lifecycle.) 2707 */ 2708 public List<Reference> getManager() { 2709 if (this.manager == null) 2710 this.manager = new ArrayList<Reference>(); 2711 return this.manager; 2712 } 2713 2714 /** 2715 * @return Returns a reference to <code>this</code> for easy method chaining 2716 */ 2717 public Consent setManager(List<Reference> theManager) { 2718 this.manager = theManager; 2719 return this; 2720 } 2721 2722 public boolean hasManager() { 2723 if (this.manager == null) 2724 return false; 2725 for (Reference item : this.manager) 2726 if (!item.isEmpty()) 2727 return true; 2728 return false; 2729 } 2730 2731 public Reference addManager() { //3 2732 Reference t = new Reference(); 2733 if (this.manager == null) 2734 this.manager = new ArrayList<Reference>(); 2735 this.manager.add(t); 2736 return t; 2737 } 2738 2739 public Consent addManager(Reference t) { //3 2740 if (t == null) 2741 return this; 2742 if (this.manager == null) 2743 this.manager = new ArrayList<Reference>(); 2744 this.manager.add(t); 2745 return this; 2746 } 2747 2748 /** 2749 * @return The first repetition of repeating field {@link #manager}, creating it if it does not already exist {3} 2750 */ 2751 public Reference getManagerFirstRep() { 2752 if (getManager().isEmpty()) { 2753 addManager(); 2754 } 2755 return getManager().get(0); 2756 } 2757 2758 /** 2759 * @return {@link #controller} (The actor that controls/enforces the access according to the consent.) 2760 */ 2761 public List<Reference> getController() { 2762 if (this.controller == null) 2763 this.controller = new ArrayList<Reference>(); 2764 return this.controller; 2765 } 2766 2767 /** 2768 * @return Returns a reference to <code>this</code> for easy method chaining 2769 */ 2770 public Consent setController(List<Reference> theController) { 2771 this.controller = theController; 2772 return this; 2773 } 2774 2775 public boolean hasController() { 2776 if (this.controller == null) 2777 return false; 2778 for (Reference item : this.controller) 2779 if (!item.isEmpty()) 2780 return true; 2781 return false; 2782 } 2783 2784 public Reference addController() { //3 2785 Reference t = new Reference(); 2786 if (this.controller == null) 2787 this.controller = new ArrayList<Reference>(); 2788 this.controller.add(t); 2789 return t; 2790 } 2791 2792 public Consent addController(Reference t) { //3 2793 if (t == null) 2794 return this; 2795 if (this.controller == null) 2796 this.controller = new ArrayList<Reference>(); 2797 this.controller.add(t); 2798 return this; 2799 } 2800 2801 /** 2802 * @return The first repetition of repeating field {@link #controller}, creating it if it does not already exist {3} 2803 */ 2804 public Reference getControllerFirstRep() { 2805 if (getController().isEmpty()) { 2806 addController(); 2807 } 2808 return getController().get(0); 2809 } 2810 2811 /** 2812 * @return {@link #sourceAttachment} (The source on which this consent statement is based. The source might be a scanned original paper form.) 2813 */ 2814 public List<Attachment> getSourceAttachment() { 2815 if (this.sourceAttachment == null) 2816 this.sourceAttachment = new ArrayList<Attachment>(); 2817 return this.sourceAttachment; 2818 } 2819 2820 /** 2821 * @return Returns a reference to <code>this</code> for easy method chaining 2822 */ 2823 public Consent setSourceAttachment(List<Attachment> theSourceAttachment) { 2824 this.sourceAttachment = theSourceAttachment; 2825 return this; 2826 } 2827 2828 public boolean hasSourceAttachment() { 2829 if (this.sourceAttachment == null) 2830 return false; 2831 for (Attachment item : this.sourceAttachment) 2832 if (!item.isEmpty()) 2833 return true; 2834 return false; 2835 } 2836 2837 public Attachment addSourceAttachment() { //3 2838 Attachment t = new Attachment(); 2839 if (this.sourceAttachment == null) 2840 this.sourceAttachment = new ArrayList<Attachment>(); 2841 this.sourceAttachment.add(t); 2842 return t; 2843 } 2844 2845 public Consent addSourceAttachment(Attachment t) { //3 2846 if (t == null) 2847 return this; 2848 if (this.sourceAttachment == null) 2849 this.sourceAttachment = new ArrayList<Attachment>(); 2850 this.sourceAttachment.add(t); 2851 return this; 2852 } 2853 2854 /** 2855 * @return The first repetition of repeating field {@link #sourceAttachment}, creating it if it does not already exist {3} 2856 */ 2857 public Attachment getSourceAttachmentFirstRep() { 2858 if (getSourceAttachment().isEmpty()) { 2859 addSourceAttachment(); 2860 } 2861 return getSourceAttachment().get(0); 2862 } 2863 2864 /** 2865 * @return {@link #sourceReference} (A reference to a consent that links back to such a source, a reference to a document repository (e.g. XDS) that stores the original consent document.) 2866 */ 2867 public List<Reference> getSourceReference() { 2868 if (this.sourceReference == null) 2869 this.sourceReference = new ArrayList<Reference>(); 2870 return this.sourceReference; 2871 } 2872 2873 /** 2874 * @return Returns a reference to <code>this</code> for easy method chaining 2875 */ 2876 public Consent setSourceReference(List<Reference> theSourceReference) { 2877 this.sourceReference = theSourceReference; 2878 return this; 2879 } 2880 2881 public boolean hasSourceReference() { 2882 if (this.sourceReference == null) 2883 return false; 2884 for (Reference item : this.sourceReference) 2885 if (!item.isEmpty()) 2886 return true; 2887 return false; 2888 } 2889 2890 public Reference addSourceReference() { //3 2891 Reference t = new Reference(); 2892 if (this.sourceReference == null) 2893 this.sourceReference = new ArrayList<Reference>(); 2894 this.sourceReference.add(t); 2895 return t; 2896 } 2897 2898 public Consent addSourceReference(Reference t) { //3 2899 if (t == null) 2900 return this; 2901 if (this.sourceReference == null) 2902 this.sourceReference = new ArrayList<Reference>(); 2903 this.sourceReference.add(t); 2904 return this; 2905 } 2906 2907 /** 2908 * @return The first repetition of repeating field {@link #sourceReference}, creating it if it does not already exist {3} 2909 */ 2910 public Reference getSourceReferenceFirstRep() { 2911 if (getSourceReference().isEmpty()) { 2912 addSourceReference(); 2913 } 2914 return getSourceReference().get(0); 2915 } 2916 2917 /** 2918 * @return {@link #regulatoryBasis} (A set of codes that indicate the regulatory basis (if any) that this consent supports.) 2919 */ 2920 public List<CodeableConcept> getRegulatoryBasis() { 2921 if (this.regulatoryBasis == null) 2922 this.regulatoryBasis = new ArrayList<CodeableConcept>(); 2923 return this.regulatoryBasis; 2924 } 2925 2926 /** 2927 * @return Returns a reference to <code>this</code> for easy method chaining 2928 */ 2929 public Consent setRegulatoryBasis(List<CodeableConcept> theRegulatoryBasis) { 2930 this.regulatoryBasis = theRegulatoryBasis; 2931 return this; 2932 } 2933 2934 public boolean hasRegulatoryBasis() { 2935 if (this.regulatoryBasis == null) 2936 return false; 2937 for (CodeableConcept item : this.regulatoryBasis) 2938 if (!item.isEmpty()) 2939 return true; 2940 return false; 2941 } 2942 2943 public CodeableConcept addRegulatoryBasis() { //3 2944 CodeableConcept t = new CodeableConcept(); 2945 if (this.regulatoryBasis == null) 2946 this.regulatoryBasis = new ArrayList<CodeableConcept>(); 2947 this.regulatoryBasis.add(t); 2948 return t; 2949 } 2950 2951 public Consent addRegulatoryBasis(CodeableConcept t) { //3 2952 if (t == null) 2953 return this; 2954 if (this.regulatoryBasis == null) 2955 this.regulatoryBasis = new ArrayList<CodeableConcept>(); 2956 this.regulatoryBasis.add(t); 2957 return this; 2958 } 2959 2960 /** 2961 * @return The first repetition of repeating field {@link #regulatoryBasis}, creating it if it does not already exist {3} 2962 */ 2963 public CodeableConcept getRegulatoryBasisFirstRep() { 2964 if (getRegulatoryBasis().isEmpty()) { 2965 addRegulatoryBasis(); 2966 } 2967 return getRegulatoryBasis().get(0); 2968 } 2969 2970 /** 2971 * @return {@link #policyBasis} (A Reference or URL used to uniquely identify the policy the organization will enforce for this Consent. This Reference or URL should be specific to the version of the policy and should be dereferencable to a computable policy of some form.) 2972 */ 2973 public ConsentPolicyBasisComponent getPolicyBasis() { 2974 if (this.policyBasis == null) 2975 if (Configuration.errorOnAutoCreate()) 2976 throw new Error("Attempt to auto-create Consent.policyBasis"); 2977 else if (Configuration.doAutoCreate()) 2978 this.policyBasis = new ConsentPolicyBasisComponent(); // cc 2979 return this.policyBasis; 2980 } 2981 2982 public boolean hasPolicyBasis() { 2983 return this.policyBasis != null && !this.policyBasis.isEmpty(); 2984 } 2985 2986 /** 2987 * @param value {@link #policyBasis} (A Reference or URL used to uniquely identify the policy the organization will enforce for this Consent. This Reference or URL should be specific to the version of the policy and should be dereferencable to a computable policy of some form.) 2988 */ 2989 public Consent setPolicyBasis(ConsentPolicyBasisComponent value) { 2990 this.policyBasis = value; 2991 return this; 2992 } 2993 2994 /** 2995 * @return {@link #policyText} (A Reference to the human readable policy explaining the basis for the Consent.) 2996 */ 2997 public List<Reference> getPolicyText() { 2998 if (this.policyText == null) 2999 this.policyText = new ArrayList<Reference>(); 3000 return this.policyText; 3001 } 3002 3003 /** 3004 * @return Returns a reference to <code>this</code> for easy method chaining 3005 */ 3006 public Consent setPolicyText(List<Reference> thePolicyText) { 3007 this.policyText = thePolicyText; 3008 return this; 3009 } 3010 3011 public boolean hasPolicyText() { 3012 if (this.policyText == null) 3013 return false; 3014 for (Reference item : this.policyText) 3015 if (!item.isEmpty()) 3016 return true; 3017 return false; 3018 } 3019 3020 public Reference addPolicyText() { //3 3021 Reference t = new Reference(); 3022 if (this.policyText == null) 3023 this.policyText = new ArrayList<Reference>(); 3024 this.policyText.add(t); 3025 return t; 3026 } 3027 3028 public Consent addPolicyText(Reference t) { //3 3029 if (t == null) 3030 return this; 3031 if (this.policyText == null) 3032 this.policyText = new ArrayList<Reference>(); 3033 this.policyText.add(t); 3034 return this; 3035 } 3036 3037 /** 3038 * @return The first repetition of repeating field {@link #policyText}, creating it if it does not already exist {3} 3039 */ 3040 public Reference getPolicyTextFirstRep() { 3041 if (getPolicyText().isEmpty()) { 3042 addPolicyText(); 3043 } 3044 return getPolicyText().get(0); 3045 } 3046 3047 /** 3048 * @return {@link #verification} (Whether a treatment instruction (e.g. artificial respiration: yes or no) was verified with the patient, his/her family or another authorized person.) 3049 */ 3050 public List<ConsentVerificationComponent> getVerification() { 3051 if (this.verification == null) 3052 this.verification = new ArrayList<ConsentVerificationComponent>(); 3053 return this.verification; 3054 } 3055 3056 /** 3057 * @return Returns a reference to <code>this</code> for easy method chaining 3058 */ 3059 public Consent setVerification(List<ConsentVerificationComponent> theVerification) { 3060 this.verification = theVerification; 3061 return this; 3062 } 3063 3064 public boolean hasVerification() { 3065 if (this.verification == null) 3066 return false; 3067 for (ConsentVerificationComponent item : this.verification) 3068 if (!item.isEmpty()) 3069 return true; 3070 return false; 3071 } 3072 3073 public ConsentVerificationComponent addVerification() { //3 3074 ConsentVerificationComponent t = new ConsentVerificationComponent(); 3075 if (this.verification == null) 3076 this.verification = new ArrayList<ConsentVerificationComponent>(); 3077 this.verification.add(t); 3078 return t; 3079 } 3080 3081 public Consent addVerification(ConsentVerificationComponent t) { //3 3082 if (t == null) 3083 return this; 3084 if (this.verification == null) 3085 this.verification = new ArrayList<ConsentVerificationComponent>(); 3086 this.verification.add(t); 3087 return this; 3088 } 3089 3090 /** 3091 * @return The first repetition of repeating field {@link #verification}, creating it if it does not already exist {3} 3092 */ 3093 public ConsentVerificationComponent getVerificationFirstRep() { 3094 if (getVerification().isEmpty()) { 3095 addVerification(); 3096 } 3097 return getVerification().get(0); 3098 } 3099 3100 /** 3101 * @return {@link #provision} (An exception to the base policy of this consent. An exception can be an addition or removal of access permissions.) 3102 */ 3103 public ProvisionComponent getProvision() { 3104 if (this.provision == null) 3105 if (Configuration.errorOnAutoCreate()) 3106 throw new Error("Attempt to auto-create Consent.provision"); 3107 else if (Configuration.doAutoCreate()) 3108 this.provision = new ProvisionComponent(); // cc 3109 return this.provision; 3110 } 3111 3112 public boolean hasProvision() { 3113 return this.provision != null && !this.provision.isEmpty(); 3114 } 3115 3116 /** 3117 * @param value {@link #provision} (An exception to the base policy of this consent. An exception can be an addition or removal of access permissions.) 3118 */ 3119 public Consent setProvision(ProvisionComponent value) { 3120 this.provision = value; 3121 return this; 3122 } 3123 3124 protected void listChildren(List<Property> children) { 3125 super.listChildren(children); 3126 children.add(new Property("identifier", "Identifier", "Unique identifier for this copy of the Consent Statement.", 0, java.lang.Integer.MAX_VALUE, identifier)); 3127 children.add(new Property("status", "code", "Indicates the current state of this Consent resource.", 0, 1, status)); 3128 children.add(new Property("category", "CodeableConcept", "A classification of the type of consents found in the statement. This element supports indexing and retrieval of consent statements.", 0, java.lang.Integer.MAX_VALUE, category)); 3129 children.add(new Property("subject", "Reference(Patient|Practitioner|Group)", "The patient/healthcare practitioner or group of persons to whom this consent applies.", 0, 1, subject)); 3130 children.add(new Property("dateTime", "dateTime", "Date and time the consent instance was agreed to.", 0, 1, dateTime)); 3131 children.add(new Property("grantor", "Reference(CareTeam|HealthcareService|Organization|Patient|Practitioner|RelatedPerson|PractitionerRole)", "The entity responsible for granting the rights listed in a Consent Directive.", 0, java.lang.Integer.MAX_VALUE, grantor)); 3132 children.add(new Property("grantee", "Reference(CareTeam|HealthcareService|Organization|Patient|Practitioner|RelatedPerson|PractitionerRole)", "The entity responsible for complying with the Consent Directive, including any obligations or limitations on authorizations and enforcement of prohibitions.", 0, java.lang.Integer.MAX_VALUE, grantee)); 3133 children.add(new Property("manager", "Reference(HealthcareService|Organization|Patient|Practitioner)", "The actor that manages the consent through its lifecycle.", 0, java.lang.Integer.MAX_VALUE, manager)); 3134 children.add(new Property("controller", "Reference(HealthcareService|Organization|Patient|Practitioner)", "The actor that controls/enforces the access according to the consent.", 0, java.lang.Integer.MAX_VALUE, controller)); 3135 children.add(new Property("sourceAttachment", "Attachment", "The source on which this consent statement is based. The source might be a scanned original paper form.", 0, java.lang.Integer.MAX_VALUE, sourceAttachment)); 3136 children.add(new Property("sourceReference", "Reference(Consent|DocumentReference|Contract|QuestionnaireResponse)", "A reference to a consent that links back to such a source, a reference to a document repository (e.g. XDS) that stores the original consent document.", 0, java.lang.Integer.MAX_VALUE, sourceReference)); 3137 children.add(new Property("regulatoryBasis", "CodeableConcept", "A set of codes that indicate the regulatory basis (if any) that this consent supports.", 0, java.lang.Integer.MAX_VALUE, regulatoryBasis)); 3138 children.add(new Property("policyBasis", "", "A Reference or URL used to uniquely identify the policy the organization will enforce for this Consent. This Reference or URL should be specific to the version of the policy and should be dereferencable to a computable policy of some form.", 0, 1, policyBasis)); 3139 children.add(new Property("policyText", "Reference(DocumentReference)", "A Reference to the human readable policy explaining the basis for the Consent.", 0, java.lang.Integer.MAX_VALUE, policyText)); 3140 children.add(new Property("verification", "", "Whether a treatment instruction (e.g. artificial respiration: yes or no) was verified with the patient, his/her family or another authorized person.", 0, java.lang.Integer.MAX_VALUE, verification)); 3141 children.add(new Property("provision", "", "An exception to the base policy of this consent. An exception can be an addition or removal of access permissions.", 0, 1, provision)); 3142 } 3143 3144 @Override 3145 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 3146 switch (_hash) { 3147 case -1618432855: /*identifier*/ return new Property("identifier", "Identifier", "Unique identifier for this copy of the Consent Statement.", 0, java.lang.Integer.MAX_VALUE, identifier); 3148 case -892481550: /*status*/ return new Property("status", "code", "Indicates the current state of this Consent resource.", 0, 1, status); 3149 case 50511102: /*category*/ return new Property("category", "CodeableConcept", "A classification of the type of consents found in the statement. This element supports indexing and retrieval of consent statements.", 0, java.lang.Integer.MAX_VALUE, category); 3150 case -1867885268: /*subject*/ return new Property("subject", "Reference(Patient|Practitioner|Group)", "The patient/healthcare practitioner or group of persons to whom this consent applies.", 0, 1, subject); 3151 case 1792749467: /*dateTime*/ return new Property("dateTime", "dateTime", "Date and time the consent instance was agreed to.", 0, 1, dateTime); 3152 case 280295423: /*grantor*/ return new Property("grantor", "Reference(CareTeam|HealthcareService|Organization|Patient|Practitioner|RelatedPerson|PractitionerRole)", "The entity responsible for granting the rights listed in a Consent Directive.", 0, java.lang.Integer.MAX_VALUE, grantor); 3153 case 280295100: /*grantee*/ return new Property("grantee", "Reference(CareTeam|HealthcareService|Organization|Patient|Practitioner|RelatedPerson|PractitionerRole)", "The entity responsible for complying with the Consent Directive, including any obligations or limitations on authorizations and enforcement of prohibitions.", 0, java.lang.Integer.MAX_VALUE, grantee); 3154 case 835260333: /*manager*/ return new Property("manager", "Reference(HealthcareService|Organization|Patient|Practitioner)", "The actor that manages the consent through its lifecycle.", 0, java.lang.Integer.MAX_VALUE, manager); 3155 case 637428636: /*controller*/ return new Property("controller", "Reference(HealthcareService|Organization|Patient|Practitioner)", "The actor that controls/enforces the access according to the consent.", 0, java.lang.Integer.MAX_VALUE, controller); 3156 case 1964406686: /*sourceAttachment*/ return new Property("sourceAttachment", "Attachment", "The source on which this consent statement is based. The source might be a scanned original paper form.", 0, java.lang.Integer.MAX_VALUE, sourceAttachment); 3157 case -244259472: /*sourceReference*/ return new Property("sourceReference", "Reference(Consent|DocumentReference|Contract|QuestionnaireResponse)", "A reference to a consent that links back to such a source, a reference to a document repository (e.g. XDS) that stores the original consent document.", 0, java.lang.Integer.MAX_VALUE, sourceReference); 3158 case -1780301690: /*regulatoryBasis*/ return new Property("regulatoryBasis", "CodeableConcept", "A set of codes that indicate the regulatory basis (if any) that this consent supports.", 0, java.lang.Integer.MAX_VALUE, regulatoryBasis); 3159 case 2138287660: /*policyBasis*/ return new Property("policyBasis", "", "A Reference or URL used to uniquely identify the policy the organization will enforce for this Consent. This Reference or URL should be specific to the version of the policy and should be dereferencable to a computable policy of some form.", 0, 1, policyBasis); 3160 case 1593537919: /*policyText*/ return new Property("policyText", "Reference(DocumentReference)", "A Reference to the human readable policy explaining the basis for the Consent.", 0, java.lang.Integer.MAX_VALUE, policyText); 3161 case -1484401125: /*verification*/ return new Property("verification", "", "Whether a treatment instruction (e.g. artificial respiration: yes or no) was verified with the patient, his/her family or another authorized person.", 0, java.lang.Integer.MAX_VALUE, verification); 3162 case -547120939: /*provision*/ return new Property("provision", "", "An exception to the base policy of this consent. An exception can be an addition or removal of access permissions.", 0, 1, provision); 3163 default: return super.getNamedProperty(_hash, _name, _checkValid); 3164 } 3165 3166 } 3167 3168 @Override 3169 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 3170 switch (hash) { 3171 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 3172 case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<ConsentState> 3173 case 50511102: /*category*/ return this.category == null ? new Base[0] : this.category.toArray(new Base[this.category.size()]); // CodeableConcept 3174 case -1867885268: /*subject*/ return this.subject == null ? new Base[0] : new Base[] {this.subject}; // Reference 3175 case 1792749467: /*dateTime*/ return this.dateTime == null ? new Base[0] : new Base[] {this.dateTime}; // DateTimeType 3176 case 280295423: /*grantor*/ return this.grantor == null ? new Base[0] : this.grantor.toArray(new Base[this.grantor.size()]); // Reference 3177 case 280295100: /*grantee*/ return this.grantee == null ? new Base[0] : this.grantee.toArray(new Base[this.grantee.size()]); // Reference 3178 case 835260333: /*manager*/ return this.manager == null ? new Base[0] : this.manager.toArray(new Base[this.manager.size()]); // Reference 3179 case 637428636: /*controller*/ return this.controller == null ? new Base[0] : this.controller.toArray(new Base[this.controller.size()]); // Reference 3180 case 1964406686: /*sourceAttachment*/ return this.sourceAttachment == null ? new Base[0] : this.sourceAttachment.toArray(new Base[this.sourceAttachment.size()]); // Attachment 3181 case -244259472: /*sourceReference*/ return this.sourceReference == null ? new Base[0] : this.sourceReference.toArray(new Base[this.sourceReference.size()]); // Reference 3182 case -1780301690: /*regulatoryBasis*/ return this.regulatoryBasis == null ? new Base[0] : this.regulatoryBasis.toArray(new Base[this.regulatoryBasis.size()]); // CodeableConcept 3183 case 2138287660: /*policyBasis*/ return this.policyBasis == null ? new Base[0] : new Base[] {this.policyBasis}; // ConsentPolicyBasisComponent 3184 case 1593537919: /*policyText*/ return this.policyText == null ? new Base[0] : this.policyText.toArray(new Base[this.policyText.size()]); // Reference 3185 case -1484401125: /*verification*/ return this.verification == null ? new Base[0] : this.verification.toArray(new Base[this.verification.size()]); // ConsentVerificationComponent 3186 case -547120939: /*provision*/ return this.provision == null ? new Base[0] : new Base[] {this.provision}; // ProvisionComponent 3187 default: return super.getProperty(hash, name, checkValid); 3188 } 3189 3190 } 3191 3192 @Override 3193 public Base setProperty(int hash, String name, Base value) throws FHIRException { 3194 switch (hash) { 3195 case -1618432855: // identifier 3196 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier 3197 return value; 3198 case -892481550: // status 3199 value = new ConsentStateEnumFactory().fromType(TypeConvertor.castToCode(value)); 3200 this.status = (Enumeration) value; // Enumeration<ConsentState> 3201 return value; 3202 case 50511102: // category 3203 this.getCategory().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 3204 return value; 3205 case -1867885268: // subject 3206 this.subject = TypeConvertor.castToReference(value); // Reference 3207 return value; 3208 case 1792749467: // dateTime 3209 this.dateTime = TypeConvertor.castToDateTime(value); // DateTimeType 3210 return value; 3211 case 280295423: // grantor 3212 this.getGrantor().add(TypeConvertor.castToReference(value)); // Reference 3213 return value; 3214 case 280295100: // grantee 3215 this.getGrantee().add(TypeConvertor.castToReference(value)); // Reference 3216 return value; 3217 case 835260333: // manager 3218 this.getManager().add(TypeConvertor.castToReference(value)); // Reference 3219 return value; 3220 case 637428636: // controller 3221 this.getController().add(TypeConvertor.castToReference(value)); // Reference 3222 return value; 3223 case 1964406686: // sourceAttachment 3224 this.getSourceAttachment().add(TypeConvertor.castToAttachment(value)); // Attachment 3225 return value; 3226 case -244259472: // sourceReference 3227 this.getSourceReference().add(TypeConvertor.castToReference(value)); // Reference 3228 return value; 3229 case -1780301690: // regulatoryBasis 3230 this.getRegulatoryBasis().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 3231 return value; 3232 case 2138287660: // policyBasis 3233 this.policyBasis = (ConsentPolicyBasisComponent) value; // ConsentPolicyBasisComponent 3234 return value; 3235 case 1593537919: // policyText 3236 this.getPolicyText().add(TypeConvertor.castToReference(value)); // Reference 3237 return value; 3238 case -1484401125: // verification 3239 this.getVerification().add((ConsentVerificationComponent) value); // ConsentVerificationComponent 3240 return value; 3241 case -547120939: // provision 3242 this.provision = (ProvisionComponent) value; // ProvisionComponent 3243 return value; 3244 default: return super.setProperty(hash, name, value); 3245 } 3246 3247 } 3248 3249 @Override 3250 public Base setProperty(String name, Base value) throws FHIRException { 3251 if (name.equals("identifier")) { 3252 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); 3253 } else if (name.equals("status")) { 3254 value = new ConsentStateEnumFactory().fromType(TypeConvertor.castToCode(value)); 3255 this.status = (Enumeration) value; // Enumeration<ConsentState> 3256 } else if (name.equals("category")) { 3257 this.getCategory().add(TypeConvertor.castToCodeableConcept(value)); 3258 } else if (name.equals("subject")) { 3259 this.subject = TypeConvertor.castToReference(value); // Reference 3260 } else if (name.equals("dateTime")) { 3261 this.dateTime = TypeConvertor.castToDateTime(value); // DateTimeType 3262 } else if (name.equals("grantor")) { 3263 this.getGrantor().add(TypeConvertor.castToReference(value)); 3264 } else if (name.equals("grantee")) { 3265 this.getGrantee().add(TypeConvertor.castToReference(value)); 3266 } else if (name.equals("manager")) { 3267 this.getManager().add(TypeConvertor.castToReference(value)); 3268 } else if (name.equals("controller")) { 3269 this.getController().add(TypeConvertor.castToReference(value)); 3270 } else if (name.equals("sourceAttachment")) { 3271 this.getSourceAttachment().add(TypeConvertor.castToAttachment(value)); 3272 } else if (name.equals("sourceReference")) { 3273 this.getSourceReference().add(TypeConvertor.castToReference(value)); 3274 } else if (name.equals("regulatoryBasis")) { 3275 this.getRegulatoryBasis().add(TypeConvertor.castToCodeableConcept(value)); 3276 } else if (name.equals("policyBasis")) { 3277 this.policyBasis = (ConsentPolicyBasisComponent) value; // ConsentPolicyBasisComponent 3278 } else if (name.equals("policyText")) { 3279 this.getPolicyText().add(TypeConvertor.castToReference(value)); 3280 } else if (name.equals("verification")) { 3281 this.getVerification().add((ConsentVerificationComponent) value); 3282 } else if (name.equals("provision")) { 3283 this.provision = (ProvisionComponent) value; // ProvisionComponent 3284 } else 3285 return super.setProperty(name, value); 3286 return value; 3287 } 3288 3289 @Override 3290 public Base makeProperty(int hash, String name) throws FHIRException { 3291 switch (hash) { 3292 case -1618432855: return addIdentifier(); 3293 case -892481550: return getStatusElement(); 3294 case 50511102: return addCategory(); 3295 case -1867885268: return getSubject(); 3296 case 1792749467: return getDateTimeElement(); 3297 case 280295423: return addGrantor(); 3298 case 280295100: return addGrantee(); 3299 case 835260333: return addManager(); 3300 case 637428636: return addController(); 3301 case 1964406686: return addSourceAttachment(); 3302 case -244259472: return addSourceReference(); 3303 case -1780301690: return addRegulatoryBasis(); 3304 case 2138287660: return getPolicyBasis(); 3305 case 1593537919: return addPolicyText(); 3306 case -1484401125: return addVerification(); 3307 case -547120939: return getProvision(); 3308 default: return super.makeProperty(hash, name); 3309 } 3310 3311 } 3312 3313 @Override 3314 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 3315 switch (hash) { 3316 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 3317 case -892481550: /*status*/ return new String[] {"code"}; 3318 case 50511102: /*category*/ return new String[] {"CodeableConcept"}; 3319 case -1867885268: /*subject*/ return new String[] {"Reference"}; 3320 case 1792749467: /*dateTime*/ return new String[] {"dateTime"}; 3321 case 280295423: /*grantor*/ return new String[] {"Reference"}; 3322 case 280295100: /*grantee*/ return new String[] {"Reference"}; 3323 case 835260333: /*manager*/ return new String[] {"Reference"}; 3324 case 637428636: /*controller*/ return new String[] {"Reference"}; 3325 case 1964406686: /*sourceAttachment*/ return new String[] {"Attachment"}; 3326 case -244259472: /*sourceReference*/ return new String[] {"Reference"}; 3327 case -1780301690: /*regulatoryBasis*/ return new String[] {"CodeableConcept"}; 3328 case 2138287660: /*policyBasis*/ return new String[] {}; 3329 case 1593537919: /*policyText*/ return new String[] {"Reference"}; 3330 case -1484401125: /*verification*/ return new String[] {}; 3331 case -547120939: /*provision*/ return new String[] {}; 3332 default: return super.getTypesForProperty(hash, name); 3333 } 3334 3335 } 3336 3337 @Override 3338 public Base addChild(String name) throws FHIRException { 3339 if (name.equals("identifier")) { 3340 return addIdentifier(); 3341 } 3342 else if (name.equals("status")) { 3343 throw new FHIRException("Cannot call addChild on a primitive type Consent.status"); 3344 } 3345 else if (name.equals("category")) { 3346 return addCategory(); 3347 } 3348 else if (name.equals("subject")) { 3349 this.subject = new Reference(); 3350 return this.subject; 3351 } 3352 else if (name.equals("dateTime")) { 3353 throw new FHIRException("Cannot call addChild on a primitive type Consent.dateTime"); 3354 } 3355 else if (name.equals("grantor")) { 3356 return addGrantor(); 3357 } 3358 else if (name.equals("grantee")) { 3359 return addGrantee(); 3360 } 3361 else if (name.equals("manager")) { 3362 return addManager(); 3363 } 3364 else if (name.equals("controller")) { 3365 return addController(); 3366 } 3367 else if (name.equals("sourceAttachment")) { 3368 return addSourceAttachment(); 3369 } 3370 else if (name.equals("sourceReference")) { 3371 return addSourceReference(); 3372 } 3373 else if (name.equals("regulatoryBasis")) { 3374 return addRegulatoryBasis(); 3375 } 3376 else if (name.equals("policyBasis")) { 3377 this.policyBasis = new ConsentPolicyBasisComponent(); 3378 return this.policyBasis; 3379 } 3380 else if (name.equals("policyText")) { 3381 return addPolicyText(); 3382 } 3383 else if (name.equals("verification")) { 3384 return addVerification(); 3385 } 3386 else if (name.equals("provision")) { 3387 this.provision = new ProvisionComponent(); 3388 return this.provision; 3389 } 3390 else 3391 return super.addChild(name); 3392 } 3393 3394 public String fhirType() { 3395 return "Consent"; 3396 3397 } 3398 3399 public Consent copy() { 3400 Consent dst = new Consent(); 3401 copyValues(dst); 3402 return dst; 3403 } 3404 3405 public void copyValues(Consent dst) { 3406 super.copyValues(dst); 3407 if (identifier != null) { 3408 dst.identifier = new ArrayList<Identifier>(); 3409 for (Identifier i : identifier) 3410 dst.identifier.add(i.copy()); 3411 }; 3412 dst.status = status == null ? null : status.copy(); 3413 if (category != null) { 3414 dst.category = new ArrayList<CodeableConcept>(); 3415 for (CodeableConcept i : category) 3416 dst.category.add(i.copy()); 3417 }; 3418 dst.subject = subject == null ? null : subject.copy(); 3419 dst.dateTime = dateTime == null ? null : dateTime.copy(); 3420 if (grantor != null) { 3421 dst.grantor = new ArrayList<Reference>(); 3422 for (Reference i : grantor) 3423 dst.grantor.add(i.copy()); 3424 }; 3425 if (grantee != null) { 3426 dst.grantee = new ArrayList<Reference>(); 3427 for (Reference i : grantee) 3428 dst.grantee.add(i.copy()); 3429 }; 3430 if (manager != null) { 3431 dst.manager = new ArrayList<Reference>(); 3432 for (Reference i : manager) 3433 dst.manager.add(i.copy()); 3434 }; 3435 if (controller != null) { 3436 dst.controller = new ArrayList<Reference>(); 3437 for (Reference i : controller) 3438 dst.controller.add(i.copy()); 3439 }; 3440 if (sourceAttachment != null) { 3441 dst.sourceAttachment = new ArrayList<Attachment>(); 3442 for (Attachment i : sourceAttachment) 3443 dst.sourceAttachment.add(i.copy()); 3444 }; 3445 if (sourceReference != null) { 3446 dst.sourceReference = new ArrayList<Reference>(); 3447 for (Reference i : sourceReference) 3448 dst.sourceReference.add(i.copy()); 3449 }; 3450 if (regulatoryBasis != null) { 3451 dst.regulatoryBasis = new ArrayList<CodeableConcept>(); 3452 for (CodeableConcept i : regulatoryBasis) 3453 dst.regulatoryBasis.add(i.copy()); 3454 }; 3455 dst.policyBasis = policyBasis == null ? null : policyBasis.copy(); 3456 if (policyText != null) { 3457 dst.policyText = new ArrayList<Reference>(); 3458 for (Reference i : policyText) 3459 dst.policyText.add(i.copy()); 3460 }; 3461 if (verification != null) { 3462 dst.verification = new ArrayList<ConsentVerificationComponent>(); 3463 for (ConsentVerificationComponent i : verification) 3464 dst.verification.add(i.copy()); 3465 }; 3466 dst.provision = provision == null ? null : provision.copy(); 3467 } 3468 3469 protected Consent typedCopy() { 3470 return copy(); 3471 } 3472 3473 @Override 3474 public boolean equalsDeep(Base other_) { 3475 if (!super.equalsDeep(other_)) 3476 return false; 3477 if (!(other_ instanceof Consent)) 3478 return false; 3479 Consent o = (Consent) other_; 3480 return compareDeep(identifier, o.identifier, true) && compareDeep(status, o.status, true) && compareDeep(category, o.category, true) 3481 && compareDeep(subject, o.subject, true) && compareDeep(dateTime, o.dateTime, true) && compareDeep(grantor, o.grantor, true) 3482 && compareDeep(grantee, o.grantee, true) && compareDeep(manager, o.manager, true) && compareDeep(controller, o.controller, true) 3483 && compareDeep(sourceAttachment, o.sourceAttachment, true) && compareDeep(sourceReference, o.sourceReference, true) 3484 && compareDeep(regulatoryBasis, o.regulatoryBasis, true) && compareDeep(policyBasis, o.policyBasis, true) 3485 && compareDeep(policyText, o.policyText, true) && compareDeep(verification, o.verification, true) 3486 && compareDeep(provision, o.provision, true); 3487 } 3488 3489 @Override 3490 public boolean equalsShallow(Base other_) { 3491 if (!super.equalsShallow(other_)) 3492 return false; 3493 if (!(other_ instanceof Consent)) 3494 return false; 3495 Consent o = (Consent) other_; 3496 return compareValues(status, o.status, true) && compareValues(dateTime, o.dateTime, true); 3497 } 3498 3499 public boolean isEmpty() { 3500 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, status, category 3501 , subject, dateTime, grantor, grantee, manager, controller, sourceAttachment, sourceReference 3502 , regulatoryBasis, policyBasis, policyText, verification, provision); 3503 } 3504 3505 @Override 3506 public ResourceType getResourceType() { 3507 return ResourceType.Consent; 3508 } 3509 3510 /** 3511 * Search parameter: <b>action</b> 3512 * <p> 3513 * Description: <b>Actions controlled by this rule</b><br> 3514 * Type: <b>token</b><br> 3515 * Path: <b>Consent.provision.action</b><br> 3516 * </p> 3517 */ 3518 @SearchParamDefinition(name="action", path="Consent.provision.action", description="Actions controlled by this rule", type="token" ) 3519 public static final String SP_ACTION = "action"; 3520 /** 3521 * <b>Fluent Client</b> search parameter constant for <b>action</b> 3522 * <p> 3523 * Description: <b>Actions controlled by this rule</b><br> 3524 * Type: <b>token</b><br> 3525 * Path: <b>Consent.provision.action</b><br> 3526 * </p> 3527 */ 3528 public static final ca.uhn.fhir.rest.gclient.TokenClientParam ACTION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_ACTION); 3529 3530 /** 3531 * Search parameter: <b>actor</b> 3532 * <p> 3533 * Description: <b>Resource for the actor (or group, by role)</b><br> 3534 * Type: <b>reference</b><br> 3535 * Path: <b>Consent.provision.actor.reference</b><br> 3536 * </p> 3537 */ 3538 @SearchParamDefinition(name="actor", path="Consent.provision.actor.reference", description="Resource for the actor (or group, by role)", type="reference", target={CareTeam.class, Device.class, Group.class, Organization.class, Patient.class, Practitioner.class, PractitionerRole.class, RelatedPerson.class } ) 3539 public static final String SP_ACTOR = "actor"; 3540 /** 3541 * <b>Fluent Client</b> search parameter constant for <b>actor</b> 3542 * <p> 3543 * Description: <b>Resource for the actor (or group, by role)</b><br> 3544 * Type: <b>reference</b><br> 3545 * Path: <b>Consent.provision.actor.reference</b><br> 3546 * </p> 3547 */ 3548 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ACTOR = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ACTOR); 3549 3550/** 3551 * Constant for fluent queries to be used to add include statements. Specifies 3552 * the path value of "<b>Consent:actor</b>". 3553 */ 3554 public static final ca.uhn.fhir.model.api.Include INCLUDE_ACTOR = new ca.uhn.fhir.model.api.Include("Consent:actor").toLocked(); 3555 3556 /** 3557 * Search parameter: <b>category</b> 3558 * <p> 3559 * Description: <b>Classification of the consent statement - for indexing/retrieval</b><br> 3560 * Type: <b>token</b><br> 3561 * Path: <b>Consent.category</b><br> 3562 * </p> 3563 */ 3564 @SearchParamDefinition(name="category", path="Consent.category", description="Classification of the consent statement - for indexing/retrieval", type="token" ) 3565 public static final String SP_CATEGORY = "category"; 3566 /** 3567 * <b>Fluent Client</b> search parameter constant for <b>category</b> 3568 * <p> 3569 * Description: <b>Classification of the consent statement - for indexing/retrieval</b><br> 3570 * Type: <b>token</b><br> 3571 * Path: <b>Consent.category</b><br> 3572 * </p> 3573 */ 3574 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CATEGORY = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CATEGORY); 3575 3576 /** 3577 * Search parameter: <b>controller</b> 3578 * <p> 3579 * Description: <b>Consent Enforcer</b><br> 3580 * Type: <b>reference</b><br> 3581 * Path: <b>Consent.controller</b><br> 3582 * </p> 3583 */ 3584 @SearchParamDefinition(name="controller", path="Consent.controller", description="Consent Enforcer", type="reference", target={HealthcareService.class, Organization.class, Patient.class, Practitioner.class } ) 3585 public static final String SP_CONTROLLER = "controller"; 3586 /** 3587 * <b>Fluent Client</b> search parameter constant for <b>controller</b> 3588 * <p> 3589 * Description: <b>Consent Enforcer</b><br> 3590 * Type: <b>reference</b><br> 3591 * Path: <b>Consent.controller</b><br> 3592 * </p> 3593 */ 3594 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam CONTROLLER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_CONTROLLER); 3595 3596/** 3597 * Constant for fluent queries to be used to add include statements. Specifies 3598 * the path value of "<b>Consent:controller</b>". 3599 */ 3600 public static final ca.uhn.fhir.model.api.Include INCLUDE_CONTROLLER = new ca.uhn.fhir.model.api.Include("Consent:controller").toLocked(); 3601 3602 /** 3603 * Search parameter: <b>data</b> 3604 * <p> 3605 * Description: <b>The actual data reference</b><br> 3606 * Type: <b>reference</b><br> 3607 * Path: <b>Consent.provision.data.reference</b><br> 3608 * </p> 3609 */ 3610 @SearchParamDefinition(name="data", path="Consent.provision.data.reference", description="The actual data reference", type="reference", target={Account.class, ActivityDefinition.class, ActorDefinition.class, AdministrableProductDefinition.class, AdverseEvent.class, AllergyIntolerance.class, Appointment.class, AppointmentResponse.class, ArtifactAssessment.class, AuditEvent.class, Basic.class, Binary.class, BiologicallyDerivedProduct.class, BodyStructure.class, Bundle.class, CapabilityStatement.class, CarePlan.class, CareTeam.class, ChargeItem.class, ChargeItemDefinition.class, Citation.class, Claim.class, ClaimResponse.class, ClinicalImpression.class, ClinicalUseDefinition.class, CodeSystem.class, Communication.class, CommunicationRequest.class, CompartmentDefinition.class, Composition.class, ConceptMap.class, Condition.class, ConditionDefinition.class, Consent.class, Contract.class, Coverage.class, CoverageEligibilityRequest.class, CoverageEligibilityResponse.class, DetectedIssue.class, Device.class, DeviceDefinition.class, DeviceDispense.class, DeviceMetric.class, DeviceRequest.class, DeviceUsage.class, DiagnosticReport.class, DocumentManifest.class, DocumentReference.class, Encounter.class, Endpoint.class, EnrollmentRequest.class, EnrollmentResponse.class, EpisodeOfCare.class, EventDefinition.class, Evidence.class, EvidenceReport.class, EvidenceVariable.class, ExampleScenario.class, ExplanationOfBenefit.class, FamilyMemberHistory.class, Flag.class, FormularyItem.class, GenomicStudy.class, Goal.class, GraphDefinition.class, Group.class, GuidanceResponse.class, HealthcareService.class, ImagingSelection.class, ImagingStudy.class, Immunization.class, ImmunizationEvaluation.class, ImmunizationRecommendation.class, ImplementationGuide.class, Ingredient.class, InsurancePlan.class, InventoryReport.class, Invoice.class, Library.class, Linkage.class, ListResource.class, Location.class, ManufacturedItemDefinition.class, Measure.class, MeasureReport.class, Medication.class, MedicationAdministration.class, MedicationDispense.class, MedicationKnowledge.class, MedicationRequest.class, MedicationUsage.class, MedicinalProductDefinition.class, MessageDefinition.class, MessageHeader.class, MolecularSequence.class, NamingSystem.class, NutritionIntake.class, NutritionOrder.class, NutritionProduct.class, Observation.class, ObservationDefinition.class, OperationDefinition.class, OperationOutcome.class, Organization.class, OrganizationAffiliation.class, PackagedProductDefinition.class, Patient.class, PaymentNotice.class, PaymentReconciliation.class, Permission.class, Person.class, PlanDefinition.class, Practitioner.class, PractitionerRole.class, Procedure.class, Provenance.class, Questionnaire.class, QuestionnaireResponse.class, RegulatedAuthorization.class, RelatedPerson.class, RequestOrchestration.class, Requirements.class, ResearchStudy.class, ResearchSubject.class, RiskAssessment.class, Schedule.class, SearchParameter.class, ServiceRequest.class, Slot.class, Specimen.class, SpecimenDefinition.class, StructureDefinition.class, StructureMap.class, Subscription.class, SubscriptionStatus.class, SubscriptionTopic.class, Substance.class, SubstanceDefinition.class, SubstanceNucleicAcid.class, SubstancePolymer.class, SubstanceProtein.class, SubstanceReferenceInformation.class, SubstanceSourceMaterial.class, SupplyDelivery.class, SupplyRequest.class, Task.class, TerminologyCapabilities.class, TestReport.class, TestScript.class, Transport.class, ValueSet.class, VerificationResult.class, VisionPrescription.class } ) 3611 public static final String SP_DATA = "data"; 3612 /** 3613 * <b>Fluent Client</b> search parameter constant for <b>data</b> 3614 * <p> 3615 * Description: <b>The actual data reference</b><br> 3616 * Type: <b>reference</b><br> 3617 * Path: <b>Consent.provision.data.reference</b><br> 3618 * </p> 3619 */ 3620 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam DATA = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_DATA); 3621 3622/** 3623 * Constant for fluent queries to be used to add include statements. Specifies 3624 * the path value of "<b>Consent:data</b>". 3625 */ 3626 public static final ca.uhn.fhir.model.api.Include INCLUDE_DATA = new ca.uhn.fhir.model.api.Include("Consent:data").toLocked(); 3627 3628 /** 3629 * Search parameter: <b>grantee</b> 3630 * <p> 3631 * Description: <b>Who is agreeing to the policy and rules</b><br> 3632 * Type: <b>reference</b><br> 3633 * Path: <b>Consent.grantee</b><br> 3634 * </p> 3635 */ 3636 @SearchParamDefinition(name="grantee", path="Consent.grantee", description="Who is agreeing to the policy and rules", type="reference", target={CareTeam.class, HealthcareService.class, Organization.class, Patient.class, Practitioner.class, PractitionerRole.class, RelatedPerson.class } ) 3637 public static final String SP_GRANTEE = "grantee"; 3638 /** 3639 * <b>Fluent Client</b> search parameter constant for <b>grantee</b> 3640 * <p> 3641 * Description: <b>Who is agreeing to the policy and rules</b><br> 3642 * Type: <b>reference</b><br> 3643 * Path: <b>Consent.grantee</b><br> 3644 * </p> 3645 */ 3646 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam GRANTEE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_GRANTEE); 3647 3648/** 3649 * Constant for fluent queries to be used to add include statements. Specifies 3650 * the path value of "<b>Consent:grantee</b>". 3651 */ 3652 public static final ca.uhn.fhir.model.api.Include INCLUDE_GRANTEE = new ca.uhn.fhir.model.api.Include("Consent:grantee").toLocked(); 3653 3654 /** 3655 * Search parameter: <b>manager</b> 3656 * <p> 3657 * Description: <b>Consent workflow management</b><br> 3658 * Type: <b>reference</b><br> 3659 * Path: <b>Consent.manager</b><br> 3660 * </p> 3661 */ 3662 @SearchParamDefinition(name="manager", path="Consent.manager", description="Consent workflow management", type="reference", target={HealthcareService.class, Organization.class, Patient.class, Practitioner.class } ) 3663 public static final String SP_MANAGER = "manager"; 3664 /** 3665 * <b>Fluent Client</b> search parameter constant for <b>manager</b> 3666 * <p> 3667 * Description: <b>Consent workflow management</b><br> 3668 * Type: <b>reference</b><br> 3669 * Path: <b>Consent.manager</b><br> 3670 * </p> 3671 */ 3672 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam MANAGER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_MANAGER); 3673 3674/** 3675 * Constant for fluent queries to be used to add include statements. Specifies 3676 * the path value of "<b>Consent:manager</b>". 3677 */ 3678 public static final ca.uhn.fhir.model.api.Include INCLUDE_MANAGER = new ca.uhn.fhir.model.api.Include("Consent:manager").toLocked(); 3679 3680 /** 3681 * Search parameter: <b>period</b> 3682 * <p> 3683 * Description: <b>Timeframe for this rule</b><br> 3684 * Type: <b>date</b><br> 3685 * Path: <b>Consent.provision.period</b><br> 3686 * </p> 3687 */ 3688 @SearchParamDefinition(name="period", path="Consent.provision.period", description="Timeframe for this rule", type="date" ) 3689 public static final String SP_PERIOD = "period"; 3690 /** 3691 * <b>Fluent Client</b> search parameter constant for <b>period</b> 3692 * <p> 3693 * Description: <b>Timeframe for this rule</b><br> 3694 * Type: <b>date</b><br> 3695 * Path: <b>Consent.provision.period</b><br> 3696 * </p> 3697 */ 3698 public static final ca.uhn.fhir.rest.gclient.DateClientParam PERIOD = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_PERIOD); 3699 3700 /** 3701 * Search parameter: <b>purpose</b> 3702 * <p> 3703 * Description: <b>Context of activities covered by this rule</b><br> 3704 * Type: <b>token</b><br> 3705 * Path: <b>Consent.provision.purpose</b><br> 3706 * </p> 3707 */ 3708 @SearchParamDefinition(name="purpose", path="Consent.provision.purpose", description="Context of activities covered by this rule", type="token" ) 3709 public static final String SP_PURPOSE = "purpose"; 3710 /** 3711 * <b>Fluent Client</b> search parameter constant for <b>purpose</b> 3712 * <p> 3713 * Description: <b>Context of activities covered by this rule</b><br> 3714 * Type: <b>token</b><br> 3715 * Path: <b>Consent.provision.purpose</b><br> 3716 * </p> 3717 */ 3718 public static final ca.uhn.fhir.rest.gclient.TokenClientParam PURPOSE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_PURPOSE); 3719 3720 /** 3721 * Search parameter: <b>security-label</b> 3722 * <p> 3723 * Description: <b>Security Labels that define affected resources</b><br> 3724 * Type: <b>token</b><br> 3725 * Path: <b>Consent.provision.securityLabel</b><br> 3726 * </p> 3727 */ 3728 @SearchParamDefinition(name="security-label", path="Consent.provision.securityLabel", description="Security Labels that define affected resources", type="token" ) 3729 public static final String SP_SECURITY_LABEL = "security-label"; 3730 /** 3731 * <b>Fluent Client</b> search parameter constant for <b>security-label</b> 3732 * <p> 3733 * Description: <b>Security Labels that define affected resources</b><br> 3734 * Type: <b>token</b><br> 3735 * Path: <b>Consent.provision.securityLabel</b><br> 3736 * </p> 3737 */ 3738 public static final ca.uhn.fhir.rest.gclient.TokenClientParam SECURITY_LABEL = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_SECURITY_LABEL); 3739 3740 /** 3741 * Search parameter: <b>source-reference</b> 3742 * <p> 3743 * Description: <b>Search by reference to a Consent, DocumentReference, Contract or QuestionnaireResponse</b><br> 3744 * Type: <b>reference</b><br> 3745 * Path: <b>Consent.sourceReference</b><br> 3746 * </p> 3747 */ 3748 @SearchParamDefinition(name="source-reference", path="Consent.sourceReference", description="Search by reference to a Consent, DocumentReference, Contract or QuestionnaireResponse", type="reference", target={Consent.class, Contract.class, DocumentReference.class, QuestionnaireResponse.class } ) 3749 public static final String SP_SOURCE_REFERENCE = "source-reference"; 3750 /** 3751 * <b>Fluent Client</b> search parameter constant for <b>source-reference</b> 3752 * <p> 3753 * Description: <b>Search by reference to a Consent, DocumentReference, Contract or QuestionnaireResponse</b><br> 3754 * Type: <b>reference</b><br> 3755 * Path: <b>Consent.sourceReference</b><br> 3756 * </p> 3757 */ 3758 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SOURCE_REFERENCE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SOURCE_REFERENCE); 3759 3760/** 3761 * Constant for fluent queries to be used to add include statements. Specifies 3762 * the path value of "<b>Consent:source-reference</b>". 3763 */ 3764 public static final ca.uhn.fhir.model.api.Include INCLUDE_SOURCE_REFERENCE = new ca.uhn.fhir.model.api.Include("Consent:source-reference").toLocked(); 3765 3766 /** 3767 * Search parameter: <b>status</b> 3768 * <p> 3769 * Description: <b>draft | active | inactive | entered-in-error | unknown</b><br> 3770 * Type: <b>token</b><br> 3771 * Path: <b>Consent.status</b><br> 3772 * </p> 3773 */ 3774 @SearchParamDefinition(name="status", path="Consent.status", description="draft | active | inactive | entered-in-error | unknown", type="token" ) 3775 public static final String SP_STATUS = "status"; 3776 /** 3777 * <b>Fluent Client</b> search parameter constant for <b>status</b> 3778 * <p> 3779 * Description: <b>draft | active | inactive | entered-in-error | unknown</b><br> 3780 * Type: <b>token</b><br> 3781 * Path: <b>Consent.status</b><br> 3782 * </p> 3783 */ 3784 public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS); 3785 3786 /** 3787 * Search parameter: <b>subject</b> 3788 * <p> 3789 * Description: <b>Who the consent applies to</b><br> 3790 * Type: <b>reference</b><br> 3791 * Path: <b>Consent.subject</b><br> 3792 * </p> 3793 */ 3794 @SearchParamDefinition(name="subject", path="Consent.subject", description="Who the consent applies to", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Patient") }, target={Group.class, Patient.class, Practitioner.class } ) 3795 public static final String SP_SUBJECT = "subject"; 3796 /** 3797 * <b>Fluent Client</b> search parameter constant for <b>subject</b> 3798 * <p> 3799 * Description: <b>Who the consent applies to</b><br> 3800 * Type: <b>reference</b><br> 3801 * Path: <b>Consent.subject</b><br> 3802 * </p> 3803 */ 3804 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SUBJECT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SUBJECT); 3805 3806/** 3807 * Constant for fluent queries to be used to add include statements. Specifies 3808 * the path value of "<b>Consent:subject</b>". 3809 */ 3810 public static final ca.uhn.fhir.model.api.Include INCLUDE_SUBJECT = new ca.uhn.fhir.model.api.Include("Consent:subject").toLocked(); 3811 3812 /** 3813 * Search parameter: <b>verified-date</b> 3814 * <p> 3815 * Description: <b>When consent verified</b><br> 3816 * Type: <b>date</b><br> 3817 * Path: <b>Consent.verification.verificationDate</b><br> 3818 * </p> 3819 */ 3820 @SearchParamDefinition(name="verified-date", path="Consent.verification.verificationDate", description="When consent verified", type="date" ) 3821 public static final String SP_VERIFIED_DATE = "verified-date"; 3822 /** 3823 * <b>Fluent Client</b> search parameter constant for <b>verified-date</b> 3824 * <p> 3825 * Description: <b>When consent verified</b><br> 3826 * Type: <b>date</b><br> 3827 * Path: <b>Consent.verification.verificationDate</b><br> 3828 * </p> 3829 */ 3830 public static final ca.uhn.fhir.rest.gclient.DateClientParam VERIFIED_DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_VERIFIED_DATE); 3831 3832 /** 3833 * Search parameter: <b>verified</b> 3834 * <p> 3835 * Description: <b>Has been verified</b><br> 3836 * Type: <b>token</b><br> 3837 * Path: <b>Consent.verification.verified</b><br> 3838 * </p> 3839 */ 3840 @SearchParamDefinition(name="verified", path="Consent.verification.verified", description="Has been verified", type="token" ) 3841 public static final String SP_VERIFIED = "verified"; 3842 /** 3843 * <b>Fluent Client</b> search parameter constant for <b>verified</b> 3844 * <p> 3845 * Description: <b>Has been verified</b><br> 3846 * Type: <b>token</b><br> 3847 * Path: <b>Consent.verification.verified</b><br> 3848 * </p> 3849 */ 3850 public static final ca.uhn.fhir.rest.gclient.TokenClientParam VERIFIED = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_VERIFIED); 3851 3852 /** 3853 * Search parameter: <b>date</b> 3854 * <p> 3855 * Description: <b>Multiple Resources: 3856 3857* [AllergyIntolerance](allergyintolerance.html): Date first version of the resource instance was recorded 3858* [CarePlan](careplan.html): Time period plan covers 3859* [CareTeam](careteam.html): A date within the coverage time period. 3860* [ClinicalImpression](clinicalimpression.html): When the assessment was documented 3861* [Composition](composition.html): Composition editing time 3862* [Consent](consent.html): When consent was agreed to 3863* [DiagnosticReport](diagnosticreport.html): The clinically relevant time of the report 3864* [Encounter](encounter.html): A date within the actualPeriod the Encounter lasted 3865* [EpisodeOfCare](episodeofcare.html): The provided date search value falls within the episode of care's period 3866* [FamilyMemberHistory](familymemberhistory.html): When history was recorded or last updated 3867* [Flag](flag.html): Time period when flag is active 3868* [Immunization](immunization.html): Vaccination (non)-Administration Date 3869* [List](list.html): When the list was prepared 3870* [Observation](observation.html): Obtained date/time. If the obtained element is a period, a date that falls in the period 3871* [Procedure](procedure.html): When the procedure occurred or is occurring 3872* [RiskAssessment](riskassessment.html): When was assessment made? 3873* [SupplyRequest](supplyrequest.html): When the request was made 3874</b><br> 3875 * Type: <b>date</b><br> 3876 * Path: <b>AllergyIntolerance.recordedDate | CarePlan.period | ClinicalImpression.date | Composition.date | Consent.dateTime | DiagnosticReport.effective | Encounter.actualPeriod | EpisodeOfCare.period | FamilyMemberHistory.date | Flag.period | (Immunization.occurrence as dateTime) | List.date | Observation.effective | Procedure.occurrence | (RiskAssessment.occurrence as dateTime) | SupplyRequest.authoredOn</b><br> 3877 * </p> 3878 */ 3879 @SearchParamDefinition(name="date", path="AllergyIntolerance.recordedDate | CarePlan.period | ClinicalImpression.date | Composition.date | Consent.dateTime | DiagnosticReport.effective | Encounter.actualPeriod | EpisodeOfCare.period | FamilyMemberHistory.date | Flag.period | (Immunization.occurrence as dateTime) | List.date | Observation.effective | Procedure.occurrence | (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): A date within the coverage time period.\r\n* [ClinicalImpression](clinicalimpression.html): When the assessment was documented\r\n* [Composition](composition.html): Composition editing time\r\n* [Consent](consent.html): When consent was agreed to\r\n* [DiagnosticReport](diagnosticreport.html): The clinically relevant time of the report\r\n* [Encounter](encounter.html): A date within the actualPeriod the Encounter lasted\r\n* [EpisodeOfCare](episodeofcare.html): The provided date search value falls within the episode of care's period\r\n* [FamilyMemberHistory](familymemberhistory.html): When history was recorded or last updated\r\n* [Flag](flag.html): Time period when flag is active\r\n* [Immunization](immunization.html): Vaccination (non)-Administration Date\r\n* [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 occurred or is occurring\r\n* [RiskAssessment](riskassessment.html): When was assessment made?\r\n* [SupplyRequest](supplyrequest.html): When the request was made\r\n", type="date" ) 3880 public static final String SP_DATE = "date"; 3881 /** 3882 * <b>Fluent Client</b> search parameter constant for <b>date</b> 3883 * <p> 3884 * Description: <b>Multiple Resources: 3885 3886* [AllergyIntolerance](allergyintolerance.html): Date first version of the resource instance was recorded 3887* [CarePlan](careplan.html): Time period plan covers 3888* [CareTeam](careteam.html): A date within the coverage time period. 3889* [ClinicalImpression](clinicalimpression.html): When the assessment was documented 3890* [Composition](composition.html): Composition editing time 3891* [Consent](consent.html): When consent was agreed to 3892* [DiagnosticReport](diagnosticreport.html): The clinically relevant time of the report 3893* [Encounter](encounter.html): A date within the actualPeriod the Encounter lasted 3894* [EpisodeOfCare](episodeofcare.html): The provided date search value falls within the episode of care's period 3895* [FamilyMemberHistory](familymemberhistory.html): When history was recorded or last updated 3896* [Flag](flag.html): Time period when flag is active 3897* [Immunization](immunization.html): Vaccination (non)-Administration Date 3898* [List](list.html): When the list was prepared 3899* [Observation](observation.html): Obtained date/time. If the obtained element is a period, a date that falls in the period 3900* [Procedure](procedure.html): When the procedure occurred or is occurring 3901* [RiskAssessment](riskassessment.html): When was assessment made? 3902* [SupplyRequest](supplyrequest.html): When the request was made 3903</b><br> 3904 * Type: <b>date</b><br> 3905 * Path: <b>AllergyIntolerance.recordedDate | CarePlan.period | ClinicalImpression.date | Composition.date | Consent.dateTime | DiagnosticReport.effective | Encounter.actualPeriod | EpisodeOfCare.period | FamilyMemberHistory.date | Flag.period | (Immunization.occurrence as dateTime) | List.date | Observation.effective | Procedure.occurrence | (RiskAssessment.occurrence as dateTime) | SupplyRequest.authoredOn</b><br> 3906 * </p> 3907 */ 3908 public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE); 3909 3910 /** 3911 * Search parameter: <b>identifier</b> 3912 * <p> 3913 * Description: <b>Multiple Resources: 3914 3915* [AllergyIntolerance](allergyintolerance.html): External ids for this item 3916* [CarePlan](careplan.html): External Ids for this plan 3917* [CareTeam](careteam.html): External Ids for this team 3918* [Composition](composition.html): Version-independent identifier for the Composition 3919* [Condition](condition.html): A unique identifier of the condition record 3920* [Consent](consent.html): Identifier for this record (external references) 3921* [DetectedIssue](detectedissue.html): Unique id for the detected issue 3922* [DeviceRequest](devicerequest.html): Business identifier for request/order 3923* [DiagnosticReport](diagnosticreport.html): An identifier for the report 3924* [DocumentManifest](documentmanifest.html): Unique Identifier for the set of documents 3925* [DocumentReference](documentreference.html): Identifier of the attachment binary 3926* [Encounter](encounter.html): Identifier(s) by which this encounter is known 3927* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare 3928* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier 3929* [Goal](goal.html): External Ids for this goal 3930* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID 3931* [Immunization](immunization.html): Business identifier 3932* [List](list.html): Business identifier 3933* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier 3934* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier 3935* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier 3936* [MedicationUsage](medicationusage.html): Return statements with this external identifier 3937* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier 3938* [Observation](observation.html): The unique id for a particular observation 3939* [Procedure](procedure.html): A unique identifier for a procedure 3940* [RiskAssessment](riskassessment.html): Unique identifier for the assessment 3941* [ServiceRequest](servicerequest.html): Identifiers assigned to this order 3942* [SupplyDelivery](supplydelivery.html): External identifier 3943* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest 3944* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier 3945</b><br> 3946 * Type: <b>token</b><br> 3947 * Path: <b>AllergyIntolerance.identifier | CarePlan.identifier | CareTeam.identifier | Composition.identifier | Condition.identifier | Consent.identifier | DetectedIssue.identifier | DeviceRequest.identifier | DiagnosticReport.identifier | DocumentManifest.masterIdentifier | DocumentManifest.identifier | DocumentReference.identifier | Encounter.identifier | EpisodeOfCare.identifier | FamilyMemberHistory.identifier | Goal.identifier | ImagingStudy.identifier | Immunization.identifier | List.identifier | MedicationAdministration.identifier | MedicationDispense.identifier | MedicationRequest.identifier | MedicationUsage.identifier | NutritionOrder.identifier | Observation.identifier | Procedure.identifier | RiskAssessment.identifier | ServiceRequest.identifier | SupplyDelivery.identifier | SupplyRequest.identifier | VisionPrescription.identifier</b><br> 3948 * </p> 3949 */ 3950 @SearchParamDefinition(name="identifier", path="AllergyIntolerance.identifier | CarePlan.identifier | CareTeam.identifier | Composition.identifier | Condition.identifier | Consent.identifier | DetectedIssue.identifier | DeviceRequest.identifier | DiagnosticReport.identifier | DocumentManifest.masterIdentifier | DocumentManifest.identifier | DocumentReference.identifier | Encounter.identifier | EpisodeOfCare.identifier | FamilyMemberHistory.identifier | Goal.identifier | ImagingStudy.identifier | Immunization.identifier | List.identifier | MedicationAdministration.identifier | MedicationDispense.identifier | MedicationRequest.identifier | MedicationUsage.identifier | NutritionOrder.identifier | Observation.identifier | Procedure.identifier | RiskAssessment.identifier | ServiceRequest.identifier | SupplyDelivery.identifier | SupplyRequest.identifier | VisionPrescription.identifier", description="Multiple Resources: \r\n\r\n* [AllergyIntolerance](allergyintolerance.html): External ids for this item\r\n* [CarePlan](careplan.html): External Ids for this plan\r\n* [CareTeam](careteam.html): External Ids for this team\r\n* [Composition](composition.html): Version-independent identifier for the Composition\r\n* [Condition](condition.html): A unique identifier of the condition record\r\n* [Consent](consent.html): Identifier for this record (external references)\r\n* [DetectedIssue](detectedissue.html): Unique id for the detected issue\r\n* [DeviceRequest](devicerequest.html): Business identifier for request/order\r\n* [DiagnosticReport](diagnosticreport.html): An identifier for the report\r\n* [DocumentManifest](documentmanifest.html): Unique Identifier for the set of documents\r\n* [DocumentReference](documentreference.html): Identifier of the attachment binary\r\n* [Encounter](encounter.html): Identifier(s) by which this encounter is known\r\n* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare\r\n* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier\r\n* [Goal](goal.html): External Ids for this goal\r\n* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID\r\n* [Immunization](immunization.html): Business identifier\r\n* [List](list.html): Business identifier\r\n* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier\r\n* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier\r\n* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier\r\n* [MedicationUsage](medicationusage.html): Return statements with this external identifier\r\n* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier\r\n* [Observation](observation.html): The unique id for a particular observation\r\n* [Procedure](procedure.html): A unique identifier for a procedure\r\n* [RiskAssessment](riskassessment.html): Unique identifier for the assessment\r\n* [ServiceRequest](servicerequest.html): Identifiers assigned to this order\r\n* [SupplyDelivery](supplydelivery.html): External identifier\r\n* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest\r\n* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier\r\n", type="token" ) 3951 public static final String SP_IDENTIFIER = "identifier"; 3952 /** 3953 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 3954 * <p> 3955 * Description: <b>Multiple Resources: 3956 3957* [AllergyIntolerance](allergyintolerance.html): External ids for this item 3958* [CarePlan](careplan.html): External Ids for this plan 3959* [CareTeam](careteam.html): External Ids for this team 3960* [Composition](composition.html): Version-independent identifier for the Composition 3961* [Condition](condition.html): A unique identifier of the condition record 3962* [Consent](consent.html): Identifier for this record (external references) 3963* [DetectedIssue](detectedissue.html): Unique id for the detected issue 3964* [DeviceRequest](devicerequest.html): Business identifier for request/order 3965* [DiagnosticReport](diagnosticreport.html): An identifier for the report 3966* [DocumentManifest](documentmanifest.html): Unique Identifier for the set of documents 3967* [DocumentReference](documentreference.html): Identifier of the attachment binary 3968* [Encounter](encounter.html): Identifier(s) by which this encounter is known 3969* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare 3970* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier 3971* [Goal](goal.html): External Ids for this goal 3972* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID 3973* [Immunization](immunization.html): Business identifier 3974* [List](list.html): Business identifier 3975* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier 3976* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier 3977* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier 3978* [MedicationUsage](medicationusage.html): Return statements with this external identifier 3979* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier 3980* [Observation](observation.html): The unique id for a particular observation 3981* [Procedure](procedure.html): A unique identifier for a procedure 3982* [RiskAssessment](riskassessment.html): Unique identifier for the assessment 3983* [ServiceRequest](servicerequest.html): Identifiers assigned to this order 3984* [SupplyDelivery](supplydelivery.html): External identifier 3985* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest 3986* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier 3987</b><br> 3988 * Type: <b>token</b><br> 3989 * Path: <b>AllergyIntolerance.identifier | CarePlan.identifier | CareTeam.identifier | Composition.identifier | Condition.identifier | Consent.identifier | DetectedIssue.identifier | DeviceRequest.identifier | DiagnosticReport.identifier | DocumentManifest.masterIdentifier | DocumentManifest.identifier | DocumentReference.identifier | Encounter.identifier | EpisodeOfCare.identifier | FamilyMemberHistory.identifier | Goal.identifier | ImagingStudy.identifier | Immunization.identifier | List.identifier | MedicationAdministration.identifier | MedicationDispense.identifier | MedicationRequest.identifier | MedicationUsage.identifier | NutritionOrder.identifier | Observation.identifier | Procedure.identifier | RiskAssessment.identifier | ServiceRequest.identifier | SupplyDelivery.identifier | SupplyRequest.identifier | VisionPrescription.identifier</b><br> 3990 * </p> 3991 */ 3992 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 3993 3994 /** 3995 * Search parameter: <b>patient</b> 3996 * <p> 3997 * Description: <b>Multiple Resources: 3998 3999* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for 4000* [CarePlan](careplan.html): Who the care plan is for 4001* [CareTeam](careteam.html): Who care team is for 4002* [ClinicalImpression](clinicalimpression.html): Patient assessed 4003* [Composition](composition.html): Who and/or what the composition is about 4004* [Condition](condition.html): Who has the condition? 4005* [Consent](consent.html): Who the consent applies to 4006* [DetectedIssue](detectedissue.html): Associated patient 4007* [DeviceRequest](devicerequest.html): Individual the service is ordered for 4008* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device 4009* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient 4010* [DocumentManifest](documentmanifest.html): The subject of the set of documents 4011* [DocumentReference](documentreference.html): Who/what is the subject of the document 4012* [Encounter](encounter.html): The patient present at the encounter 4013* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care 4014* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for 4015* [Flag](flag.html): The identity of a subject to list flags for 4016* [Goal](goal.html): Who this goal is intended for 4017* [ImagingStudy](imagingstudy.html): Who the study is about 4018* [Immunization](immunization.html): The patient for the vaccination record 4019* [List](list.html): If all resources have the same subject 4020* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations for 4021* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses for 4022* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient 4023* [MedicationUsage](medicationusage.html): Returns statements for a specific patient. 4024* [NutritionOrder](nutritionorder.html): The identity of the individual or set of individuals who requires the diet, formula or nutritional supplement 4025* [Observation](observation.html): The subject that the observation is about (if patient) 4026* [Procedure](procedure.html): Search by subject - a patient 4027* [RiskAssessment](riskassessment.html): Who/what does assessment apply to? 4028* [ServiceRequest](servicerequest.html): Search by subject - a patient 4029* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied 4030* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for 4031</b><br> 4032 * Type: <b>reference</b><br> 4033 * Path: <b>AllergyIntolerance.patient | CarePlan.subject.where(resolve() is Patient) | CareTeam.subject.where(resolve() is Patient) | ClinicalImpression.subject.where(resolve() is Patient) | Composition.subject.where(resolve() is Patient) | Condition.subject.where(resolve() is Patient) | Consent.subject.where(resolve() is Patient) | DetectedIssue.subject | DeviceRequest.subject.where(resolve() is Patient) | DeviceUsage.patient | DiagnosticReport.subject.where(resolve() is Patient) | DocumentManifest.subject.where(resolve() is Patient) | DocumentReference.subject.where(resolve() is Patient) | Encounter.subject.where(resolve() is Patient) | EpisodeOfCare.patient | FamilyMemberHistory.patient | Flag.subject.where(resolve() is Patient) | Goal.subject.where(resolve() is Patient) | ImagingStudy.subject.where(resolve() is Patient) | Immunization.patient | List.subject.where(resolve() is Patient) | MedicationAdministration.subject.where(resolve() is Patient) | MedicationDispense.subject.where(resolve() is Patient) | MedicationRequest.subject.where(resolve() is Patient) | MedicationUsage.subject.where(resolve() is Patient) | NutritionOrder.subject.where(resolve() is Patient) | Observation.subject.where(resolve() is Patient) | Procedure.subject.where(resolve() is Patient) | RiskAssessment.subject.where(resolve() is Patient) | ServiceRequest.subject.where(resolve() is Patient) | SupplyDelivery.patient | VisionPrescription.patient</b><br> 4034 * </p> 4035 */ 4036 @SearchParamDefinition(name="patient", path="AllergyIntolerance.patient | CarePlan.subject.where(resolve() is Patient) | CareTeam.subject.where(resolve() is Patient) | ClinicalImpression.subject.where(resolve() is Patient) | Composition.subject.where(resolve() is Patient) | Condition.subject.where(resolve() is Patient) | Consent.subject.where(resolve() is Patient) | DetectedIssue.subject | DeviceRequest.subject.where(resolve() is Patient) | DeviceUsage.patient | DiagnosticReport.subject.where(resolve() is Patient) | DocumentManifest.subject.where(resolve() is Patient) | DocumentReference.subject.where(resolve() is Patient) | Encounter.subject.where(resolve() is Patient) | EpisodeOfCare.patient | FamilyMemberHistory.patient | Flag.subject.where(resolve() is Patient) | Goal.subject.where(resolve() is Patient) | ImagingStudy.subject.where(resolve() is Patient) | Immunization.patient | List.subject.where(resolve() is Patient) | MedicationAdministration.subject.where(resolve() is Patient) | MedicationDispense.subject.where(resolve() is Patient) | MedicationRequest.subject.where(resolve() is Patient) | MedicationUsage.subject.where(resolve() is Patient) | NutritionOrder.subject.where(resolve() is Patient) | Observation.subject.where(resolve() is Patient) | Procedure.subject.where(resolve() is Patient) | RiskAssessment.subject.where(resolve() is Patient) | ServiceRequest.subject.where(resolve() is Patient) | SupplyDelivery.patient | VisionPrescription.patient", description="Multiple Resources: \r\n\r\n* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for\r\n* [CarePlan](careplan.html): Who the care plan is for\r\n* [CareTeam](careteam.html): Who care team is for\r\n* [ClinicalImpression](clinicalimpression.html): Patient assessed\r\n* [Composition](composition.html): Who and/or what the composition is about\r\n* [Condition](condition.html): Who has the condition?\r\n* [Consent](consent.html): Who the consent applies to\r\n* [DetectedIssue](detectedissue.html): Associated patient\r\n* [DeviceRequest](devicerequest.html): Individual the service is ordered for\r\n* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device\r\n* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient\r\n* [DocumentManifest](documentmanifest.html): The subject of the set of documents\r\n* [DocumentReference](documentreference.html): Who/what is the subject of the document\r\n* [Encounter](encounter.html): The patient present at the encounter\r\n* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care\r\n* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for\r\n* [Flag](flag.html): The identity of a subject to list flags for\r\n* [Goal](goal.html): Who this goal is intended for\r\n* [ImagingStudy](imagingstudy.html): Who the study is about\r\n* [Immunization](immunization.html): The patient for the vaccination record\r\n* [List](list.html): If all resources have the same subject\r\n* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations for\r\n* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses for\r\n* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient\r\n* [MedicationUsage](medicationusage.html): Returns statements for a specific patient.\r\n* [NutritionOrder](nutritionorder.html): The identity of the individual or set of individuals who requires the diet, formula or nutritional supplement\r\n* [Observation](observation.html): The subject that the observation is about (if patient)\r\n* [Procedure](procedure.html): Search by subject - a patient\r\n* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?\r\n* [ServiceRequest](servicerequest.html): Search by subject - a patient\r\n* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied\r\n* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for\r\n", type="reference", target={BiologicallyDerivedProduct.class, Device.class, Group.class, Location.class, Medication.class, NutritionProduct.class, Organization.class, Patient.class, Practitioner.class, Procedure.class, Substance.class } ) 4037 public static final String SP_PATIENT = "patient"; 4038 /** 4039 * <b>Fluent Client</b> search parameter constant for <b>patient</b> 4040 * <p> 4041 * Description: <b>Multiple Resources: 4042 4043* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for 4044* [CarePlan](careplan.html): Who the care plan is for 4045* [CareTeam](careteam.html): Who care team is for 4046* [ClinicalImpression](clinicalimpression.html): Patient assessed 4047* [Composition](composition.html): Who and/or what the composition is about 4048* [Condition](condition.html): Who has the condition? 4049* [Consent](consent.html): Who the consent applies to 4050* [DetectedIssue](detectedissue.html): Associated patient 4051* [DeviceRequest](devicerequest.html): Individual the service is ordered for 4052* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device 4053* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient 4054* [DocumentManifest](documentmanifest.html): The subject of the set of documents 4055* [DocumentReference](documentreference.html): Who/what is the subject of the document 4056* [Encounter](encounter.html): The patient present at the encounter 4057* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care 4058* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for 4059* [Flag](flag.html): The identity of a subject to list flags for 4060* [Goal](goal.html): Who this goal is intended for 4061* [ImagingStudy](imagingstudy.html): Who the study is about 4062* [Immunization](immunization.html): The patient for the vaccination record 4063* [List](list.html): If all resources have the same subject 4064* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations for 4065* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses for 4066* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient 4067* [MedicationUsage](medicationusage.html): Returns statements for a specific patient. 4068* [NutritionOrder](nutritionorder.html): The identity of the individual or set of individuals who requires the diet, formula or nutritional supplement 4069* [Observation](observation.html): The subject that the observation is about (if patient) 4070* [Procedure](procedure.html): Search by subject - a patient 4071* [RiskAssessment](riskassessment.html): Who/what does assessment apply to? 4072* [ServiceRequest](servicerequest.html): Search by subject - a patient 4073* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied 4074* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for 4075</b><br> 4076 * Type: <b>reference</b><br> 4077 * Path: <b>AllergyIntolerance.patient | CarePlan.subject.where(resolve() is Patient) | CareTeam.subject.where(resolve() is Patient) | ClinicalImpression.subject.where(resolve() is Patient) | Composition.subject.where(resolve() is Patient) | Condition.subject.where(resolve() is Patient) | Consent.subject.where(resolve() is Patient) | DetectedIssue.subject | DeviceRequest.subject.where(resolve() is Patient) | DeviceUsage.patient | DiagnosticReport.subject.where(resolve() is Patient) | DocumentManifest.subject.where(resolve() is Patient) | DocumentReference.subject.where(resolve() is Patient) | Encounter.subject.where(resolve() is Patient) | EpisodeOfCare.patient | FamilyMemberHistory.patient | Flag.subject.where(resolve() is Patient) | Goal.subject.where(resolve() is Patient) | ImagingStudy.subject.where(resolve() is Patient) | Immunization.patient | List.subject.where(resolve() is Patient) | MedicationAdministration.subject.where(resolve() is Patient) | MedicationDispense.subject.where(resolve() is Patient) | MedicationRequest.subject.where(resolve() is Patient) | MedicationUsage.subject.where(resolve() is Patient) | NutritionOrder.subject.where(resolve() is Patient) | Observation.subject.where(resolve() is Patient) | Procedure.subject.where(resolve() is Patient) | RiskAssessment.subject.where(resolve() is Patient) | ServiceRequest.subject.where(resolve() is Patient) | SupplyDelivery.patient | VisionPrescription.patient</b><br> 4078 * </p> 4079 */ 4080 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PATIENT); 4081 4082/** 4083 * Constant for fluent queries to be used to add include statements. Specifies 4084 * the path value of "<b>Consent:patient</b>". 4085 */ 4086 public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("Consent:patient").toLocked(); 4087 4088 4089} 4090