001package org.hl7.fhir.r4.model; 002 003import java.math.BigDecimal; 004 005/* 006 Copyright (c) 2011+, HL7, Inc. 007 All rights reserved. 008 009 Redistribution and use in source and binary forms, with or without modification, 010 are permitted provided that the following conditions are met: 011 012 * Redistributions of source code must retain the above copyright notice, this 013 list of conditions and the following disclaimer. 014 * Redistributions in binary form must reproduce the above copyright notice, 015 this list of conditions and the following disclaimer in the documentation 016 and/or other materials provided with the distribution. 017 * Neither the name of HL7 nor the names of its contributors may be used to 018 endorse or promote products derived from this software without specific 019 prior written permission. 020 021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 022 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 023 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 024 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 025 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 026 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 027 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 028 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 029 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 030 POSSIBILITY OF SUCH DAMAGE. 031 032*/ 033 034// Generated on Tue, May 12, 2020 07:26+1000 for FHIR v4.0.1 035import java.util.ArrayList; 036import java.util.Date; 037import java.util.List; 038 039import org.hl7.fhir.exceptions.FHIRException; 040import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 041import org.hl7.fhir.utilities.Utilities; 042 043import ca.uhn.fhir.model.api.annotation.Block; 044import ca.uhn.fhir.model.api.annotation.Child; 045import ca.uhn.fhir.model.api.annotation.Description; 046import ca.uhn.fhir.model.api.annotation.ResourceDef; 047import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 048 049/** 050 * Legally enforceable, formally recorded unilateral or bilateral directive 051 * i.e., a policy or agreement. 052 */ 053@ResourceDef(name = "Contract", profile = "http://hl7.org/fhir/StructureDefinition/Contract") 054public class Contract extends DomainResource { 055 056 public enum ContractStatus { 057 /** 058 * Contract is augmented with additional information to correct errors in a 059 * predecessor or to updated values in a predecessor. Usage: Contract altered 060 * within effective time. Precedence Order = 9. Comparable FHIR and v.3 status 061 * codes: revised; replaced. 062 */ 063 AMENDED, 064 /** 065 * Contract is augmented with additional information that was missing from a 066 * predecessor Contract. Usage: Contract altered within effective time. 067 * Precedence Order = 9. Comparable FHIR and v.3 status codes: updated, 068 * replaced. 069 */ 070 APPENDED, 071 /** 072 * Contract is terminated due to failure of the Grantor and/or the Grantee to 073 * fulfil one or more contract provisions. Usage: Abnormal contract termination. 074 * Precedence Order = 10. Comparable FHIR and v.3 status codes: stopped; failed; 075 * aborted. 076 */ 077 CANCELLED, 078 /** 079 * Contract is pended to rectify failure of the Grantor or the Grantee to fulfil 080 * contract provision(s). E.g., Grantee complaint about Grantor's failure to 081 * comply with contract provisions. Usage: Contract pended. Precedence Order = 082 * 7. Comparable FHIR and v.3 status codes: on hold; pended; suspended. 083 */ 084 DISPUTED, 085 /** 086 * Contract was created in error. No Precedence Order. Status may be applied to 087 * a Contract with any status. 088 */ 089 ENTEREDINERROR, 090 /** 091 * Contract execution pending; may be executed when either the Grantor or the 092 * Grantee accepts the contract provisions by signing. I.e., where either the 093 * Grantor or the Grantee has signed, but not both. E.g., when an insurance 094 * applicant signs the insurers application, which references the policy. Usage: 095 * Optional first step of contract execution activity. May be skipped and 096 * contracting activity moves directly to executed state. Precedence Order = 3. 097 * Comparable FHIR and v.3 status codes: draft; preliminary; planned; intended; 098 * active. 099 */ 100 EXECUTABLE, 101 /** 102 * Contract is activated for period stipulated when both the Grantor and Grantee 103 * have signed it. Usage: Required state for normal completion of contracting 104 * activity. Precedence Order = 6. Comparable FHIR and v.3 status codes: 105 * accepted; completed. 106 */ 107 EXECUTED, 108 /** 109 * Contract execution is suspended while either or both the Grantor and Grantee 110 * propose and consider new or revised contract provisions. I.e., where the 111 * party which has not signed proposes changes to the terms. E .g., a life 112 * insurer declines to agree to the signed application because the life insurer 113 * has evidence that the applicant, who asserted to being younger or a 114 * non-smoker to get a lower premium rate - but offers instead to agree to a 115 * higher premium based on the applicants actual age or smoking status. Usage: 116 * Optional contract activity between executable and executed state. Precedence 117 * Order = 4. Comparable FHIR and v.3 status codes: in progress; review; held. 118 */ 119 NEGOTIABLE, 120 /** 121 * Contract is a proposal by either the Grantor or the Grantee. Aka - A Contract 122 * hard copy or electronic 'template', 'form' or 'application'. E.g., health 123 * insurance application; consent directive form. Usage: Beginning of contract 124 * negotiation, which may have been completed as a precondition because used for 125 * 0..* contracts. Precedence Order = 2. Comparable FHIR and v.3 status codes: 126 * requested; new. 127 */ 128 OFFERED, 129 /** 130 * Contract template is available as the basis for an application or offer by 131 * the Grantor or Grantee. E.g., health insurance policy; consent directive 132 * policy. Usage: Required initial contract activity, which may have been 133 * completed as a precondition because used for 0..* contracts. Precedence Order 134 * = 1. Comparable FHIR and v.3 status codes: proposed; intended. 135 */ 136 POLICY, 137 /** 138 * Execution of the Contract is not completed because either or both the Grantor 139 * and Grantee decline to accept some or all of the contract provisions. Usage: 140 * Optional contract activity between executable and abnormal termination. 141 * Precedence Order = 5. Comparable FHIR and v.3 status codes: stopped; 142 * cancelled. 143 */ 144 REJECTED, 145 /** 146 * Beginning of a successor Contract at the termination of predecessor Contract 147 * lifecycle. Usage: Follows termination of a preceding Contract that has 148 * reached its expiry date. Precedence Order = 13. Comparable FHIR and v.3 149 * status codes: superseded. 150 */ 151 RENEWED, 152 /** 153 * A Contract that is rescinded. May be required prior to replacing with an 154 * updated Contract. Comparable FHIR and v.3 status codes: nullified. 155 */ 156 REVOKED, 157 /** 158 * Contract is reactivated after being pended because of faulty execution. 159 * *E.g., competency of the signer(s), or where the policy is substantially 160 * different from and did not accompany the application/form so that the 161 * applicant could not compare them. Aka - ''reactivated''. Usage: Optional 162 * stage where a pended contract is reactivated. Precedence Order = 8. 163 * Comparable FHIR and v.3 status codes: reactivated. 164 */ 165 RESOLVED, 166 /** 167 * Contract reaches its expiry date. It might or might not be renewed or 168 * renegotiated. Usage: Normal end of contract period. Precedence Order = 12. 169 * Comparable FHIR and v.3 status codes: Obsoleted. 170 */ 171 TERMINATED, 172 /** 173 * added to help the parsers with the generic types 174 */ 175 NULL; 176 177 public static ContractStatus fromCode(String codeString) throws FHIRException { 178 if (codeString == null || "".equals(codeString)) 179 return null; 180 if ("amended".equals(codeString)) 181 return AMENDED; 182 if ("appended".equals(codeString)) 183 return APPENDED; 184 if ("cancelled".equals(codeString)) 185 return CANCELLED; 186 if ("disputed".equals(codeString)) 187 return DISPUTED; 188 if ("entered-in-error".equals(codeString)) 189 return ENTEREDINERROR; 190 if ("executable".equals(codeString)) 191 return EXECUTABLE; 192 if ("executed".equals(codeString)) 193 return EXECUTED; 194 if ("negotiable".equals(codeString)) 195 return NEGOTIABLE; 196 if ("offered".equals(codeString)) 197 return OFFERED; 198 if ("policy".equals(codeString)) 199 return POLICY; 200 if ("rejected".equals(codeString)) 201 return REJECTED; 202 if ("renewed".equals(codeString)) 203 return RENEWED; 204 if ("revoked".equals(codeString)) 205 return REVOKED; 206 if ("resolved".equals(codeString)) 207 return RESOLVED; 208 if ("terminated".equals(codeString)) 209 return TERMINATED; 210 if (Configuration.isAcceptInvalidEnums()) 211 return null; 212 else 213 throw new FHIRException("Unknown ContractStatus code '" + codeString + "'"); 214 } 215 216 public String toCode() { 217 switch (this) { 218 case AMENDED: 219 return "amended"; 220 case APPENDED: 221 return "appended"; 222 case CANCELLED: 223 return "cancelled"; 224 case DISPUTED: 225 return "disputed"; 226 case ENTEREDINERROR: 227 return "entered-in-error"; 228 case EXECUTABLE: 229 return "executable"; 230 case EXECUTED: 231 return "executed"; 232 case NEGOTIABLE: 233 return "negotiable"; 234 case OFFERED: 235 return "offered"; 236 case POLICY: 237 return "policy"; 238 case REJECTED: 239 return "rejected"; 240 case RENEWED: 241 return "renewed"; 242 case REVOKED: 243 return "revoked"; 244 case RESOLVED: 245 return "resolved"; 246 case TERMINATED: 247 return "terminated"; 248 case NULL: 249 return null; 250 default: 251 return "?"; 252 } 253 } 254 255 public String getSystem() { 256 switch (this) { 257 case AMENDED: 258 return "http://hl7.org/fhir/contract-status"; 259 case APPENDED: 260 return "http://hl7.org/fhir/contract-status"; 261 case CANCELLED: 262 return "http://hl7.org/fhir/contract-status"; 263 case DISPUTED: 264 return "http://hl7.org/fhir/contract-status"; 265 case ENTEREDINERROR: 266 return "http://hl7.org/fhir/contract-status"; 267 case EXECUTABLE: 268 return "http://hl7.org/fhir/contract-status"; 269 case EXECUTED: 270 return "http://hl7.org/fhir/contract-status"; 271 case NEGOTIABLE: 272 return "http://hl7.org/fhir/contract-status"; 273 case OFFERED: 274 return "http://hl7.org/fhir/contract-status"; 275 case POLICY: 276 return "http://hl7.org/fhir/contract-status"; 277 case REJECTED: 278 return "http://hl7.org/fhir/contract-status"; 279 case RENEWED: 280 return "http://hl7.org/fhir/contract-status"; 281 case REVOKED: 282 return "http://hl7.org/fhir/contract-status"; 283 case RESOLVED: 284 return "http://hl7.org/fhir/contract-status"; 285 case TERMINATED: 286 return "http://hl7.org/fhir/contract-status"; 287 case NULL: 288 return null; 289 default: 290 return "?"; 291 } 292 } 293 294 public String getDefinition() { 295 switch (this) { 296 case AMENDED: 297 return "Contract is augmented with additional information to correct errors in a predecessor or to updated values in a predecessor. Usage: Contract altered within effective time. Precedence Order = 9. Comparable FHIR and v.3 status codes: revised; replaced."; 298 case APPENDED: 299 return "Contract is augmented with additional information that was missing from a predecessor Contract. Usage: Contract altered within effective time. Precedence Order = 9. Comparable FHIR and v.3 status codes: updated, replaced."; 300 case CANCELLED: 301 return "Contract is terminated due to failure of the Grantor and/or the Grantee to fulfil one or more contract provisions. Usage: Abnormal contract termination. Precedence Order = 10. Comparable FHIR and v.3 status codes: stopped; failed; aborted."; 302 case DISPUTED: 303 return "Contract is pended to rectify failure of the Grantor or the Grantee to fulfil contract provision(s). E.g., Grantee complaint about Grantor's failure to comply with contract provisions. Usage: Contract pended. Precedence Order = 7. Comparable FHIR and v.3 status codes: on hold; pended; suspended."; 304 case ENTEREDINERROR: 305 return "Contract was created in error. No Precedence Order. Status may be applied to a Contract with any status."; 306 case EXECUTABLE: 307 return "Contract execution pending; may be executed when either the Grantor or the Grantee accepts the contract provisions by signing. I.e., where either the Grantor or the Grantee has signed, but not both. E.g., when an insurance applicant signs the insurers application, which references the policy. Usage: Optional first step of contract execution activity. May be skipped and contracting activity moves directly to executed state. Precedence Order = 3. Comparable FHIR and v.3 status codes: draft; preliminary; planned; intended; active."; 308 case EXECUTED: 309 return "Contract is activated for period stipulated when both the Grantor and Grantee have signed it. Usage: Required state for normal completion of contracting activity. Precedence Order = 6. Comparable FHIR and v.3 status codes: accepted; completed."; 310 case NEGOTIABLE: 311 return "Contract execution is suspended while either or both the Grantor and Grantee propose and consider new or revised contract provisions. I.e., where the party which has not signed proposes changes to the terms. E .g., a life insurer declines to agree to the signed application because the life insurer has evidence that the applicant, who asserted to being younger or a non-smoker to get a lower premium rate - but offers instead to agree to a higher premium based on the applicants actual age or smoking status. Usage: Optional contract activity between executable and executed state. Precedence Order = 4. Comparable FHIR and v.3 status codes: in progress; review; held."; 312 case OFFERED: 313 return "Contract is a proposal by either the Grantor or the Grantee. Aka - A Contract hard copy or electronic 'template', 'form' or 'application'. E.g., health insurance application; consent directive form. Usage: Beginning of contract negotiation, which may have been completed as a precondition because used for 0..* contracts. Precedence Order = 2. Comparable FHIR and v.3 status codes: requested; new."; 314 case POLICY: 315 return "Contract template is available as the basis for an application or offer by the Grantor or Grantee. E.g., health insurance policy; consent directive policy. Usage: Required initial contract activity, which may have been completed as a precondition because used for 0..* contracts. Precedence Order = 1. Comparable FHIR and v.3 status codes: proposed; intended."; 316 case REJECTED: 317 return " Execution of the Contract is not completed because either or both the Grantor and Grantee decline to accept some or all of the contract provisions. Usage: Optional contract activity between executable and abnormal termination. Precedence Order = 5. Comparable FHIR and v.3 status codes: stopped; cancelled."; 318 case RENEWED: 319 return "Beginning of a successor Contract at the termination of predecessor Contract lifecycle. Usage: Follows termination of a preceding Contract that has reached its expiry date. Precedence Order = 13. Comparable FHIR and v.3 status codes: superseded."; 320 case REVOKED: 321 return "A Contract that is rescinded. May be required prior to replacing with an updated Contract. Comparable FHIR and v.3 status codes: nullified."; 322 case RESOLVED: 323 return "Contract is reactivated after being pended because of faulty execution. *E.g., competency of the signer(s), or where the policy is substantially different from and did not accompany the application/form so that the applicant could not compare them. Aka - ''reactivated''. Usage: Optional stage where a pended contract is reactivated. Precedence Order = 8. Comparable FHIR and v.3 status codes: reactivated."; 324 case TERMINATED: 325 return "Contract reaches its expiry date. It might or might not be renewed or renegotiated. Usage: Normal end of contract period. Precedence Order = 12. Comparable FHIR and v.3 status codes: Obsoleted."; 326 case NULL: 327 return null; 328 default: 329 return "?"; 330 } 331 } 332 333 public String getDisplay() { 334 switch (this) { 335 case AMENDED: 336 return "Amended"; 337 case APPENDED: 338 return "Appended"; 339 case CANCELLED: 340 return "Cancelled"; 341 case DISPUTED: 342 return "Disputed"; 343 case ENTEREDINERROR: 344 return "Entered in Error"; 345 case EXECUTABLE: 346 return "Executable"; 347 case EXECUTED: 348 return "Executed"; 349 case NEGOTIABLE: 350 return "Negotiable"; 351 case OFFERED: 352 return "Offered"; 353 case POLICY: 354 return "Policy"; 355 case REJECTED: 356 return "Rejected"; 357 case RENEWED: 358 return "Renewed"; 359 case REVOKED: 360 return "Revoked"; 361 case RESOLVED: 362 return "Resolved"; 363 case TERMINATED: 364 return "Terminated"; 365 case NULL: 366 return null; 367 default: 368 return "?"; 369 } 370 } 371 } 372 373 public static class ContractStatusEnumFactory implements EnumFactory<ContractStatus> { 374 public ContractStatus fromCode(String codeString) throws IllegalArgumentException { 375 if (codeString == null || "".equals(codeString)) 376 if (codeString == null || "".equals(codeString)) 377 return null; 378 if ("amended".equals(codeString)) 379 return ContractStatus.AMENDED; 380 if ("appended".equals(codeString)) 381 return ContractStatus.APPENDED; 382 if ("cancelled".equals(codeString)) 383 return ContractStatus.CANCELLED; 384 if ("disputed".equals(codeString)) 385 return ContractStatus.DISPUTED; 386 if ("entered-in-error".equals(codeString)) 387 return ContractStatus.ENTEREDINERROR; 388 if ("executable".equals(codeString)) 389 return ContractStatus.EXECUTABLE; 390 if ("executed".equals(codeString)) 391 return ContractStatus.EXECUTED; 392 if ("negotiable".equals(codeString)) 393 return ContractStatus.NEGOTIABLE; 394 if ("offered".equals(codeString)) 395 return ContractStatus.OFFERED; 396 if ("policy".equals(codeString)) 397 return ContractStatus.POLICY; 398 if ("rejected".equals(codeString)) 399 return ContractStatus.REJECTED; 400 if ("renewed".equals(codeString)) 401 return ContractStatus.RENEWED; 402 if ("revoked".equals(codeString)) 403 return ContractStatus.REVOKED; 404 if ("resolved".equals(codeString)) 405 return ContractStatus.RESOLVED; 406 if ("terminated".equals(codeString)) 407 return ContractStatus.TERMINATED; 408 throw new IllegalArgumentException("Unknown ContractStatus code '" + codeString + "'"); 409 } 410 411 public Enumeration<ContractStatus> fromType(PrimitiveType<?> code) throws FHIRException { 412 if (code == null) 413 return null; 414 if (code.isEmpty()) 415 return new Enumeration<ContractStatus>(this, ContractStatus.NULL, code); 416 String codeString = code.asStringValue(); 417 if (codeString == null || "".equals(codeString)) 418 return new Enumeration<ContractStatus>(this, ContractStatus.NULL, code); 419 if ("amended".equals(codeString)) 420 return new Enumeration<ContractStatus>(this, ContractStatus.AMENDED, code); 421 if ("appended".equals(codeString)) 422 return new Enumeration<ContractStatus>(this, ContractStatus.APPENDED, code); 423 if ("cancelled".equals(codeString)) 424 return new Enumeration<ContractStatus>(this, ContractStatus.CANCELLED, code); 425 if ("disputed".equals(codeString)) 426 return new Enumeration<ContractStatus>(this, ContractStatus.DISPUTED, code); 427 if ("entered-in-error".equals(codeString)) 428 return new Enumeration<ContractStatus>(this, ContractStatus.ENTEREDINERROR, code); 429 if ("executable".equals(codeString)) 430 return new Enumeration<ContractStatus>(this, ContractStatus.EXECUTABLE, code); 431 if ("executed".equals(codeString)) 432 return new Enumeration<ContractStatus>(this, ContractStatus.EXECUTED, code); 433 if ("negotiable".equals(codeString)) 434 return new Enumeration<ContractStatus>(this, ContractStatus.NEGOTIABLE, code); 435 if ("offered".equals(codeString)) 436 return new Enumeration<ContractStatus>(this, ContractStatus.OFFERED, code); 437 if ("policy".equals(codeString)) 438 return new Enumeration<ContractStatus>(this, ContractStatus.POLICY, code); 439 if ("rejected".equals(codeString)) 440 return new Enumeration<ContractStatus>(this, ContractStatus.REJECTED, code); 441 if ("renewed".equals(codeString)) 442 return new Enumeration<ContractStatus>(this, ContractStatus.RENEWED, code); 443 if ("revoked".equals(codeString)) 444 return new Enumeration<ContractStatus>(this, ContractStatus.REVOKED, code); 445 if ("resolved".equals(codeString)) 446 return new Enumeration<ContractStatus>(this, ContractStatus.RESOLVED, code); 447 if ("terminated".equals(codeString)) 448 return new Enumeration<ContractStatus>(this, ContractStatus.TERMINATED, code); 449 throw new FHIRException("Unknown ContractStatus code '" + codeString + "'"); 450 } 451 452 public String toCode(ContractStatus code) { 453 if (code == ContractStatus.NULL) 454 return null; 455 if (code == ContractStatus.AMENDED) 456 return "amended"; 457 if (code == ContractStatus.APPENDED) 458 return "appended"; 459 if (code == ContractStatus.CANCELLED) 460 return "cancelled"; 461 if (code == ContractStatus.DISPUTED) 462 return "disputed"; 463 if (code == ContractStatus.ENTEREDINERROR) 464 return "entered-in-error"; 465 if (code == ContractStatus.EXECUTABLE) 466 return "executable"; 467 if (code == ContractStatus.EXECUTED) 468 return "executed"; 469 if (code == ContractStatus.NEGOTIABLE) 470 return "negotiable"; 471 if (code == ContractStatus.OFFERED) 472 return "offered"; 473 if (code == ContractStatus.POLICY) 474 return "policy"; 475 if (code == ContractStatus.REJECTED) 476 return "rejected"; 477 if (code == ContractStatus.RENEWED) 478 return "renewed"; 479 if (code == ContractStatus.REVOKED) 480 return "revoked"; 481 if (code == ContractStatus.RESOLVED) 482 return "resolved"; 483 if (code == ContractStatus.TERMINATED) 484 return "terminated"; 485 return "?"; 486 } 487 488 public String toSystem(ContractStatus code) { 489 return code.getSystem(); 490 } 491 } 492 493 public enum ContractPublicationStatus { 494 /** 495 * Contract is augmented with additional information to correct errors in a 496 * predecessor or to updated values in a predecessor. Usage: Contract altered 497 * within effective time. Precedence Order = 9. Comparable FHIR and v.3 status 498 * codes: revised; replaced. 499 */ 500 AMENDED, 501 /** 502 * Contract is augmented with additional information that was missing from a 503 * predecessor Contract. Usage: Contract altered within effective time. 504 * Precedence Order = 9. Comparable FHIR and v.3 status codes: updated, 505 * replaced. 506 */ 507 APPENDED, 508 /** 509 * Contract is terminated due to failure of the Grantor and/or the Grantee to 510 * fulfil one or more contract provisions. Usage: Abnormal contract termination. 511 * Precedence Order = 10. Comparable FHIR and v.3 status codes: stopped; failed; 512 * aborted. 513 */ 514 CANCELLED, 515 /** 516 * Contract is pended to rectify failure of the Grantor or the Grantee to fulfil 517 * contract provision(s). E.g., Grantee complaint about Grantor's failure to 518 * comply with contract provisions. Usage: Contract pended. Precedence Order = 519 * 7. Comparable FHIR and v.3 status codes: on hold; pended; suspended. 520 */ 521 DISPUTED, 522 /** 523 * Contract was created in error. No Precedence Order. Status may be applied to 524 * a Contract with any status. 525 */ 526 ENTEREDINERROR, 527 /** 528 * Contract execution pending; may be executed when either the Grantor or the 529 * Grantee accepts the contract provisions by signing. I.e., where either the 530 * Grantor or the Grantee has signed, but not both. E.g., when an insurance 531 * applicant signs the insurers application, which references the policy. Usage: 532 * Optional first step of contract execution activity. May be skipped and 533 * contracting activity moves directly to executed state. Precedence Order = 3. 534 * Comparable FHIR and v.3 status codes: draft; preliminary; planned; intended; 535 * active. 536 */ 537 EXECUTABLE, 538 /** 539 * Contract is activated for period stipulated when both the Grantor and Grantee 540 * have signed it. Usage: Required state for normal completion of contracting 541 * activity. Precedence Order = 6. Comparable FHIR and v.3 status codes: 542 * accepted; completed. 543 */ 544 EXECUTED, 545 /** 546 * Contract execution is suspended while either or both the Grantor and Grantee 547 * propose and consider new or revised contract provisions. I.e., where the 548 * party which has not signed proposes changes to the terms. E .g., a life 549 * insurer declines to agree to the signed application because the life insurer 550 * has evidence that the applicant, who asserted to being younger or a 551 * non-smoker to get a lower premium rate - but offers instead to agree to a 552 * higher premium based on the applicants actual age or smoking status. Usage: 553 * Optional contract activity between executable and executed state. Precedence 554 * Order = 4. Comparable FHIR and v.3 status codes: in progress; review; held. 555 */ 556 NEGOTIABLE, 557 /** 558 * Contract is a proposal by either the Grantor or the Grantee. Aka - A Contract 559 * hard copy or electronic 'template', 'form' or 'application'. E.g., health 560 * insurance application; consent directive form. Usage: Beginning of contract 561 * negotiation, which may have been completed as a precondition because used for 562 * 0..* contracts. Precedence Order = 2. Comparable FHIR and v.3 status codes: 563 * requested; new. 564 */ 565 OFFERED, 566 /** 567 * Contract template is available as the basis for an application or offer by 568 * the Grantor or Grantee. E.g., health insurance policy; consent directive 569 * policy. Usage: Required initial contract activity, which may have been 570 * completed as a precondition because used for 0..* contracts. Precedence Order 571 * = 1. Comparable FHIR and v.3 status codes: proposed; intended. 572 */ 573 POLICY, 574 /** 575 * Execution of the Contract is not completed because either or both the Grantor 576 * and Grantee decline to accept some or all of the contract provisions. Usage: 577 * Optional contract activity between executable and abnormal termination. 578 * Precedence Order = 5. Comparable FHIR and v.3 status codes: stopped; 579 * cancelled. 580 */ 581 REJECTED, 582 /** 583 * Beginning of a successor Contract at the termination of predecessor Contract 584 * lifecycle. Usage: Follows termination of a preceding Contract that has 585 * reached its expiry date. Precedence Order = 13. Comparable FHIR and v.3 586 * status codes: superseded. 587 */ 588 RENEWED, 589 /** 590 * A Contract that is rescinded. May be required prior to replacing with an 591 * updated Contract. Comparable FHIR and v.3 status codes: nullified. 592 */ 593 REVOKED, 594 /** 595 * Contract is reactivated after being pended because of faulty execution. 596 * *E.g., competency of the signer(s), or where the policy is substantially 597 * different from and did not accompany the application/form so that the 598 * applicant could not compare them. Aka - ''reactivated''. Usage: Optional 599 * stage where a pended contract is reactivated. Precedence Order = 8. 600 * Comparable FHIR and v.3 status codes: reactivated. 601 */ 602 RESOLVED, 603 /** 604 * Contract reaches its expiry date. It might or might not be renewed or 605 * renegotiated. Usage: Normal end of contract period. Precedence Order = 12. 606 * Comparable FHIR and v.3 status codes: Obsoleted. 607 */ 608 TERMINATED, 609 /** 610 * added to help the parsers with the generic types 611 */ 612 NULL; 613 614 public static ContractPublicationStatus fromCode(String codeString) throws FHIRException { 615 if (codeString == null || "".equals(codeString)) 616 return null; 617 if ("amended".equals(codeString)) 618 return AMENDED; 619 if ("appended".equals(codeString)) 620 return APPENDED; 621 if ("cancelled".equals(codeString)) 622 return CANCELLED; 623 if ("disputed".equals(codeString)) 624 return DISPUTED; 625 if ("entered-in-error".equals(codeString)) 626 return ENTEREDINERROR; 627 if ("executable".equals(codeString)) 628 return EXECUTABLE; 629 if ("executed".equals(codeString)) 630 return EXECUTED; 631 if ("negotiable".equals(codeString)) 632 return NEGOTIABLE; 633 if ("offered".equals(codeString)) 634 return OFFERED; 635 if ("policy".equals(codeString)) 636 return POLICY; 637 if ("rejected".equals(codeString)) 638 return REJECTED; 639 if ("renewed".equals(codeString)) 640 return RENEWED; 641 if ("revoked".equals(codeString)) 642 return REVOKED; 643 if ("resolved".equals(codeString)) 644 return RESOLVED; 645 if ("terminated".equals(codeString)) 646 return TERMINATED; 647 if (Configuration.isAcceptInvalidEnums()) 648 return null; 649 else 650 throw new FHIRException("Unknown ContractPublicationStatus code '" + codeString + "'"); 651 } 652 653 public String toCode() { 654 switch (this) { 655 case AMENDED: 656 return "amended"; 657 case APPENDED: 658 return "appended"; 659 case CANCELLED: 660 return "cancelled"; 661 case DISPUTED: 662 return "disputed"; 663 case ENTEREDINERROR: 664 return "entered-in-error"; 665 case EXECUTABLE: 666 return "executable"; 667 case EXECUTED: 668 return "executed"; 669 case NEGOTIABLE: 670 return "negotiable"; 671 case OFFERED: 672 return "offered"; 673 case POLICY: 674 return "policy"; 675 case REJECTED: 676 return "rejected"; 677 case RENEWED: 678 return "renewed"; 679 case REVOKED: 680 return "revoked"; 681 case RESOLVED: 682 return "resolved"; 683 case TERMINATED: 684 return "terminated"; 685 case NULL: 686 return null; 687 default: 688 return "?"; 689 } 690 } 691 692 public String getSystem() { 693 switch (this) { 694 case AMENDED: 695 return "http://hl7.org/fhir/contract-publicationstatus"; 696 case APPENDED: 697 return "http://hl7.org/fhir/contract-publicationstatus"; 698 case CANCELLED: 699 return "http://hl7.org/fhir/contract-publicationstatus"; 700 case DISPUTED: 701 return "http://hl7.org/fhir/contract-publicationstatus"; 702 case ENTEREDINERROR: 703 return "http://hl7.org/fhir/contract-publicationstatus"; 704 case EXECUTABLE: 705 return "http://hl7.org/fhir/contract-publicationstatus"; 706 case EXECUTED: 707 return "http://hl7.org/fhir/contract-publicationstatus"; 708 case NEGOTIABLE: 709 return "http://hl7.org/fhir/contract-publicationstatus"; 710 case OFFERED: 711 return "http://hl7.org/fhir/contract-publicationstatus"; 712 case POLICY: 713 return "http://hl7.org/fhir/contract-publicationstatus"; 714 case REJECTED: 715 return "http://hl7.org/fhir/contract-publicationstatus"; 716 case RENEWED: 717 return "http://hl7.org/fhir/contract-publicationstatus"; 718 case REVOKED: 719 return "http://hl7.org/fhir/contract-publicationstatus"; 720 case RESOLVED: 721 return "http://hl7.org/fhir/contract-publicationstatus"; 722 case TERMINATED: 723 return "http://hl7.org/fhir/contract-publicationstatus"; 724 case NULL: 725 return null; 726 default: 727 return "?"; 728 } 729 } 730 731 public String getDefinition() { 732 switch (this) { 733 case AMENDED: 734 return "Contract is augmented with additional information to correct errors in a predecessor or to updated values in a predecessor. Usage: Contract altered within effective time. Precedence Order = 9. Comparable FHIR and v.3 status codes: revised; replaced."; 735 case APPENDED: 736 return "Contract is augmented with additional information that was missing from a predecessor Contract. Usage: Contract altered within effective time. Precedence Order = 9. Comparable FHIR and v.3 status codes: updated, replaced."; 737 case CANCELLED: 738 return "Contract is terminated due to failure of the Grantor and/or the Grantee to fulfil one or more contract provisions. Usage: Abnormal contract termination. Precedence Order = 10. Comparable FHIR and v.3 status codes: stopped; failed; aborted."; 739 case DISPUTED: 740 return "Contract is pended to rectify failure of the Grantor or the Grantee to fulfil contract provision(s). E.g., Grantee complaint about Grantor's failure to comply with contract provisions. Usage: Contract pended. Precedence Order = 7. Comparable FHIR and v.3 status codes: on hold; pended; suspended."; 741 case ENTEREDINERROR: 742 return "Contract was created in error. No Precedence Order. Status may be applied to a Contract with any status."; 743 case EXECUTABLE: 744 return "Contract execution pending; may be executed when either the Grantor or the Grantee accepts the contract provisions by signing. I.e., where either the Grantor or the Grantee has signed, but not both. E.g., when an insurance applicant signs the insurers application, which references the policy. Usage: Optional first step of contract execution activity. May be skipped and contracting activity moves directly to executed state. Precedence Order = 3. Comparable FHIR and v.3 status codes: draft; preliminary; planned; intended; active."; 745 case EXECUTED: 746 return "Contract is activated for period stipulated when both the Grantor and Grantee have signed it. Usage: Required state for normal completion of contracting activity. Precedence Order = 6. Comparable FHIR and v.3 status codes: accepted; completed."; 747 case NEGOTIABLE: 748 return "Contract execution is suspended while either or both the Grantor and Grantee propose and consider new or revised contract provisions. I.e., where the party which has not signed proposes changes to the terms. E .g., a life insurer declines to agree to the signed application because the life insurer has evidence that the applicant, who asserted to being younger or a non-smoker to get a lower premium rate - but offers instead to agree to a higher premium based on the applicants actual age or smoking status. Usage: Optional contract activity between executable and executed state. Precedence Order = 4. Comparable FHIR and v.3 status codes: in progress; review; held."; 749 case OFFERED: 750 return "Contract is a proposal by either the Grantor or the Grantee. Aka - A Contract hard copy or electronic 'template', 'form' or 'application'. E.g., health insurance application; consent directive form. Usage: Beginning of contract negotiation, which may have been completed as a precondition because used for 0..* contracts. Precedence Order = 2. Comparable FHIR and v.3 status codes: requested; new."; 751 case POLICY: 752 return "Contract template is available as the basis for an application or offer by the Grantor or Grantee. E.g., health insurance policy; consent directive policy. Usage: Required initial contract activity, which may have been completed as a precondition because used for 0..* contracts. Precedence Order = 1. Comparable FHIR and v.3 status codes: proposed; intended."; 753 case REJECTED: 754 return " Execution of the Contract is not completed because either or both the Grantor and Grantee decline to accept some or all of the contract provisions. Usage: Optional contract activity between executable and abnormal termination. Precedence Order = 5. Comparable FHIR and v.3 status codes: stopped; cancelled."; 755 case RENEWED: 756 return "Beginning of a successor Contract at the termination of predecessor Contract lifecycle. Usage: Follows termination of a preceding Contract that has reached its expiry date. Precedence Order = 13. Comparable FHIR and v.3 status codes: superseded."; 757 case REVOKED: 758 return "A Contract that is rescinded. May be required prior to replacing with an updated Contract. Comparable FHIR and v.3 status codes: nullified."; 759 case RESOLVED: 760 return "Contract is reactivated after being pended because of faulty execution. *E.g., competency of the signer(s), or where the policy is substantially different from and did not accompany the application/form so that the applicant could not compare them. Aka - ''reactivated''. Usage: Optional stage where a pended contract is reactivated. Precedence Order = 8. Comparable FHIR and v.3 status codes: reactivated."; 761 case TERMINATED: 762 return "Contract reaches its expiry date. It might or might not be renewed or renegotiated. Usage: Normal end of contract period. Precedence Order = 12. Comparable FHIR and v.3 status codes: Obsoleted."; 763 case NULL: 764 return null; 765 default: 766 return "?"; 767 } 768 } 769 770 public String getDisplay() { 771 switch (this) { 772 case AMENDED: 773 return "Amended"; 774 case APPENDED: 775 return "Appended"; 776 case CANCELLED: 777 return "Cancelled"; 778 case DISPUTED: 779 return "Disputed"; 780 case ENTEREDINERROR: 781 return "Entered in Error"; 782 case EXECUTABLE: 783 return "Executable"; 784 case EXECUTED: 785 return "Executed"; 786 case NEGOTIABLE: 787 return "Negotiable"; 788 case OFFERED: 789 return "Offered"; 790 case POLICY: 791 return "Policy"; 792 case REJECTED: 793 return "Rejected"; 794 case RENEWED: 795 return "Renewed"; 796 case REVOKED: 797 return "Revoked"; 798 case RESOLVED: 799 return "Resolved"; 800 case TERMINATED: 801 return "Terminated"; 802 case NULL: 803 return null; 804 default: 805 return "?"; 806 } 807 } 808 } 809 810 public static class ContractPublicationStatusEnumFactory implements EnumFactory<ContractPublicationStatus> { 811 public ContractPublicationStatus fromCode(String codeString) throws IllegalArgumentException { 812 if (codeString == null || "".equals(codeString)) 813 if (codeString == null || "".equals(codeString)) 814 return null; 815 if ("amended".equals(codeString)) 816 return ContractPublicationStatus.AMENDED; 817 if ("appended".equals(codeString)) 818 return ContractPublicationStatus.APPENDED; 819 if ("cancelled".equals(codeString)) 820 return ContractPublicationStatus.CANCELLED; 821 if ("disputed".equals(codeString)) 822 return ContractPublicationStatus.DISPUTED; 823 if ("entered-in-error".equals(codeString)) 824 return ContractPublicationStatus.ENTEREDINERROR; 825 if ("executable".equals(codeString)) 826 return ContractPublicationStatus.EXECUTABLE; 827 if ("executed".equals(codeString)) 828 return ContractPublicationStatus.EXECUTED; 829 if ("negotiable".equals(codeString)) 830 return ContractPublicationStatus.NEGOTIABLE; 831 if ("offered".equals(codeString)) 832 return ContractPublicationStatus.OFFERED; 833 if ("policy".equals(codeString)) 834 return ContractPublicationStatus.POLICY; 835 if ("rejected".equals(codeString)) 836 return ContractPublicationStatus.REJECTED; 837 if ("renewed".equals(codeString)) 838 return ContractPublicationStatus.RENEWED; 839 if ("revoked".equals(codeString)) 840 return ContractPublicationStatus.REVOKED; 841 if ("resolved".equals(codeString)) 842 return ContractPublicationStatus.RESOLVED; 843 if ("terminated".equals(codeString)) 844 return ContractPublicationStatus.TERMINATED; 845 throw new IllegalArgumentException("Unknown ContractPublicationStatus code '" + codeString + "'"); 846 } 847 848 public Enumeration<ContractPublicationStatus> fromType(PrimitiveType<?> code) throws FHIRException { 849 if (code == null) 850 return null; 851 if (code.isEmpty()) 852 return new Enumeration<ContractPublicationStatus>(this, ContractPublicationStatus.NULL, code); 853 String codeString = code.asStringValue(); 854 if (codeString == null || "".equals(codeString)) 855 return new Enumeration<ContractPublicationStatus>(this, ContractPublicationStatus.NULL, code); 856 if ("amended".equals(codeString)) 857 return new Enumeration<ContractPublicationStatus>(this, ContractPublicationStatus.AMENDED, code); 858 if ("appended".equals(codeString)) 859 return new Enumeration<ContractPublicationStatus>(this, ContractPublicationStatus.APPENDED, code); 860 if ("cancelled".equals(codeString)) 861 return new Enumeration<ContractPublicationStatus>(this, ContractPublicationStatus.CANCELLED, code); 862 if ("disputed".equals(codeString)) 863 return new Enumeration<ContractPublicationStatus>(this, ContractPublicationStatus.DISPUTED, code); 864 if ("entered-in-error".equals(codeString)) 865 return new Enumeration<ContractPublicationStatus>(this, ContractPublicationStatus.ENTEREDINERROR, code); 866 if ("executable".equals(codeString)) 867 return new Enumeration<ContractPublicationStatus>(this, ContractPublicationStatus.EXECUTABLE, code); 868 if ("executed".equals(codeString)) 869 return new Enumeration<ContractPublicationStatus>(this, ContractPublicationStatus.EXECUTED, code); 870 if ("negotiable".equals(codeString)) 871 return new Enumeration<ContractPublicationStatus>(this, ContractPublicationStatus.NEGOTIABLE, code); 872 if ("offered".equals(codeString)) 873 return new Enumeration<ContractPublicationStatus>(this, ContractPublicationStatus.OFFERED, code); 874 if ("policy".equals(codeString)) 875 return new Enumeration<ContractPublicationStatus>(this, ContractPublicationStatus.POLICY, code); 876 if ("rejected".equals(codeString)) 877 return new Enumeration<ContractPublicationStatus>(this, ContractPublicationStatus.REJECTED, code); 878 if ("renewed".equals(codeString)) 879 return new Enumeration<ContractPublicationStatus>(this, ContractPublicationStatus.RENEWED, code); 880 if ("revoked".equals(codeString)) 881 return new Enumeration<ContractPublicationStatus>(this, ContractPublicationStatus.REVOKED, code); 882 if ("resolved".equals(codeString)) 883 return new Enumeration<ContractPublicationStatus>(this, ContractPublicationStatus.RESOLVED, code); 884 if ("terminated".equals(codeString)) 885 return new Enumeration<ContractPublicationStatus>(this, ContractPublicationStatus.TERMINATED, code); 886 throw new FHIRException("Unknown ContractPublicationStatus code '" + codeString + "'"); 887 } 888 889 public String toCode(ContractPublicationStatus code) { 890 if (code == ContractPublicationStatus.NULL) 891 return null; 892 if (code == ContractPublicationStatus.AMENDED) 893 return "amended"; 894 if (code == ContractPublicationStatus.APPENDED) 895 return "appended"; 896 if (code == ContractPublicationStatus.CANCELLED) 897 return "cancelled"; 898 if (code == ContractPublicationStatus.DISPUTED) 899 return "disputed"; 900 if (code == ContractPublicationStatus.ENTEREDINERROR) 901 return "entered-in-error"; 902 if (code == ContractPublicationStatus.EXECUTABLE) 903 return "executable"; 904 if (code == ContractPublicationStatus.EXECUTED) 905 return "executed"; 906 if (code == ContractPublicationStatus.NEGOTIABLE) 907 return "negotiable"; 908 if (code == ContractPublicationStatus.OFFERED) 909 return "offered"; 910 if (code == ContractPublicationStatus.POLICY) 911 return "policy"; 912 if (code == ContractPublicationStatus.REJECTED) 913 return "rejected"; 914 if (code == ContractPublicationStatus.RENEWED) 915 return "renewed"; 916 if (code == ContractPublicationStatus.REVOKED) 917 return "revoked"; 918 if (code == ContractPublicationStatus.RESOLVED) 919 return "resolved"; 920 if (code == ContractPublicationStatus.TERMINATED) 921 return "terminated"; 922 return "?"; 923 } 924 925 public String toSystem(ContractPublicationStatus code) { 926 return code.getSystem(); 927 } 928 } 929 930 @Block() 931 public static class ContentDefinitionComponent extends BackboneElement implements IBaseBackboneElement { 932 /** 933 * Precusory content structure and use, i.e., a boilerplate, template, 934 * application for a contract such as an insurance policy or benefits under a 935 * program, e.g., workers compensation. 936 */ 937 @Child(name = "type", type = { 938 CodeableConcept.class }, order = 1, min = 1, max = 1, modifier = false, summary = false) 939 @Description(shortDefinition = "Content structure and use", formalDefinition = "Precusory content structure and use, i.e., a boilerplate, template, application for a contract such as an insurance policy or benefits under a program, e.g., workers compensation.") 940 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/contract-definition-type") 941 protected CodeableConcept type; 942 943 /** 944 * Detailed Precusory content type. 945 */ 946 @Child(name = "subType", type = { 947 CodeableConcept.class }, order = 2, min = 0, max = 1, modifier = false, summary = false) 948 @Description(shortDefinition = "Detailed Content Type Definition", formalDefinition = "Detailed Precusory content type.") 949 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/contract-definition-subtype") 950 protected CodeableConcept subType; 951 952 /** 953 * The individual or organization that published the Contract precursor content. 954 */ 955 @Child(name = "publisher", type = { Practitioner.class, PractitionerRole.class, 956 Organization.class }, order = 3, min = 0, max = 1, modifier = false, summary = false) 957 @Description(shortDefinition = "Publisher Entity", formalDefinition = "The individual or organization that published the Contract precursor content.") 958 protected Reference publisher; 959 960 /** 961 * The actual object that is the target of the reference (The individual or 962 * organization that published the Contract precursor content.) 963 */ 964 protected Resource publisherTarget; 965 966 /** 967 * The date (and optionally time) when the contract was published. The date must 968 * change when the business version changes and it must change if the status 969 * code changes. In addition, it should change when the substantive content of 970 * the contract changes. 971 */ 972 @Child(name = "publicationDate", type = { 973 DateTimeType.class }, order = 4, min = 0, max = 1, modifier = false, summary = false) 974 @Description(shortDefinition = "When published", formalDefinition = "The date (and optionally time) when the contract was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the contract changes.") 975 protected DateTimeType publicationDate; 976 977 /** 978 * amended | appended | cancelled | disputed | entered-in-error | executable | 979 * executed | negotiable | offered | policy | rejected | renewed | revoked | 980 * resolved | terminated. 981 */ 982 @Child(name = "publicationStatus", type = { 983 CodeType.class }, order = 5, min = 1, max = 1, modifier = false, summary = false) 984 @Description(shortDefinition = "amended | appended | cancelled | disputed | entered-in-error | executable | executed | negotiable | offered | policy | rejected | renewed | revoked | resolved | terminated", formalDefinition = "amended | appended | cancelled | disputed | entered-in-error | executable | executed | negotiable | offered | policy | rejected | renewed | revoked | resolved | terminated.") 985 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/contract-publicationstatus") 986 protected Enumeration<ContractPublicationStatus> publicationStatus; 987 988 /** 989 * A copyright statement relating to Contract precursor content. Copyright 990 * statements are generally legal restrictions on the use and publishing of the 991 * Contract precursor content. 992 */ 993 @Child(name = "copyright", type = { 994 MarkdownType.class }, order = 6, min = 0, max = 1, modifier = false, summary = false) 995 @Description(shortDefinition = "Publication Ownership", formalDefinition = "A copyright statement relating to Contract precursor content. Copyright statements are generally legal restrictions on the use and publishing of the Contract precursor content.") 996 protected MarkdownType copyright; 997 998 private static final long serialVersionUID = -699592864L; 999 1000 /** 1001 * Constructor 1002 */ 1003 public ContentDefinitionComponent() { 1004 super(); 1005 } 1006 1007 /** 1008 * Constructor 1009 */ 1010 public ContentDefinitionComponent(CodeableConcept type, Enumeration<ContractPublicationStatus> publicationStatus) { 1011 super(); 1012 this.type = type; 1013 this.publicationStatus = publicationStatus; 1014 } 1015 1016 /** 1017 * @return {@link #type} (Precusory content structure and use, i.e., a 1018 * boilerplate, template, application for a contract such as an 1019 * insurance policy or benefits under a program, e.g., workers 1020 * compensation.) 1021 */ 1022 public CodeableConcept getType() { 1023 if (this.type == null) 1024 if (Configuration.errorOnAutoCreate()) 1025 throw new Error("Attempt to auto-create ContentDefinitionComponent.type"); 1026 else if (Configuration.doAutoCreate()) 1027 this.type = new CodeableConcept(); // cc 1028 return this.type; 1029 } 1030 1031 public boolean hasType() { 1032 return this.type != null && !this.type.isEmpty(); 1033 } 1034 1035 /** 1036 * @param value {@link #type} (Precusory content structure and use, i.e., a 1037 * boilerplate, template, application for a contract such as an 1038 * insurance policy or benefits under a program, e.g., workers 1039 * compensation.) 1040 */ 1041 public ContentDefinitionComponent setType(CodeableConcept value) { 1042 this.type = value; 1043 return this; 1044 } 1045 1046 /** 1047 * @return {@link #subType} (Detailed Precusory content type.) 1048 */ 1049 public CodeableConcept getSubType() { 1050 if (this.subType == null) 1051 if (Configuration.errorOnAutoCreate()) 1052 throw new Error("Attempt to auto-create ContentDefinitionComponent.subType"); 1053 else if (Configuration.doAutoCreate()) 1054 this.subType = new CodeableConcept(); // cc 1055 return this.subType; 1056 } 1057 1058 public boolean hasSubType() { 1059 return this.subType != null && !this.subType.isEmpty(); 1060 } 1061 1062 /** 1063 * @param value {@link #subType} (Detailed Precusory content type.) 1064 */ 1065 public ContentDefinitionComponent setSubType(CodeableConcept value) { 1066 this.subType = value; 1067 return this; 1068 } 1069 1070 /** 1071 * @return {@link #publisher} (The individual or organization that published the 1072 * Contract precursor content.) 1073 */ 1074 public Reference getPublisher() { 1075 if (this.publisher == null) 1076 if (Configuration.errorOnAutoCreate()) 1077 throw new Error("Attempt to auto-create ContentDefinitionComponent.publisher"); 1078 else if (Configuration.doAutoCreate()) 1079 this.publisher = new Reference(); // cc 1080 return this.publisher; 1081 } 1082 1083 public boolean hasPublisher() { 1084 return this.publisher != null && !this.publisher.isEmpty(); 1085 } 1086 1087 /** 1088 * @param value {@link #publisher} (The individual or organization that 1089 * published the Contract precursor content.) 1090 */ 1091 public ContentDefinitionComponent setPublisher(Reference value) { 1092 this.publisher = value; 1093 return this; 1094 } 1095 1096 /** 1097 * @return {@link #publisher} The actual object that is the target of the 1098 * reference. The reference library doesn't populate this, but you can 1099 * use it to hold the resource if you resolve it. (The individual or 1100 * organization that published the Contract precursor content.) 1101 */ 1102 public Resource getPublisherTarget() { 1103 return this.publisherTarget; 1104 } 1105 1106 /** 1107 * @param value {@link #publisher} The actual object that is the target of the 1108 * reference. The reference library doesn't use these, but you can 1109 * use it to hold the resource if you resolve it. (The individual 1110 * or organization that published the Contract precursor content.) 1111 */ 1112 public ContentDefinitionComponent setPublisherTarget(Resource value) { 1113 this.publisherTarget = value; 1114 return this; 1115 } 1116 1117 /** 1118 * @return {@link #publicationDate} (The date (and optionally time) when the 1119 * contract was published. The date must change when the business 1120 * version changes and it must change if the status code changes. In 1121 * addition, it should change when the substantive content of the 1122 * contract changes.). This is the underlying object with id, value and 1123 * extensions. The accessor "getPublicationDate" gives direct access to 1124 * the value 1125 */ 1126 public DateTimeType getPublicationDateElement() { 1127 if (this.publicationDate == null) 1128 if (Configuration.errorOnAutoCreate()) 1129 throw new Error("Attempt to auto-create ContentDefinitionComponent.publicationDate"); 1130 else if (Configuration.doAutoCreate()) 1131 this.publicationDate = new DateTimeType(); // bb 1132 return this.publicationDate; 1133 } 1134 1135 public boolean hasPublicationDateElement() { 1136 return this.publicationDate != null && !this.publicationDate.isEmpty(); 1137 } 1138 1139 public boolean hasPublicationDate() { 1140 return this.publicationDate != null && !this.publicationDate.isEmpty(); 1141 } 1142 1143 /** 1144 * @param value {@link #publicationDate} (The date (and optionally time) when 1145 * the contract was published. The date must change when the 1146 * business version changes and it must change if the status code 1147 * changes. In addition, it should change when the substantive 1148 * content of the contract changes.). This is the underlying object 1149 * with id, value and extensions. The accessor "getPublicationDate" 1150 * gives direct access to the value 1151 */ 1152 public ContentDefinitionComponent setPublicationDateElement(DateTimeType value) { 1153 this.publicationDate = value; 1154 return this; 1155 } 1156 1157 /** 1158 * @return The date (and optionally time) when the contract was published. The 1159 * date must change when the business version changes and it must change 1160 * if the status code changes. In addition, it should change when the 1161 * substantive content of the contract changes. 1162 */ 1163 public Date getPublicationDate() { 1164 return this.publicationDate == null ? null : this.publicationDate.getValue(); 1165 } 1166 1167 /** 1168 * @param value The date (and optionally time) when the contract was published. 1169 * The date must change when the business version changes and it 1170 * must change if the status code changes. In addition, it should 1171 * change when the substantive content of the contract changes. 1172 */ 1173 public ContentDefinitionComponent setPublicationDate(Date value) { 1174 if (value == null) 1175 this.publicationDate = null; 1176 else { 1177 if (this.publicationDate == null) 1178 this.publicationDate = new DateTimeType(); 1179 this.publicationDate.setValue(value); 1180 } 1181 return this; 1182 } 1183 1184 /** 1185 * @return {@link #publicationStatus} (amended | appended | cancelled | disputed 1186 * | entered-in-error | executable | executed | negotiable | offered | 1187 * policy | rejected | renewed | revoked | resolved | terminated.). This 1188 * is the underlying object with id, value and extensions. The accessor 1189 * "getPublicationStatus" gives direct access to the value 1190 */ 1191 public Enumeration<ContractPublicationStatus> getPublicationStatusElement() { 1192 if (this.publicationStatus == null) 1193 if (Configuration.errorOnAutoCreate()) 1194 throw new Error("Attempt to auto-create ContentDefinitionComponent.publicationStatus"); 1195 else if (Configuration.doAutoCreate()) 1196 this.publicationStatus = new Enumeration<ContractPublicationStatus>( 1197 new ContractPublicationStatusEnumFactory()); // bb 1198 return this.publicationStatus; 1199 } 1200 1201 public boolean hasPublicationStatusElement() { 1202 return this.publicationStatus != null && !this.publicationStatus.isEmpty(); 1203 } 1204 1205 public boolean hasPublicationStatus() { 1206 return this.publicationStatus != null && !this.publicationStatus.isEmpty(); 1207 } 1208 1209 /** 1210 * @param value {@link #publicationStatus} (amended | appended | cancelled | 1211 * disputed | entered-in-error | executable | executed | negotiable 1212 * | offered | policy | rejected | renewed | revoked | resolved | 1213 * terminated.). This is the underlying object with id, value and 1214 * extensions. The accessor "getPublicationStatus" gives direct 1215 * access to the value 1216 */ 1217 public ContentDefinitionComponent setPublicationStatusElement(Enumeration<ContractPublicationStatus> value) { 1218 this.publicationStatus = value; 1219 return this; 1220 } 1221 1222 /** 1223 * @return amended | appended | cancelled | disputed | entered-in-error | 1224 * executable | executed | negotiable | offered | policy | rejected | 1225 * renewed | revoked | resolved | terminated. 1226 */ 1227 public ContractPublicationStatus getPublicationStatus() { 1228 return this.publicationStatus == null ? null : this.publicationStatus.getValue(); 1229 } 1230 1231 /** 1232 * @param value amended | appended | cancelled | disputed | entered-in-error | 1233 * executable | executed | negotiable | offered | policy | rejected 1234 * | renewed | revoked | resolved | terminated. 1235 */ 1236 public ContentDefinitionComponent setPublicationStatus(ContractPublicationStatus value) { 1237 if (this.publicationStatus == null) 1238 this.publicationStatus = new Enumeration<ContractPublicationStatus>(new ContractPublicationStatusEnumFactory()); 1239 this.publicationStatus.setValue(value); 1240 return this; 1241 } 1242 1243 /** 1244 * @return {@link #copyright} (A copyright statement relating to Contract 1245 * precursor content. Copyright statements are generally legal 1246 * restrictions on the use and publishing of the Contract precursor 1247 * content.). This is the underlying object with id, value and 1248 * extensions. The accessor "getCopyright" gives direct access to the 1249 * value 1250 */ 1251 public MarkdownType getCopyrightElement() { 1252 if (this.copyright == null) 1253 if (Configuration.errorOnAutoCreate()) 1254 throw new Error("Attempt to auto-create ContentDefinitionComponent.copyright"); 1255 else if (Configuration.doAutoCreate()) 1256 this.copyright = new MarkdownType(); // bb 1257 return this.copyright; 1258 } 1259 1260 public boolean hasCopyrightElement() { 1261 return this.copyright != null && !this.copyright.isEmpty(); 1262 } 1263 1264 public boolean hasCopyright() { 1265 return this.copyright != null && !this.copyright.isEmpty(); 1266 } 1267 1268 /** 1269 * @param value {@link #copyright} (A copyright statement relating to Contract 1270 * precursor content. Copyright statements are generally legal 1271 * restrictions on the use and publishing of the Contract precursor 1272 * content.). This is the underlying object with id, value and 1273 * extensions. The accessor "getCopyright" gives direct access to 1274 * the value 1275 */ 1276 public ContentDefinitionComponent setCopyrightElement(MarkdownType value) { 1277 this.copyright = value; 1278 return this; 1279 } 1280 1281 /** 1282 * @return A copyright statement relating to Contract precursor content. 1283 * Copyright statements are generally legal restrictions on the use and 1284 * publishing of the Contract precursor content. 1285 */ 1286 public String getCopyright() { 1287 return this.copyright == null ? null : this.copyright.getValue(); 1288 } 1289 1290 /** 1291 * @param value A copyright statement relating to Contract precursor content. 1292 * Copyright statements are generally legal restrictions on the use 1293 * and publishing of the Contract precursor content. 1294 */ 1295 public ContentDefinitionComponent setCopyright(String value) { 1296 if (value == null) 1297 this.copyright = null; 1298 else { 1299 if (this.copyright == null) 1300 this.copyright = new MarkdownType(); 1301 this.copyright.setValue(value); 1302 } 1303 return this; 1304 } 1305 1306 protected void listChildren(List<Property> children) { 1307 super.listChildren(children); 1308 children.add(new Property("type", "CodeableConcept", 1309 "Precusory content structure and use, i.e., a boilerplate, template, application for a contract such as an insurance policy or benefits under a program, e.g., workers compensation.", 1310 0, 1, type)); 1311 children.add(new Property("subType", "CodeableConcept", "Detailed Precusory content type.", 0, 1, subType)); 1312 children.add(new Property("publisher", "Reference(Practitioner|PractitionerRole|Organization)", 1313 "The individual or organization that published the Contract precursor content.", 0, 1, publisher)); 1314 children.add(new Property("publicationDate", "dateTime", 1315 "The date (and optionally time) when the contract was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the contract changes.", 1316 0, 1, publicationDate)); 1317 children.add(new Property("publicationStatus", "code", 1318 "amended | appended | cancelled | disputed | entered-in-error | executable | executed | negotiable | offered | policy | rejected | renewed | revoked | resolved | terminated.", 1319 0, 1, publicationStatus)); 1320 children.add(new Property("copyright", "markdown", 1321 "A copyright statement relating to Contract precursor content. Copyright statements are generally legal restrictions on the use and publishing of the Contract precursor content.", 1322 0, 1, copyright)); 1323 } 1324 1325 @Override 1326 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1327 switch (_hash) { 1328 case 3575610: 1329 /* type */ return new Property("type", "CodeableConcept", 1330 "Precusory content structure and use, i.e., a boilerplate, template, application for a contract such as an insurance policy or benefits under a program, e.g., workers compensation.", 1331 0, 1, type); 1332 case -1868521062: 1333 /* subType */ return new Property("subType", "CodeableConcept", "Detailed Precusory content type.", 0, 1, 1334 subType); 1335 case 1447404028: 1336 /* publisher */ return new Property("publisher", "Reference(Practitioner|PractitionerRole|Organization)", 1337 "The individual or organization that published the Contract precursor content.", 0, 1, publisher); 1338 case 1470566394: 1339 /* publicationDate */ return new Property("publicationDate", "dateTime", 1340 "The date (and optionally time) when the contract was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the contract changes.", 1341 0, 1, publicationDate); 1342 case 616500542: 1343 /* publicationStatus */ return new Property("publicationStatus", "code", 1344 "amended | appended | cancelled | disputed | entered-in-error | executable | executed | negotiable | offered | policy | rejected | renewed | revoked | resolved | terminated.", 1345 0, 1, publicationStatus); 1346 case 1522889671: 1347 /* copyright */ return new Property("copyright", "markdown", 1348 "A copyright statement relating to Contract precursor content. Copyright statements are generally legal restrictions on the use and publishing of the Contract precursor content.", 1349 0, 1, copyright); 1350 default: 1351 return super.getNamedProperty(_hash, _name, _checkValid); 1352 } 1353 1354 } 1355 1356 @Override 1357 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1358 switch (hash) { 1359 case 3575610: 1360 /* type */ return this.type == null ? new Base[0] : new Base[] { this.type }; // CodeableConcept 1361 case -1868521062: 1362 /* subType */ return this.subType == null ? new Base[0] : new Base[] { this.subType }; // CodeableConcept 1363 case 1447404028: 1364 /* publisher */ return this.publisher == null ? new Base[0] : new Base[] { this.publisher }; // Reference 1365 case 1470566394: 1366 /* publicationDate */ return this.publicationDate == null ? new Base[0] : new Base[] { this.publicationDate }; // DateTimeType 1367 case 616500542: 1368 /* publicationStatus */ return this.publicationStatus == null ? new Base[0] 1369 : new Base[] { this.publicationStatus }; // Enumeration<ContractPublicationStatus> 1370 case 1522889671: 1371 /* copyright */ return this.copyright == null ? new Base[0] : new Base[] { this.copyright }; // MarkdownType 1372 default: 1373 return super.getProperty(hash, name, checkValid); 1374 } 1375 1376 } 1377 1378 @Override 1379 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1380 switch (hash) { 1381 case 3575610: // type 1382 this.type = castToCodeableConcept(value); // CodeableConcept 1383 return value; 1384 case -1868521062: // subType 1385 this.subType = castToCodeableConcept(value); // CodeableConcept 1386 return value; 1387 case 1447404028: // publisher 1388 this.publisher = castToReference(value); // Reference 1389 return value; 1390 case 1470566394: // publicationDate 1391 this.publicationDate = castToDateTime(value); // DateTimeType 1392 return value; 1393 case 616500542: // publicationStatus 1394 value = new ContractPublicationStatusEnumFactory().fromType(castToCode(value)); 1395 this.publicationStatus = (Enumeration) value; // Enumeration<ContractPublicationStatus> 1396 return value; 1397 case 1522889671: // copyright 1398 this.copyright = castToMarkdown(value); // MarkdownType 1399 return value; 1400 default: 1401 return super.setProperty(hash, name, value); 1402 } 1403 1404 } 1405 1406 @Override 1407 public Base setProperty(String name, Base value) throws FHIRException { 1408 if (name.equals("type")) { 1409 this.type = castToCodeableConcept(value); // CodeableConcept 1410 } else if (name.equals("subType")) { 1411 this.subType = castToCodeableConcept(value); // CodeableConcept 1412 } else if (name.equals("publisher")) { 1413 this.publisher = castToReference(value); // Reference 1414 } else if (name.equals("publicationDate")) { 1415 this.publicationDate = castToDateTime(value); // DateTimeType 1416 } else if (name.equals("publicationStatus")) { 1417 value = new ContractPublicationStatusEnumFactory().fromType(castToCode(value)); 1418 this.publicationStatus = (Enumeration) value; // Enumeration<ContractPublicationStatus> 1419 } else if (name.equals("copyright")) { 1420 this.copyright = castToMarkdown(value); // MarkdownType 1421 } else 1422 return super.setProperty(name, value); 1423 return value; 1424 } 1425 1426 @Override 1427 public void removeChild(String name, Base value) throws FHIRException { 1428 if (name.equals("type")) { 1429 this.type = null; 1430 } else if (name.equals("subType")) { 1431 this.subType = null; 1432 } else if (name.equals("publisher")) { 1433 this.publisher = null; 1434 } else if (name.equals("publicationDate")) { 1435 this.publicationDate = null; 1436 } else if (name.equals("publicationStatus")) { 1437 this.publicationStatus = null; 1438 } else if (name.equals("copyright")) { 1439 this.copyright = null; 1440 } else 1441 super.removeChild(name, value); 1442 1443 } 1444 1445 @Override 1446 public Base makeProperty(int hash, String name) throws FHIRException { 1447 switch (hash) { 1448 case 3575610: 1449 return getType(); 1450 case -1868521062: 1451 return getSubType(); 1452 case 1447404028: 1453 return getPublisher(); 1454 case 1470566394: 1455 return getPublicationDateElement(); 1456 case 616500542: 1457 return getPublicationStatusElement(); 1458 case 1522889671: 1459 return getCopyrightElement(); 1460 default: 1461 return super.makeProperty(hash, name); 1462 } 1463 1464 } 1465 1466 @Override 1467 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1468 switch (hash) { 1469 case 3575610: 1470 /* type */ return new String[] { "CodeableConcept" }; 1471 case -1868521062: 1472 /* subType */ return new String[] { "CodeableConcept" }; 1473 case 1447404028: 1474 /* publisher */ return new String[] { "Reference" }; 1475 case 1470566394: 1476 /* publicationDate */ return new String[] { "dateTime" }; 1477 case 616500542: 1478 /* publicationStatus */ return new String[] { "code" }; 1479 case 1522889671: 1480 /* copyright */ return new String[] { "markdown" }; 1481 default: 1482 return super.getTypesForProperty(hash, name); 1483 } 1484 1485 } 1486 1487 @Override 1488 public Base addChild(String name) throws FHIRException { 1489 if (name.equals("type")) { 1490 this.type = new CodeableConcept(); 1491 return this.type; 1492 } else if (name.equals("subType")) { 1493 this.subType = new CodeableConcept(); 1494 return this.subType; 1495 } else if (name.equals("publisher")) { 1496 this.publisher = new Reference(); 1497 return this.publisher; 1498 } else if (name.equals("publicationDate")) { 1499 throw new FHIRException("Cannot call addChild on a singleton property Contract.publicationDate"); 1500 } else if (name.equals("publicationStatus")) { 1501 throw new FHIRException("Cannot call addChild on a singleton property Contract.publicationStatus"); 1502 } else if (name.equals("copyright")) { 1503 throw new FHIRException("Cannot call addChild on a singleton property Contract.copyright"); 1504 } else 1505 return super.addChild(name); 1506 } 1507 1508 public ContentDefinitionComponent copy() { 1509 ContentDefinitionComponent dst = new ContentDefinitionComponent(); 1510 copyValues(dst); 1511 return dst; 1512 } 1513 1514 public void copyValues(ContentDefinitionComponent dst) { 1515 super.copyValues(dst); 1516 dst.type = type == null ? null : type.copy(); 1517 dst.subType = subType == null ? null : subType.copy(); 1518 dst.publisher = publisher == null ? null : publisher.copy(); 1519 dst.publicationDate = publicationDate == null ? null : publicationDate.copy(); 1520 dst.publicationStatus = publicationStatus == null ? null : publicationStatus.copy(); 1521 dst.copyright = copyright == null ? null : copyright.copy(); 1522 } 1523 1524 @Override 1525 public boolean equalsDeep(Base other_) { 1526 if (!super.equalsDeep(other_)) 1527 return false; 1528 if (!(other_ instanceof ContentDefinitionComponent)) 1529 return false; 1530 ContentDefinitionComponent o = (ContentDefinitionComponent) other_; 1531 return compareDeep(type, o.type, true) && compareDeep(subType, o.subType, true) 1532 && compareDeep(publisher, o.publisher, true) && compareDeep(publicationDate, o.publicationDate, true) 1533 && compareDeep(publicationStatus, o.publicationStatus, true) && compareDeep(copyright, o.copyright, true); 1534 } 1535 1536 @Override 1537 public boolean equalsShallow(Base other_) { 1538 if (!super.equalsShallow(other_)) 1539 return false; 1540 if (!(other_ instanceof ContentDefinitionComponent)) 1541 return false; 1542 ContentDefinitionComponent o = (ContentDefinitionComponent) other_; 1543 return compareValues(publicationDate, o.publicationDate, true) 1544 && compareValues(publicationStatus, o.publicationStatus, true) && compareValues(copyright, o.copyright, true); 1545 } 1546 1547 public boolean isEmpty() { 1548 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(type, subType, publisher, publicationDate, 1549 publicationStatus, copyright); 1550 } 1551 1552 public String fhirType() { 1553 return "Contract.contentDefinition"; 1554 1555 } 1556 1557 } 1558 1559 @Block() 1560 public static class TermComponent extends BackboneElement implements IBaseBackboneElement { 1561 /** 1562 * Unique identifier for this particular Contract Provision. 1563 */ 1564 @Child(name = "identifier", type = { 1565 Identifier.class }, order = 1, min = 0, max = 1, modifier = false, summary = true) 1566 @Description(shortDefinition = "Contract Term Number", formalDefinition = "Unique identifier for this particular Contract Provision.") 1567 protected Identifier identifier; 1568 1569 /** 1570 * When this Contract Provision was issued. 1571 */ 1572 @Child(name = "issued", type = { 1573 DateTimeType.class }, order = 2, min = 0, max = 1, modifier = false, summary = true) 1574 @Description(shortDefinition = "Contract Term Issue Date Time", formalDefinition = "When this Contract Provision was issued.") 1575 protected DateTimeType issued; 1576 1577 /** 1578 * Relevant time or time-period when this Contract Provision is applicable. 1579 */ 1580 @Child(name = "applies", type = { Period.class }, order = 3, min = 0, max = 1, modifier = false, summary = true) 1581 @Description(shortDefinition = "Contract Term Effective Time", formalDefinition = "Relevant time or time-period when this Contract Provision is applicable.") 1582 protected Period applies; 1583 1584 /** 1585 * The entity that the term applies to. 1586 */ 1587 @Child(name = "topic", type = { CodeableConcept.class, 1588 Reference.class }, order = 4, min = 0, max = 1, modifier = false, summary = false) 1589 @Description(shortDefinition = "Term Concern", formalDefinition = "The entity that the term applies to.") 1590 protected Type topic; 1591 1592 /** 1593 * A legal clause or condition contained within a contract that requires one or 1594 * both parties to perform a particular requirement by some specified time or 1595 * prevents one or both parties from performing a particular requirement by some 1596 * specified time. 1597 */ 1598 @Child(name = "type", type = { 1599 CodeableConcept.class }, order = 5, min = 0, max = 1, modifier = false, summary = false) 1600 @Description(shortDefinition = "Contract Term Type or Form", formalDefinition = "A legal clause or condition contained within a contract that requires one or both parties to perform a particular requirement by some specified time or prevents one or both parties from performing a particular requirement by some specified time.") 1601 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/contract-term-type") 1602 protected CodeableConcept type; 1603 1604 /** 1605 * A specialized legal clause or condition based on overarching contract type. 1606 */ 1607 @Child(name = "subType", type = { 1608 CodeableConcept.class }, order = 6, min = 0, max = 1, modifier = false, summary = false) 1609 @Description(shortDefinition = "Contract Term Type specific classification", formalDefinition = "A specialized legal clause or condition based on overarching contract type.") 1610 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/contract-term-subtype") 1611 protected CodeableConcept subType; 1612 1613 /** 1614 * Statement of a provision in a policy or a contract. 1615 */ 1616 @Child(name = "text", type = { StringType.class }, order = 7, min = 0, max = 1, modifier = false, summary = true) 1617 @Description(shortDefinition = "Term Statement", formalDefinition = "Statement of a provision in a policy or a contract.") 1618 protected StringType text; 1619 1620 /** 1621 * Security labels that protect the handling of information about the term and 1622 * its elements, which may be specifically identified.. 1623 */ 1624 @Child(name = "securityLabel", type = {}, order = 8, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 1625 @Description(shortDefinition = "Protection for the Term", formalDefinition = "Security labels that protect the handling of information about the term and its elements, which may be specifically identified..") 1626 protected List<SecurityLabelComponent> securityLabel; 1627 1628 /** 1629 * The matter of concern in the context of this provision of the agrement. 1630 */ 1631 @Child(name = "offer", type = {}, order = 9, min = 1, max = 1, modifier = false, summary = false) 1632 @Description(shortDefinition = "Context of the Contract term", formalDefinition = "The matter of concern in the context of this provision of the agrement.") 1633 protected ContractOfferComponent offer; 1634 1635 /** 1636 * Contract Term Asset List. 1637 */ 1638 @Child(name = "asset", type = {}, order = 10, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 1639 @Description(shortDefinition = "Contract Term Asset List", formalDefinition = "Contract Term Asset List.") 1640 protected List<ContractAssetComponent> asset; 1641 1642 /** 1643 * An actor taking a role in an activity for which it can be assigned some 1644 * degree of responsibility for the activity taking place. 1645 */ 1646 @Child(name = "action", type = {}, order = 11, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 1647 @Description(shortDefinition = "Entity being ascribed responsibility", formalDefinition = "An actor taking a role in an activity for which it can be assigned some degree of responsibility for the activity taking place.") 1648 protected List<ActionComponent> action; 1649 1650 /** 1651 * Nested group of Contract Provisions. 1652 */ 1653 @Child(name = "group", type = { 1654 TermComponent.class }, order = 12, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 1655 @Description(shortDefinition = "Nested Contract Term Group", formalDefinition = "Nested group of Contract Provisions.") 1656 protected List<TermComponent> group; 1657 1658 private static final long serialVersionUID = -460907186L; 1659 1660 /** 1661 * Constructor 1662 */ 1663 public TermComponent() { 1664 super(); 1665 } 1666 1667 /** 1668 * Constructor 1669 */ 1670 public TermComponent(ContractOfferComponent offer) { 1671 super(); 1672 this.offer = offer; 1673 } 1674 1675 /** 1676 * @return {@link #identifier} (Unique identifier for this particular Contract 1677 * Provision.) 1678 */ 1679 public Identifier getIdentifier() { 1680 if (this.identifier == null) 1681 if (Configuration.errorOnAutoCreate()) 1682 throw new Error("Attempt to auto-create TermComponent.identifier"); 1683 else if (Configuration.doAutoCreate()) 1684 this.identifier = new Identifier(); // cc 1685 return this.identifier; 1686 } 1687 1688 public boolean hasIdentifier() { 1689 return this.identifier != null && !this.identifier.isEmpty(); 1690 } 1691 1692 /** 1693 * @param value {@link #identifier} (Unique identifier for this particular 1694 * Contract Provision.) 1695 */ 1696 public TermComponent setIdentifier(Identifier value) { 1697 this.identifier = value; 1698 return this; 1699 } 1700 1701 /** 1702 * @return {@link #issued} (When this Contract Provision was issued.). This is 1703 * the underlying object with id, value and extensions. The accessor 1704 * "getIssued" gives direct access to the value 1705 */ 1706 public DateTimeType getIssuedElement() { 1707 if (this.issued == null) 1708 if (Configuration.errorOnAutoCreate()) 1709 throw new Error("Attempt to auto-create TermComponent.issued"); 1710 else if (Configuration.doAutoCreate()) 1711 this.issued = new DateTimeType(); // bb 1712 return this.issued; 1713 } 1714 1715 public boolean hasIssuedElement() { 1716 return this.issued != null && !this.issued.isEmpty(); 1717 } 1718 1719 public boolean hasIssued() { 1720 return this.issued != null && !this.issued.isEmpty(); 1721 } 1722 1723 /** 1724 * @param value {@link #issued} (When this Contract Provision was issued.). This 1725 * is the underlying object with id, value and extensions. The 1726 * accessor "getIssued" gives direct access to the value 1727 */ 1728 public TermComponent setIssuedElement(DateTimeType value) { 1729 this.issued = value; 1730 return this; 1731 } 1732 1733 /** 1734 * @return When this Contract Provision was issued. 1735 */ 1736 public Date getIssued() { 1737 return this.issued == null ? null : this.issued.getValue(); 1738 } 1739 1740 /** 1741 * @param value When this Contract Provision was issued. 1742 */ 1743 public TermComponent setIssued(Date value) { 1744 if (value == null) 1745 this.issued = null; 1746 else { 1747 if (this.issued == null) 1748 this.issued = new DateTimeType(); 1749 this.issued.setValue(value); 1750 } 1751 return this; 1752 } 1753 1754 /** 1755 * @return {@link #applies} (Relevant time or time-period when this Contract 1756 * Provision is applicable.) 1757 */ 1758 public Period getApplies() { 1759 if (this.applies == null) 1760 if (Configuration.errorOnAutoCreate()) 1761 throw new Error("Attempt to auto-create TermComponent.applies"); 1762 else if (Configuration.doAutoCreate()) 1763 this.applies = new Period(); // cc 1764 return this.applies; 1765 } 1766 1767 public boolean hasApplies() { 1768 return this.applies != null && !this.applies.isEmpty(); 1769 } 1770 1771 /** 1772 * @param value {@link #applies} (Relevant time or time-period when this 1773 * Contract Provision is applicable.) 1774 */ 1775 public TermComponent setApplies(Period value) { 1776 this.applies = value; 1777 return this; 1778 } 1779 1780 /** 1781 * @return {@link #topic} (The entity that the term applies to.) 1782 */ 1783 public Type getTopic() { 1784 return this.topic; 1785 } 1786 1787 /** 1788 * @return {@link #topic} (The entity that the term applies to.) 1789 */ 1790 public CodeableConcept getTopicCodeableConcept() throws FHIRException { 1791 if (this.topic == null) 1792 this.topic = new CodeableConcept(); 1793 if (!(this.topic instanceof CodeableConcept)) 1794 throw new FHIRException("Type mismatch: the type CodeableConcept was expected, but " 1795 + this.topic.getClass().getName() + " was encountered"); 1796 return (CodeableConcept) this.topic; 1797 } 1798 1799 public boolean hasTopicCodeableConcept() { 1800 return this != null && this.topic instanceof CodeableConcept; 1801 } 1802 1803 /** 1804 * @return {@link #topic} (The entity that the term applies to.) 1805 */ 1806 public Reference getTopicReference() throws FHIRException { 1807 if (this.topic == null) 1808 this.topic = new Reference(); 1809 if (!(this.topic instanceof Reference)) 1810 throw new FHIRException("Type mismatch: the type Reference was expected, but " + this.topic.getClass().getName() 1811 + " was encountered"); 1812 return (Reference) this.topic; 1813 } 1814 1815 public boolean hasTopicReference() { 1816 return this != null && this.topic instanceof Reference; 1817 } 1818 1819 public boolean hasTopic() { 1820 return this.topic != null && !this.topic.isEmpty(); 1821 } 1822 1823 /** 1824 * @param value {@link #topic} (The entity that the term applies to.) 1825 */ 1826 public TermComponent setTopic(Type value) { 1827 if (value != null && !(value instanceof CodeableConcept || value instanceof Reference)) 1828 throw new Error("Not the right type for Contract.term.topic[x]: " + value.fhirType()); 1829 this.topic = value; 1830 return this; 1831 } 1832 1833 /** 1834 * @return {@link #type} (A legal clause or condition contained within a 1835 * contract that requires one or both parties to perform a particular 1836 * requirement by some specified time or prevents one or both parties 1837 * from performing a particular requirement by some specified time.) 1838 */ 1839 public CodeableConcept getType() { 1840 if (this.type == null) 1841 if (Configuration.errorOnAutoCreate()) 1842 throw new Error("Attempt to auto-create TermComponent.type"); 1843 else if (Configuration.doAutoCreate()) 1844 this.type = new CodeableConcept(); // cc 1845 return this.type; 1846 } 1847 1848 public boolean hasType() { 1849 return this.type != null && !this.type.isEmpty(); 1850 } 1851 1852 /** 1853 * @param value {@link #type} (A legal clause or condition contained within a 1854 * contract that requires one or both parties to perform a 1855 * particular requirement by some specified time or prevents one or 1856 * both parties from performing a particular requirement by some 1857 * specified time.) 1858 */ 1859 public TermComponent setType(CodeableConcept value) { 1860 this.type = value; 1861 return this; 1862 } 1863 1864 /** 1865 * @return {@link #subType} (A specialized legal clause or condition based on 1866 * overarching contract type.) 1867 */ 1868 public CodeableConcept getSubType() { 1869 if (this.subType == null) 1870 if (Configuration.errorOnAutoCreate()) 1871 throw new Error("Attempt to auto-create TermComponent.subType"); 1872 else if (Configuration.doAutoCreate()) 1873 this.subType = new CodeableConcept(); // cc 1874 return this.subType; 1875 } 1876 1877 public boolean hasSubType() { 1878 return this.subType != null && !this.subType.isEmpty(); 1879 } 1880 1881 /** 1882 * @param value {@link #subType} (A specialized legal clause or condition based 1883 * on overarching contract type.) 1884 */ 1885 public TermComponent setSubType(CodeableConcept value) { 1886 this.subType = value; 1887 return this; 1888 } 1889 1890 /** 1891 * @return {@link #text} (Statement of a provision in a policy or a contract.). 1892 * This is the underlying object with id, value and extensions. The 1893 * accessor "getText" gives direct access to the value 1894 */ 1895 public StringType getTextElement() { 1896 if (this.text == null) 1897 if (Configuration.errorOnAutoCreate()) 1898 throw new Error("Attempt to auto-create TermComponent.text"); 1899 else if (Configuration.doAutoCreate()) 1900 this.text = new StringType(); // bb 1901 return this.text; 1902 } 1903 1904 public boolean hasTextElement() { 1905 return this.text != null && !this.text.isEmpty(); 1906 } 1907 1908 public boolean hasText() { 1909 return this.text != null && !this.text.isEmpty(); 1910 } 1911 1912 /** 1913 * @param value {@link #text} (Statement of a provision in a policy or a 1914 * contract.). This is the underlying object with id, value and 1915 * extensions. The accessor "getText" gives direct access to the 1916 * value 1917 */ 1918 public TermComponent setTextElement(StringType value) { 1919 this.text = value; 1920 return this; 1921 } 1922 1923 /** 1924 * @return Statement of a provision in a policy or a contract. 1925 */ 1926 public String getText() { 1927 return this.text == null ? null : this.text.getValue(); 1928 } 1929 1930 /** 1931 * @param value Statement of a provision in a policy or a contract. 1932 */ 1933 public TermComponent setText(String value) { 1934 if (Utilities.noString(value)) 1935 this.text = null; 1936 else { 1937 if (this.text == null) 1938 this.text = new StringType(); 1939 this.text.setValue(value); 1940 } 1941 return this; 1942 } 1943 1944 /** 1945 * @return {@link #securityLabel} (Security labels that protect the handling of 1946 * information about the term and its elements, which may be 1947 * specifically identified..) 1948 */ 1949 public List<SecurityLabelComponent> getSecurityLabel() { 1950 if (this.securityLabel == null) 1951 this.securityLabel = new ArrayList<SecurityLabelComponent>(); 1952 return this.securityLabel; 1953 } 1954 1955 /** 1956 * @return Returns a reference to <code>this</code> for easy method chaining 1957 */ 1958 public TermComponent setSecurityLabel(List<SecurityLabelComponent> theSecurityLabel) { 1959 this.securityLabel = theSecurityLabel; 1960 return this; 1961 } 1962 1963 public boolean hasSecurityLabel() { 1964 if (this.securityLabel == null) 1965 return false; 1966 for (SecurityLabelComponent item : this.securityLabel) 1967 if (!item.isEmpty()) 1968 return true; 1969 return false; 1970 } 1971 1972 public SecurityLabelComponent addSecurityLabel() { // 3 1973 SecurityLabelComponent t = new SecurityLabelComponent(); 1974 if (this.securityLabel == null) 1975 this.securityLabel = new ArrayList<SecurityLabelComponent>(); 1976 this.securityLabel.add(t); 1977 return t; 1978 } 1979 1980 public TermComponent addSecurityLabel(SecurityLabelComponent t) { // 3 1981 if (t == null) 1982 return this; 1983 if (this.securityLabel == null) 1984 this.securityLabel = new ArrayList<SecurityLabelComponent>(); 1985 this.securityLabel.add(t); 1986 return this; 1987 } 1988 1989 /** 1990 * @return The first repetition of repeating field {@link #securityLabel}, 1991 * creating it if it does not already exist 1992 */ 1993 public SecurityLabelComponent getSecurityLabelFirstRep() { 1994 if (getSecurityLabel().isEmpty()) { 1995 addSecurityLabel(); 1996 } 1997 return getSecurityLabel().get(0); 1998 } 1999 2000 /** 2001 * @return {@link #offer} (The matter of concern in the context of this 2002 * provision of the agrement.) 2003 */ 2004 public ContractOfferComponent getOffer() { 2005 if (this.offer == null) 2006 if (Configuration.errorOnAutoCreate()) 2007 throw new Error("Attempt to auto-create TermComponent.offer"); 2008 else if (Configuration.doAutoCreate()) 2009 this.offer = new ContractOfferComponent(); // cc 2010 return this.offer; 2011 } 2012 2013 public boolean hasOffer() { 2014 return this.offer != null && !this.offer.isEmpty(); 2015 } 2016 2017 /** 2018 * @param value {@link #offer} (The matter of concern in the context of this 2019 * provision of the agrement.) 2020 */ 2021 public TermComponent setOffer(ContractOfferComponent value) { 2022 this.offer = value; 2023 return this; 2024 } 2025 2026 /** 2027 * @return {@link #asset} (Contract Term Asset List.) 2028 */ 2029 public List<ContractAssetComponent> getAsset() { 2030 if (this.asset == null) 2031 this.asset = new ArrayList<ContractAssetComponent>(); 2032 return this.asset; 2033 } 2034 2035 /** 2036 * @return Returns a reference to <code>this</code> for easy method chaining 2037 */ 2038 public TermComponent setAsset(List<ContractAssetComponent> theAsset) { 2039 this.asset = theAsset; 2040 return this; 2041 } 2042 2043 public boolean hasAsset() { 2044 if (this.asset == null) 2045 return false; 2046 for (ContractAssetComponent item : this.asset) 2047 if (!item.isEmpty()) 2048 return true; 2049 return false; 2050 } 2051 2052 public ContractAssetComponent addAsset() { // 3 2053 ContractAssetComponent t = new ContractAssetComponent(); 2054 if (this.asset == null) 2055 this.asset = new ArrayList<ContractAssetComponent>(); 2056 this.asset.add(t); 2057 return t; 2058 } 2059 2060 public TermComponent addAsset(ContractAssetComponent t) { // 3 2061 if (t == null) 2062 return this; 2063 if (this.asset == null) 2064 this.asset = new ArrayList<ContractAssetComponent>(); 2065 this.asset.add(t); 2066 return this; 2067 } 2068 2069 /** 2070 * @return The first repetition of repeating field {@link #asset}, creating it 2071 * if it does not already exist 2072 */ 2073 public ContractAssetComponent getAssetFirstRep() { 2074 if (getAsset().isEmpty()) { 2075 addAsset(); 2076 } 2077 return getAsset().get(0); 2078 } 2079 2080 /** 2081 * @return {@link #action} (An actor taking a role in an activity for which it 2082 * can be assigned some degree of responsibility for the activity taking 2083 * place.) 2084 */ 2085 public List<ActionComponent> getAction() { 2086 if (this.action == null) 2087 this.action = new ArrayList<ActionComponent>(); 2088 return this.action; 2089 } 2090 2091 /** 2092 * @return Returns a reference to <code>this</code> for easy method chaining 2093 */ 2094 public TermComponent setAction(List<ActionComponent> theAction) { 2095 this.action = theAction; 2096 return this; 2097 } 2098 2099 public boolean hasAction() { 2100 if (this.action == null) 2101 return false; 2102 for (ActionComponent item : this.action) 2103 if (!item.isEmpty()) 2104 return true; 2105 return false; 2106 } 2107 2108 public ActionComponent addAction() { // 3 2109 ActionComponent t = new ActionComponent(); 2110 if (this.action == null) 2111 this.action = new ArrayList<ActionComponent>(); 2112 this.action.add(t); 2113 return t; 2114 } 2115 2116 public TermComponent addAction(ActionComponent t) { // 3 2117 if (t == null) 2118 return this; 2119 if (this.action == null) 2120 this.action = new ArrayList<ActionComponent>(); 2121 this.action.add(t); 2122 return this; 2123 } 2124 2125 /** 2126 * @return The first repetition of repeating field {@link #action}, creating it 2127 * if it does not already exist 2128 */ 2129 public ActionComponent getActionFirstRep() { 2130 if (getAction().isEmpty()) { 2131 addAction(); 2132 } 2133 return getAction().get(0); 2134 } 2135 2136 /** 2137 * @return {@link #group} (Nested group of Contract Provisions.) 2138 */ 2139 public List<TermComponent> getGroup() { 2140 if (this.group == null) 2141 this.group = new ArrayList<TermComponent>(); 2142 return this.group; 2143 } 2144 2145 /** 2146 * @return Returns a reference to <code>this</code> for easy method chaining 2147 */ 2148 public TermComponent setGroup(List<TermComponent> theGroup) { 2149 this.group = theGroup; 2150 return this; 2151 } 2152 2153 public boolean hasGroup() { 2154 if (this.group == null) 2155 return false; 2156 for (TermComponent item : this.group) 2157 if (!item.isEmpty()) 2158 return true; 2159 return false; 2160 } 2161 2162 public TermComponent addGroup() { // 3 2163 TermComponent t = new TermComponent(); 2164 if (this.group == null) 2165 this.group = new ArrayList<TermComponent>(); 2166 this.group.add(t); 2167 return t; 2168 } 2169 2170 public TermComponent addGroup(TermComponent t) { // 3 2171 if (t == null) 2172 return this; 2173 if (this.group == null) 2174 this.group = new ArrayList<TermComponent>(); 2175 this.group.add(t); 2176 return this; 2177 } 2178 2179 /** 2180 * @return The first repetition of repeating field {@link #group}, creating it 2181 * if it does not already exist 2182 */ 2183 public TermComponent getGroupFirstRep() { 2184 if (getGroup().isEmpty()) { 2185 addGroup(); 2186 } 2187 return getGroup().get(0); 2188 } 2189 2190 protected void listChildren(List<Property> children) { 2191 super.listChildren(children); 2192 children.add(new Property("identifier", "Identifier", "Unique identifier for this particular Contract Provision.", 2193 0, 1, identifier)); 2194 children.add(new Property("issued", "dateTime", "When this Contract Provision was issued.", 0, 1, issued)); 2195 children.add(new Property("applies", "Period", 2196 "Relevant time or time-period when this Contract Provision is applicable.", 0, 1, applies)); 2197 children.add(new Property("topic[x]", "CodeableConcept|Reference(Any)", "The entity that the term applies to.", 0, 2198 1, topic)); 2199 children.add(new Property("type", "CodeableConcept", 2200 "A legal clause or condition contained within a contract that requires one or both parties to perform a particular requirement by some specified time or prevents one or both parties from performing a particular requirement by some specified time.", 2201 0, 1, type)); 2202 children.add(new Property("subType", "CodeableConcept", 2203 "A specialized legal clause or condition based on overarching contract type.", 0, 1, subType)); 2204 children.add(new Property("text", "string", "Statement of a provision in a policy or a contract.", 0, 1, text)); 2205 children.add(new Property("securityLabel", "", 2206 "Security labels that protect the handling of information about the term and its elements, which may be specifically identified..", 2207 0, java.lang.Integer.MAX_VALUE, securityLabel)); 2208 children.add(new Property("offer", "", "The matter of concern in the context of this provision of the agrement.", 2209 0, 1, offer)); 2210 children.add(new Property("asset", "", "Contract Term Asset List.", 0, java.lang.Integer.MAX_VALUE, asset)); 2211 children.add(new Property("action", "", 2212 "An actor taking a role in an activity for which it can be assigned some degree of responsibility for the activity taking place.", 2213 0, java.lang.Integer.MAX_VALUE, action)); 2214 children.add(new Property("group", "@Contract.term", "Nested group of Contract Provisions.", 0, 2215 java.lang.Integer.MAX_VALUE, group)); 2216 } 2217 2218 @Override 2219 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 2220 switch (_hash) { 2221 case -1618432855: 2222 /* identifier */ return new Property("identifier", "Identifier", 2223 "Unique identifier for this particular Contract Provision.", 0, 1, identifier); 2224 case -1179159893: 2225 /* issued */ return new Property("issued", "dateTime", "When this Contract Provision was issued.", 0, 1, 2226 issued); 2227 case -793235316: 2228 /* applies */ return new Property("applies", "Period", 2229 "Relevant time or time-period when this Contract Provision is applicable.", 0, 1, applies); 2230 case -957295375: 2231 /* topic[x] */ return new Property("topic[x]", "CodeableConcept|Reference(Any)", 2232 "The entity that the term applies to.", 0, 1, topic); 2233 case 110546223: 2234 /* topic */ return new Property("topic[x]", "CodeableConcept|Reference(Any)", 2235 "The entity that the term applies to.", 0, 1, topic); 2236 case 777778802: 2237 /* topicCodeableConcept */ return new Property("topic[x]", "CodeableConcept|Reference(Any)", 2238 "The entity that the term applies to.", 0, 1, topic); 2239 case -343345444: 2240 /* topicReference */ return new Property("topic[x]", "CodeableConcept|Reference(Any)", 2241 "The entity that the term applies to.", 0, 1, topic); 2242 case 3575610: 2243 /* type */ return new Property("type", "CodeableConcept", 2244 "A legal clause or condition contained within a contract that requires one or both parties to perform a particular requirement by some specified time or prevents one or both parties from performing a particular requirement by some specified time.", 2245 0, 1, type); 2246 case -1868521062: 2247 /* subType */ return new Property("subType", "CodeableConcept", 2248 "A specialized legal clause or condition based on overarching contract type.", 0, 1, subType); 2249 case 3556653: 2250 /* text */ return new Property("text", "string", "Statement of a provision in a policy or a contract.", 0, 1, 2251 text); 2252 case -722296940: 2253 /* securityLabel */ return new Property("securityLabel", "", 2254 "Security labels that protect the handling of information about the term and its elements, which may be specifically identified..", 2255 0, java.lang.Integer.MAX_VALUE, securityLabel); 2256 case 105650780: 2257 /* offer */ return new Property("offer", "", 2258 "The matter of concern in the context of this provision of the agrement.", 0, 1, offer); 2259 case 93121264: 2260 /* asset */ return new Property("asset", "", "Contract Term Asset List.", 0, java.lang.Integer.MAX_VALUE, 2261 asset); 2262 case -1422950858: 2263 /* action */ return new Property("action", "", 2264 "An actor taking a role in an activity for which it can be assigned some degree of responsibility for the activity taking place.", 2265 0, java.lang.Integer.MAX_VALUE, action); 2266 case 98629247: 2267 /* group */ return new Property("group", "@Contract.term", "Nested group of Contract Provisions.", 0, 2268 java.lang.Integer.MAX_VALUE, group); 2269 default: 2270 return super.getNamedProperty(_hash, _name, _checkValid); 2271 } 2272 2273 } 2274 2275 @Override 2276 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2277 switch (hash) { 2278 case -1618432855: 2279 /* identifier */ return this.identifier == null ? new Base[0] : new Base[] { this.identifier }; // Identifier 2280 case -1179159893: 2281 /* issued */ return this.issued == null ? new Base[0] : new Base[] { this.issued }; // DateTimeType 2282 case -793235316: 2283 /* applies */ return this.applies == null ? new Base[0] : new Base[] { this.applies }; // Period 2284 case 110546223: 2285 /* topic */ return this.topic == null ? new Base[0] : new Base[] { this.topic }; // Type 2286 case 3575610: 2287 /* type */ return this.type == null ? new Base[0] : new Base[] { this.type }; // CodeableConcept 2288 case -1868521062: 2289 /* subType */ return this.subType == null ? new Base[0] : new Base[] { this.subType }; // CodeableConcept 2290 case 3556653: 2291 /* text */ return this.text == null ? new Base[0] : new Base[] { this.text }; // StringType 2292 case -722296940: 2293 /* securityLabel */ return this.securityLabel == null ? new Base[0] 2294 : this.securityLabel.toArray(new Base[this.securityLabel.size()]); // SecurityLabelComponent 2295 case 105650780: 2296 /* offer */ return this.offer == null ? new Base[0] : new Base[] { this.offer }; // ContractOfferComponent 2297 case 93121264: 2298 /* asset */ return this.asset == null ? new Base[0] : this.asset.toArray(new Base[this.asset.size()]); // ContractAssetComponent 2299 case -1422950858: 2300 /* action */ return this.action == null ? new Base[0] : this.action.toArray(new Base[this.action.size()]); // ActionComponent 2301 case 98629247: 2302 /* group */ return this.group == null ? new Base[0] : this.group.toArray(new Base[this.group.size()]); // TermComponent 2303 default: 2304 return super.getProperty(hash, name, checkValid); 2305 } 2306 2307 } 2308 2309 @Override 2310 public Base setProperty(int hash, String name, Base value) throws FHIRException { 2311 switch (hash) { 2312 case -1618432855: // identifier 2313 this.identifier = castToIdentifier(value); // Identifier 2314 return value; 2315 case -1179159893: // issued 2316 this.issued = castToDateTime(value); // DateTimeType 2317 return value; 2318 case -793235316: // applies 2319 this.applies = castToPeriod(value); // Period 2320 return value; 2321 case 110546223: // topic 2322 this.topic = castToType(value); // Type 2323 return value; 2324 case 3575610: // type 2325 this.type = castToCodeableConcept(value); // CodeableConcept 2326 return value; 2327 case -1868521062: // subType 2328 this.subType = castToCodeableConcept(value); // CodeableConcept 2329 return value; 2330 case 3556653: // text 2331 this.text = castToString(value); // StringType 2332 return value; 2333 case -722296940: // securityLabel 2334 this.getSecurityLabel().add((SecurityLabelComponent) value); // SecurityLabelComponent 2335 return value; 2336 case 105650780: // offer 2337 this.offer = (ContractOfferComponent) value; // ContractOfferComponent 2338 return value; 2339 case 93121264: // asset 2340 this.getAsset().add((ContractAssetComponent) value); // ContractAssetComponent 2341 return value; 2342 case -1422950858: // action 2343 this.getAction().add((ActionComponent) value); // ActionComponent 2344 return value; 2345 case 98629247: // group 2346 this.getGroup().add((TermComponent) value); // TermComponent 2347 return value; 2348 default: 2349 return super.setProperty(hash, name, value); 2350 } 2351 2352 } 2353 2354 @Override 2355 public Base setProperty(String name, Base value) throws FHIRException { 2356 if (name.equals("identifier")) { 2357 this.identifier = castToIdentifier(value); // Identifier 2358 } else if (name.equals("issued")) { 2359 this.issued = castToDateTime(value); // DateTimeType 2360 } else if (name.equals("applies")) { 2361 this.applies = castToPeriod(value); // Period 2362 } else if (name.equals("topic[x]")) { 2363 this.topic = castToType(value); // Type 2364 } else if (name.equals("type")) { 2365 this.type = castToCodeableConcept(value); // CodeableConcept 2366 } else if (name.equals("subType")) { 2367 this.subType = castToCodeableConcept(value); // CodeableConcept 2368 } else if (name.equals("text")) { 2369 this.text = castToString(value); // StringType 2370 } else if (name.equals("securityLabel")) { 2371 this.getSecurityLabel().add((SecurityLabelComponent) value); 2372 } else if (name.equals("offer")) { 2373 this.offer = (ContractOfferComponent) value; // ContractOfferComponent 2374 } else if (name.equals("asset")) { 2375 this.getAsset().add((ContractAssetComponent) value); 2376 } else if (name.equals("action")) { 2377 this.getAction().add((ActionComponent) value); 2378 } else if (name.equals("group")) { 2379 this.getGroup().add((TermComponent) value); 2380 } else 2381 return super.setProperty(name, value); 2382 return value; 2383 } 2384 2385 @Override 2386 public void removeChild(String name, Base value) throws FHIRException { 2387 if (name.equals("identifier")) { 2388 this.identifier = null; 2389 } else if (name.equals("issued")) { 2390 this.issued = null; 2391 } else if (name.equals("applies")) { 2392 this.applies = null; 2393 } else if (name.equals("topic[x]")) { 2394 this.topic = null; 2395 } else if (name.equals("type")) { 2396 this.type = null; 2397 } else if (name.equals("subType")) { 2398 this.subType = null; 2399 } else if (name.equals("text")) { 2400 this.text = null; 2401 } else if (name.equals("securityLabel")) { 2402 this.getSecurityLabel().remove((SecurityLabelComponent) value); 2403 } else if (name.equals("offer")) { 2404 this.offer = (ContractOfferComponent) value; // ContractOfferComponent 2405 } else if (name.equals("asset")) { 2406 this.getAsset().remove((ContractAssetComponent) value); 2407 } else if (name.equals("action")) { 2408 this.getAction().remove((ActionComponent) value); 2409 } else if (name.equals("group")) { 2410 this.getGroup().remove((TermComponent) value); 2411 } else 2412 super.removeChild(name, value); 2413 2414 } 2415 2416 @Override 2417 public Base makeProperty(int hash, String name) throws FHIRException { 2418 switch (hash) { 2419 case -1618432855: 2420 return getIdentifier(); 2421 case -1179159893: 2422 return getIssuedElement(); 2423 case -793235316: 2424 return getApplies(); 2425 case -957295375: 2426 return getTopic(); 2427 case 110546223: 2428 return getTopic(); 2429 case 3575610: 2430 return getType(); 2431 case -1868521062: 2432 return getSubType(); 2433 case 3556653: 2434 return getTextElement(); 2435 case -722296940: 2436 return addSecurityLabel(); 2437 case 105650780: 2438 return getOffer(); 2439 case 93121264: 2440 return addAsset(); 2441 case -1422950858: 2442 return addAction(); 2443 case 98629247: 2444 return addGroup(); 2445 default: 2446 return super.makeProperty(hash, name); 2447 } 2448 2449 } 2450 2451 @Override 2452 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2453 switch (hash) { 2454 case -1618432855: 2455 /* identifier */ return new String[] { "Identifier" }; 2456 case -1179159893: 2457 /* issued */ return new String[] { "dateTime" }; 2458 case -793235316: 2459 /* applies */ return new String[] { "Period" }; 2460 case 110546223: 2461 /* topic */ return new String[] { "CodeableConcept", "Reference" }; 2462 case 3575610: 2463 /* type */ return new String[] { "CodeableConcept" }; 2464 case -1868521062: 2465 /* subType */ return new String[] { "CodeableConcept" }; 2466 case 3556653: 2467 /* text */ return new String[] { "string" }; 2468 case -722296940: 2469 /* securityLabel */ return new String[] {}; 2470 case 105650780: 2471 /* offer */ return new String[] {}; 2472 case 93121264: 2473 /* asset */ return new String[] {}; 2474 case -1422950858: 2475 /* action */ return new String[] {}; 2476 case 98629247: 2477 /* group */ return new String[] { "@Contract.term" }; 2478 default: 2479 return super.getTypesForProperty(hash, name); 2480 } 2481 2482 } 2483 2484 @Override 2485 public Base addChild(String name) throws FHIRException { 2486 if (name.equals("identifier")) { 2487 this.identifier = new Identifier(); 2488 return this.identifier; 2489 } else if (name.equals("issued")) { 2490 throw new FHIRException("Cannot call addChild on a singleton property Contract.issued"); 2491 } else if (name.equals("applies")) { 2492 this.applies = new Period(); 2493 return this.applies; 2494 } else if (name.equals("topicCodeableConcept")) { 2495 this.topic = new CodeableConcept(); 2496 return this.topic; 2497 } else if (name.equals("topicReference")) { 2498 this.topic = new Reference(); 2499 return this.topic; 2500 } else if (name.equals("type")) { 2501 this.type = new CodeableConcept(); 2502 return this.type; 2503 } else if (name.equals("subType")) { 2504 this.subType = new CodeableConcept(); 2505 return this.subType; 2506 } else if (name.equals("text")) { 2507 throw new FHIRException("Cannot call addChild on a singleton property Contract.text"); 2508 } else if (name.equals("securityLabel")) { 2509 return addSecurityLabel(); 2510 } else if (name.equals("offer")) { 2511 this.offer = new ContractOfferComponent(); 2512 return this.offer; 2513 } else if (name.equals("asset")) { 2514 return addAsset(); 2515 } else if (name.equals("action")) { 2516 return addAction(); 2517 } else if (name.equals("group")) { 2518 return addGroup(); 2519 } else 2520 return super.addChild(name); 2521 } 2522 2523 public TermComponent copy() { 2524 TermComponent dst = new TermComponent(); 2525 copyValues(dst); 2526 return dst; 2527 } 2528 2529 public void copyValues(TermComponent dst) { 2530 super.copyValues(dst); 2531 dst.identifier = identifier == null ? null : identifier.copy(); 2532 dst.issued = issued == null ? null : issued.copy(); 2533 dst.applies = applies == null ? null : applies.copy(); 2534 dst.topic = topic == null ? null : topic.copy(); 2535 dst.type = type == null ? null : type.copy(); 2536 dst.subType = subType == null ? null : subType.copy(); 2537 dst.text = text == null ? null : text.copy(); 2538 if (securityLabel != null) { 2539 dst.securityLabel = new ArrayList<SecurityLabelComponent>(); 2540 for (SecurityLabelComponent i : securityLabel) 2541 dst.securityLabel.add(i.copy()); 2542 } 2543 ; 2544 dst.offer = offer == null ? null : offer.copy(); 2545 if (asset != null) { 2546 dst.asset = new ArrayList<ContractAssetComponent>(); 2547 for (ContractAssetComponent i : asset) 2548 dst.asset.add(i.copy()); 2549 } 2550 ; 2551 if (action != null) { 2552 dst.action = new ArrayList<ActionComponent>(); 2553 for (ActionComponent i : action) 2554 dst.action.add(i.copy()); 2555 } 2556 ; 2557 if (group != null) { 2558 dst.group = new ArrayList<TermComponent>(); 2559 for (TermComponent i : group) 2560 dst.group.add(i.copy()); 2561 } 2562 ; 2563 } 2564 2565 @Override 2566 public boolean equalsDeep(Base other_) { 2567 if (!super.equalsDeep(other_)) 2568 return false; 2569 if (!(other_ instanceof TermComponent)) 2570 return false; 2571 TermComponent o = (TermComponent) other_; 2572 return compareDeep(identifier, o.identifier, true) && compareDeep(issued, o.issued, true) 2573 && compareDeep(applies, o.applies, true) && compareDeep(topic, o.topic, true) 2574 && compareDeep(type, o.type, true) && compareDeep(subType, o.subType, true) && compareDeep(text, o.text, true) 2575 && compareDeep(securityLabel, o.securityLabel, true) && compareDeep(offer, o.offer, true) 2576 && compareDeep(asset, o.asset, true) && compareDeep(action, o.action, true) 2577 && compareDeep(group, o.group, true); 2578 } 2579 2580 @Override 2581 public boolean equalsShallow(Base other_) { 2582 if (!super.equalsShallow(other_)) 2583 return false; 2584 if (!(other_ instanceof TermComponent)) 2585 return false; 2586 TermComponent o = (TermComponent) other_; 2587 return compareValues(issued, o.issued, true) && compareValues(text, o.text, true); 2588 } 2589 2590 public boolean isEmpty() { 2591 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, issued, applies, topic, type, subType, 2592 text, securityLabel, offer, asset, action, group); 2593 } 2594 2595 public String fhirType() { 2596 return "Contract.term"; 2597 2598 } 2599 2600 } 2601 2602 @Block() 2603 public static class SecurityLabelComponent extends BackboneElement implements IBaseBackboneElement { 2604 /** 2605 * Number used to link this term or term element to the applicable Security 2606 * Label. 2607 */ 2608 @Child(name = "number", type = { 2609 UnsignedIntType.class }, order = 1, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 2610 @Description(shortDefinition = "Link to Security Labels", formalDefinition = "Number used to link this term or term element to the applicable Security Label.") 2611 protected List<UnsignedIntType> number; 2612 2613 /** 2614 * Security label privacy tag that species the level of confidentiality 2615 * protection required for this term and/or term elements. 2616 */ 2617 @Child(name = "classification", type = { 2618 Coding.class }, order = 2, min = 1, max = 1, modifier = false, summary = false) 2619 @Description(shortDefinition = "Confidentiality Protection", formalDefinition = "Security label privacy tag that species the level of confidentiality protection required for this term and/or term elements.") 2620 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/contract-security-classification") 2621 protected Coding classification; 2622 2623 /** 2624 * Security label privacy tag that species the applicable privacy and security 2625 * policies governing this term and/or term elements. 2626 */ 2627 @Child(name = "category", type = { 2628 Coding.class }, order = 3, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 2629 @Description(shortDefinition = "Applicable Policy", formalDefinition = "Security label privacy tag that species the applicable privacy and security policies governing this term and/or term elements.") 2630 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/contract-security-category") 2631 protected List<Coding> category; 2632 2633 /** 2634 * Security label privacy tag that species the manner in which term and/or term 2635 * elements are to be protected. 2636 */ 2637 @Child(name = "control", type = { 2638 Coding.class }, order = 4, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 2639 @Description(shortDefinition = "Handling Instructions", formalDefinition = "Security label privacy tag that species the manner in which term and/or term elements are to be protected.") 2640 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/contract-security-control") 2641 protected List<Coding> control; 2642 2643 private static final long serialVersionUID = 788281758L; 2644 2645 /** 2646 * Constructor 2647 */ 2648 public SecurityLabelComponent() { 2649 super(); 2650 } 2651 2652 /** 2653 * Constructor 2654 */ 2655 public SecurityLabelComponent(Coding classification) { 2656 super(); 2657 this.classification = classification; 2658 } 2659 2660 /** 2661 * @return {@link #number} (Number used to link this term or term element to the 2662 * applicable Security Label.) 2663 */ 2664 public List<UnsignedIntType> getNumber() { 2665 if (this.number == null) 2666 this.number = new ArrayList<UnsignedIntType>(); 2667 return this.number; 2668 } 2669 2670 /** 2671 * @return Returns a reference to <code>this</code> for easy method chaining 2672 */ 2673 public SecurityLabelComponent setNumber(List<UnsignedIntType> theNumber) { 2674 this.number = theNumber; 2675 return this; 2676 } 2677 2678 public boolean hasNumber() { 2679 if (this.number == null) 2680 return false; 2681 for (UnsignedIntType item : this.number) 2682 if (!item.isEmpty()) 2683 return true; 2684 return false; 2685 } 2686 2687 /** 2688 * @return {@link #number} (Number used to link this term or term element to the 2689 * applicable Security Label.) 2690 */ 2691 public UnsignedIntType addNumberElement() {// 2 2692 UnsignedIntType t = new UnsignedIntType(); 2693 if (this.number == null) 2694 this.number = new ArrayList<UnsignedIntType>(); 2695 this.number.add(t); 2696 return t; 2697 } 2698 2699 /** 2700 * @param value {@link #number} (Number used to link this term or term element 2701 * to the applicable Security Label.) 2702 */ 2703 public SecurityLabelComponent addNumber(int value) { // 1 2704 UnsignedIntType t = new UnsignedIntType(); 2705 t.setValue(value); 2706 if (this.number == null) 2707 this.number = new ArrayList<UnsignedIntType>(); 2708 this.number.add(t); 2709 return this; 2710 } 2711 2712 /** 2713 * @param value {@link #number} (Number used to link this term or term element 2714 * to the applicable Security Label.) 2715 */ 2716 public boolean hasNumber(int value) { 2717 if (this.number == null) 2718 return false; 2719 for (UnsignedIntType v : this.number) 2720 if (v.getValue().equals(value)) // unsignedInt 2721 return true; 2722 return false; 2723 } 2724 2725 /** 2726 * @return {@link #classification} (Security label privacy tag that species the 2727 * level of confidentiality protection required for this term and/or 2728 * term elements.) 2729 */ 2730 public Coding getClassification() { 2731 if (this.classification == null) 2732 if (Configuration.errorOnAutoCreate()) 2733 throw new Error("Attempt to auto-create SecurityLabelComponent.classification"); 2734 else if (Configuration.doAutoCreate()) 2735 this.classification = new Coding(); // cc 2736 return this.classification; 2737 } 2738 2739 public boolean hasClassification() { 2740 return this.classification != null && !this.classification.isEmpty(); 2741 } 2742 2743 /** 2744 * @param value {@link #classification} (Security label privacy tag that species 2745 * the level of confidentiality protection required for this term 2746 * and/or term elements.) 2747 */ 2748 public SecurityLabelComponent setClassification(Coding value) { 2749 this.classification = value; 2750 return this; 2751 } 2752 2753 /** 2754 * @return {@link #category} (Security label privacy tag that species the 2755 * applicable privacy and security policies governing this term and/or 2756 * term elements.) 2757 */ 2758 public List<Coding> getCategory() { 2759 if (this.category == null) 2760 this.category = new ArrayList<Coding>(); 2761 return this.category; 2762 } 2763 2764 /** 2765 * @return Returns a reference to <code>this</code> for easy method chaining 2766 */ 2767 public SecurityLabelComponent setCategory(List<Coding> theCategory) { 2768 this.category = theCategory; 2769 return this; 2770 } 2771 2772 public boolean hasCategory() { 2773 if (this.category == null) 2774 return false; 2775 for (Coding item : this.category) 2776 if (!item.isEmpty()) 2777 return true; 2778 return false; 2779 } 2780 2781 public Coding addCategory() { // 3 2782 Coding t = new Coding(); 2783 if (this.category == null) 2784 this.category = new ArrayList<Coding>(); 2785 this.category.add(t); 2786 return t; 2787 } 2788 2789 public SecurityLabelComponent addCategory(Coding t) { // 3 2790 if (t == null) 2791 return this; 2792 if (this.category == null) 2793 this.category = new ArrayList<Coding>(); 2794 this.category.add(t); 2795 return this; 2796 } 2797 2798 /** 2799 * @return The first repetition of repeating field {@link #category}, creating 2800 * it if it does not already exist 2801 */ 2802 public Coding getCategoryFirstRep() { 2803 if (getCategory().isEmpty()) { 2804 addCategory(); 2805 } 2806 return getCategory().get(0); 2807 } 2808 2809 /** 2810 * @return {@link #control} (Security label privacy tag that species the manner 2811 * in which term and/or term elements are to be protected.) 2812 */ 2813 public List<Coding> getControl() { 2814 if (this.control == null) 2815 this.control = new ArrayList<Coding>(); 2816 return this.control; 2817 } 2818 2819 /** 2820 * @return Returns a reference to <code>this</code> for easy method chaining 2821 */ 2822 public SecurityLabelComponent setControl(List<Coding> theControl) { 2823 this.control = theControl; 2824 return this; 2825 } 2826 2827 public boolean hasControl() { 2828 if (this.control == null) 2829 return false; 2830 for (Coding item : this.control) 2831 if (!item.isEmpty()) 2832 return true; 2833 return false; 2834 } 2835 2836 public Coding addControl() { // 3 2837 Coding t = new Coding(); 2838 if (this.control == null) 2839 this.control = new ArrayList<Coding>(); 2840 this.control.add(t); 2841 return t; 2842 } 2843 2844 public SecurityLabelComponent addControl(Coding t) { // 3 2845 if (t == null) 2846 return this; 2847 if (this.control == null) 2848 this.control = new ArrayList<Coding>(); 2849 this.control.add(t); 2850 return this; 2851 } 2852 2853 /** 2854 * @return The first repetition of repeating field {@link #control}, creating it 2855 * if it does not already exist 2856 */ 2857 public Coding getControlFirstRep() { 2858 if (getControl().isEmpty()) { 2859 addControl(); 2860 } 2861 return getControl().get(0); 2862 } 2863 2864 protected void listChildren(List<Property> children) { 2865 super.listChildren(children); 2866 children.add(new Property("number", "unsignedInt", 2867 "Number used to link this term or term element to the applicable Security Label.", 0, 2868 java.lang.Integer.MAX_VALUE, number)); 2869 children.add(new Property("classification", "Coding", 2870 "Security label privacy tag that species the level of confidentiality protection required for this term and/or term elements.", 2871 0, 1, classification)); 2872 children.add(new Property("category", "Coding", 2873 "Security label privacy tag that species the applicable privacy and security policies governing this term and/or term elements.", 2874 0, java.lang.Integer.MAX_VALUE, category)); 2875 children.add(new Property("control", "Coding", 2876 "Security label privacy tag that species the manner in which term and/or term elements are to be protected.", 2877 0, java.lang.Integer.MAX_VALUE, control)); 2878 } 2879 2880 @Override 2881 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 2882 switch (_hash) { 2883 case -1034364087: 2884 /* number */ return new Property("number", "unsignedInt", 2885 "Number used to link this term or term element to the applicable Security Label.", 0, 2886 java.lang.Integer.MAX_VALUE, number); 2887 case 382350310: 2888 /* classification */ return new Property("classification", "Coding", 2889 "Security label privacy tag that species the level of confidentiality protection required for this term and/or term elements.", 2890 0, 1, classification); 2891 case 50511102: 2892 /* category */ return new Property("category", "Coding", 2893 "Security label privacy tag that species the applicable privacy and security policies governing this term and/or term elements.", 2894 0, java.lang.Integer.MAX_VALUE, category); 2895 case 951543133: 2896 /* control */ return new Property("control", "Coding", 2897 "Security label privacy tag that species the manner in which term and/or term elements are to be protected.", 2898 0, java.lang.Integer.MAX_VALUE, control); 2899 default: 2900 return super.getNamedProperty(_hash, _name, _checkValid); 2901 } 2902 2903 } 2904 2905 @Override 2906 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2907 switch (hash) { 2908 case -1034364087: 2909 /* number */ return this.number == null ? new Base[0] : this.number.toArray(new Base[this.number.size()]); // UnsignedIntType 2910 case 382350310: 2911 /* classification */ return this.classification == null ? new Base[0] : new Base[] { this.classification }; // Coding 2912 case 50511102: 2913 /* category */ return this.category == null ? new Base[0] 2914 : this.category.toArray(new Base[this.category.size()]); // Coding 2915 case 951543133: 2916 /* control */ return this.control == null ? new Base[0] : this.control.toArray(new Base[this.control.size()]); // Coding 2917 default: 2918 return super.getProperty(hash, name, checkValid); 2919 } 2920 2921 } 2922 2923 @Override 2924 public Base setProperty(int hash, String name, Base value) throws FHIRException { 2925 switch (hash) { 2926 case -1034364087: // number 2927 this.getNumber().add(castToUnsignedInt(value)); // UnsignedIntType 2928 return value; 2929 case 382350310: // classification 2930 this.classification = castToCoding(value); // Coding 2931 return value; 2932 case 50511102: // category 2933 this.getCategory().add(castToCoding(value)); // Coding 2934 return value; 2935 case 951543133: // control 2936 this.getControl().add(castToCoding(value)); // Coding 2937 return value; 2938 default: 2939 return super.setProperty(hash, name, value); 2940 } 2941 2942 } 2943 2944 @Override 2945 public Base setProperty(String name, Base value) throws FHIRException { 2946 if (name.equals("number")) { 2947 this.getNumber().add(castToUnsignedInt(value)); 2948 } else if (name.equals("classification")) { 2949 this.classification = castToCoding(value); // Coding 2950 } else if (name.equals("category")) { 2951 this.getCategory().add(castToCoding(value)); 2952 } else if (name.equals("control")) { 2953 this.getControl().add(castToCoding(value)); 2954 } else 2955 return super.setProperty(name, value); 2956 return value; 2957 } 2958 2959 @Override 2960 public void removeChild(String name, Base value) throws FHIRException { 2961 if (name.equals("number")) { 2962 this.getNumber().remove(castToUnsignedInt(value)); 2963 } else if (name.equals("classification")) { 2964 this.classification = null; 2965 } else if (name.equals("category")) { 2966 this.getCategory().remove(castToCoding(value)); 2967 } else if (name.equals("control")) { 2968 this.getControl().remove(castToCoding(value)); 2969 } else 2970 super.removeChild(name, value); 2971 2972 } 2973 2974 @Override 2975 public Base makeProperty(int hash, String name) throws FHIRException { 2976 switch (hash) { 2977 case -1034364087: 2978 return addNumberElement(); 2979 case 382350310: 2980 return getClassification(); 2981 case 50511102: 2982 return addCategory(); 2983 case 951543133: 2984 return addControl(); 2985 default: 2986 return super.makeProperty(hash, name); 2987 } 2988 2989 } 2990 2991 @Override 2992 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2993 switch (hash) { 2994 case -1034364087: 2995 /* number */ return new String[] { "unsignedInt" }; 2996 case 382350310: 2997 /* classification */ return new String[] { "Coding" }; 2998 case 50511102: 2999 /* category */ return new String[] { "Coding" }; 3000 case 951543133: 3001 /* control */ return new String[] { "Coding" }; 3002 default: 3003 return super.getTypesForProperty(hash, name); 3004 } 3005 3006 } 3007 3008 @Override 3009 public Base addChild(String name) throws FHIRException { 3010 if (name.equals("number")) { 3011 throw new FHIRException("Cannot call addChild on a singleton property Contract.number"); 3012 } else if (name.equals("classification")) { 3013 this.classification = new Coding(); 3014 return this.classification; 3015 } else if (name.equals("category")) { 3016 return addCategory(); 3017 } else if (name.equals("control")) { 3018 return addControl(); 3019 } else 3020 return super.addChild(name); 3021 } 3022 3023 public SecurityLabelComponent copy() { 3024 SecurityLabelComponent dst = new SecurityLabelComponent(); 3025 copyValues(dst); 3026 return dst; 3027 } 3028 3029 public void copyValues(SecurityLabelComponent dst) { 3030 super.copyValues(dst); 3031 if (number != null) { 3032 dst.number = new ArrayList<UnsignedIntType>(); 3033 for (UnsignedIntType i : number) 3034 dst.number.add(i.copy()); 3035 } 3036 ; 3037 dst.classification = classification == null ? null : classification.copy(); 3038 if (category != null) { 3039 dst.category = new ArrayList<Coding>(); 3040 for (Coding i : category) 3041 dst.category.add(i.copy()); 3042 } 3043 ; 3044 if (control != null) { 3045 dst.control = new ArrayList<Coding>(); 3046 for (Coding i : control) 3047 dst.control.add(i.copy()); 3048 } 3049 ; 3050 } 3051 3052 @Override 3053 public boolean equalsDeep(Base other_) { 3054 if (!super.equalsDeep(other_)) 3055 return false; 3056 if (!(other_ instanceof SecurityLabelComponent)) 3057 return false; 3058 SecurityLabelComponent o = (SecurityLabelComponent) other_; 3059 return compareDeep(number, o.number, true) && compareDeep(classification, o.classification, true) 3060 && compareDeep(category, o.category, true) && compareDeep(control, o.control, true); 3061 } 3062 3063 @Override 3064 public boolean equalsShallow(Base other_) { 3065 if (!super.equalsShallow(other_)) 3066 return false; 3067 if (!(other_ instanceof SecurityLabelComponent)) 3068 return false; 3069 SecurityLabelComponent o = (SecurityLabelComponent) other_; 3070 return compareValues(number, o.number, true); 3071 } 3072 3073 public boolean isEmpty() { 3074 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(number, classification, category, control); 3075 } 3076 3077 public String fhirType() { 3078 return "Contract.term.securityLabel"; 3079 3080 } 3081 3082 } 3083 3084 @Block() 3085 public static class ContractOfferComponent extends BackboneElement implements IBaseBackboneElement { 3086 /** 3087 * Unique identifier for this particular Contract Provision. 3088 */ 3089 @Child(name = "identifier", type = { 3090 Identifier.class }, order = 1, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 3091 @Description(shortDefinition = "Offer business ID", formalDefinition = "Unique identifier for this particular Contract Provision.") 3092 protected List<Identifier> identifier; 3093 3094 /** 3095 * Offer Recipient. 3096 */ 3097 @Child(name = "party", type = {}, order = 2, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 3098 @Description(shortDefinition = "Offer Recipient", formalDefinition = "Offer Recipient.") 3099 protected List<ContractPartyComponent> party; 3100 3101 /** 3102 * The owner of an asset has the residual control rights over the asset: the 3103 * right to decide all usages of the asset in any way not inconsistent with a 3104 * prior contract, custom, or law (Hart, 1995, p. 30). 3105 */ 3106 @Child(name = "topic", type = { Reference.class }, order = 3, min = 0, max = 1, modifier = false, summary = true) 3107 @Description(shortDefinition = "Negotiable offer asset", formalDefinition = "The owner of an asset has the residual control rights over the asset: the right to decide all usages of the asset in any way not inconsistent with a prior contract, custom, or law (Hart, 1995, p. 30).") 3108 protected Reference topic; 3109 3110 /** 3111 * The actual object that is the target of the reference (The owner of an asset 3112 * has the residual control rights over the asset: the right to decide all 3113 * usages of the asset in any way not inconsistent with a prior contract, 3114 * custom, or law (Hart, 1995, p. 30).) 3115 */ 3116 protected Resource topicTarget; 3117 3118 /** 3119 * Type of Contract Provision such as specific requirements, purposes for 3120 * actions, obligations, prohibitions, e.g. life time maximum benefit. 3121 */ 3122 @Child(name = "type", type = { 3123 CodeableConcept.class }, order = 4, min = 0, max = 1, modifier = false, summary = false) 3124 @Description(shortDefinition = "Contract Offer Type or Form", formalDefinition = "Type of Contract Provision such as specific requirements, purposes for actions, obligations, prohibitions, e.g. life time maximum benefit.") 3125 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/contract-term-type") 3126 protected CodeableConcept type; 3127 3128 /** 3129 * Type of choice made by accepting party with respect to an offer made by an 3130 * offeror/ grantee. 3131 */ 3132 @Child(name = "decision", type = { 3133 CodeableConcept.class }, order = 5, min = 0, max = 1, modifier = false, summary = false) 3134 @Description(shortDefinition = "Accepting party choice", formalDefinition = "Type of choice made by accepting party with respect to an offer made by an offeror/ grantee.") 3135 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://terminology.hl7.org/ValueSet/v3-ActConsentDirective") 3136 protected CodeableConcept decision; 3137 3138 /** 3139 * How the decision about a Contract was conveyed. 3140 */ 3141 @Child(name = "decisionMode", type = { 3142 CodeableConcept.class }, order = 6, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 3143 @Description(shortDefinition = "How decision is conveyed", formalDefinition = "How the decision about a Contract was conveyed.") 3144 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/contract-decision-mode") 3145 protected List<CodeableConcept> decisionMode; 3146 3147 /** 3148 * Response to offer text. 3149 */ 3150 @Child(name = "answer", type = {}, order = 7, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 3151 @Description(shortDefinition = "Response to offer text", formalDefinition = "Response to offer text.") 3152 protected List<AnswerComponent> answer; 3153 3154 /** 3155 * Human readable form of this Contract Offer. 3156 */ 3157 @Child(name = "text", type = { StringType.class }, order = 8, min = 0, max = 1, modifier = false, summary = false) 3158 @Description(shortDefinition = "Human readable offer text", formalDefinition = "Human readable form of this Contract Offer.") 3159 protected StringType text; 3160 3161 /** 3162 * The id of the clause or question text of the offer in the referenced 3163 * questionnaire/response. 3164 */ 3165 @Child(name = "linkId", type = { 3166 StringType.class }, order = 9, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 3167 @Description(shortDefinition = "Pointer to text", formalDefinition = "The id of the clause or question text of the offer in the referenced questionnaire/response.") 3168 protected List<StringType> linkId; 3169 3170 /** 3171 * Security labels that protects the offer. 3172 */ 3173 @Child(name = "securityLabelNumber", type = { 3174 UnsignedIntType.class }, order = 10, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 3175 @Description(shortDefinition = "Offer restriction numbers", formalDefinition = "Security labels that protects the offer.") 3176 protected List<UnsignedIntType> securityLabelNumber; 3177 3178 private static final long serialVersionUID = -395674449L; 3179 3180 /** 3181 * Constructor 3182 */ 3183 public ContractOfferComponent() { 3184 super(); 3185 } 3186 3187 /** 3188 * @return {@link #identifier} (Unique identifier for this particular Contract 3189 * Provision.) 3190 */ 3191 public List<Identifier> getIdentifier() { 3192 if (this.identifier == null) 3193 this.identifier = new ArrayList<Identifier>(); 3194 return this.identifier; 3195 } 3196 3197 /** 3198 * @return Returns a reference to <code>this</code> for easy method chaining 3199 */ 3200 public ContractOfferComponent setIdentifier(List<Identifier> theIdentifier) { 3201 this.identifier = theIdentifier; 3202 return this; 3203 } 3204 3205 public boolean hasIdentifier() { 3206 if (this.identifier == null) 3207 return false; 3208 for (Identifier item : this.identifier) 3209 if (!item.isEmpty()) 3210 return true; 3211 return false; 3212 } 3213 3214 public Identifier addIdentifier() { // 3 3215 Identifier t = new Identifier(); 3216 if (this.identifier == null) 3217 this.identifier = new ArrayList<Identifier>(); 3218 this.identifier.add(t); 3219 return t; 3220 } 3221 3222 public ContractOfferComponent addIdentifier(Identifier t) { // 3 3223 if (t == null) 3224 return this; 3225 if (this.identifier == null) 3226 this.identifier = new ArrayList<Identifier>(); 3227 this.identifier.add(t); 3228 return this; 3229 } 3230 3231 /** 3232 * @return The first repetition of repeating field {@link #identifier}, creating 3233 * it if it does not already exist 3234 */ 3235 public Identifier getIdentifierFirstRep() { 3236 if (getIdentifier().isEmpty()) { 3237 addIdentifier(); 3238 } 3239 return getIdentifier().get(0); 3240 } 3241 3242 /** 3243 * @return {@link #party} (Offer Recipient.) 3244 */ 3245 public List<ContractPartyComponent> getParty() { 3246 if (this.party == null) 3247 this.party = new ArrayList<ContractPartyComponent>(); 3248 return this.party; 3249 } 3250 3251 /** 3252 * @return Returns a reference to <code>this</code> for easy method chaining 3253 */ 3254 public ContractOfferComponent setParty(List<ContractPartyComponent> theParty) { 3255 this.party = theParty; 3256 return this; 3257 } 3258 3259 public boolean hasParty() { 3260 if (this.party == null) 3261 return false; 3262 for (ContractPartyComponent item : this.party) 3263 if (!item.isEmpty()) 3264 return true; 3265 return false; 3266 } 3267 3268 public ContractPartyComponent addParty() { // 3 3269 ContractPartyComponent t = new ContractPartyComponent(); 3270 if (this.party == null) 3271 this.party = new ArrayList<ContractPartyComponent>(); 3272 this.party.add(t); 3273 return t; 3274 } 3275 3276 public ContractOfferComponent addParty(ContractPartyComponent t) { // 3 3277 if (t == null) 3278 return this; 3279 if (this.party == null) 3280 this.party = new ArrayList<ContractPartyComponent>(); 3281 this.party.add(t); 3282 return this; 3283 } 3284 3285 /** 3286 * @return The first repetition of repeating field {@link #party}, creating it 3287 * if it does not already exist 3288 */ 3289 public ContractPartyComponent getPartyFirstRep() { 3290 if (getParty().isEmpty()) { 3291 addParty(); 3292 } 3293 return getParty().get(0); 3294 } 3295 3296 /** 3297 * @return {@link #topic} (The owner of an asset has the residual control rights 3298 * over the asset: the right to decide all usages of the asset in any 3299 * way not inconsistent with a prior contract, custom, or law (Hart, 3300 * 1995, p. 30).) 3301 */ 3302 public Reference getTopic() { 3303 if (this.topic == null) 3304 if (Configuration.errorOnAutoCreate()) 3305 throw new Error("Attempt to auto-create ContractOfferComponent.topic"); 3306 else if (Configuration.doAutoCreate()) 3307 this.topic = new Reference(); // cc 3308 return this.topic; 3309 } 3310 3311 public boolean hasTopic() { 3312 return this.topic != null && !this.topic.isEmpty(); 3313 } 3314 3315 /** 3316 * @param value {@link #topic} (The owner of an asset has the residual control 3317 * rights over the asset: the right to decide all usages of the 3318 * asset in any way not inconsistent with a prior contract, custom, 3319 * or law (Hart, 1995, p. 30).) 3320 */ 3321 public ContractOfferComponent setTopic(Reference value) { 3322 this.topic = value; 3323 return this; 3324 } 3325 3326 /** 3327 * @return {@link #topic} The actual object that is the target of the reference. 3328 * The reference library doesn't populate this, but you can use it to 3329 * hold the resource if you resolve it. (The owner of an asset has the 3330 * residual control rights over the asset: the right to decide all 3331 * usages of the asset in any way not inconsistent with a prior 3332 * contract, custom, or law (Hart, 1995, p. 30).) 3333 */ 3334 public Resource getTopicTarget() { 3335 return this.topicTarget; 3336 } 3337 3338 /** 3339 * @param value {@link #topic} The actual object that is the target of the 3340 * reference. The reference library doesn't use these, but you can 3341 * use it to hold the resource if you resolve it. (The owner of an 3342 * asset has the residual control rights over the asset: the right 3343 * to decide all usages of the asset in any way not inconsistent 3344 * with a prior contract, custom, or law (Hart, 1995, p. 30).) 3345 */ 3346 public ContractOfferComponent setTopicTarget(Resource value) { 3347 this.topicTarget = value; 3348 return this; 3349 } 3350 3351 /** 3352 * @return {@link #type} (Type of Contract Provision such as specific 3353 * requirements, purposes for actions, obligations, prohibitions, e.g. 3354 * life time maximum benefit.) 3355 */ 3356 public CodeableConcept getType() { 3357 if (this.type == null) 3358 if (Configuration.errorOnAutoCreate()) 3359 throw new Error("Attempt to auto-create ContractOfferComponent.type"); 3360 else if (Configuration.doAutoCreate()) 3361 this.type = new CodeableConcept(); // cc 3362 return this.type; 3363 } 3364 3365 public boolean hasType() { 3366 return this.type != null && !this.type.isEmpty(); 3367 } 3368 3369 /** 3370 * @param value {@link #type} (Type of Contract Provision such as specific 3371 * requirements, purposes for actions, obligations, prohibitions, 3372 * e.g. life time maximum benefit.) 3373 */ 3374 public ContractOfferComponent setType(CodeableConcept value) { 3375 this.type = value; 3376 return this; 3377 } 3378 3379 /** 3380 * @return {@link #decision} (Type of choice made by accepting party with 3381 * respect to an offer made by an offeror/ grantee.) 3382 */ 3383 public CodeableConcept getDecision() { 3384 if (this.decision == null) 3385 if (Configuration.errorOnAutoCreate()) 3386 throw new Error("Attempt to auto-create ContractOfferComponent.decision"); 3387 else if (Configuration.doAutoCreate()) 3388 this.decision = new CodeableConcept(); // cc 3389 return this.decision; 3390 } 3391 3392 public boolean hasDecision() { 3393 return this.decision != null && !this.decision.isEmpty(); 3394 } 3395 3396 /** 3397 * @param value {@link #decision} (Type of choice made by accepting party with 3398 * respect to an offer made by an offeror/ grantee.) 3399 */ 3400 public ContractOfferComponent setDecision(CodeableConcept value) { 3401 this.decision = value; 3402 return this; 3403 } 3404 3405 /** 3406 * @return {@link #decisionMode} (How the decision about a Contract was 3407 * conveyed.) 3408 */ 3409 public List<CodeableConcept> getDecisionMode() { 3410 if (this.decisionMode == null) 3411 this.decisionMode = new ArrayList<CodeableConcept>(); 3412 return this.decisionMode; 3413 } 3414 3415 /** 3416 * @return Returns a reference to <code>this</code> for easy method chaining 3417 */ 3418 public ContractOfferComponent setDecisionMode(List<CodeableConcept> theDecisionMode) { 3419 this.decisionMode = theDecisionMode; 3420 return this; 3421 } 3422 3423 public boolean hasDecisionMode() { 3424 if (this.decisionMode == null) 3425 return false; 3426 for (CodeableConcept item : this.decisionMode) 3427 if (!item.isEmpty()) 3428 return true; 3429 return false; 3430 } 3431 3432 public CodeableConcept addDecisionMode() { // 3 3433 CodeableConcept t = new CodeableConcept(); 3434 if (this.decisionMode == null) 3435 this.decisionMode = new ArrayList<CodeableConcept>(); 3436 this.decisionMode.add(t); 3437 return t; 3438 } 3439 3440 public ContractOfferComponent addDecisionMode(CodeableConcept t) { // 3 3441 if (t == null) 3442 return this; 3443 if (this.decisionMode == null) 3444 this.decisionMode = new ArrayList<CodeableConcept>(); 3445 this.decisionMode.add(t); 3446 return this; 3447 } 3448 3449 /** 3450 * @return The first repetition of repeating field {@link #decisionMode}, 3451 * creating it if it does not already exist 3452 */ 3453 public CodeableConcept getDecisionModeFirstRep() { 3454 if (getDecisionMode().isEmpty()) { 3455 addDecisionMode(); 3456 } 3457 return getDecisionMode().get(0); 3458 } 3459 3460 /** 3461 * @return {@link #answer} (Response to offer text.) 3462 */ 3463 public List<AnswerComponent> getAnswer() { 3464 if (this.answer == null) 3465 this.answer = new ArrayList<AnswerComponent>(); 3466 return this.answer; 3467 } 3468 3469 /** 3470 * @return Returns a reference to <code>this</code> for easy method chaining 3471 */ 3472 public ContractOfferComponent setAnswer(List<AnswerComponent> theAnswer) { 3473 this.answer = theAnswer; 3474 return this; 3475 } 3476 3477 public boolean hasAnswer() { 3478 if (this.answer == null) 3479 return false; 3480 for (AnswerComponent item : this.answer) 3481 if (!item.isEmpty()) 3482 return true; 3483 return false; 3484 } 3485 3486 public AnswerComponent addAnswer() { // 3 3487 AnswerComponent t = new AnswerComponent(); 3488 if (this.answer == null) 3489 this.answer = new ArrayList<AnswerComponent>(); 3490 this.answer.add(t); 3491 return t; 3492 } 3493 3494 public ContractOfferComponent addAnswer(AnswerComponent t) { // 3 3495 if (t == null) 3496 return this; 3497 if (this.answer == null) 3498 this.answer = new ArrayList<AnswerComponent>(); 3499 this.answer.add(t); 3500 return this; 3501 } 3502 3503 /** 3504 * @return The first repetition of repeating field {@link #answer}, creating it 3505 * if it does not already exist 3506 */ 3507 public AnswerComponent getAnswerFirstRep() { 3508 if (getAnswer().isEmpty()) { 3509 addAnswer(); 3510 } 3511 return getAnswer().get(0); 3512 } 3513 3514 /** 3515 * @return {@link #text} (Human readable form of this Contract Offer.). This is 3516 * the underlying object with id, value and extensions. The accessor 3517 * "getText" gives direct access to the value 3518 */ 3519 public StringType getTextElement() { 3520 if (this.text == null) 3521 if (Configuration.errorOnAutoCreate()) 3522 throw new Error("Attempt to auto-create ContractOfferComponent.text"); 3523 else if (Configuration.doAutoCreate()) 3524 this.text = new StringType(); // bb 3525 return this.text; 3526 } 3527 3528 public boolean hasTextElement() { 3529 return this.text != null && !this.text.isEmpty(); 3530 } 3531 3532 public boolean hasText() { 3533 return this.text != null && !this.text.isEmpty(); 3534 } 3535 3536 /** 3537 * @param value {@link #text} (Human readable form of this Contract Offer.). 3538 * This is the underlying object with id, value and extensions. The 3539 * accessor "getText" gives direct access to the value 3540 */ 3541 public ContractOfferComponent setTextElement(StringType value) { 3542 this.text = value; 3543 return this; 3544 } 3545 3546 /** 3547 * @return Human readable form of this Contract Offer. 3548 */ 3549 public String getText() { 3550 return this.text == null ? null : this.text.getValue(); 3551 } 3552 3553 /** 3554 * @param value Human readable form of this Contract Offer. 3555 */ 3556 public ContractOfferComponent setText(String value) { 3557 if (Utilities.noString(value)) 3558 this.text = null; 3559 else { 3560 if (this.text == null) 3561 this.text = new StringType(); 3562 this.text.setValue(value); 3563 } 3564 return this; 3565 } 3566 3567 /** 3568 * @return {@link #linkId} (The id of the clause or question text of the offer 3569 * in the referenced questionnaire/response.) 3570 */ 3571 public List<StringType> getLinkId() { 3572 if (this.linkId == null) 3573 this.linkId = new ArrayList<StringType>(); 3574 return this.linkId; 3575 } 3576 3577 /** 3578 * @return Returns a reference to <code>this</code> for easy method chaining 3579 */ 3580 public ContractOfferComponent setLinkId(List<StringType> theLinkId) { 3581 this.linkId = theLinkId; 3582 return this; 3583 } 3584 3585 public boolean hasLinkId() { 3586 if (this.linkId == null) 3587 return false; 3588 for (StringType item : this.linkId) 3589 if (!item.isEmpty()) 3590 return true; 3591 return false; 3592 } 3593 3594 /** 3595 * @return {@link #linkId} (The id of the clause or question text of the offer 3596 * in the referenced questionnaire/response.) 3597 */ 3598 public StringType addLinkIdElement() {// 2 3599 StringType t = new StringType(); 3600 if (this.linkId == null) 3601 this.linkId = new ArrayList<StringType>(); 3602 this.linkId.add(t); 3603 return t; 3604 } 3605 3606 /** 3607 * @param value {@link #linkId} (The id of the clause or question text of the 3608 * offer in the referenced questionnaire/response.) 3609 */ 3610 public ContractOfferComponent addLinkId(String value) { // 1 3611 StringType t = new StringType(); 3612 t.setValue(value); 3613 if (this.linkId == null) 3614 this.linkId = new ArrayList<StringType>(); 3615 this.linkId.add(t); 3616 return this; 3617 } 3618 3619 /** 3620 * @param value {@link #linkId} (The id of the clause or question text of the 3621 * offer in the referenced questionnaire/response.) 3622 */ 3623 public boolean hasLinkId(String value) { 3624 if (this.linkId == null) 3625 return false; 3626 for (StringType v : this.linkId) 3627 if (v.getValue().equals(value)) // string 3628 return true; 3629 return false; 3630 } 3631 3632 /** 3633 * @return {@link #securityLabelNumber} (Security labels that protects the 3634 * offer.) 3635 */ 3636 public List<UnsignedIntType> getSecurityLabelNumber() { 3637 if (this.securityLabelNumber == null) 3638 this.securityLabelNumber = new ArrayList<UnsignedIntType>(); 3639 return this.securityLabelNumber; 3640 } 3641 3642 /** 3643 * @return Returns a reference to <code>this</code> for easy method chaining 3644 */ 3645 public ContractOfferComponent setSecurityLabelNumber(List<UnsignedIntType> theSecurityLabelNumber) { 3646 this.securityLabelNumber = theSecurityLabelNumber; 3647 return this; 3648 } 3649 3650 public boolean hasSecurityLabelNumber() { 3651 if (this.securityLabelNumber == null) 3652 return false; 3653 for (UnsignedIntType item : this.securityLabelNumber) 3654 if (!item.isEmpty()) 3655 return true; 3656 return false; 3657 } 3658 3659 /** 3660 * @return {@link #securityLabelNumber} (Security labels that protects the 3661 * offer.) 3662 */ 3663 public UnsignedIntType addSecurityLabelNumberElement() {// 2 3664 UnsignedIntType t = new UnsignedIntType(); 3665 if (this.securityLabelNumber == null) 3666 this.securityLabelNumber = new ArrayList<UnsignedIntType>(); 3667 this.securityLabelNumber.add(t); 3668 return t; 3669 } 3670 3671 /** 3672 * @param value {@link #securityLabelNumber} (Security labels that protects the 3673 * offer.) 3674 */ 3675 public ContractOfferComponent addSecurityLabelNumber(int value) { // 1 3676 UnsignedIntType t = new UnsignedIntType(); 3677 t.setValue(value); 3678 if (this.securityLabelNumber == null) 3679 this.securityLabelNumber = new ArrayList<UnsignedIntType>(); 3680 this.securityLabelNumber.add(t); 3681 return this; 3682 } 3683 3684 /** 3685 * @param value {@link #securityLabelNumber} (Security labels that protects the 3686 * offer.) 3687 */ 3688 public boolean hasSecurityLabelNumber(int value) { 3689 if (this.securityLabelNumber == null) 3690 return false; 3691 for (UnsignedIntType v : this.securityLabelNumber) 3692 if (v.getValue().equals(value)) // unsignedInt 3693 return true; 3694 return false; 3695 } 3696 3697 protected void listChildren(List<Property> children) { 3698 super.listChildren(children); 3699 children.add(new Property("identifier", "Identifier", "Unique identifier for this particular Contract Provision.", 3700 0, java.lang.Integer.MAX_VALUE, identifier)); 3701 children.add(new Property("party", "", "Offer Recipient.", 0, java.lang.Integer.MAX_VALUE, party)); 3702 children.add(new Property("topic", "Reference(Any)", 3703 "The owner of an asset has the residual control rights over the asset: the right to decide all usages of the asset in any way not inconsistent with a prior contract, custom, or law (Hart, 1995, p. 30).", 3704 0, 1, topic)); 3705 children.add(new Property("type", "CodeableConcept", 3706 "Type of Contract Provision such as specific requirements, purposes for actions, obligations, prohibitions, e.g. life time maximum benefit.", 3707 0, 1, type)); 3708 children.add(new Property("decision", "CodeableConcept", 3709 "Type of choice made by accepting party with respect to an offer made by an offeror/ grantee.", 0, 1, 3710 decision)); 3711 children.add(new Property("decisionMode", "CodeableConcept", "How the decision about a Contract was conveyed.", 0, 3712 java.lang.Integer.MAX_VALUE, decisionMode)); 3713 children.add(new Property("answer", "", "Response to offer text.", 0, java.lang.Integer.MAX_VALUE, answer)); 3714 children.add(new Property("text", "string", "Human readable form of this Contract Offer.", 0, 1, text)); 3715 children.add(new Property("linkId", "string", 3716 "The id of the clause or question text of the offer in the referenced questionnaire/response.", 0, 3717 java.lang.Integer.MAX_VALUE, linkId)); 3718 children.add(new Property("securityLabelNumber", "unsignedInt", "Security labels that protects the offer.", 0, 3719 java.lang.Integer.MAX_VALUE, securityLabelNumber)); 3720 } 3721 3722 @Override 3723 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 3724 switch (_hash) { 3725 case -1618432855: 3726 /* identifier */ return new Property("identifier", "Identifier", 3727 "Unique identifier for this particular Contract Provision.", 0, java.lang.Integer.MAX_VALUE, identifier); 3728 case 106437350: 3729 /* party */ return new Property("party", "", "Offer Recipient.", 0, java.lang.Integer.MAX_VALUE, party); 3730 case 110546223: 3731 /* topic */ return new Property("topic", "Reference(Any)", 3732 "The owner of an asset has the residual control rights over the asset: the right to decide all usages of the asset in any way not inconsistent with a prior contract, custom, or law (Hart, 1995, p. 30).", 3733 0, 1, topic); 3734 case 3575610: 3735 /* type */ return new Property("type", "CodeableConcept", 3736 "Type of Contract Provision such as specific requirements, purposes for actions, obligations, prohibitions, e.g. life time maximum benefit.", 3737 0, 1, type); 3738 case 565719004: 3739 /* decision */ return new Property("decision", "CodeableConcept", 3740 "Type of choice made by accepting party with respect to an offer made by an offeror/ grantee.", 0, 1, 3741 decision); 3742 case 675909535: 3743 /* decisionMode */ return new Property("decisionMode", "CodeableConcept", 3744 "How the decision about a Contract was conveyed.", 0, java.lang.Integer.MAX_VALUE, decisionMode); 3745 case -1412808770: 3746 /* answer */ return new Property("answer", "", "Response to offer text.", 0, java.lang.Integer.MAX_VALUE, 3747 answer); 3748 case 3556653: 3749 /* text */ return new Property("text", "string", "Human readable form of this Contract Offer.", 0, 1, text); 3750 case -1102667083: 3751 /* linkId */ return new Property("linkId", "string", 3752 "The id of the clause or question text of the offer in the referenced questionnaire/response.", 0, 3753 java.lang.Integer.MAX_VALUE, linkId); 3754 case -149460995: 3755 /* securityLabelNumber */ return new Property("securityLabelNumber", "unsignedInt", 3756 "Security labels that protects the offer.", 0, java.lang.Integer.MAX_VALUE, securityLabelNumber); 3757 default: 3758 return super.getNamedProperty(_hash, _name, _checkValid); 3759 } 3760 3761 } 3762 3763 @Override 3764 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 3765 switch (hash) { 3766 case -1618432855: 3767 /* identifier */ return this.identifier == null ? new Base[0] 3768 : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 3769 case 106437350: 3770 /* party */ return this.party == null ? new Base[0] : this.party.toArray(new Base[this.party.size()]); // ContractPartyComponent 3771 case 110546223: 3772 /* topic */ return this.topic == null ? new Base[0] : new Base[] { this.topic }; // Reference 3773 case 3575610: 3774 /* type */ return this.type == null ? new Base[0] : new Base[] { this.type }; // CodeableConcept 3775 case 565719004: 3776 /* decision */ return this.decision == null ? new Base[0] : new Base[] { this.decision }; // CodeableConcept 3777 case 675909535: 3778 /* decisionMode */ return this.decisionMode == null ? new Base[0] 3779 : this.decisionMode.toArray(new Base[this.decisionMode.size()]); // CodeableConcept 3780 case -1412808770: 3781 /* answer */ return this.answer == null ? new Base[0] : this.answer.toArray(new Base[this.answer.size()]); // AnswerComponent 3782 case 3556653: 3783 /* text */ return this.text == null ? new Base[0] : new Base[] { this.text }; // StringType 3784 case -1102667083: 3785 /* linkId */ return this.linkId == null ? new Base[0] : this.linkId.toArray(new Base[this.linkId.size()]); // StringType 3786 case -149460995: 3787 /* securityLabelNumber */ return this.securityLabelNumber == null ? new Base[0] 3788 : this.securityLabelNumber.toArray(new Base[this.securityLabelNumber.size()]); // UnsignedIntType 3789 default: 3790 return super.getProperty(hash, name, checkValid); 3791 } 3792 3793 } 3794 3795 @Override 3796 public Base setProperty(int hash, String name, Base value) throws FHIRException { 3797 switch (hash) { 3798 case -1618432855: // identifier 3799 this.getIdentifier().add(castToIdentifier(value)); // Identifier 3800 return value; 3801 case 106437350: // party 3802 this.getParty().add((ContractPartyComponent) value); // ContractPartyComponent 3803 return value; 3804 case 110546223: // topic 3805 this.topic = castToReference(value); // Reference 3806 return value; 3807 case 3575610: // type 3808 this.type = castToCodeableConcept(value); // CodeableConcept 3809 return value; 3810 case 565719004: // decision 3811 this.decision = castToCodeableConcept(value); // CodeableConcept 3812 return value; 3813 case 675909535: // decisionMode 3814 this.getDecisionMode().add(castToCodeableConcept(value)); // CodeableConcept 3815 return value; 3816 case -1412808770: // answer 3817 this.getAnswer().add((AnswerComponent) value); // AnswerComponent 3818 return value; 3819 case 3556653: // text 3820 this.text = castToString(value); // StringType 3821 return value; 3822 case -1102667083: // linkId 3823 this.getLinkId().add(castToString(value)); // StringType 3824 return value; 3825 case -149460995: // securityLabelNumber 3826 this.getSecurityLabelNumber().add(castToUnsignedInt(value)); // UnsignedIntType 3827 return value; 3828 default: 3829 return super.setProperty(hash, name, value); 3830 } 3831 3832 } 3833 3834 @Override 3835 public Base setProperty(String name, Base value) throws FHIRException { 3836 if (name.equals("identifier")) { 3837 this.getIdentifier().add(castToIdentifier(value)); 3838 } else if (name.equals("party")) { 3839 this.getParty().add((ContractPartyComponent) value); 3840 } else if (name.equals("topic")) { 3841 this.topic = castToReference(value); // Reference 3842 } else if (name.equals("type")) { 3843 this.type = castToCodeableConcept(value); // CodeableConcept 3844 } else if (name.equals("decision")) { 3845 this.decision = castToCodeableConcept(value); // CodeableConcept 3846 } else if (name.equals("decisionMode")) { 3847 this.getDecisionMode().add(castToCodeableConcept(value)); 3848 } else if (name.equals("answer")) { 3849 this.getAnswer().add((AnswerComponent) value); 3850 } else if (name.equals("text")) { 3851 this.text = castToString(value); // StringType 3852 } else if (name.equals("linkId")) { 3853 this.getLinkId().add(castToString(value)); 3854 } else if (name.equals("securityLabelNumber")) { 3855 this.getSecurityLabelNumber().add(castToUnsignedInt(value)); 3856 } else 3857 return super.setProperty(name, value); 3858 return value; 3859 } 3860 3861 @Override 3862 public void removeChild(String name, Base value) throws FHIRException { 3863 if (name.equals("identifier")) { 3864 this.getIdentifier().remove(castToIdentifier(value)); 3865 } else if (name.equals("party")) { 3866 this.getParty().remove((ContractPartyComponent) value); 3867 } else if (name.equals("topic")) { 3868 this.topic = null; 3869 } else if (name.equals("type")) { 3870 this.type = null; 3871 } else if (name.equals("decision")) { 3872 this.decision = null; 3873 } else if (name.equals("decisionMode")) { 3874 this.getDecisionMode().remove(castToCodeableConcept(value)); 3875 } else if (name.equals("answer")) { 3876 this.getAnswer().remove((AnswerComponent) value); 3877 } else if (name.equals("text")) { 3878 this.text = null; 3879 } else if (name.equals("linkId")) { 3880 this.getLinkId().remove(castToString(value)); 3881 } else if (name.equals("securityLabelNumber")) { 3882 this.getSecurityLabelNumber().remove(castToUnsignedInt(value)); 3883 } else 3884 super.removeChild(name, value); 3885 3886 } 3887 3888 @Override 3889 public Base makeProperty(int hash, String name) throws FHIRException { 3890 switch (hash) { 3891 case -1618432855: 3892 return addIdentifier(); 3893 case 106437350: 3894 return addParty(); 3895 case 110546223: 3896 return getTopic(); 3897 case 3575610: 3898 return getType(); 3899 case 565719004: 3900 return getDecision(); 3901 case 675909535: 3902 return addDecisionMode(); 3903 case -1412808770: 3904 return addAnswer(); 3905 case 3556653: 3906 return getTextElement(); 3907 case -1102667083: 3908 return addLinkIdElement(); 3909 case -149460995: 3910 return addSecurityLabelNumberElement(); 3911 default: 3912 return super.makeProperty(hash, name); 3913 } 3914 3915 } 3916 3917 @Override 3918 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 3919 switch (hash) { 3920 case -1618432855: 3921 /* identifier */ return new String[] { "Identifier" }; 3922 case 106437350: 3923 /* party */ return new String[] {}; 3924 case 110546223: 3925 /* topic */ return new String[] { "Reference" }; 3926 case 3575610: 3927 /* type */ return new String[] { "CodeableConcept" }; 3928 case 565719004: 3929 /* decision */ return new String[] { "CodeableConcept" }; 3930 case 675909535: 3931 /* decisionMode */ return new String[] { "CodeableConcept" }; 3932 case -1412808770: 3933 /* answer */ return new String[] {}; 3934 case 3556653: 3935 /* text */ return new String[] { "string" }; 3936 case -1102667083: 3937 /* linkId */ return new String[] { "string" }; 3938 case -149460995: 3939 /* securityLabelNumber */ return new String[] { "unsignedInt" }; 3940 default: 3941 return super.getTypesForProperty(hash, name); 3942 } 3943 3944 } 3945 3946 @Override 3947 public Base addChild(String name) throws FHIRException { 3948 if (name.equals("identifier")) { 3949 return addIdentifier(); 3950 } else if (name.equals("party")) { 3951 return addParty(); 3952 } else if (name.equals("topic")) { 3953 this.topic = new Reference(); 3954 return this.topic; 3955 } else if (name.equals("type")) { 3956 this.type = new CodeableConcept(); 3957 return this.type; 3958 } else if (name.equals("decision")) { 3959 this.decision = new CodeableConcept(); 3960 return this.decision; 3961 } else if (name.equals("decisionMode")) { 3962 return addDecisionMode(); 3963 } else if (name.equals("answer")) { 3964 return addAnswer(); 3965 } else if (name.equals("text")) { 3966 throw new FHIRException("Cannot call addChild on a singleton property Contract.text"); 3967 } else if (name.equals("linkId")) { 3968 throw new FHIRException("Cannot call addChild on a singleton property Contract.linkId"); 3969 } else if (name.equals("securityLabelNumber")) { 3970 throw new FHIRException("Cannot call addChild on a singleton property Contract.securityLabelNumber"); 3971 } else 3972 return super.addChild(name); 3973 } 3974 3975 public ContractOfferComponent copy() { 3976 ContractOfferComponent dst = new ContractOfferComponent(); 3977 copyValues(dst); 3978 return dst; 3979 } 3980 3981 public void copyValues(ContractOfferComponent dst) { 3982 super.copyValues(dst); 3983 if (identifier != null) { 3984 dst.identifier = new ArrayList<Identifier>(); 3985 for (Identifier i : identifier) 3986 dst.identifier.add(i.copy()); 3987 } 3988 ; 3989 if (party != null) { 3990 dst.party = new ArrayList<ContractPartyComponent>(); 3991 for (ContractPartyComponent i : party) 3992 dst.party.add(i.copy()); 3993 } 3994 ; 3995 dst.topic = topic == null ? null : topic.copy(); 3996 dst.type = type == null ? null : type.copy(); 3997 dst.decision = decision == null ? null : decision.copy(); 3998 if (decisionMode != null) { 3999 dst.decisionMode = new ArrayList<CodeableConcept>(); 4000 for (CodeableConcept i : decisionMode) 4001 dst.decisionMode.add(i.copy()); 4002 } 4003 ; 4004 if (answer != null) { 4005 dst.answer = new ArrayList<AnswerComponent>(); 4006 for (AnswerComponent i : answer) 4007 dst.answer.add(i.copy()); 4008 } 4009 ; 4010 dst.text = text == null ? null : text.copy(); 4011 if (linkId != null) { 4012 dst.linkId = new ArrayList<StringType>(); 4013 for (StringType i : linkId) 4014 dst.linkId.add(i.copy()); 4015 } 4016 ; 4017 if (securityLabelNumber != null) { 4018 dst.securityLabelNumber = new ArrayList<UnsignedIntType>(); 4019 for (UnsignedIntType i : securityLabelNumber) 4020 dst.securityLabelNumber.add(i.copy()); 4021 } 4022 ; 4023 } 4024 4025 @Override 4026 public boolean equalsDeep(Base other_) { 4027 if (!super.equalsDeep(other_)) 4028 return false; 4029 if (!(other_ instanceof ContractOfferComponent)) 4030 return false; 4031 ContractOfferComponent o = (ContractOfferComponent) other_; 4032 return compareDeep(identifier, o.identifier, true) && compareDeep(party, o.party, true) 4033 && compareDeep(topic, o.topic, true) && compareDeep(type, o.type, true) 4034 && compareDeep(decision, o.decision, true) && compareDeep(decisionMode, o.decisionMode, true) 4035 && compareDeep(answer, o.answer, true) && compareDeep(text, o.text, true) 4036 && compareDeep(linkId, o.linkId, true) && compareDeep(securityLabelNumber, o.securityLabelNumber, true); 4037 } 4038 4039 @Override 4040 public boolean equalsShallow(Base other_) { 4041 if (!super.equalsShallow(other_)) 4042 return false; 4043 if (!(other_ instanceof ContractOfferComponent)) 4044 return false; 4045 ContractOfferComponent o = (ContractOfferComponent) other_; 4046 return compareValues(text, o.text, true) && compareValues(linkId, o.linkId, true) 4047 && compareValues(securityLabelNumber, o.securityLabelNumber, true); 4048 } 4049 4050 public boolean isEmpty() { 4051 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, party, topic, type, decision, 4052 decisionMode, answer, text, linkId, securityLabelNumber); 4053 } 4054 4055 public String fhirType() { 4056 return "Contract.term.offer"; 4057 4058 } 4059 4060 } 4061 4062 @Block() 4063 public static class ContractPartyComponent extends BackboneElement implements IBaseBackboneElement { 4064 /** 4065 * Participant in the offer. 4066 */ 4067 @Child(name = "reference", type = { Patient.class, RelatedPerson.class, Practitioner.class, PractitionerRole.class, 4068 Device.class, Group.class, 4069 Organization.class }, order = 1, min = 1, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 4070 @Description(shortDefinition = "Referenced entity", formalDefinition = "Participant in the offer.") 4071 protected List<Reference> reference; 4072 /** 4073 * The actual objects that are the target of the reference (Participant in the 4074 * offer.) 4075 */ 4076 protected List<Resource> referenceTarget; 4077 4078 /** 4079 * How the party participates in the offer. 4080 */ 4081 @Child(name = "role", type = { 4082 CodeableConcept.class }, order = 2, min = 1, max = 1, modifier = false, summary = false) 4083 @Description(shortDefinition = "Participant engagement type", formalDefinition = "How the party participates in the offer.") 4084 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/contract-party-role") 4085 protected CodeableConcept role; 4086 4087 private static final long serialVersionUID = 128949255L; 4088 4089 /** 4090 * Constructor 4091 */ 4092 public ContractPartyComponent() { 4093 super(); 4094 } 4095 4096 /** 4097 * Constructor 4098 */ 4099 public ContractPartyComponent(CodeableConcept role) { 4100 super(); 4101 this.role = role; 4102 } 4103 4104 /** 4105 * @return {@link #reference} (Participant in the offer.) 4106 */ 4107 public List<Reference> getReference() { 4108 if (this.reference == null) 4109 this.reference = new ArrayList<Reference>(); 4110 return this.reference; 4111 } 4112 4113 /** 4114 * @return Returns a reference to <code>this</code> for easy method chaining 4115 */ 4116 public ContractPartyComponent setReference(List<Reference> theReference) { 4117 this.reference = theReference; 4118 return this; 4119 } 4120 4121 public boolean hasReference() { 4122 if (this.reference == null) 4123 return false; 4124 for (Reference item : this.reference) 4125 if (!item.isEmpty()) 4126 return true; 4127 return false; 4128 } 4129 4130 public Reference addReference() { // 3 4131 Reference t = new Reference(); 4132 if (this.reference == null) 4133 this.reference = new ArrayList<Reference>(); 4134 this.reference.add(t); 4135 return t; 4136 } 4137 4138 public ContractPartyComponent addReference(Reference t) { // 3 4139 if (t == null) 4140 return this; 4141 if (this.reference == null) 4142 this.reference = new ArrayList<Reference>(); 4143 this.reference.add(t); 4144 return this; 4145 } 4146 4147 /** 4148 * @return The first repetition of repeating field {@link #reference}, creating 4149 * it if it does not already exist 4150 */ 4151 public Reference getReferenceFirstRep() { 4152 if (getReference().isEmpty()) { 4153 addReference(); 4154 } 4155 return getReference().get(0); 4156 } 4157 4158 /** 4159 * @deprecated Use Reference#setResource(IBaseResource) instead 4160 */ 4161 @Deprecated 4162 public List<Resource> getReferenceTarget() { 4163 if (this.referenceTarget == null) 4164 this.referenceTarget = new ArrayList<Resource>(); 4165 return this.referenceTarget; 4166 } 4167 4168 /** 4169 * @return {@link #role} (How the party participates in the offer.) 4170 */ 4171 public CodeableConcept getRole() { 4172 if (this.role == null) 4173 if (Configuration.errorOnAutoCreate()) 4174 throw new Error("Attempt to auto-create ContractPartyComponent.role"); 4175 else if (Configuration.doAutoCreate()) 4176 this.role = new CodeableConcept(); // cc 4177 return this.role; 4178 } 4179 4180 public boolean hasRole() { 4181 return this.role != null && !this.role.isEmpty(); 4182 } 4183 4184 /** 4185 * @param value {@link #role} (How the party participates in the offer.) 4186 */ 4187 public ContractPartyComponent setRole(CodeableConcept value) { 4188 this.role = value; 4189 return this; 4190 } 4191 4192 protected void listChildren(List<Property> children) { 4193 super.listChildren(children); 4194 children.add(new Property("reference", 4195 "Reference(Patient|RelatedPerson|Practitioner|PractitionerRole|Device|Group|Organization)", 4196 "Participant in the offer.", 0, java.lang.Integer.MAX_VALUE, reference)); 4197 children.add(new Property("role", "CodeableConcept", "How the party participates in the offer.", 0, 1, role)); 4198 } 4199 4200 @Override 4201 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 4202 switch (_hash) { 4203 case -925155509: 4204 /* reference */ return new Property("reference", 4205 "Reference(Patient|RelatedPerson|Practitioner|PractitionerRole|Device|Group|Organization)", 4206 "Participant in the offer.", 0, java.lang.Integer.MAX_VALUE, reference); 4207 case 3506294: 4208 /* role */ return new Property("role", "CodeableConcept", "How the party participates in the offer.", 0, 1, 4209 role); 4210 default: 4211 return super.getNamedProperty(_hash, _name, _checkValid); 4212 } 4213 4214 } 4215 4216 @Override 4217 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 4218 switch (hash) { 4219 case -925155509: 4220 /* reference */ return this.reference == null ? new Base[0] 4221 : this.reference.toArray(new Base[this.reference.size()]); // Reference 4222 case 3506294: 4223 /* role */ return this.role == null ? new Base[0] : new Base[] { this.role }; // CodeableConcept 4224 default: 4225 return super.getProperty(hash, name, checkValid); 4226 } 4227 4228 } 4229 4230 @Override 4231 public Base setProperty(int hash, String name, Base value) throws FHIRException { 4232 switch (hash) { 4233 case -925155509: // reference 4234 this.getReference().add(castToReference(value)); // Reference 4235 return value; 4236 case 3506294: // role 4237 this.role = castToCodeableConcept(value); // CodeableConcept 4238 return value; 4239 default: 4240 return super.setProperty(hash, name, value); 4241 } 4242 4243 } 4244 4245 @Override 4246 public Base setProperty(String name, Base value) throws FHIRException { 4247 if (name.equals("reference")) { 4248 this.getReference().add(castToReference(value)); 4249 } else if (name.equals("role")) { 4250 this.role = castToCodeableConcept(value); // CodeableConcept 4251 } else 4252 return super.setProperty(name, value); 4253 return value; 4254 } 4255 4256 @Override 4257 public void removeChild(String name, Base value) throws FHIRException { 4258 if (name.equals("reference")) { 4259 this.getReference().remove(castToReference(value)); 4260 } else if (name.equals("role")) { 4261 this.role = null; 4262 } else 4263 super.removeChild(name, value); 4264 4265 } 4266 4267 @Override 4268 public Base makeProperty(int hash, String name) throws FHIRException { 4269 switch (hash) { 4270 case -925155509: 4271 return addReference(); 4272 case 3506294: 4273 return getRole(); 4274 default: 4275 return super.makeProperty(hash, name); 4276 } 4277 4278 } 4279 4280 @Override 4281 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 4282 switch (hash) { 4283 case -925155509: 4284 /* reference */ return new String[] { "Reference" }; 4285 case 3506294: 4286 /* role */ return new String[] { "CodeableConcept" }; 4287 default: 4288 return super.getTypesForProperty(hash, name); 4289 } 4290 4291 } 4292 4293 @Override 4294 public Base addChild(String name) throws FHIRException { 4295 if (name.equals("reference")) { 4296 return addReference(); 4297 } else if (name.equals("role")) { 4298 this.role = new CodeableConcept(); 4299 return this.role; 4300 } else 4301 return super.addChild(name); 4302 } 4303 4304 public ContractPartyComponent copy() { 4305 ContractPartyComponent dst = new ContractPartyComponent(); 4306 copyValues(dst); 4307 return dst; 4308 } 4309 4310 public void copyValues(ContractPartyComponent dst) { 4311 super.copyValues(dst); 4312 if (reference != null) { 4313 dst.reference = new ArrayList<Reference>(); 4314 for (Reference i : reference) 4315 dst.reference.add(i.copy()); 4316 } 4317 ; 4318 dst.role = role == null ? null : role.copy(); 4319 } 4320 4321 @Override 4322 public boolean equalsDeep(Base other_) { 4323 if (!super.equalsDeep(other_)) 4324 return false; 4325 if (!(other_ instanceof ContractPartyComponent)) 4326 return false; 4327 ContractPartyComponent o = (ContractPartyComponent) other_; 4328 return compareDeep(reference, o.reference, true) && compareDeep(role, o.role, true); 4329 } 4330 4331 @Override 4332 public boolean equalsShallow(Base other_) { 4333 if (!super.equalsShallow(other_)) 4334 return false; 4335 if (!(other_ instanceof ContractPartyComponent)) 4336 return false; 4337 ContractPartyComponent o = (ContractPartyComponent) other_; 4338 return true; 4339 } 4340 4341 public boolean isEmpty() { 4342 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(reference, role); 4343 } 4344 4345 public String fhirType() { 4346 return "Contract.term.offer.party"; 4347 4348 } 4349 4350 } 4351 4352 @Block() 4353 public static class AnswerComponent extends BackboneElement implements IBaseBackboneElement { 4354 /** 4355 * Response to an offer clause or question text, which enables selection of 4356 * values to be agreed to, e.g., the period of participation, the date of 4357 * occupancy of a rental, warrently duration, or whether biospecimen may be used 4358 * for further research. 4359 */ 4360 @Child(name = "value", type = { BooleanType.class, DecimalType.class, IntegerType.class, DateType.class, 4361 DateTimeType.class, TimeType.class, StringType.class, UriType.class, Attachment.class, Coding.class, 4362 Quantity.class, Reference.class }, order = 1, min = 1, max = 1, modifier = false, summary = false) 4363 @Description(shortDefinition = "The actual answer response", formalDefinition = "Response to an offer clause or question text, which enables selection of values to be agreed to, e.g., the period of participation, the date of occupancy of a rental, warrently duration, or whether biospecimen may be used for further research.") 4364 protected Type value; 4365 4366 private static final long serialVersionUID = -732981989L; 4367 4368 /** 4369 * Constructor 4370 */ 4371 public AnswerComponent() { 4372 super(); 4373 } 4374 4375 /** 4376 * Constructor 4377 */ 4378 public AnswerComponent(Type value) { 4379 super(); 4380 this.value = value; 4381 } 4382 4383 /** 4384 * @return {@link #value} (Response to an offer clause or question text, which 4385 * enables selection of values to be agreed to, e.g., the period of 4386 * participation, the date of occupancy of a rental, warrently duration, 4387 * or whether biospecimen may be used for further research.) 4388 */ 4389 public Type getValue() { 4390 return this.value; 4391 } 4392 4393 /** 4394 * @return {@link #value} (Response to an offer clause or question text, which 4395 * enables selection of values to be agreed to, e.g., the period of 4396 * participation, the date of occupancy of a rental, warrently duration, 4397 * or whether biospecimen may be used for further research.) 4398 */ 4399 public BooleanType getValueBooleanType() throws FHIRException { 4400 if (this.value == null) 4401 this.value = new BooleanType(); 4402 if (!(this.value instanceof BooleanType)) 4403 throw new FHIRException("Type mismatch: the type BooleanType was expected, but " 4404 + this.value.getClass().getName() + " was encountered"); 4405 return (BooleanType) this.value; 4406 } 4407 4408 public boolean hasValueBooleanType() { 4409 return this != null && this.value instanceof BooleanType; 4410 } 4411 4412 /** 4413 * @return {@link #value} (Response to an offer clause or question text, which 4414 * enables selection of values to be agreed to, e.g., the period of 4415 * participation, the date of occupancy of a rental, warrently duration, 4416 * or whether biospecimen may be used for further research.) 4417 */ 4418 public DecimalType getValueDecimalType() throws FHIRException { 4419 if (this.value == null) 4420 this.value = new DecimalType(); 4421 if (!(this.value instanceof DecimalType)) 4422 throw new FHIRException("Type mismatch: the type DecimalType was expected, but " 4423 + this.value.getClass().getName() + " was encountered"); 4424 return (DecimalType) this.value; 4425 } 4426 4427 public boolean hasValueDecimalType() { 4428 return this != null && this.value instanceof DecimalType; 4429 } 4430 4431 /** 4432 * @return {@link #value} (Response to an offer clause or question text, which 4433 * enables selection of values to be agreed to, e.g., the period of 4434 * participation, the date of occupancy of a rental, warrently duration, 4435 * or whether biospecimen may be used for further research.) 4436 */ 4437 public IntegerType getValueIntegerType() throws FHIRException { 4438 if (this.value == null) 4439 this.value = new IntegerType(); 4440 if (!(this.value instanceof IntegerType)) 4441 throw new FHIRException("Type mismatch: the type IntegerType was expected, but " 4442 + this.value.getClass().getName() + " was encountered"); 4443 return (IntegerType) this.value; 4444 } 4445 4446 public boolean hasValueIntegerType() { 4447 return this != null && this.value instanceof IntegerType; 4448 } 4449 4450 /** 4451 * @return {@link #value} (Response to an offer clause or question text, which 4452 * enables selection of values to be agreed to, e.g., the period of 4453 * participation, the date of occupancy of a rental, warrently duration, 4454 * or whether biospecimen may be used for further research.) 4455 */ 4456 public DateType getValueDateType() throws FHIRException { 4457 if (this.value == null) 4458 this.value = new DateType(); 4459 if (!(this.value instanceof DateType)) 4460 throw new FHIRException("Type mismatch: the type DateType was expected, but " + this.value.getClass().getName() 4461 + " was encountered"); 4462 return (DateType) this.value; 4463 } 4464 4465 public boolean hasValueDateType() { 4466 return this != null && this.value instanceof DateType; 4467 } 4468 4469 /** 4470 * @return {@link #value} (Response to an offer clause or question text, which 4471 * enables selection of values to be agreed to, e.g., the period of 4472 * participation, the date of occupancy of a rental, warrently duration, 4473 * or whether biospecimen may be used for further research.) 4474 */ 4475 public DateTimeType getValueDateTimeType() throws FHIRException { 4476 if (this.value == null) 4477 this.value = new DateTimeType(); 4478 if (!(this.value instanceof DateTimeType)) 4479 throw new FHIRException("Type mismatch: the type DateTimeType was expected, but " 4480 + this.value.getClass().getName() + " was encountered"); 4481 return (DateTimeType) this.value; 4482 } 4483 4484 public boolean hasValueDateTimeType() { 4485 return this != null && this.value instanceof DateTimeType; 4486 } 4487 4488 /** 4489 * @return {@link #value} (Response to an offer clause or question text, which 4490 * enables selection of values to be agreed to, e.g., the period of 4491 * participation, the date of occupancy of a rental, warrently duration, 4492 * or whether biospecimen may be used for further research.) 4493 */ 4494 public TimeType getValueTimeType() throws FHIRException { 4495 if (this.value == null) 4496 this.value = new TimeType(); 4497 if (!(this.value instanceof TimeType)) 4498 throw new FHIRException("Type mismatch: the type TimeType was expected, but " + this.value.getClass().getName() 4499 + " was encountered"); 4500 return (TimeType) this.value; 4501 } 4502 4503 public boolean hasValueTimeType() { 4504 return this != null && this.value instanceof TimeType; 4505 } 4506 4507 /** 4508 * @return {@link #value} (Response to an offer clause or question text, which 4509 * enables selection of values to be agreed to, e.g., the period of 4510 * participation, the date of occupancy of a rental, warrently duration, 4511 * or whether biospecimen may be used for further research.) 4512 */ 4513 public StringType getValueStringType() throws FHIRException { 4514 if (this.value == null) 4515 this.value = new StringType(); 4516 if (!(this.value instanceof StringType)) 4517 throw new FHIRException("Type mismatch: the type StringType was expected, but " 4518 + this.value.getClass().getName() + " was encountered"); 4519 return (StringType) this.value; 4520 } 4521 4522 public boolean hasValueStringType() { 4523 return this != null && this.value instanceof StringType; 4524 } 4525 4526 /** 4527 * @return {@link #value} (Response to an offer clause or question text, which 4528 * enables selection of values to be agreed to, e.g., the period of 4529 * participation, the date of occupancy of a rental, warrently duration, 4530 * or whether biospecimen may be used for further research.) 4531 */ 4532 public UriType getValueUriType() throws FHIRException { 4533 if (this.value == null) 4534 this.value = new UriType(); 4535 if (!(this.value instanceof UriType)) 4536 throw new FHIRException("Type mismatch: the type UriType was expected, but " + this.value.getClass().getName() 4537 + " was encountered"); 4538 return (UriType) this.value; 4539 } 4540 4541 public boolean hasValueUriType() { 4542 return this != null && this.value instanceof UriType; 4543 } 4544 4545 /** 4546 * @return {@link #value} (Response to an offer clause or question text, which 4547 * enables selection of values to be agreed to, e.g., the period of 4548 * participation, the date of occupancy of a rental, warrently duration, 4549 * or whether biospecimen may be used for further research.) 4550 */ 4551 public Attachment getValueAttachment() throws FHIRException { 4552 if (this.value == null) 4553 this.value = new Attachment(); 4554 if (!(this.value instanceof Attachment)) 4555 throw new FHIRException("Type mismatch: the type Attachment was expected, but " 4556 + this.value.getClass().getName() + " was encountered"); 4557 return (Attachment) this.value; 4558 } 4559 4560 public boolean hasValueAttachment() { 4561 return this != null && this.value instanceof Attachment; 4562 } 4563 4564 /** 4565 * @return {@link #value} (Response to an offer clause or question text, which 4566 * enables selection of values to be agreed to, e.g., the period of 4567 * participation, the date of occupancy of a rental, warrently duration, 4568 * or whether biospecimen may be used for further research.) 4569 */ 4570 public Coding getValueCoding() throws FHIRException { 4571 if (this.value == null) 4572 this.value = new Coding(); 4573 if (!(this.value instanceof Coding)) 4574 throw new FHIRException( 4575 "Type mismatch: the type Coding was expected, but " + this.value.getClass().getName() + " was encountered"); 4576 return (Coding) this.value; 4577 } 4578 4579 public boolean hasValueCoding() { 4580 return this != null && this.value instanceof Coding; 4581 } 4582 4583 /** 4584 * @return {@link #value} (Response to an offer clause or question text, which 4585 * enables selection of values to be agreed to, e.g., the period of 4586 * participation, the date of occupancy of a rental, warrently duration, 4587 * or whether biospecimen may be used for further research.) 4588 */ 4589 public Quantity getValueQuantity() throws FHIRException { 4590 if (this.value == null) 4591 this.value = new Quantity(); 4592 if (!(this.value instanceof Quantity)) 4593 throw new FHIRException("Type mismatch: the type Quantity was expected, but " + this.value.getClass().getName() 4594 + " was encountered"); 4595 return (Quantity) this.value; 4596 } 4597 4598 public boolean hasValueQuantity() { 4599 return this != null && this.value instanceof Quantity; 4600 } 4601 4602 /** 4603 * @return {@link #value} (Response to an offer clause or question text, which 4604 * enables selection of values to be agreed to, e.g., the period of 4605 * participation, the date of occupancy of a rental, warrently duration, 4606 * or whether biospecimen may be used for further research.) 4607 */ 4608 public Reference getValueReference() throws FHIRException { 4609 if (this.value == null) 4610 this.value = new Reference(); 4611 if (!(this.value instanceof Reference)) 4612 throw new FHIRException("Type mismatch: the type Reference was expected, but " + this.value.getClass().getName() 4613 + " was encountered"); 4614 return (Reference) this.value; 4615 } 4616 4617 public boolean hasValueReference() { 4618 return this != null && this.value instanceof Reference; 4619 } 4620 4621 public boolean hasValue() { 4622 return this.value != null && !this.value.isEmpty(); 4623 } 4624 4625 /** 4626 * @param value {@link #value} (Response to an offer clause or question text, 4627 * which enables selection of values to be agreed to, e.g., the 4628 * period of participation, the date of occupancy of a rental, 4629 * warrently duration, or whether biospecimen may be used for 4630 * further research.) 4631 */ 4632 public AnswerComponent setValue(Type value) { 4633 if (value != null 4634 && !(value instanceof BooleanType || value instanceof DecimalType || value instanceof IntegerType 4635 || value instanceof DateType || value instanceof DateTimeType || value instanceof TimeType 4636 || value instanceof StringType || value instanceof UriType || value instanceof Attachment 4637 || value instanceof Coding || value instanceof Quantity || value instanceof Reference)) 4638 throw new Error("Not the right type for Contract.term.offer.answer.value[x]: " + value.fhirType()); 4639 this.value = value; 4640 return this; 4641 } 4642 4643 protected void listChildren(List<Property> children) { 4644 super.listChildren(children); 4645 children.add(new Property("value[x]", 4646 "boolean|decimal|integer|date|dateTime|time|string|uri|Attachment|Coding|Quantity|Reference(Any)", 4647 "Response to an offer clause or question text, which enables selection of values to be agreed to, e.g., the period of participation, the date of occupancy of a rental, warrently duration, or whether biospecimen may be used for further research.", 4648 0, 1, value)); 4649 } 4650 4651 @Override 4652 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 4653 switch (_hash) { 4654 case -1410166417: 4655 /* value[x] */ return new Property("value[x]", 4656 "boolean|decimal|integer|date|dateTime|time|string|uri|Attachment|Coding|Quantity|Reference(Any)", 4657 "Response to an offer clause or question text, which enables selection of values to be agreed to, e.g., the period of participation, the date of occupancy of a rental, warrently duration, or whether biospecimen may be used for further research.", 4658 0, 1, value); 4659 case 111972721: 4660 /* value */ return new Property("value[x]", 4661 "boolean|decimal|integer|date|dateTime|time|string|uri|Attachment|Coding|Quantity|Reference(Any)", 4662 "Response to an offer clause or question text, which enables selection of values to be agreed to, e.g., the period of participation, the date of occupancy of a rental, warrently duration, or whether biospecimen may be used for further research.", 4663 0, 1, value); 4664 case 733421943: 4665 /* valueBoolean */ return new Property("value[x]", 4666 "boolean|decimal|integer|date|dateTime|time|string|uri|Attachment|Coding|Quantity|Reference(Any)", 4667 "Response to an offer clause or question text, which enables selection of values to be agreed to, e.g., the period of participation, the date of occupancy of a rental, warrently duration, or whether biospecimen may be used for further research.", 4668 0, 1, value); 4669 case -2083993440: 4670 /* valueDecimal */ return new Property("value[x]", 4671 "boolean|decimal|integer|date|dateTime|time|string|uri|Attachment|Coding|Quantity|Reference(Any)", 4672 "Response to an offer clause or question text, which enables selection of values to be agreed to, e.g., the period of participation, the date of occupancy of a rental, warrently duration, or whether biospecimen may be used for further research.", 4673 0, 1, value); 4674 case -1668204915: 4675 /* valueInteger */ return new Property("value[x]", 4676 "boolean|decimal|integer|date|dateTime|time|string|uri|Attachment|Coding|Quantity|Reference(Any)", 4677 "Response to an offer clause or question text, which enables selection of values to be agreed to, e.g., the period of participation, the date of occupancy of a rental, warrently duration, or whether biospecimen may be used for further research.", 4678 0, 1, value); 4679 case -766192449: 4680 /* valueDate */ return new Property("value[x]", 4681 "boolean|decimal|integer|date|dateTime|time|string|uri|Attachment|Coding|Quantity|Reference(Any)", 4682 "Response to an offer clause or question text, which enables selection of values to be agreed to, e.g., the period of participation, the date of occupancy of a rental, warrently duration, or whether biospecimen may be used for further research.", 4683 0, 1, value); 4684 case 1047929900: 4685 /* valueDateTime */ return new Property("value[x]", 4686 "boolean|decimal|integer|date|dateTime|time|string|uri|Attachment|Coding|Quantity|Reference(Any)", 4687 "Response to an offer clause or question text, which enables selection of values to be agreed to, e.g., the period of participation, the date of occupancy of a rental, warrently duration, or whether biospecimen may be used for further research.", 4688 0, 1, value); 4689 case -765708322: 4690 /* valueTime */ return new Property("value[x]", 4691 "boolean|decimal|integer|date|dateTime|time|string|uri|Attachment|Coding|Quantity|Reference(Any)", 4692 "Response to an offer clause or question text, which enables selection of values to be agreed to, e.g., the period of participation, the date of occupancy of a rental, warrently duration, or whether biospecimen may be used for further research.", 4693 0, 1, value); 4694 case -1424603934: 4695 /* valueString */ return new Property("value[x]", 4696 "boolean|decimal|integer|date|dateTime|time|string|uri|Attachment|Coding|Quantity|Reference(Any)", 4697 "Response to an offer clause or question text, which enables selection of values to be agreed to, e.g., the period of participation, the date of occupancy of a rental, warrently duration, or whether biospecimen may be used for further research.", 4698 0, 1, value); 4699 case -1410172357: 4700 /* valueUri */ return new Property("value[x]", 4701 "boolean|decimal|integer|date|dateTime|time|string|uri|Attachment|Coding|Quantity|Reference(Any)", 4702 "Response to an offer clause or question text, which enables selection of values to be agreed to, e.g., the period of participation, the date of occupancy of a rental, warrently duration, or whether biospecimen may be used for further research.", 4703 0, 1, value); 4704 case -475566732: 4705 /* valueAttachment */ return new Property("value[x]", 4706 "boolean|decimal|integer|date|dateTime|time|string|uri|Attachment|Coding|Quantity|Reference(Any)", 4707 "Response to an offer clause or question text, which enables selection of values to be agreed to, e.g., the period of participation, the date of occupancy of a rental, warrently duration, or whether biospecimen may be used for further research.", 4708 0, 1, value); 4709 case -1887705029: 4710 /* valueCoding */ return new Property("value[x]", 4711 "boolean|decimal|integer|date|dateTime|time|string|uri|Attachment|Coding|Quantity|Reference(Any)", 4712 "Response to an offer clause or question text, which enables selection of values to be agreed to, e.g., the period of participation, the date of occupancy of a rental, warrently duration, or whether biospecimen may be used for further research.", 4713 0, 1, value); 4714 case -2029823716: 4715 /* valueQuantity */ return new Property("value[x]", 4716 "boolean|decimal|integer|date|dateTime|time|string|uri|Attachment|Coding|Quantity|Reference(Any)", 4717 "Response to an offer clause or question text, which enables selection of values to be agreed to, e.g., the period of participation, the date of occupancy of a rental, warrently duration, or whether biospecimen may be used for further research.", 4718 0, 1, value); 4719 case 1755241690: 4720 /* valueReference */ return new Property("value[x]", 4721 "boolean|decimal|integer|date|dateTime|time|string|uri|Attachment|Coding|Quantity|Reference(Any)", 4722 "Response to an offer clause or question text, which enables selection of values to be agreed to, e.g., the period of participation, the date of occupancy of a rental, warrently duration, or whether biospecimen may be used for further research.", 4723 0, 1, value); 4724 default: 4725 return super.getNamedProperty(_hash, _name, _checkValid); 4726 } 4727 4728 } 4729 4730 @Override 4731 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 4732 switch (hash) { 4733 case 111972721: 4734 /* value */ return this.value == null ? new Base[0] : new Base[] { this.value }; // Type 4735 default: 4736 return super.getProperty(hash, name, checkValid); 4737 } 4738 4739 } 4740 4741 @Override 4742 public Base setProperty(int hash, String name, Base value) throws FHIRException { 4743 switch (hash) { 4744 case 111972721: // value 4745 this.value = castToType(value); // Type 4746 return value; 4747 default: 4748 return super.setProperty(hash, name, value); 4749 } 4750 4751 } 4752 4753 @Override 4754 public Base setProperty(String name, Base value) throws FHIRException { 4755 if (name.equals("value[x]")) { 4756 this.value = castToType(value); // Type 4757 } else 4758 return super.setProperty(name, value); 4759 return value; 4760 } 4761 4762 @Override 4763 public void removeChild(String name, Base value) throws FHIRException { 4764 if (name.equals("value[x]")) { 4765 this.value = null; 4766 } else 4767 super.removeChild(name, value); 4768 4769 } 4770 4771 @Override 4772 public Base makeProperty(int hash, String name) throws FHIRException { 4773 switch (hash) { 4774 case -1410166417: 4775 return getValue(); 4776 case 111972721: 4777 return getValue(); 4778 default: 4779 return super.makeProperty(hash, name); 4780 } 4781 4782 } 4783 4784 @Override 4785 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 4786 switch (hash) { 4787 case 111972721: 4788 /* value */ return new String[] { "boolean", "decimal", "integer", "date", "dateTime", "time", "string", "uri", 4789 "Attachment", "Coding", "Quantity", "Reference" }; 4790 default: 4791 return super.getTypesForProperty(hash, name); 4792 } 4793 4794 } 4795 4796 @Override 4797 public Base addChild(String name) throws FHIRException { 4798 if (name.equals("valueBoolean")) { 4799 this.value = new BooleanType(); 4800 return this.value; 4801 } else if (name.equals("valueDecimal")) { 4802 this.value = new DecimalType(); 4803 return this.value; 4804 } else if (name.equals("valueInteger")) { 4805 this.value = new IntegerType(); 4806 return this.value; 4807 } else if (name.equals("valueDate")) { 4808 this.value = new DateType(); 4809 return this.value; 4810 } else if (name.equals("valueDateTime")) { 4811 this.value = new DateTimeType(); 4812 return this.value; 4813 } else if (name.equals("valueTime")) { 4814 this.value = new TimeType(); 4815 return this.value; 4816 } else if (name.equals("valueString")) { 4817 this.value = new StringType(); 4818 return this.value; 4819 } else if (name.equals("valueUri")) { 4820 this.value = new UriType(); 4821 return this.value; 4822 } else if (name.equals("valueAttachment")) { 4823 this.value = new Attachment(); 4824 return this.value; 4825 } else if (name.equals("valueCoding")) { 4826 this.value = new Coding(); 4827 return this.value; 4828 } else if (name.equals("valueQuantity")) { 4829 this.value = new Quantity(); 4830 return this.value; 4831 } else if (name.equals("valueReference")) { 4832 this.value = new Reference(); 4833 return this.value; 4834 } else 4835 return super.addChild(name); 4836 } 4837 4838 public AnswerComponent copy() { 4839 AnswerComponent dst = new AnswerComponent(); 4840 copyValues(dst); 4841 return dst; 4842 } 4843 4844 public void copyValues(AnswerComponent dst) { 4845 super.copyValues(dst); 4846 dst.value = value == null ? null : value.copy(); 4847 } 4848 4849 @Override 4850 public boolean equalsDeep(Base other_) { 4851 if (!super.equalsDeep(other_)) 4852 return false; 4853 if (!(other_ instanceof AnswerComponent)) 4854 return false; 4855 AnswerComponent o = (AnswerComponent) other_; 4856 return compareDeep(value, o.value, true); 4857 } 4858 4859 @Override 4860 public boolean equalsShallow(Base other_) { 4861 if (!super.equalsShallow(other_)) 4862 return false; 4863 if (!(other_ instanceof AnswerComponent)) 4864 return false; 4865 AnswerComponent o = (AnswerComponent) other_; 4866 return true; 4867 } 4868 4869 public boolean isEmpty() { 4870 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(value); 4871 } 4872 4873 public String fhirType() { 4874 return "Contract.term.offer.answer"; 4875 4876 } 4877 4878 } 4879 4880 @Block() 4881 public static class ContractAssetComponent extends BackboneElement implements IBaseBackboneElement { 4882 /** 4883 * Differentiates the kind of the asset . 4884 */ 4885 @Child(name = "scope", type = { 4886 CodeableConcept.class }, order = 1, min = 0, max = 1, modifier = false, summary = false) 4887 @Description(shortDefinition = "Range of asset", formalDefinition = "Differentiates the kind of the asset .") 4888 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/contract-assetscope") 4889 protected CodeableConcept scope; 4890 4891 /** 4892 * Target entity type about which the term may be concerned. 4893 */ 4894 @Child(name = "type", type = { 4895 CodeableConcept.class }, order = 2, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 4896 @Description(shortDefinition = "Asset category", formalDefinition = "Target entity type about which the term may be concerned.") 4897 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/contract-assettype") 4898 protected List<CodeableConcept> type; 4899 4900 /** 4901 * Associated entities. 4902 */ 4903 @Child(name = "typeReference", type = { 4904 Reference.class }, order = 3, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 4905 @Description(shortDefinition = "Associated entities", formalDefinition = "Associated entities.") 4906 protected List<Reference> typeReference; 4907 /** 4908 * The actual objects that are the target of the reference (Associated 4909 * entities.) 4910 */ 4911 protected List<Resource> typeReferenceTarget; 4912 4913 /** 4914 * May be a subtype or part of an offered asset. 4915 */ 4916 @Child(name = "subtype", type = { 4917 CodeableConcept.class }, order = 4, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 4918 @Description(shortDefinition = "Asset sub-category", formalDefinition = "May be a subtype or part of an offered asset.") 4919 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/contract-assetsubtype") 4920 protected List<CodeableConcept> subtype; 4921 4922 /** 4923 * Specifies the applicability of the term to an asset resource instance, and 4924 * instances it refers to orinstances that refer to it, and/or are owned by the 4925 * offeree. 4926 */ 4927 @Child(name = "relationship", type = { 4928 Coding.class }, order = 5, min = 0, max = 1, modifier = false, summary = false) 4929 @Description(shortDefinition = "Kinship of the asset", formalDefinition = "Specifies the applicability of the term to an asset resource instance, and instances it refers to orinstances that refer to it, and/or are owned by the offeree.") 4930 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/consent-content-class") 4931 protected Coding relationship; 4932 4933 /** 4934 * Circumstance of the asset. 4935 */ 4936 @Child(name = "context", type = {}, order = 6, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 4937 @Description(shortDefinition = "Circumstance of the asset", formalDefinition = "Circumstance of the asset.") 4938 protected List<AssetContextComponent> context; 4939 4940 /** 4941 * Description of the quality and completeness of the asset that imay be a 4942 * factor in its valuation. 4943 */ 4944 @Child(name = "condition", type = { 4945 StringType.class }, order = 7, min = 0, max = 1, modifier = false, summary = false) 4946 @Description(shortDefinition = "Quality desctiption of asset", formalDefinition = "Description of the quality and completeness of the asset that imay be a factor in its valuation.") 4947 protected StringType condition; 4948 4949 /** 4950 * Type of Asset availability for use or ownership. 4951 */ 4952 @Child(name = "periodType", type = { 4953 CodeableConcept.class }, order = 8, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 4954 @Description(shortDefinition = "Asset availability types", formalDefinition = "Type of Asset availability for use or ownership.") 4955 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/asset-availability") 4956 protected List<CodeableConcept> periodType; 4957 4958 /** 4959 * Asset relevant contractual time period. 4960 */ 4961 @Child(name = "period", type = { 4962 Period.class }, order = 9, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 4963 @Description(shortDefinition = "Time period of the asset", formalDefinition = "Asset relevant contractual time period.") 4964 protected List<Period> period; 4965 4966 /** 4967 * Time period of asset use. 4968 */ 4969 @Child(name = "usePeriod", type = { 4970 Period.class }, order = 10, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 4971 @Description(shortDefinition = "Time period", formalDefinition = "Time period of asset use.") 4972 protected List<Period> usePeriod; 4973 4974 /** 4975 * Clause or question text (Prose Object) concerning the asset in a linked form, 4976 * such as a QuestionnaireResponse used in the formation of the contract. 4977 */ 4978 @Child(name = "text", type = { StringType.class }, order = 11, min = 0, max = 1, modifier = false, summary = false) 4979 @Description(shortDefinition = "Asset clause or question text", formalDefinition = "Clause or question text (Prose Object) concerning the asset in a linked form, such as a QuestionnaireResponse used in the formation of the contract.") 4980 protected StringType text; 4981 4982 /** 4983 * Id [identifier??] of the clause or question text about the asset in the 4984 * referenced form or QuestionnaireResponse. 4985 */ 4986 @Child(name = "linkId", type = { 4987 StringType.class }, order = 12, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 4988 @Description(shortDefinition = "Pointer to asset text", formalDefinition = "Id [identifier??] of the clause or question text about the asset in the referenced form or QuestionnaireResponse.") 4989 protected List<StringType> linkId; 4990 4991 /** 4992 * Response to assets. 4993 */ 4994 @Child(name = "answer", type = { 4995 AnswerComponent.class }, order = 13, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 4996 @Description(shortDefinition = "Response to assets", formalDefinition = "Response to assets.") 4997 protected List<AnswerComponent> answer; 4998 4999 /** 5000 * Security labels that protects the asset. 5001 */ 5002 @Child(name = "securityLabelNumber", type = { 5003 UnsignedIntType.class }, order = 14, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 5004 @Description(shortDefinition = "Asset restriction numbers", formalDefinition = "Security labels that protects the asset.") 5005 protected List<UnsignedIntType> securityLabelNumber; 5006 5007 /** 5008 * Contract Valued Item List. 5009 */ 5010 @Child(name = "valuedItem", type = {}, order = 15, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 5011 @Description(shortDefinition = "Contract Valued Item List", formalDefinition = "Contract Valued Item List.") 5012 protected List<ValuedItemComponent> valuedItem; 5013 5014 private static final long serialVersionUID = -1080398792L; 5015 5016 /** 5017 * Constructor 5018 */ 5019 public ContractAssetComponent() { 5020 super(); 5021 } 5022 5023 /** 5024 * @return {@link #scope} (Differentiates the kind of the asset .) 5025 */ 5026 public CodeableConcept getScope() { 5027 if (this.scope == null) 5028 if (Configuration.errorOnAutoCreate()) 5029 throw new Error("Attempt to auto-create ContractAssetComponent.scope"); 5030 else if (Configuration.doAutoCreate()) 5031 this.scope = new CodeableConcept(); // cc 5032 return this.scope; 5033 } 5034 5035 public boolean hasScope() { 5036 return this.scope != null && !this.scope.isEmpty(); 5037 } 5038 5039 /** 5040 * @param value {@link #scope} (Differentiates the kind of the asset .) 5041 */ 5042 public ContractAssetComponent setScope(CodeableConcept value) { 5043 this.scope = value; 5044 return this; 5045 } 5046 5047 /** 5048 * @return {@link #type} (Target entity type about which the term may be 5049 * concerned.) 5050 */ 5051 public List<CodeableConcept> getType() { 5052 if (this.type == null) 5053 this.type = new ArrayList<CodeableConcept>(); 5054 return this.type; 5055 } 5056 5057 /** 5058 * @return Returns a reference to <code>this</code> for easy method chaining 5059 */ 5060 public ContractAssetComponent setType(List<CodeableConcept> theType) { 5061 this.type = theType; 5062 return this; 5063 } 5064 5065 public boolean hasType() { 5066 if (this.type == null) 5067 return false; 5068 for (CodeableConcept item : this.type) 5069 if (!item.isEmpty()) 5070 return true; 5071 return false; 5072 } 5073 5074 public CodeableConcept addType() { // 3 5075 CodeableConcept t = new CodeableConcept(); 5076 if (this.type == null) 5077 this.type = new ArrayList<CodeableConcept>(); 5078 this.type.add(t); 5079 return t; 5080 } 5081 5082 public ContractAssetComponent addType(CodeableConcept t) { // 3 5083 if (t == null) 5084 return this; 5085 if (this.type == null) 5086 this.type = new ArrayList<CodeableConcept>(); 5087 this.type.add(t); 5088 return this; 5089 } 5090 5091 /** 5092 * @return The first repetition of repeating field {@link #type}, creating it if 5093 * it does not already exist 5094 */ 5095 public CodeableConcept getTypeFirstRep() { 5096 if (getType().isEmpty()) { 5097 addType(); 5098 } 5099 return getType().get(0); 5100 } 5101 5102 /** 5103 * @return {@link #typeReference} (Associated entities.) 5104 */ 5105 public List<Reference> getTypeReference() { 5106 if (this.typeReference == null) 5107 this.typeReference = new ArrayList<Reference>(); 5108 return this.typeReference; 5109 } 5110 5111 /** 5112 * @return Returns a reference to <code>this</code> for easy method chaining 5113 */ 5114 public ContractAssetComponent setTypeReference(List<Reference> theTypeReference) { 5115 this.typeReference = theTypeReference; 5116 return this; 5117 } 5118 5119 public boolean hasTypeReference() { 5120 if (this.typeReference == null) 5121 return false; 5122 for (Reference item : this.typeReference) 5123 if (!item.isEmpty()) 5124 return true; 5125 return false; 5126 } 5127 5128 public Reference addTypeReference() { // 3 5129 Reference t = new Reference(); 5130 if (this.typeReference == null) 5131 this.typeReference = new ArrayList<Reference>(); 5132 this.typeReference.add(t); 5133 return t; 5134 } 5135 5136 public ContractAssetComponent addTypeReference(Reference t) { // 3 5137 if (t == null) 5138 return this; 5139 if (this.typeReference == null) 5140 this.typeReference = new ArrayList<Reference>(); 5141 this.typeReference.add(t); 5142 return this; 5143 } 5144 5145 /** 5146 * @return The first repetition of repeating field {@link #typeReference}, 5147 * creating it if it does not already exist 5148 */ 5149 public Reference getTypeReferenceFirstRep() { 5150 if (getTypeReference().isEmpty()) { 5151 addTypeReference(); 5152 } 5153 return getTypeReference().get(0); 5154 } 5155 5156 /** 5157 * @deprecated Use Reference#setResource(IBaseResource) instead 5158 */ 5159 @Deprecated 5160 public List<Resource> getTypeReferenceTarget() { 5161 if (this.typeReferenceTarget == null) 5162 this.typeReferenceTarget = new ArrayList<Resource>(); 5163 return this.typeReferenceTarget; 5164 } 5165 5166 /** 5167 * @return {@link #subtype} (May be a subtype or part of an offered asset.) 5168 */ 5169 public List<CodeableConcept> getSubtype() { 5170 if (this.subtype == null) 5171 this.subtype = new ArrayList<CodeableConcept>(); 5172 return this.subtype; 5173 } 5174 5175 /** 5176 * @return Returns a reference to <code>this</code> for easy method chaining 5177 */ 5178 public ContractAssetComponent setSubtype(List<CodeableConcept> theSubtype) { 5179 this.subtype = theSubtype; 5180 return this; 5181 } 5182 5183 public boolean hasSubtype() { 5184 if (this.subtype == null) 5185 return false; 5186 for (CodeableConcept item : this.subtype) 5187 if (!item.isEmpty()) 5188 return true; 5189 return false; 5190 } 5191 5192 public CodeableConcept addSubtype() { // 3 5193 CodeableConcept t = new CodeableConcept(); 5194 if (this.subtype == null) 5195 this.subtype = new ArrayList<CodeableConcept>(); 5196 this.subtype.add(t); 5197 return t; 5198 } 5199 5200 public ContractAssetComponent addSubtype(CodeableConcept t) { // 3 5201 if (t == null) 5202 return this; 5203 if (this.subtype == null) 5204 this.subtype = new ArrayList<CodeableConcept>(); 5205 this.subtype.add(t); 5206 return this; 5207 } 5208 5209 /** 5210 * @return The first repetition of repeating field {@link #subtype}, creating it 5211 * if it does not already exist 5212 */ 5213 public CodeableConcept getSubtypeFirstRep() { 5214 if (getSubtype().isEmpty()) { 5215 addSubtype(); 5216 } 5217 return getSubtype().get(0); 5218 } 5219 5220 /** 5221 * @return {@link #relationship} (Specifies the applicability of the term to an 5222 * asset resource instance, and instances it refers to orinstances that 5223 * refer to it, and/or are owned by the offeree.) 5224 */ 5225 public Coding getRelationship() { 5226 if (this.relationship == null) 5227 if (Configuration.errorOnAutoCreate()) 5228 throw new Error("Attempt to auto-create ContractAssetComponent.relationship"); 5229 else if (Configuration.doAutoCreate()) 5230 this.relationship = new Coding(); // cc 5231 return this.relationship; 5232 } 5233 5234 public boolean hasRelationship() { 5235 return this.relationship != null && !this.relationship.isEmpty(); 5236 } 5237 5238 /** 5239 * @param value {@link #relationship} (Specifies the applicability of the term 5240 * to an asset resource instance, and instances it refers to 5241 * orinstances that refer to it, and/or are owned by the offeree.) 5242 */ 5243 public ContractAssetComponent setRelationship(Coding value) { 5244 this.relationship = value; 5245 return this; 5246 } 5247 5248 /** 5249 * @return {@link #context} (Circumstance of the asset.) 5250 */ 5251 public List<AssetContextComponent> getContext() { 5252 if (this.context == null) 5253 this.context = new ArrayList<AssetContextComponent>(); 5254 return this.context; 5255 } 5256 5257 /** 5258 * @return Returns a reference to <code>this</code> for easy method chaining 5259 */ 5260 public ContractAssetComponent setContext(List<AssetContextComponent> theContext) { 5261 this.context = theContext; 5262 return this; 5263 } 5264 5265 public boolean hasContext() { 5266 if (this.context == null) 5267 return false; 5268 for (AssetContextComponent item : this.context) 5269 if (!item.isEmpty()) 5270 return true; 5271 return false; 5272 } 5273 5274 public AssetContextComponent addContext() { // 3 5275 AssetContextComponent t = new AssetContextComponent(); 5276 if (this.context == null) 5277 this.context = new ArrayList<AssetContextComponent>(); 5278 this.context.add(t); 5279 return t; 5280 } 5281 5282 public ContractAssetComponent addContext(AssetContextComponent t) { // 3 5283 if (t == null) 5284 return this; 5285 if (this.context == null) 5286 this.context = new ArrayList<AssetContextComponent>(); 5287 this.context.add(t); 5288 return this; 5289 } 5290 5291 /** 5292 * @return The first repetition of repeating field {@link #context}, creating it 5293 * if it does not already exist 5294 */ 5295 public AssetContextComponent getContextFirstRep() { 5296 if (getContext().isEmpty()) { 5297 addContext(); 5298 } 5299 return getContext().get(0); 5300 } 5301 5302 /** 5303 * @return {@link #condition} (Description of the quality and completeness of 5304 * the asset that imay be a factor in its valuation.). This is the 5305 * underlying object with id, value and extensions. The accessor 5306 * "getCondition" gives direct access to the value 5307 */ 5308 public StringType getConditionElement() { 5309 if (this.condition == null) 5310 if (Configuration.errorOnAutoCreate()) 5311 throw new Error("Attempt to auto-create ContractAssetComponent.condition"); 5312 else if (Configuration.doAutoCreate()) 5313 this.condition = new StringType(); // bb 5314 return this.condition; 5315 } 5316 5317 public boolean hasConditionElement() { 5318 return this.condition != null && !this.condition.isEmpty(); 5319 } 5320 5321 public boolean hasCondition() { 5322 return this.condition != null && !this.condition.isEmpty(); 5323 } 5324 5325 /** 5326 * @param value {@link #condition} (Description of the quality and completeness 5327 * of the asset that imay be a factor in its valuation.). This is 5328 * the underlying object with id, value and extensions. The 5329 * accessor "getCondition" gives direct access to the value 5330 */ 5331 public ContractAssetComponent setConditionElement(StringType value) { 5332 this.condition = value; 5333 return this; 5334 } 5335 5336 /** 5337 * @return Description of the quality and completeness of the asset that imay be 5338 * a factor in its valuation. 5339 */ 5340 public String getCondition() { 5341 return this.condition == null ? null : this.condition.getValue(); 5342 } 5343 5344 /** 5345 * @param value Description of the quality and completeness of the asset that 5346 * imay be a factor in its valuation. 5347 */ 5348 public ContractAssetComponent setCondition(String value) { 5349 if (Utilities.noString(value)) 5350 this.condition = null; 5351 else { 5352 if (this.condition == null) 5353 this.condition = new StringType(); 5354 this.condition.setValue(value); 5355 } 5356 return this; 5357 } 5358 5359 /** 5360 * @return {@link #periodType} (Type of Asset availability for use or 5361 * ownership.) 5362 */ 5363 public List<CodeableConcept> getPeriodType() { 5364 if (this.periodType == null) 5365 this.periodType = new ArrayList<CodeableConcept>(); 5366 return this.periodType; 5367 } 5368 5369 /** 5370 * @return Returns a reference to <code>this</code> for easy method chaining 5371 */ 5372 public ContractAssetComponent setPeriodType(List<CodeableConcept> thePeriodType) { 5373 this.periodType = thePeriodType; 5374 return this; 5375 } 5376 5377 public boolean hasPeriodType() { 5378 if (this.periodType == null) 5379 return false; 5380 for (CodeableConcept item : this.periodType) 5381 if (!item.isEmpty()) 5382 return true; 5383 return false; 5384 } 5385 5386 public CodeableConcept addPeriodType() { // 3 5387 CodeableConcept t = new CodeableConcept(); 5388 if (this.periodType == null) 5389 this.periodType = new ArrayList<CodeableConcept>(); 5390 this.periodType.add(t); 5391 return t; 5392 } 5393 5394 public ContractAssetComponent addPeriodType(CodeableConcept t) { // 3 5395 if (t == null) 5396 return this; 5397 if (this.periodType == null) 5398 this.periodType = new ArrayList<CodeableConcept>(); 5399 this.periodType.add(t); 5400 return this; 5401 } 5402 5403 /** 5404 * @return The first repetition of repeating field {@link #periodType}, creating 5405 * it if it does not already exist 5406 */ 5407 public CodeableConcept getPeriodTypeFirstRep() { 5408 if (getPeriodType().isEmpty()) { 5409 addPeriodType(); 5410 } 5411 return getPeriodType().get(0); 5412 } 5413 5414 /** 5415 * @return {@link #period} (Asset relevant contractual time period.) 5416 */ 5417 public List<Period> getPeriod() { 5418 if (this.period == null) 5419 this.period = new ArrayList<Period>(); 5420 return this.period; 5421 } 5422 5423 /** 5424 * @return Returns a reference to <code>this</code> for easy method chaining 5425 */ 5426 public ContractAssetComponent setPeriod(List<Period> thePeriod) { 5427 this.period = thePeriod; 5428 return this; 5429 } 5430 5431 public boolean hasPeriod() { 5432 if (this.period == null) 5433 return false; 5434 for (Period item : this.period) 5435 if (!item.isEmpty()) 5436 return true; 5437 return false; 5438 } 5439 5440 public Period addPeriod() { // 3 5441 Period t = new Period(); 5442 if (this.period == null) 5443 this.period = new ArrayList<Period>(); 5444 this.period.add(t); 5445 return t; 5446 } 5447 5448 public ContractAssetComponent addPeriod(Period t) { // 3 5449 if (t == null) 5450 return this; 5451 if (this.period == null) 5452 this.period = new ArrayList<Period>(); 5453 this.period.add(t); 5454 return this; 5455 } 5456 5457 /** 5458 * @return The first repetition of repeating field {@link #period}, creating it 5459 * if it does not already exist 5460 */ 5461 public Period getPeriodFirstRep() { 5462 if (getPeriod().isEmpty()) { 5463 addPeriod(); 5464 } 5465 return getPeriod().get(0); 5466 } 5467 5468 /** 5469 * @return {@link #usePeriod} (Time period of asset use.) 5470 */ 5471 public List<Period> getUsePeriod() { 5472 if (this.usePeriod == null) 5473 this.usePeriod = new ArrayList<Period>(); 5474 return this.usePeriod; 5475 } 5476 5477 /** 5478 * @return Returns a reference to <code>this</code> for easy method chaining 5479 */ 5480 public ContractAssetComponent setUsePeriod(List<Period> theUsePeriod) { 5481 this.usePeriod = theUsePeriod; 5482 return this; 5483 } 5484 5485 public boolean hasUsePeriod() { 5486 if (this.usePeriod == null) 5487 return false; 5488 for (Period item : this.usePeriod) 5489 if (!item.isEmpty()) 5490 return true; 5491 return false; 5492 } 5493 5494 public Period addUsePeriod() { // 3 5495 Period t = new Period(); 5496 if (this.usePeriod == null) 5497 this.usePeriod = new ArrayList<Period>(); 5498 this.usePeriod.add(t); 5499 return t; 5500 } 5501 5502 public ContractAssetComponent addUsePeriod(Period t) { // 3 5503 if (t == null) 5504 return this; 5505 if (this.usePeriod == null) 5506 this.usePeriod = new ArrayList<Period>(); 5507 this.usePeriod.add(t); 5508 return this; 5509 } 5510 5511 /** 5512 * @return The first repetition of repeating field {@link #usePeriod}, creating 5513 * it if it does not already exist 5514 */ 5515 public Period getUsePeriodFirstRep() { 5516 if (getUsePeriod().isEmpty()) { 5517 addUsePeriod(); 5518 } 5519 return getUsePeriod().get(0); 5520 } 5521 5522 /** 5523 * @return {@link #text} (Clause or question text (Prose Object) concerning the 5524 * asset in a linked form, such as a QuestionnaireResponse used in the 5525 * formation of the contract.). This is the underlying object with id, 5526 * value and extensions. The accessor "getText" gives direct access to 5527 * the value 5528 */ 5529 public StringType getTextElement() { 5530 if (this.text == null) 5531 if (Configuration.errorOnAutoCreate()) 5532 throw new Error("Attempt to auto-create ContractAssetComponent.text"); 5533 else if (Configuration.doAutoCreate()) 5534 this.text = new StringType(); // bb 5535 return this.text; 5536 } 5537 5538 public boolean hasTextElement() { 5539 return this.text != null && !this.text.isEmpty(); 5540 } 5541 5542 public boolean hasText() { 5543 return this.text != null && !this.text.isEmpty(); 5544 } 5545 5546 /** 5547 * @param value {@link #text} (Clause or question text (Prose Object) concerning 5548 * the asset in a linked form, such as a QuestionnaireResponse used 5549 * in the formation of the contract.). This is the underlying 5550 * object with id, value and extensions. The accessor "getText" 5551 * gives direct access to the value 5552 */ 5553 public ContractAssetComponent setTextElement(StringType value) { 5554 this.text = value; 5555 return this; 5556 } 5557 5558 /** 5559 * @return Clause or question text (Prose Object) concerning the asset in a 5560 * linked form, such as a QuestionnaireResponse used in the formation of 5561 * the contract. 5562 */ 5563 public String getText() { 5564 return this.text == null ? null : this.text.getValue(); 5565 } 5566 5567 /** 5568 * @param value Clause or question text (Prose Object) concerning the asset in a 5569 * linked form, such as a QuestionnaireResponse used in the 5570 * formation of the contract. 5571 */ 5572 public ContractAssetComponent setText(String value) { 5573 if (Utilities.noString(value)) 5574 this.text = null; 5575 else { 5576 if (this.text == null) 5577 this.text = new StringType(); 5578 this.text.setValue(value); 5579 } 5580 return this; 5581 } 5582 5583 /** 5584 * @return {@link #linkId} (Id [identifier??] of the clause or question text 5585 * about the asset in the referenced form or QuestionnaireResponse.) 5586 */ 5587 public List<StringType> getLinkId() { 5588 if (this.linkId == null) 5589 this.linkId = new ArrayList<StringType>(); 5590 return this.linkId; 5591 } 5592 5593 /** 5594 * @return Returns a reference to <code>this</code> for easy method chaining 5595 */ 5596 public ContractAssetComponent setLinkId(List<StringType> theLinkId) { 5597 this.linkId = theLinkId; 5598 return this; 5599 } 5600 5601 public boolean hasLinkId() { 5602 if (this.linkId == null) 5603 return false; 5604 for (StringType item : this.linkId) 5605 if (!item.isEmpty()) 5606 return true; 5607 return false; 5608 } 5609 5610 /** 5611 * @return {@link #linkId} (Id [identifier??] of the clause or question text 5612 * about the asset in the referenced form or QuestionnaireResponse.) 5613 */ 5614 public StringType addLinkIdElement() {// 2 5615 StringType t = new StringType(); 5616 if (this.linkId == null) 5617 this.linkId = new ArrayList<StringType>(); 5618 this.linkId.add(t); 5619 return t; 5620 } 5621 5622 /** 5623 * @param value {@link #linkId} (Id [identifier??] of the clause or question 5624 * text about the asset in the referenced form or 5625 * QuestionnaireResponse.) 5626 */ 5627 public ContractAssetComponent addLinkId(String value) { // 1 5628 StringType t = new StringType(); 5629 t.setValue(value); 5630 if (this.linkId == null) 5631 this.linkId = new ArrayList<StringType>(); 5632 this.linkId.add(t); 5633 return this; 5634 } 5635 5636 /** 5637 * @param value {@link #linkId} (Id [identifier??] of the clause or question 5638 * text about the asset in the referenced form or 5639 * QuestionnaireResponse.) 5640 */ 5641 public boolean hasLinkId(String value) { 5642 if (this.linkId == null) 5643 return false; 5644 for (StringType v : this.linkId) 5645 if (v.getValue().equals(value)) // string 5646 return true; 5647 return false; 5648 } 5649 5650 /** 5651 * @return {@link #answer} (Response to assets.) 5652 */ 5653 public List<AnswerComponent> getAnswer() { 5654 if (this.answer == null) 5655 this.answer = new ArrayList<AnswerComponent>(); 5656 return this.answer; 5657 } 5658 5659 /** 5660 * @return Returns a reference to <code>this</code> for easy method chaining 5661 */ 5662 public ContractAssetComponent setAnswer(List<AnswerComponent> theAnswer) { 5663 this.answer = theAnswer; 5664 return this; 5665 } 5666 5667 public boolean hasAnswer() { 5668 if (this.answer == null) 5669 return false; 5670 for (AnswerComponent item : this.answer) 5671 if (!item.isEmpty()) 5672 return true; 5673 return false; 5674 } 5675 5676 public AnswerComponent addAnswer() { // 3 5677 AnswerComponent t = new AnswerComponent(); 5678 if (this.answer == null) 5679 this.answer = new ArrayList<AnswerComponent>(); 5680 this.answer.add(t); 5681 return t; 5682 } 5683 5684 public ContractAssetComponent addAnswer(AnswerComponent t) { // 3 5685 if (t == null) 5686 return this; 5687 if (this.answer == null) 5688 this.answer = new ArrayList<AnswerComponent>(); 5689 this.answer.add(t); 5690 return this; 5691 } 5692 5693 /** 5694 * @return The first repetition of repeating field {@link #answer}, creating it 5695 * if it does not already exist 5696 */ 5697 public AnswerComponent getAnswerFirstRep() { 5698 if (getAnswer().isEmpty()) { 5699 addAnswer(); 5700 } 5701 return getAnswer().get(0); 5702 } 5703 5704 /** 5705 * @return {@link #securityLabelNumber} (Security labels that protects the 5706 * asset.) 5707 */ 5708 public List<UnsignedIntType> getSecurityLabelNumber() { 5709 if (this.securityLabelNumber == null) 5710 this.securityLabelNumber = new ArrayList<UnsignedIntType>(); 5711 return this.securityLabelNumber; 5712 } 5713 5714 /** 5715 * @return Returns a reference to <code>this</code> for easy method chaining 5716 */ 5717 public ContractAssetComponent setSecurityLabelNumber(List<UnsignedIntType> theSecurityLabelNumber) { 5718 this.securityLabelNumber = theSecurityLabelNumber; 5719 return this; 5720 } 5721 5722 public boolean hasSecurityLabelNumber() { 5723 if (this.securityLabelNumber == null) 5724 return false; 5725 for (UnsignedIntType item : this.securityLabelNumber) 5726 if (!item.isEmpty()) 5727 return true; 5728 return false; 5729 } 5730 5731 /** 5732 * @return {@link #securityLabelNumber} (Security labels that protects the 5733 * asset.) 5734 */ 5735 public UnsignedIntType addSecurityLabelNumberElement() {// 2 5736 UnsignedIntType t = new UnsignedIntType(); 5737 if (this.securityLabelNumber == null) 5738 this.securityLabelNumber = new ArrayList<UnsignedIntType>(); 5739 this.securityLabelNumber.add(t); 5740 return t; 5741 } 5742 5743 /** 5744 * @param value {@link #securityLabelNumber} (Security labels that protects the 5745 * asset.) 5746 */ 5747 public ContractAssetComponent addSecurityLabelNumber(int value) { // 1 5748 UnsignedIntType t = new UnsignedIntType(); 5749 t.setValue(value); 5750 if (this.securityLabelNumber == null) 5751 this.securityLabelNumber = new ArrayList<UnsignedIntType>(); 5752 this.securityLabelNumber.add(t); 5753 return this; 5754 } 5755 5756 /** 5757 * @param value {@link #securityLabelNumber} (Security labels that protects the 5758 * asset.) 5759 */ 5760 public boolean hasSecurityLabelNumber(int value) { 5761 if (this.securityLabelNumber == null) 5762 return false; 5763 for (UnsignedIntType v : this.securityLabelNumber) 5764 if (v.getValue().equals(value)) // unsignedInt 5765 return true; 5766 return false; 5767 } 5768 5769 /** 5770 * @return {@link #valuedItem} (Contract Valued Item List.) 5771 */ 5772 public List<ValuedItemComponent> getValuedItem() { 5773 if (this.valuedItem == null) 5774 this.valuedItem = new ArrayList<ValuedItemComponent>(); 5775 return this.valuedItem; 5776 } 5777 5778 /** 5779 * @return Returns a reference to <code>this</code> for easy method chaining 5780 */ 5781 public ContractAssetComponent setValuedItem(List<ValuedItemComponent> theValuedItem) { 5782 this.valuedItem = theValuedItem; 5783 return this; 5784 } 5785 5786 public boolean hasValuedItem() { 5787 if (this.valuedItem == null) 5788 return false; 5789 for (ValuedItemComponent item : this.valuedItem) 5790 if (!item.isEmpty()) 5791 return true; 5792 return false; 5793 } 5794 5795 public ValuedItemComponent addValuedItem() { // 3 5796 ValuedItemComponent t = new ValuedItemComponent(); 5797 if (this.valuedItem == null) 5798 this.valuedItem = new ArrayList<ValuedItemComponent>(); 5799 this.valuedItem.add(t); 5800 return t; 5801 } 5802 5803 public ContractAssetComponent addValuedItem(ValuedItemComponent t) { // 3 5804 if (t == null) 5805 return this; 5806 if (this.valuedItem == null) 5807 this.valuedItem = new ArrayList<ValuedItemComponent>(); 5808 this.valuedItem.add(t); 5809 return this; 5810 } 5811 5812 /** 5813 * @return The first repetition of repeating field {@link #valuedItem}, creating 5814 * it if it does not already exist 5815 */ 5816 public ValuedItemComponent getValuedItemFirstRep() { 5817 if (getValuedItem().isEmpty()) { 5818 addValuedItem(); 5819 } 5820 return getValuedItem().get(0); 5821 } 5822 5823 protected void listChildren(List<Property> children) { 5824 super.listChildren(children); 5825 children.add(new Property("scope", "CodeableConcept", "Differentiates the kind of the asset .", 0, 1, scope)); 5826 children.add(new Property("type", "CodeableConcept", "Target entity type about which the term may be concerned.", 5827 0, java.lang.Integer.MAX_VALUE, type)); 5828 children.add(new Property("typeReference", "Reference(Any)", "Associated entities.", 0, 5829 java.lang.Integer.MAX_VALUE, typeReference)); 5830 children.add(new Property("subtype", "CodeableConcept", "May be a subtype or part of an offered asset.", 0, 5831 java.lang.Integer.MAX_VALUE, subtype)); 5832 children.add(new Property("relationship", "Coding", 5833 "Specifies the applicability of the term to an asset resource instance, and instances it refers to orinstances that refer to it, and/or are owned by the offeree.", 5834 0, 1, relationship)); 5835 children.add(new Property("context", "", "Circumstance of the asset.", 0, java.lang.Integer.MAX_VALUE, context)); 5836 children.add(new Property("condition", "string", 5837 "Description of the quality and completeness of the asset that imay be a factor in its valuation.", 0, 1, 5838 condition)); 5839 children.add(new Property("periodType", "CodeableConcept", "Type of Asset availability for use or ownership.", 0, 5840 java.lang.Integer.MAX_VALUE, periodType)); 5841 children.add(new Property("period", "Period", "Asset relevant contractual time period.", 0, 5842 java.lang.Integer.MAX_VALUE, period)); 5843 children.add( 5844 new Property("usePeriod", "Period", "Time period of asset use.", 0, java.lang.Integer.MAX_VALUE, usePeriod)); 5845 children.add(new Property("text", "string", 5846 "Clause or question text (Prose Object) concerning the asset in a linked form, such as a QuestionnaireResponse used in the formation of the contract.", 5847 0, 1, text)); 5848 children.add(new Property("linkId", "string", 5849 "Id [identifier??] of the clause or question text about the asset in the referenced form or QuestionnaireResponse.", 5850 0, java.lang.Integer.MAX_VALUE, linkId)); 5851 children.add(new Property("answer", "@Contract.term.offer.answer", "Response to assets.", 0, 5852 java.lang.Integer.MAX_VALUE, answer)); 5853 children.add(new Property("securityLabelNumber", "unsignedInt", "Security labels that protects the asset.", 0, 5854 java.lang.Integer.MAX_VALUE, securityLabelNumber)); 5855 children.add( 5856 new Property("valuedItem", "", "Contract Valued Item List.", 0, java.lang.Integer.MAX_VALUE, valuedItem)); 5857 } 5858 5859 @Override 5860 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 5861 switch (_hash) { 5862 case 109264468: 5863 /* scope */ return new Property("scope", "CodeableConcept", "Differentiates the kind of the asset .", 0, 1, 5864 scope); 5865 case 3575610: 5866 /* type */ return new Property("type", "CodeableConcept", 5867 "Target entity type about which the term may be concerned.", 0, java.lang.Integer.MAX_VALUE, type); 5868 case 2074825009: 5869 /* typeReference */ return new Property("typeReference", "Reference(Any)", "Associated entities.", 0, 5870 java.lang.Integer.MAX_VALUE, typeReference); 5871 case -1867567750: 5872 /* subtype */ return new Property("subtype", "CodeableConcept", "May be a subtype or part of an offered asset.", 5873 0, java.lang.Integer.MAX_VALUE, subtype); 5874 case -261851592: 5875 /* relationship */ return new Property("relationship", "Coding", 5876 "Specifies the applicability of the term to an asset resource instance, and instances it refers to orinstances that refer to it, and/or are owned by the offeree.", 5877 0, 1, relationship); 5878 case 951530927: 5879 /* context */ return new Property("context", "", "Circumstance of the asset.", 0, java.lang.Integer.MAX_VALUE, 5880 context); 5881 case -861311717: 5882 /* condition */ return new Property("condition", "string", 5883 "Description of the quality and completeness of the asset that imay be a factor in its valuation.", 0, 1, 5884 condition); 5885 case 384348315: 5886 /* periodType */ return new Property("periodType", "CodeableConcept", 5887 "Type of Asset availability for use or ownership.", 0, java.lang.Integer.MAX_VALUE, periodType); 5888 case -991726143: 5889 /* period */ return new Property("period", "Period", "Asset relevant contractual time period.", 0, 5890 java.lang.Integer.MAX_VALUE, period); 5891 case -628382168: 5892 /* usePeriod */ return new Property("usePeriod", "Period", "Time period of asset use.", 0, 5893 java.lang.Integer.MAX_VALUE, usePeriod); 5894 case 3556653: 5895 /* text */ return new Property("text", "string", 5896 "Clause or question text (Prose Object) concerning the asset in a linked form, such as a QuestionnaireResponse used in the formation of the contract.", 5897 0, 1, text); 5898 case -1102667083: 5899 /* linkId */ return new Property("linkId", "string", 5900 "Id [identifier??] of the clause or question text about the asset in the referenced form or QuestionnaireResponse.", 5901 0, java.lang.Integer.MAX_VALUE, linkId); 5902 case -1412808770: 5903 /* answer */ return new Property("answer", "@Contract.term.offer.answer", "Response to assets.", 0, 5904 java.lang.Integer.MAX_VALUE, answer); 5905 case -149460995: 5906 /* securityLabelNumber */ return new Property("securityLabelNumber", "unsignedInt", 5907 "Security labels that protects the asset.", 0, java.lang.Integer.MAX_VALUE, securityLabelNumber); 5908 case 2046675654: 5909 /* valuedItem */ return new Property("valuedItem", "", "Contract Valued Item List.", 0, 5910 java.lang.Integer.MAX_VALUE, valuedItem); 5911 default: 5912 return super.getNamedProperty(_hash, _name, _checkValid); 5913 } 5914 5915 } 5916 5917 @Override 5918 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 5919 switch (hash) { 5920 case 109264468: 5921 /* scope */ return this.scope == null ? new Base[0] : new Base[] { this.scope }; // CodeableConcept 5922 case 3575610: 5923 /* type */ return this.type == null ? new Base[0] : this.type.toArray(new Base[this.type.size()]); // CodeableConcept 5924 case 2074825009: 5925 /* typeReference */ return this.typeReference == null ? new Base[0] 5926 : this.typeReference.toArray(new Base[this.typeReference.size()]); // Reference 5927 case -1867567750: 5928 /* subtype */ return this.subtype == null ? new Base[0] : this.subtype.toArray(new Base[this.subtype.size()]); // CodeableConcept 5929 case -261851592: 5930 /* relationship */ return this.relationship == null ? new Base[0] : new Base[] { this.relationship }; // Coding 5931 case 951530927: 5932 /* context */ return this.context == null ? new Base[0] : this.context.toArray(new Base[this.context.size()]); // AssetContextComponent 5933 case -861311717: 5934 /* condition */ return this.condition == null ? new Base[0] : new Base[] { this.condition }; // StringType 5935 case 384348315: 5936 /* periodType */ return this.periodType == null ? new Base[0] 5937 : this.periodType.toArray(new Base[this.periodType.size()]); // CodeableConcept 5938 case -991726143: 5939 /* period */ return this.period == null ? new Base[0] : this.period.toArray(new Base[this.period.size()]); // Period 5940 case -628382168: 5941 /* usePeriod */ return this.usePeriod == null ? new Base[0] 5942 : this.usePeriod.toArray(new Base[this.usePeriod.size()]); // Period 5943 case 3556653: 5944 /* text */ return this.text == null ? new Base[0] : new Base[] { this.text }; // StringType 5945 case -1102667083: 5946 /* linkId */ return this.linkId == null ? new Base[0] : this.linkId.toArray(new Base[this.linkId.size()]); // StringType 5947 case -1412808770: 5948 /* answer */ return this.answer == null ? new Base[0] : this.answer.toArray(new Base[this.answer.size()]); // AnswerComponent 5949 case -149460995: 5950 /* securityLabelNumber */ return this.securityLabelNumber == null ? new Base[0] 5951 : this.securityLabelNumber.toArray(new Base[this.securityLabelNumber.size()]); // UnsignedIntType 5952 case 2046675654: 5953 /* valuedItem */ return this.valuedItem == null ? new Base[0] 5954 : this.valuedItem.toArray(new Base[this.valuedItem.size()]); // ValuedItemComponent 5955 default: 5956 return super.getProperty(hash, name, checkValid); 5957 } 5958 5959 } 5960 5961 @Override 5962 public Base setProperty(int hash, String name, Base value) throws FHIRException { 5963 switch (hash) { 5964 case 109264468: // scope 5965 this.scope = castToCodeableConcept(value); // CodeableConcept 5966 return value; 5967 case 3575610: // type 5968 this.getType().add(castToCodeableConcept(value)); // CodeableConcept 5969 return value; 5970 case 2074825009: // typeReference 5971 this.getTypeReference().add(castToReference(value)); // Reference 5972 return value; 5973 case -1867567750: // subtype 5974 this.getSubtype().add(castToCodeableConcept(value)); // CodeableConcept 5975 return value; 5976 case -261851592: // relationship 5977 this.relationship = castToCoding(value); // Coding 5978 return value; 5979 case 951530927: // context 5980 this.getContext().add((AssetContextComponent) value); // AssetContextComponent 5981 return value; 5982 case -861311717: // condition 5983 this.condition = castToString(value); // StringType 5984 return value; 5985 case 384348315: // periodType 5986 this.getPeriodType().add(castToCodeableConcept(value)); // CodeableConcept 5987 return value; 5988 case -991726143: // period 5989 this.getPeriod().add(castToPeriod(value)); // Period 5990 return value; 5991 case -628382168: // usePeriod 5992 this.getUsePeriod().add(castToPeriod(value)); // Period 5993 return value; 5994 case 3556653: // text 5995 this.text = castToString(value); // StringType 5996 return value; 5997 case -1102667083: // linkId 5998 this.getLinkId().add(castToString(value)); // StringType 5999 return value; 6000 case -1412808770: // answer 6001 this.getAnswer().add((AnswerComponent) value); // AnswerComponent 6002 return value; 6003 case -149460995: // securityLabelNumber 6004 this.getSecurityLabelNumber().add(castToUnsignedInt(value)); // UnsignedIntType 6005 return value; 6006 case 2046675654: // valuedItem 6007 this.getValuedItem().add((ValuedItemComponent) value); // ValuedItemComponent 6008 return value; 6009 default: 6010 return super.setProperty(hash, name, value); 6011 } 6012 6013 } 6014 6015 @Override 6016 public Base setProperty(String name, Base value) throws FHIRException { 6017 if (name.equals("scope")) { 6018 this.scope = castToCodeableConcept(value); // CodeableConcept 6019 } else if (name.equals("type")) { 6020 this.getType().add(castToCodeableConcept(value)); 6021 } else if (name.equals("typeReference")) { 6022 this.getTypeReference().add(castToReference(value)); 6023 } else if (name.equals("subtype")) { 6024 this.getSubtype().add(castToCodeableConcept(value)); 6025 } else if (name.equals("relationship")) { 6026 this.relationship = castToCoding(value); // Coding 6027 } else if (name.equals("context")) { 6028 this.getContext().add((AssetContextComponent) value); 6029 } else if (name.equals("condition")) { 6030 this.condition = castToString(value); // StringType 6031 } else if (name.equals("periodType")) { 6032 this.getPeriodType().add(castToCodeableConcept(value)); 6033 } else if (name.equals("period")) { 6034 this.getPeriod().add(castToPeriod(value)); 6035 } else if (name.equals("usePeriod")) { 6036 this.getUsePeriod().add(castToPeriod(value)); 6037 } else if (name.equals("text")) { 6038 this.text = castToString(value); // StringType 6039 } else if (name.equals("linkId")) { 6040 this.getLinkId().add(castToString(value)); 6041 } else if (name.equals("answer")) { 6042 this.getAnswer().add((AnswerComponent) value); 6043 } else if (name.equals("securityLabelNumber")) { 6044 this.getSecurityLabelNumber().add(castToUnsignedInt(value)); 6045 } else if (name.equals("valuedItem")) { 6046 this.getValuedItem().add((ValuedItemComponent) value); 6047 } else 6048 return super.setProperty(name, value); 6049 return value; 6050 } 6051 6052 @Override 6053 public void removeChild(String name, Base value) throws FHIRException { 6054 if (name.equals("scope")) { 6055 this.scope = null; 6056 } else if (name.equals("type")) { 6057 this.getType().remove(castToCodeableConcept(value)); 6058 } else if (name.equals("typeReference")) { 6059 this.getTypeReference().remove(castToReference(value)); 6060 } else if (name.equals("subtype")) { 6061 this.getSubtype().remove(castToCodeableConcept(value)); 6062 } else if (name.equals("relationship")) { 6063 this.relationship = null; 6064 } else if (name.equals("context")) { 6065 this.getContext().remove((AssetContextComponent) value); 6066 } else if (name.equals("condition")) { 6067 this.condition = null; 6068 } else if (name.equals("periodType")) { 6069 this.getPeriodType().remove(castToCodeableConcept(value)); 6070 } else if (name.equals("period")) { 6071 this.getPeriod().remove(castToPeriod(value)); 6072 } else if (name.equals("usePeriod")) { 6073 this.getUsePeriod().remove(castToPeriod(value)); 6074 } else if (name.equals("text")) { 6075 this.text = null; 6076 } else if (name.equals("linkId")) { 6077 this.getLinkId().remove(castToString(value)); 6078 } else if (name.equals("answer")) { 6079 this.getAnswer().remove((AnswerComponent) value); 6080 } else if (name.equals("securityLabelNumber")) { 6081 this.getSecurityLabelNumber().remove(castToUnsignedInt(value)); 6082 } else if (name.equals("valuedItem")) { 6083 this.getValuedItem().remove((ValuedItemComponent) value); 6084 } else 6085 super.removeChild(name, value); 6086 6087 } 6088 6089 @Override 6090 public Base makeProperty(int hash, String name) throws FHIRException { 6091 switch (hash) { 6092 case 109264468: 6093 return getScope(); 6094 case 3575610: 6095 return addType(); 6096 case 2074825009: 6097 return addTypeReference(); 6098 case -1867567750: 6099 return addSubtype(); 6100 case -261851592: 6101 return getRelationship(); 6102 case 951530927: 6103 return addContext(); 6104 case -861311717: 6105 return getConditionElement(); 6106 case 384348315: 6107 return addPeriodType(); 6108 case -991726143: 6109 return addPeriod(); 6110 case -628382168: 6111 return addUsePeriod(); 6112 case 3556653: 6113 return getTextElement(); 6114 case -1102667083: 6115 return addLinkIdElement(); 6116 case -1412808770: 6117 return addAnswer(); 6118 case -149460995: 6119 return addSecurityLabelNumberElement(); 6120 case 2046675654: 6121 return addValuedItem(); 6122 default: 6123 return super.makeProperty(hash, name); 6124 } 6125 6126 } 6127 6128 @Override 6129 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 6130 switch (hash) { 6131 case 109264468: 6132 /* scope */ return new String[] { "CodeableConcept" }; 6133 case 3575610: 6134 /* type */ return new String[] { "CodeableConcept" }; 6135 case 2074825009: 6136 /* typeReference */ return new String[] { "Reference" }; 6137 case -1867567750: 6138 /* subtype */ return new String[] { "CodeableConcept" }; 6139 case -261851592: 6140 /* relationship */ return new String[] { "Coding" }; 6141 case 951530927: 6142 /* context */ return new String[] {}; 6143 case -861311717: 6144 /* condition */ return new String[] { "string" }; 6145 case 384348315: 6146 /* periodType */ return new String[] { "CodeableConcept" }; 6147 case -991726143: 6148 /* period */ return new String[] { "Period" }; 6149 case -628382168: 6150 /* usePeriod */ return new String[] { "Period" }; 6151 case 3556653: 6152 /* text */ return new String[] { "string" }; 6153 case -1102667083: 6154 /* linkId */ return new String[] { "string" }; 6155 case -1412808770: 6156 /* answer */ return new String[] { "@Contract.term.offer.answer" }; 6157 case -149460995: 6158 /* securityLabelNumber */ return new String[] { "unsignedInt" }; 6159 case 2046675654: 6160 /* valuedItem */ return new String[] {}; 6161 default: 6162 return super.getTypesForProperty(hash, name); 6163 } 6164 6165 } 6166 6167 @Override 6168 public Base addChild(String name) throws FHIRException { 6169 if (name.equals("scope")) { 6170 this.scope = new CodeableConcept(); 6171 return this.scope; 6172 } else if (name.equals("type")) { 6173 return addType(); 6174 } else if (name.equals("typeReference")) { 6175 return addTypeReference(); 6176 } else if (name.equals("subtype")) { 6177 return addSubtype(); 6178 } else if (name.equals("relationship")) { 6179 this.relationship = new Coding(); 6180 return this.relationship; 6181 } else if (name.equals("context")) { 6182 return addContext(); 6183 } else if (name.equals("condition")) { 6184 throw new FHIRException("Cannot call addChild on a singleton property Contract.condition"); 6185 } else if (name.equals("periodType")) { 6186 return addPeriodType(); 6187 } else if (name.equals("period")) { 6188 return addPeriod(); 6189 } else if (name.equals("usePeriod")) { 6190 return addUsePeriod(); 6191 } else if (name.equals("text")) { 6192 throw new FHIRException("Cannot call addChild on a singleton property Contract.text"); 6193 } else if (name.equals("linkId")) { 6194 throw new FHIRException("Cannot call addChild on a singleton property Contract.linkId"); 6195 } else if (name.equals("answer")) { 6196 return addAnswer(); 6197 } else if (name.equals("securityLabelNumber")) { 6198 throw new FHIRException("Cannot call addChild on a singleton property Contract.securityLabelNumber"); 6199 } else if (name.equals("valuedItem")) { 6200 return addValuedItem(); 6201 } else 6202 return super.addChild(name); 6203 } 6204 6205 public ContractAssetComponent copy() { 6206 ContractAssetComponent dst = new ContractAssetComponent(); 6207 copyValues(dst); 6208 return dst; 6209 } 6210 6211 public void copyValues(ContractAssetComponent dst) { 6212 super.copyValues(dst); 6213 dst.scope = scope == null ? null : scope.copy(); 6214 if (type != null) { 6215 dst.type = new ArrayList<CodeableConcept>(); 6216 for (CodeableConcept i : type) 6217 dst.type.add(i.copy()); 6218 } 6219 ; 6220 if (typeReference != null) { 6221 dst.typeReference = new ArrayList<Reference>(); 6222 for (Reference i : typeReference) 6223 dst.typeReference.add(i.copy()); 6224 } 6225 ; 6226 if (subtype != null) { 6227 dst.subtype = new ArrayList<CodeableConcept>(); 6228 for (CodeableConcept i : subtype) 6229 dst.subtype.add(i.copy()); 6230 } 6231 ; 6232 dst.relationship = relationship == null ? null : relationship.copy(); 6233 if (context != null) { 6234 dst.context = new ArrayList<AssetContextComponent>(); 6235 for (AssetContextComponent i : context) 6236 dst.context.add(i.copy()); 6237 } 6238 ; 6239 dst.condition = condition == null ? null : condition.copy(); 6240 if (periodType != null) { 6241 dst.periodType = new ArrayList<CodeableConcept>(); 6242 for (CodeableConcept i : periodType) 6243 dst.periodType.add(i.copy()); 6244 } 6245 ; 6246 if (period != null) { 6247 dst.period = new ArrayList<Period>(); 6248 for (Period i : period) 6249 dst.period.add(i.copy()); 6250 } 6251 ; 6252 if (usePeriod != null) { 6253 dst.usePeriod = new ArrayList<Period>(); 6254 for (Period i : usePeriod) 6255 dst.usePeriod.add(i.copy()); 6256 } 6257 ; 6258 dst.text = text == null ? null : text.copy(); 6259 if (linkId != null) { 6260 dst.linkId = new ArrayList<StringType>(); 6261 for (StringType i : linkId) 6262 dst.linkId.add(i.copy()); 6263 } 6264 ; 6265 if (answer != null) { 6266 dst.answer = new ArrayList<AnswerComponent>(); 6267 for (AnswerComponent i : answer) 6268 dst.answer.add(i.copy()); 6269 } 6270 ; 6271 if (securityLabelNumber != null) { 6272 dst.securityLabelNumber = new ArrayList<UnsignedIntType>(); 6273 for (UnsignedIntType i : securityLabelNumber) 6274 dst.securityLabelNumber.add(i.copy()); 6275 } 6276 ; 6277 if (valuedItem != null) { 6278 dst.valuedItem = new ArrayList<ValuedItemComponent>(); 6279 for (ValuedItemComponent i : valuedItem) 6280 dst.valuedItem.add(i.copy()); 6281 } 6282 ; 6283 } 6284 6285 @Override 6286 public boolean equalsDeep(Base other_) { 6287 if (!super.equalsDeep(other_)) 6288 return false; 6289 if (!(other_ instanceof ContractAssetComponent)) 6290 return false; 6291 ContractAssetComponent o = (ContractAssetComponent) other_; 6292 return compareDeep(scope, o.scope, true) && compareDeep(type, o.type, true) 6293 && compareDeep(typeReference, o.typeReference, true) && compareDeep(subtype, o.subtype, true) 6294 && compareDeep(relationship, o.relationship, true) && compareDeep(context, o.context, true) 6295 && compareDeep(condition, o.condition, true) && compareDeep(periodType, o.periodType, true) 6296 && compareDeep(period, o.period, true) && compareDeep(usePeriod, o.usePeriod, true) 6297 && compareDeep(text, o.text, true) && compareDeep(linkId, o.linkId, true) 6298 && compareDeep(answer, o.answer, true) && compareDeep(securityLabelNumber, o.securityLabelNumber, true) 6299 && compareDeep(valuedItem, o.valuedItem, true); 6300 } 6301 6302 @Override 6303 public boolean equalsShallow(Base other_) { 6304 if (!super.equalsShallow(other_)) 6305 return false; 6306 if (!(other_ instanceof ContractAssetComponent)) 6307 return false; 6308 ContractAssetComponent o = (ContractAssetComponent) other_; 6309 return compareValues(condition, o.condition, true) && compareValues(text, o.text, true) 6310 && compareValues(linkId, o.linkId, true) && compareValues(securityLabelNumber, o.securityLabelNumber, true); 6311 } 6312 6313 public boolean isEmpty() { 6314 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(scope, type, typeReference, subtype, relationship, 6315 context, condition, periodType, period, usePeriod, text, linkId, answer, securityLabelNumber, valuedItem); 6316 } 6317 6318 public String fhirType() { 6319 return "Contract.term.asset"; 6320 6321 } 6322 6323 } 6324 6325 @Block() 6326 public static class AssetContextComponent extends BackboneElement implements IBaseBackboneElement { 6327 /** 6328 * Asset context reference may include the creator, custodian, or owning Person 6329 * or Organization (e.g., bank, repository), location held, e.g., building, 6330 * jurisdiction. 6331 */ 6332 @Child(name = "reference", type = { 6333 Reference.class }, order = 1, min = 0, max = 1, modifier = false, summary = false) 6334 @Description(shortDefinition = "Creator,custodian or owner", formalDefinition = "Asset context reference may include the creator, custodian, or owning Person or Organization (e.g., bank, repository), location held, e.g., building, jurisdiction.") 6335 protected Reference reference; 6336 6337 /** 6338 * The actual object that is the target of the reference (Asset context 6339 * reference may include the creator, custodian, or owning Person or 6340 * Organization (e.g., bank, repository), location held, e.g., building, 6341 * jurisdiction.) 6342 */ 6343 protected Resource referenceTarget; 6344 6345 /** 6346 * Coded representation of the context generally or of the Referenced entity, 6347 * such as the asset holder type or location. 6348 */ 6349 @Child(name = "code", type = { 6350 CodeableConcept.class }, order = 2, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 6351 @Description(shortDefinition = "Codeable asset context", formalDefinition = "Coded representation of the context generally or of the Referenced entity, such as the asset holder type or location.") 6352 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/contract-assetcontext") 6353 protected List<CodeableConcept> code; 6354 6355 /** 6356 * Context description. 6357 */ 6358 @Child(name = "text", type = { StringType.class }, order = 3, min = 0, max = 1, modifier = false, summary = false) 6359 @Description(shortDefinition = "Context description", formalDefinition = "Context description.") 6360 protected StringType text; 6361 6362 private static final long serialVersionUID = -634115628L; 6363 6364 /** 6365 * Constructor 6366 */ 6367 public AssetContextComponent() { 6368 super(); 6369 } 6370 6371 /** 6372 * @return {@link #reference} (Asset context reference may include the creator, 6373 * custodian, or owning Person or Organization (e.g., bank, repository), 6374 * location held, e.g., building, jurisdiction.) 6375 */ 6376 public Reference getReference() { 6377 if (this.reference == null) 6378 if (Configuration.errorOnAutoCreate()) 6379 throw new Error("Attempt to auto-create AssetContextComponent.reference"); 6380 else if (Configuration.doAutoCreate()) 6381 this.reference = new Reference(); // cc 6382 return this.reference; 6383 } 6384 6385 public boolean hasReference() { 6386 return this.reference != null && !this.reference.isEmpty(); 6387 } 6388 6389 /** 6390 * @param value {@link #reference} (Asset context reference may include the 6391 * creator, custodian, or owning Person or Organization (e.g., 6392 * bank, repository), location held, e.g., building, jurisdiction.) 6393 */ 6394 public AssetContextComponent setReference(Reference value) { 6395 this.reference = value; 6396 return this; 6397 } 6398 6399 /** 6400 * @return {@link #reference} The actual object that is the target of the 6401 * reference. The reference library doesn't populate this, but you can 6402 * use it to hold the resource if you resolve it. (Asset context 6403 * reference may include the creator, custodian, or owning Person or 6404 * Organization (e.g., bank, repository), location held, e.g., building, 6405 * jurisdiction.) 6406 */ 6407 public Resource getReferenceTarget() { 6408 return this.referenceTarget; 6409 } 6410 6411 /** 6412 * @param value {@link #reference} The actual object that is the target of the 6413 * reference. The reference library doesn't use these, but you can 6414 * use it to hold the resource if you resolve it. (Asset context 6415 * reference may include the creator, custodian, or owning Person 6416 * or Organization (e.g., bank, repository), location held, e.g., 6417 * building, jurisdiction.) 6418 */ 6419 public AssetContextComponent setReferenceTarget(Resource value) { 6420 this.referenceTarget = value; 6421 return this; 6422 } 6423 6424 /** 6425 * @return {@link #code} (Coded representation of the context generally or of 6426 * the Referenced entity, such as the asset holder type or location.) 6427 */ 6428 public List<CodeableConcept> getCode() { 6429 if (this.code == null) 6430 this.code = new ArrayList<CodeableConcept>(); 6431 return this.code; 6432 } 6433 6434 /** 6435 * @return Returns a reference to <code>this</code> for easy method chaining 6436 */ 6437 public AssetContextComponent setCode(List<CodeableConcept> theCode) { 6438 this.code = theCode; 6439 return this; 6440 } 6441 6442 public boolean hasCode() { 6443 if (this.code == null) 6444 return false; 6445 for (CodeableConcept item : this.code) 6446 if (!item.isEmpty()) 6447 return true; 6448 return false; 6449 } 6450 6451 public CodeableConcept addCode() { // 3 6452 CodeableConcept t = new CodeableConcept(); 6453 if (this.code == null) 6454 this.code = new ArrayList<CodeableConcept>(); 6455 this.code.add(t); 6456 return t; 6457 } 6458 6459 public AssetContextComponent addCode(CodeableConcept t) { // 3 6460 if (t == null) 6461 return this; 6462 if (this.code == null) 6463 this.code = new ArrayList<CodeableConcept>(); 6464 this.code.add(t); 6465 return this; 6466 } 6467 6468 /** 6469 * @return The first repetition of repeating field {@link #code}, creating it if 6470 * it does not already exist 6471 */ 6472 public CodeableConcept getCodeFirstRep() { 6473 if (getCode().isEmpty()) { 6474 addCode(); 6475 } 6476 return getCode().get(0); 6477 } 6478 6479 /** 6480 * @return {@link #text} (Context description.). This is the underlying object 6481 * with id, value and extensions. The accessor "getText" gives direct 6482 * access to the value 6483 */ 6484 public StringType getTextElement() { 6485 if (this.text == null) 6486 if (Configuration.errorOnAutoCreate()) 6487 throw new Error("Attempt to auto-create AssetContextComponent.text"); 6488 else if (Configuration.doAutoCreate()) 6489 this.text = new StringType(); // bb 6490 return this.text; 6491 } 6492 6493 public boolean hasTextElement() { 6494 return this.text != null && !this.text.isEmpty(); 6495 } 6496 6497 public boolean hasText() { 6498 return this.text != null && !this.text.isEmpty(); 6499 } 6500 6501 /** 6502 * @param value {@link #text} (Context description.). This is the underlying 6503 * object with id, value and extensions. The accessor "getText" 6504 * gives direct access to the value 6505 */ 6506 public AssetContextComponent setTextElement(StringType value) { 6507 this.text = value; 6508 return this; 6509 } 6510 6511 /** 6512 * @return Context description. 6513 */ 6514 public String getText() { 6515 return this.text == null ? null : this.text.getValue(); 6516 } 6517 6518 /** 6519 * @param value Context description. 6520 */ 6521 public AssetContextComponent setText(String value) { 6522 if (Utilities.noString(value)) 6523 this.text = null; 6524 else { 6525 if (this.text == null) 6526 this.text = new StringType(); 6527 this.text.setValue(value); 6528 } 6529 return this; 6530 } 6531 6532 protected void listChildren(List<Property> children) { 6533 super.listChildren(children); 6534 children.add(new Property("reference", "Reference(Any)", 6535 "Asset context reference may include the creator, custodian, or owning Person or Organization (e.g., bank, repository), location held, e.g., building, jurisdiction.", 6536 0, 1, reference)); 6537 children.add(new Property("code", "CodeableConcept", 6538 "Coded representation of the context generally or of the Referenced entity, such as the asset holder type or location.", 6539 0, java.lang.Integer.MAX_VALUE, code)); 6540 children.add(new Property("text", "string", "Context description.", 0, 1, text)); 6541 } 6542 6543 @Override 6544 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 6545 switch (_hash) { 6546 case -925155509: 6547 /* reference */ return new Property("reference", "Reference(Any)", 6548 "Asset context reference may include the creator, custodian, or owning Person or Organization (e.g., bank, repository), location held, e.g., building, jurisdiction.", 6549 0, 1, reference); 6550 case 3059181: 6551 /* code */ return new Property("code", "CodeableConcept", 6552 "Coded representation of the context generally or of the Referenced entity, such as the asset holder type or location.", 6553 0, java.lang.Integer.MAX_VALUE, code); 6554 case 3556653: 6555 /* text */ return new Property("text", "string", "Context description.", 0, 1, text); 6556 default: 6557 return super.getNamedProperty(_hash, _name, _checkValid); 6558 } 6559 6560 } 6561 6562 @Override 6563 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 6564 switch (hash) { 6565 case -925155509: 6566 /* reference */ return this.reference == null ? new Base[0] : new Base[] { this.reference }; // Reference 6567 case 3059181: 6568 /* code */ return this.code == null ? new Base[0] : this.code.toArray(new Base[this.code.size()]); // CodeableConcept 6569 case 3556653: 6570 /* text */ return this.text == null ? new Base[0] : new Base[] { this.text }; // StringType 6571 default: 6572 return super.getProperty(hash, name, checkValid); 6573 } 6574 6575 } 6576 6577 @Override 6578 public Base setProperty(int hash, String name, Base value) throws FHIRException { 6579 switch (hash) { 6580 case -925155509: // reference 6581 this.reference = castToReference(value); // Reference 6582 return value; 6583 case 3059181: // code 6584 this.getCode().add(castToCodeableConcept(value)); // CodeableConcept 6585 return value; 6586 case 3556653: // text 6587 this.text = castToString(value); // StringType 6588 return value; 6589 default: 6590 return super.setProperty(hash, name, value); 6591 } 6592 6593 } 6594 6595 @Override 6596 public Base setProperty(String name, Base value) throws FHIRException { 6597 if (name.equals("reference")) { 6598 this.reference = castToReference(value); // Reference 6599 } else if (name.equals("code")) { 6600 this.getCode().add(castToCodeableConcept(value)); 6601 } else if (name.equals("text")) { 6602 this.text = castToString(value); // StringType 6603 } else 6604 return super.setProperty(name, value); 6605 return value; 6606 } 6607 6608 @Override 6609 public void removeChild(String name, Base value) throws FHIRException { 6610 if (name.equals("reference")) { 6611 this.reference = null; 6612 } else if (name.equals("code")) { 6613 this.getCode().remove(castToCodeableConcept(value)); 6614 } else if (name.equals("text")) { 6615 this.text = null; 6616 } else 6617 super.removeChild(name, value); 6618 6619 } 6620 6621 @Override 6622 public Base makeProperty(int hash, String name) throws FHIRException { 6623 switch (hash) { 6624 case -925155509: 6625 return getReference(); 6626 case 3059181: 6627 return addCode(); 6628 case 3556653: 6629 return getTextElement(); 6630 default: 6631 return super.makeProperty(hash, name); 6632 } 6633 6634 } 6635 6636 @Override 6637 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 6638 switch (hash) { 6639 case -925155509: 6640 /* reference */ return new String[] { "Reference" }; 6641 case 3059181: 6642 /* code */ return new String[] { "CodeableConcept" }; 6643 case 3556653: 6644 /* text */ return new String[] { "string" }; 6645 default: 6646 return super.getTypesForProperty(hash, name); 6647 } 6648 6649 } 6650 6651 @Override 6652 public Base addChild(String name) throws FHIRException { 6653 if (name.equals("reference")) { 6654 this.reference = new Reference(); 6655 return this.reference; 6656 } else if (name.equals("code")) { 6657 return addCode(); 6658 } else if (name.equals("text")) { 6659 throw new FHIRException("Cannot call addChild on a singleton property Contract.text"); 6660 } else 6661 return super.addChild(name); 6662 } 6663 6664 public AssetContextComponent copy() { 6665 AssetContextComponent dst = new AssetContextComponent(); 6666 copyValues(dst); 6667 return dst; 6668 } 6669 6670 public void copyValues(AssetContextComponent dst) { 6671 super.copyValues(dst); 6672 dst.reference = reference == null ? null : reference.copy(); 6673 if (code != null) { 6674 dst.code = new ArrayList<CodeableConcept>(); 6675 for (CodeableConcept i : code) 6676 dst.code.add(i.copy()); 6677 } 6678 ; 6679 dst.text = text == null ? null : text.copy(); 6680 } 6681 6682 @Override 6683 public boolean equalsDeep(Base other_) { 6684 if (!super.equalsDeep(other_)) 6685 return false; 6686 if (!(other_ instanceof AssetContextComponent)) 6687 return false; 6688 AssetContextComponent o = (AssetContextComponent) other_; 6689 return compareDeep(reference, o.reference, true) && compareDeep(code, o.code, true) 6690 && compareDeep(text, o.text, true); 6691 } 6692 6693 @Override 6694 public boolean equalsShallow(Base other_) { 6695 if (!super.equalsShallow(other_)) 6696 return false; 6697 if (!(other_ instanceof AssetContextComponent)) 6698 return false; 6699 AssetContextComponent o = (AssetContextComponent) other_; 6700 return compareValues(text, o.text, true); 6701 } 6702 6703 public boolean isEmpty() { 6704 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(reference, code, text); 6705 } 6706 6707 public String fhirType() { 6708 return "Contract.term.asset.context"; 6709 6710 } 6711 6712 } 6713 6714 @Block() 6715 public static class ValuedItemComponent extends BackboneElement implements IBaseBackboneElement { 6716 /** 6717 * Specific type of Contract Valued Item that may be priced. 6718 */ 6719 @Child(name = "entity", type = { CodeableConcept.class, 6720 Reference.class }, order = 1, min = 0, max = 1, modifier = false, summary = false) 6721 @Description(shortDefinition = "Contract Valued Item Type", formalDefinition = "Specific type of Contract Valued Item that may be priced.") 6722 protected Type entity; 6723 6724 /** 6725 * Identifies a Contract Valued Item instance. 6726 */ 6727 @Child(name = "identifier", type = { 6728 Identifier.class }, order = 2, min = 0, max = 1, modifier = false, summary = false) 6729 @Description(shortDefinition = "Contract Valued Item Number", formalDefinition = "Identifies a Contract Valued Item instance.") 6730 protected Identifier identifier; 6731 6732 /** 6733 * Indicates the time during which this Contract ValuedItem information is 6734 * effective. 6735 */ 6736 @Child(name = "effectiveTime", type = { 6737 DateTimeType.class }, order = 3, min = 0, max = 1, modifier = false, summary = false) 6738 @Description(shortDefinition = "Contract Valued Item Effective Tiem", formalDefinition = "Indicates the time during which this Contract ValuedItem information is effective.") 6739 protected DateTimeType effectiveTime; 6740 6741 /** 6742 * Specifies the units by which the Contract Valued Item is measured or counted, 6743 * and quantifies the countable or measurable Contract Valued Item instances. 6744 */ 6745 @Child(name = "quantity", type = { Quantity.class }, order = 4, min = 0, max = 1, modifier = false, summary = false) 6746 @Description(shortDefinition = "Count of Contract Valued Items", formalDefinition = "Specifies the units by which the Contract Valued Item is measured or counted, and quantifies the countable or measurable Contract Valued Item instances.") 6747 protected Quantity quantity; 6748 6749 /** 6750 * A Contract Valued Item unit valuation measure. 6751 */ 6752 @Child(name = "unitPrice", type = { Money.class }, order = 5, min = 0, max = 1, modifier = false, summary = false) 6753 @Description(shortDefinition = "Contract Valued Item fee, charge, or cost", formalDefinition = "A Contract Valued Item unit valuation measure.") 6754 protected Money unitPrice; 6755 6756 /** 6757 * A real number that represents a multiplier used in determining the overall 6758 * value of the Contract Valued Item delivered. The concept of a Factor allows 6759 * for a discount or surcharge multiplier to be applied to a monetary amount. 6760 */ 6761 @Child(name = "factor", type = { 6762 DecimalType.class }, order = 6, min = 0, max = 1, modifier = false, summary = false) 6763 @Description(shortDefinition = "Contract Valued Item Price Scaling Factor", formalDefinition = "A real number that represents a multiplier used in determining the overall value of the Contract Valued Item delivered. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.") 6764 protected DecimalType factor; 6765 6766 /** 6767 * An amount that expresses the weighting (based on difficulty, cost and/or 6768 * resource intensiveness) associated with the Contract Valued Item delivered. 6769 * The concept of Points allows for assignment of point values for a Contract 6770 * Valued Item, such that a monetary amount can be assigned to each point. 6771 */ 6772 @Child(name = "points", type = { 6773 DecimalType.class }, order = 7, min = 0, max = 1, modifier = false, summary = false) 6774 @Description(shortDefinition = "Contract Valued Item Difficulty Scaling Factor", formalDefinition = "An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the Contract Valued Item delivered. The concept of Points allows for assignment of point values for a Contract Valued Item, such that a monetary amount can be assigned to each point.") 6775 protected DecimalType points; 6776 6777 /** 6778 * Expresses the product of the Contract Valued Item unitQuantity and the 6779 * unitPriceAmt. For example, the formula: unit Quantity * unit Price (Cost per 6780 * Point) * factor Number * points = net Amount. Quantity, factor and points are 6781 * assumed to be 1 if not supplied. 6782 */ 6783 @Child(name = "net", type = { Money.class }, order = 8, min = 0, max = 1, modifier = false, summary = false) 6784 @Description(shortDefinition = "Total Contract Valued Item Value", formalDefinition = "Expresses the product of the Contract Valued Item unitQuantity and the unitPriceAmt. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied.") 6785 protected Money net; 6786 6787 /** 6788 * Terms of valuation. 6789 */ 6790 @Child(name = "payment", type = { 6791 StringType.class }, order = 9, min = 0, max = 1, modifier = false, summary = false) 6792 @Description(shortDefinition = "Terms of valuation", formalDefinition = "Terms of valuation.") 6793 protected StringType payment; 6794 6795 /** 6796 * When payment is due. 6797 */ 6798 @Child(name = "paymentDate", type = { 6799 DateTimeType.class }, order = 10, min = 0, max = 1, modifier = false, summary = false) 6800 @Description(shortDefinition = "When payment is due", formalDefinition = "When payment is due.") 6801 protected DateTimeType paymentDate; 6802 6803 /** 6804 * Who will make payment. 6805 */ 6806 @Child(name = "responsible", type = { Organization.class, Patient.class, Practitioner.class, PractitionerRole.class, 6807 RelatedPerson.class }, order = 11, min = 0, max = 1, modifier = false, summary = false) 6808 @Description(shortDefinition = "Who will make payment", formalDefinition = "Who will make payment.") 6809 protected Reference responsible; 6810 6811 /** 6812 * The actual object that is the target of the reference (Who will make 6813 * payment.) 6814 */ 6815 protected Resource responsibleTarget; 6816 6817 /** 6818 * Who will receive payment. 6819 */ 6820 @Child(name = "recipient", type = { Organization.class, Patient.class, Practitioner.class, PractitionerRole.class, 6821 RelatedPerson.class }, order = 12, min = 0, max = 1, modifier = false, summary = false) 6822 @Description(shortDefinition = "Who will receive payment", formalDefinition = "Who will receive payment.") 6823 protected Reference recipient; 6824 6825 /** 6826 * The actual object that is the target of the reference (Who will receive 6827 * payment.) 6828 */ 6829 protected Resource recipientTarget; 6830 6831 /** 6832 * Id of the clause or question text related to the context of this valuedItem 6833 * in the referenced form or QuestionnaireResponse. 6834 */ 6835 @Child(name = "linkId", type = { 6836 StringType.class }, order = 13, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 6837 @Description(shortDefinition = "Pointer to specific item", formalDefinition = "Id of the clause or question text related to the context of this valuedItem in the referenced form or QuestionnaireResponse.") 6838 protected List<StringType> linkId; 6839 6840 /** 6841 * A set of security labels that define which terms are controlled by this 6842 * condition. 6843 */ 6844 @Child(name = "securityLabelNumber", type = { 6845 UnsignedIntType.class }, order = 14, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 6846 @Description(shortDefinition = "Security Labels that define affected terms", formalDefinition = "A set of security labels that define which terms are controlled by this condition.") 6847 protected List<UnsignedIntType> securityLabelNumber; 6848 6849 private static final long serialVersionUID = 1894951601L; 6850 6851 /** 6852 * Constructor 6853 */ 6854 public ValuedItemComponent() { 6855 super(); 6856 } 6857 6858 /** 6859 * @return {@link #entity} (Specific type of Contract Valued Item that may be 6860 * priced.) 6861 */ 6862 public Type getEntity() { 6863 return this.entity; 6864 } 6865 6866 /** 6867 * @return {@link #entity} (Specific type of Contract Valued Item that may be 6868 * priced.) 6869 */ 6870 public CodeableConcept getEntityCodeableConcept() throws FHIRException { 6871 if (this.entity == null) 6872 this.entity = new CodeableConcept(); 6873 if (!(this.entity instanceof CodeableConcept)) 6874 throw new FHIRException("Type mismatch: the type CodeableConcept was expected, but " 6875 + this.entity.getClass().getName() + " was encountered"); 6876 return (CodeableConcept) this.entity; 6877 } 6878 6879 public boolean hasEntityCodeableConcept() { 6880 return this != null && this.entity instanceof CodeableConcept; 6881 } 6882 6883 /** 6884 * @return {@link #entity} (Specific type of Contract Valued Item that may be 6885 * priced.) 6886 */ 6887 public Reference getEntityReference() throws FHIRException { 6888 if (this.entity == null) 6889 this.entity = new Reference(); 6890 if (!(this.entity instanceof Reference)) 6891 throw new FHIRException("Type mismatch: the type Reference was expected, but " 6892 + this.entity.getClass().getName() + " was encountered"); 6893 return (Reference) this.entity; 6894 } 6895 6896 public boolean hasEntityReference() { 6897 return this != null && this.entity instanceof Reference; 6898 } 6899 6900 public boolean hasEntity() { 6901 return this.entity != null && !this.entity.isEmpty(); 6902 } 6903 6904 /** 6905 * @param value {@link #entity} (Specific type of Contract Valued Item that may 6906 * be priced.) 6907 */ 6908 public ValuedItemComponent setEntity(Type value) { 6909 if (value != null && !(value instanceof CodeableConcept || value instanceof Reference)) 6910 throw new Error("Not the right type for Contract.term.asset.valuedItem.entity[x]: " + value.fhirType()); 6911 this.entity = value; 6912 return this; 6913 } 6914 6915 /** 6916 * @return {@link #identifier} (Identifies a Contract Valued Item instance.) 6917 */ 6918 public Identifier getIdentifier() { 6919 if (this.identifier == null) 6920 if (Configuration.errorOnAutoCreate()) 6921 throw new Error("Attempt to auto-create ValuedItemComponent.identifier"); 6922 else if (Configuration.doAutoCreate()) 6923 this.identifier = new Identifier(); // cc 6924 return this.identifier; 6925 } 6926 6927 public boolean hasIdentifier() { 6928 return this.identifier != null && !this.identifier.isEmpty(); 6929 } 6930 6931 /** 6932 * @param value {@link #identifier} (Identifies a Contract Valued Item 6933 * instance.) 6934 */ 6935 public ValuedItemComponent setIdentifier(Identifier value) { 6936 this.identifier = value; 6937 return this; 6938 } 6939 6940 /** 6941 * @return {@link #effectiveTime} (Indicates the time during which this Contract 6942 * ValuedItem information is effective.). This is the underlying object 6943 * with id, value and extensions. The accessor "getEffectiveTime" gives 6944 * direct access to the value 6945 */ 6946 public DateTimeType getEffectiveTimeElement() { 6947 if (this.effectiveTime == null) 6948 if (Configuration.errorOnAutoCreate()) 6949 throw new Error("Attempt to auto-create ValuedItemComponent.effectiveTime"); 6950 else if (Configuration.doAutoCreate()) 6951 this.effectiveTime = new DateTimeType(); // bb 6952 return this.effectiveTime; 6953 } 6954 6955 public boolean hasEffectiveTimeElement() { 6956 return this.effectiveTime != null && !this.effectiveTime.isEmpty(); 6957 } 6958 6959 public boolean hasEffectiveTime() { 6960 return this.effectiveTime != null && !this.effectiveTime.isEmpty(); 6961 } 6962 6963 /** 6964 * @param value {@link #effectiveTime} (Indicates the time during which this 6965 * Contract ValuedItem information is effective.). This is the 6966 * underlying object with id, value and extensions. The accessor 6967 * "getEffectiveTime" gives direct access to the value 6968 */ 6969 public ValuedItemComponent setEffectiveTimeElement(DateTimeType value) { 6970 this.effectiveTime = value; 6971 return this; 6972 } 6973 6974 /** 6975 * @return Indicates the time during which this Contract ValuedItem information 6976 * is effective. 6977 */ 6978 public Date getEffectiveTime() { 6979 return this.effectiveTime == null ? null : this.effectiveTime.getValue(); 6980 } 6981 6982 /** 6983 * @param value Indicates the time during which this Contract ValuedItem 6984 * information is effective. 6985 */ 6986 public ValuedItemComponent setEffectiveTime(Date value) { 6987 if (value == null) 6988 this.effectiveTime = null; 6989 else { 6990 if (this.effectiveTime == null) 6991 this.effectiveTime = new DateTimeType(); 6992 this.effectiveTime.setValue(value); 6993 } 6994 return this; 6995 } 6996 6997 /** 6998 * @return {@link #quantity} (Specifies the units by which the Contract Valued 6999 * Item is measured or counted, and quantifies the countable or 7000 * measurable Contract Valued Item instances.) 7001 */ 7002 public Quantity getQuantity() { 7003 if (this.quantity == null) 7004 if (Configuration.errorOnAutoCreate()) 7005 throw new Error("Attempt to auto-create ValuedItemComponent.quantity"); 7006 else if (Configuration.doAutoCreate()) 7007 this.quantity = new Quantity(); // cc 7008 return this.quantity; 7009 } 7010 7011 public boolean hasQuantity() { 7012 return this.quantity != null && !this.quantity.isEmpty(); 7013 } 7014 7015 /** 7016 * @param value {@link #quantity} (Specifies the units by which the Contract 7017 * Valued Item is measured or counted, and quantifies the countable 7018 * or measurable Contract Valued Item instances.) 7019 */ 7020 public ValuedItemComponent setQuantity(Quantity value) { 7021 this.quantity = value; 7022 return this; 7023 } 7024 7025 /** 7026 * @return {@link #unitPrice} (A Contract Valued Item unit valuation measure.) 7027 */ 7028 public Money getUnitPrice() { 7029 if (this.unitPrice == null) 7030 if (Configuration.errorOnAutoCreate()) 7031 throw new Error("Attempt to auto-create ValuedItemComponent.unitPrice"); 7032 else if (Configuration.doAutoCreate()) 7033 this.unitPrice = new Money(); // cc 7034 return this.unitPrice; 7035 } 7036 7037 public boolean hasUnitPrice() { 7038 return this.unitPrice != null && !this.unitPrice.isEmpty(); 7039 } 7040 7041 /** 7042 * @param value {@link #unitPrice} (A Contract Valued Item unit valuation 7043 * measure.) 7044 */ 7045 public ValuedItemComponent setUnitPrice(Money value) { 7046 this.unitPrice = value; 7047 return this; 7048 } 7049 7050 /** 7051 * @return {@link #factor} (A real number that represents a multiplier used in 7052 * determining the overall value of the Contract Valued Item delivered. 7053 * The concept of a Factor allows for a discount or surcharge multiplier 7054 * to be applied to a monetary amount.). This is the underlying object 7055 * with id, value and extensions. The accessor "getFactor" gives direct 7056 * access to the value 7057 */ 7058 public DecimalType getFactorElement() { 7059 if (this.factor == null) 7060 if (Configuration.errorOnAutoCreate()) 7061 throw new Error("Attempt to auto-create ValuedItemComponent.factor"); 7062 else if (Configuration.doAutoCreate()) 7063 this.factor = new DecimalType(); // bb 7064 return this.factor; 7065 } 7066 7067 public boolean hasFactorElement() { 7068 return this.factor != null && !this.factor.isEmpty(); 7069 } 7070 7071 public boolean hasFactor() { 7072 return this.factor != null && !this.factor.isEmpty(); 7073 } 7074 7075 /** 7076 * @param value {@link #factor} (A real number that represents a multiplier used 7077 * in determining the overall value of the Contract Valued Item 7078 * delivered. The concept of a Factor allows for a discount or 7079 * surcharge multiplier to be applied to a monetary amount.). This 7080 * is the underlying object with id, value and extensions. The 7081 * accessor "getFactor" gives direct access to the value 7082 */ 7083 public ValuedItemComponent setFactorElement(DecimalType value) { 7084 this.factor = value; 7085 return this; 7086 } 7087 7088 /** 7089 * @return A real number that represents a multiplier used in determining the 7090 * overall value of the Contract Valued Item delivered. The concept of a 7091 * Factor allows for a discount or surcharge multiplier to be applied to 7092 * a monetary amount. 7093 */ 7094 public BigDecimal getFactor() { 7095 return this.factor == null ? null : this.factor.getValue(); 7096 } 7097 7098 /** 7099 * @param value A real number that represents a multiplier used in determining 7100 * the overall value of the Contract Valued Item delivered. The 7101 * concept of a Factor allows for a discount or surcharge 7102 * multiplier to be applied to a monetary amount. 7103 */ 7104 public ValuedItemComponent setFactor(BigDecimal value) { 7105 if (value == null) 7106 this.factor = null; 7107 else { 7108 if (this.factor == null) 7109 this.factor = new DecimalType(); 7110 this.factor.setValue(value); 7111 } 7112 return this; 7113 } 7114 7115 /** 7116 * @param value A real number that represents a multiplier used in determining 7117 * the overall value of the Contract Valued Item delivered. The 7118 * concept of a Factor allows for a discount or surcharge 7119 * multiplier to be applied to a monetary amount. 7120 */ 7121 public ValuedItemComponent setFactor(long value) { 7122 this.factor = new DecimalType(); 7123 this.factor.setValue(value); 7124 return this; 7125 } 7126 7127 /** 7128 * @param value A real number that represents a multiplier used in determining 7129 * the overall value of the Contract Valued Item delivered. The 7130 * concept of a Factor allows for a discount or surcharge 7131 * multiplier to be applied to a monetary amount. 7132 */ 7133 public ValuedItemComponent setFactor(double value) { 7134 this.factor = new DecimalType(); 7135 this.factor.setValue(value); 7136 return this; 7137 } 7138 7139 /** 7140 * @return {@link #points} (An amount that expresses the weighting (based on 7141 * difficulty, cost and/or resource intensiveness) associated with the 7142 * Contract Valued Item delivered. The concept of Points allows for 7143 * assignment of point values for a Contract Valued Item, such that a 7144 * monetary amount can be assigned to each point.). This is the 7145 * underlying object with id, value and extensions. The accessor 7146 * "getPoints" gives direct access to the value 7147 */ 7148 public DecimalType getPointsElement() { 7149 if (this.points == null) 7150 if (Configuration.errorOnAutoCreate()) 7151 throw new Error("Attempt to auto-create ValuedItemComponent.points"); 7152 else if (Configuration.doAutoCreate()) 7153 this.points = new DecimalType(); // bb 7154 return this.points; 7155 } 7156 7157 public boolean hasPointsElement() { 7158 return this.points != null && !this.points.isEmpty(); 7159 } 7160 7161 public boolean hasPoints() { 7162 return this.points != null && !this.points.isEmpty(); 7163 } 7164 7165 /** 7166 * @param value {@link #points} (An amount that expresses the weighting (based 7167 * on difficulty, cost and/or resource intensiveness) associated 7168 * with the Contract Valued Item delivered. The concept of Points 7169 * allows for assignment of point values for a Contract Valued 7170 * Item, such that a monetary amount can be assigned to each 7171 * point.). This is the underlying object with id, value and 7172 * extensions. The accessor "getPoints" gives direct access to the 7173 * value 7174 */ 7175 public ValuedItemComponent setPointsElement(DecimalType value) { 7176 this.points = value; 7177 return this; 7178 } 7179 7180 /** 7181 * @return An amount that expresses the weighting (based on difficulty, cost 7182 * and/or resource intensiveness) associated with the Contract Valued 7183 * Item delivered. The concept of Points allows for assignment of point 7184 * values for a Contract Valued Item, such that a monetary amount can be 7185 * assigned to each point. 7186 */ 7187 public BigDecimal getPoints() { 7188 return this.points == null ? null : this.points.getValue(); 7189 } 7190 7191 /** 7192 * @param value An amount that expresses the weighting (based on difficulty, 7193 * cost and/or resource intensiveness) associated with the Contract 7194 * Valued Item delivered. The concept of Points allows for 7195 * assignment of point values for a Contract Valued Item, such that 7196 * a monetary amount can be assigned to each point. 7197 */ 7198 public ValuedItemComponent setPoints(BigDecimal value) { 7199 if (value == null) 7200 this.points = null; 7201 else { 7202 if (this.points == null) 7203 this.points = new DecimalType(); 7204 this.points.setValue(value); 7205 } 7206 return this; 7207 } 7208 7209 /** 7210 * @param value An amount that expresses the weighting (based on difficulty, 7211 * cost and/or resource intensiveness) associated with the Contract 7212 * Valued Item delivered. The concept of Points allows for 7213 * assignment of point values for a Contract Valued Item, such that 7214 * a monetary amount can be assigned to each point. 7215 */ 7216 public ValuedItemComponent setPoints(long value) { 7217 this.points = new DecimalType(); 7218 this.points.setValue(value); 7219 return this; 7220 } 7221 7222 /** 7223 * @param value An amount that expresses the weighting (based on difficulty, 7224 * cost and/or resource intensiveness) associated with the Contract 7225 * Valued Item delivered. The concept of Points allows for 7226 * assignment of point values for a Contract Valued Item, such that 7227 * a monetary amount can be assigned to each point. 7228 */ 7229 public ValuedItemComponent setPoints(double value) { 7230 this.points = new DecimalType(); 7231 this.points.setValue(value); 7232 return this; 7233 } 7234 7235 /** 7236 * @return {@link #net} (Expresses the product of the Contract Valued Item 7237 * unitQuantity and the unitPriceAmt. For example, the formula: unit 7238 * Quantity * unit Price (Cost per Point) * factor Number * points = net 7239 * Amount. Quantity, factor and points are assumed to be 1 if not 7240 * supplied.) 7241 */ 7242 public Money getNet() { 7243 if (this.net == null) 7244 if (Configuration.errorOnAutoCreate()) 7245 throw new Error("Attempt to auto-create ValuedItemComponent.net"); 7246 else if (Configuration.doAutoCreate()) 7247 this.net = new Money(); // cc 7248 return this.net; 7249 } 7250 7251 public boolean hasNet() { 7252 return this.net != null && !this.net.isEmpty(); 7253 } 7254 7255 /** 7256 * @param value {@link #net} (Expresses the product of the Contract Valued Item 7257 * unitQuantity and the unitPriceAmt. For example, the formula: 7258 * unit Quantity * unit Price (Cost per Point) * factor Number * 7259 * points = net Amount. Quantity, factor and points are assumed to 7260 * be 1 if not supplied.) 7261 */ 7262 public ValuedItemComponent setNet(Money value) { 7263 this.net = value; 7264 return this; 7265 } 7266 7267 /** 7268 * @return {@link #payment} (Terms of valuation.). This is the underlying object 7269 * with id, value and extensions. The accessor "getPayment" gives direct 7270 * access to the value 7271 */ 7272 public StringType getPaymentElement() { 7273 if (this.payment == null) 7274 if (Configuration.errorOnAutoCreate()) 7275 throw new Error("Attempt to auto-create ValuedItemComponent.payment"); 7276 else if (Configuration.doAutoCreate()) 7277 this.payment = new StringType(); // bb 7278 return this.payment; 7279 } 7280 7281 public boolean hasPaymentElement() { 7282 return this.payment != null && !this.payment.isEmpty(); 7283 } 7284 7285 public boolean hasPayment() { 7286 return this.payment != null && !this.payment.isEmpty(); 7287 } 7288 7289 /** 7290 * @param value {@link #payment} (Terms of valuation.). This is the underlying 7291 * object with id, value and extensions. The accessor "getPayment" 7292 * gives direct access to the value 7293 */ 7294 public ValuedItemComponent setPaymentElement(StringType value) { 7295 this.payment = value; 7296 return this; 7297 } 7298 7299 /** 7300 * @return Terms of valuation. 7301 */ 7302 public String getPayment() { 7303 return this.payment == null ? null : this.payment.getValue(); 7304 } 7305 7306 /** 7307 * @param value Terms of valuation. 7308 */ 7309 public ValuedItemComponent setPayment(String value) { 7310 if (Utilities.noString(value)) 7311 this.payment = null; 7312 else { 7313 if (this.payment == null) 7314 this.payment = new StringType(); 7315 this.payment.setValue(value); 7316 } 7317 return this; 7318 } 7319 7320 /** 7321 * @return {@link #paymentDate} (When payment is due.). This is the underlying 7322 * object with id, value and extensions. The accessor "getPaymentDate" 7323 * gives direct access to the value 7324 */ 7325 public DateTimeType getPaymentDateElement() { 7326 if (this.paymentDate == null) 7327 if (Configuration.errorOnAutoCreate()) 7328 throw new Error("Attempt to auto-create ValuedItemComponent.paymentDate"); 7329 else if (Configuration.doAutoCreate()) 7330 this.paymentDate = new DateTimeType(); // bb 7331 return this.paymentDate; 7332 } 7333 7334 public boolean hasPaymentDateElement() { 7335 return this.paymentDate != null && !this.paymentDate.isEmpty(); 7336 } 7337 7338 public boolean hasPaymentDate() { 7339 return this.paymentDate != null && !this.paymentDate.isEmpty(); 7340 } 7341 7342 /** 7343 * @param value {@link #paymentDate} (When payment is due.). This is the 7344 * underlying object with id, value and extensions. The accessor 7345 * "getPaymentDate" gives direct access to the value 7346 */ 7347 public ValuedItemComponent setPaymentDateElement(DateTimeType value) { 7348 this.paymentDate = value; 7349 return this; 7350 } 7351 7352 /** 7353 * @return When payment is due. 7354 */ 7355 public Date getPaymentDate() { 7356 return this.paymentDate == null ? null : this.paymentDate.getValue(); 7357 } 7358 7359 /** 7360 * @param value When payment is due. 7361 */ 7362 public ValuedItemComponent setPaymentDate(Date value) { 7363 if (value == null) 7364 this.paymentDate = null; 7365 else { 7366 if (this.paymentDate == null) 7367 this.paymentDate = new DateTimeType(); 7368 this.paymentDate.setValue(value); 7369 } 7370 return this; 7371 } 7372 7373 /** 7374 * @return {@link #responsible} (Who will make payment.) 7375 */ 7376 public Reference getResponsible() { 7377 if (this.responsible == null) 7378 if (Configuration.errorOnAutoCreate()) 7379 throw new Error("Attempt to auto-create ValuedItemComponent.responsible"); 7380 else if (Configuration.doAutoCreate()) 7381 this.responsible = new Reference(); // cc 7382 return this.responsible; 7383 } 7384 7385 public boolean hasResponsible() { 7386 return this.responsible != null && !this.responsible.isEmpty(); 7387 } 7388 7389 /** 7390 * @param value {@link #responsible} (Who will make payment.) 7391 */ 7392 public ValuedItemComponent setResponsible(Reference value) { 7393 this.responsible = value; 7394 return this; 7395 } 7396 7397 /** 7398 * @return {@link #responsible} The actual object that is the target of the 7399 * reference. The reference library doesn't populate this, but you can 7400 * use it to hold the resource if you resolve it. (Who will make 7401 * payment.) 7402 */ 7403 public Resource getResponsibleTarget() { 7404 return this.responsibleTarget; 7405 } 7406 7407 /** 7408 * @param value {@link #responsible} The actual object that is the target of the 7409 * reference. The reference library doesn't use these, but you can 7410 * use it to hold the resource if you resolve it. (Who will make 7411 * payment.) 7412 */ 7413 public ValuedItemComponent setResponsibleTarget(Resource value) { 7414 this.responsibleTarget = value; 7415 return this; 7416 } 7417 7418 /** 7419 * @return {@link #recipient} (Who will receive payment.) 7420 */ 7421 public Reference getRecipient() { 7422 if (this.recipient == null) 7423 if (Configuration.errorOnAutoCreate()) 7424 throw new Error("Attempt to auto-create ValuedItemComponent.recipient"); 7425 else if (Configuration.doAutoCreate()) 7426 this.recipient = new Reference(); // cc 7427 return this.recipient; 7428 } 7429 7430 public boolean hasRecipient() { 7431 return this.recipient != null && !this.recipient.isEmpty(); 7432 } 7433 7434 /** 7435 * @param value {@link #recipient} (Who will receive payment.) 7436 */ 7437 public ValuedItemComponent setRecipient(Reference value) { 7438 this.recipient = value; 7439 return this; 7440 } 7441 7442 /** 7443 * @return {@link #recipient} The actual object that is the target of the 7444 * reference. The reference library doesn't populate this, but you can 7445 * use it to hold the resource if you resolve it. (Who will receive 7446 * payment.) 7447 */ 7448 public Resource getRecipientTarget() { 7449 return this.recipientTarget; 7450 } 7451 7452 /** 7453 * @param value {@link #recipient} The actual object that is the target of the 7454 * reference. The reference library doesn't use these, but you can 7455 * use it to hold the resource if you resolve it. (Who will receive 7456 * payment.) 7457 */ 7458 public ValuedItemComponent setRecipientTarget(Resource value) { 7459 this.recipientTarget = value; 7460 return this; 7461 } 7462 7463 /** 7464 * @return {@link #linkId} (Id of the clause or question text related to the 7465 * context of this valuedItem in the referenced form or 7466 * QuestionnaireResponse.) 7467 */ 7468 public List<StringType> getLinkId() { 7469 if (this.linkId == null) 7470 this.linkId = new ArrayList<StringType>(); 7471 return this.linkId; 7472 } 7473 7474 /** 7475 * @return Returns a reference to <code>this</code> for easy method chaining 7476 */ 7477 public ValuedItemComponent setLinkId(List<StringType> theLinkId) { 7478 this.linkId = theLinkId; 7479 return this; 7480 } 7481 7482 public boolean hasLinkId() { 7483 if (this.linkId == null) 7484 return false; 7485 for (StringType item : this.linkId) 7486 if (!item.isEmpty()) 7487 return true; 7488 return false; 7489 } 7490 7491 /** 7492 * @return {@link #linkId} (Id of the clause or question text related to the 7493 * context of this valuedItem in the referenced form or 7494 * QuestionnaireResponse.) 7495 */ 7496 public StringType addLinkIdElement() {// 2 7497 StringType t = new StringType(); 7498 if (this.linkId == null) 7499 this.linkId = new ArrayList<StringType>(); 7500 this.linkId.add(t); 7501 return t; 7502 } 7503 7504 /** 7505 * @param value {@link #linkId} (Id of the clause or question text related to 7506 * the context of this valuedItem in the referenced form or 7507 * QuestionnaireResponse.) 7508 */ 7509 public ValuedItemComponent addLinkId(String value) { // 1 7510 StringType t = new StringType(); 7511 t.setValue(value); 7512 if (this.linkId == null) 7513 this.linkId = new ArrayList<StringType>(); 7514 this.linkId.add(t); 7515 return this; 7516 } 7517 7518 /** 7519 * @param value {@link #linkId} (Id of the clause or question text related to 7520 * the context of this valuedItem in the referenced form or 7521 * QuestionnaireResponse.) 7522 */ 7523 public boolean hasLinkId(String value) { 7524 if (this.linkId == null) 7525 return false; 7526 for (StringType v : this.linkId) 7527 if (v.getValue().equals(value)) // string 7528 return true; 7529 return false; 7530 } 7531 7532 /** 7533 * @return {@link #securityLabelNumber} (A set of security labels that define 7534 * which terms are controlled by this condition.) 7535 */ 7536 public List<UnsignedIntType> getSecurityLabelNumber() { 7537 if (this.securityLabelNumber == null) 7538 this.securityLabelNumber = new ArrayList<UnsignedIntType>(); 7539 return this.securityLabelNumber; 7540 } 7541 7542 /** 7543 * @return Returns a reference to <code>this</code> for easy method chaining 7544 */ 7545 public ValuedItemComponent setSecurityLabelNumber(List<UnsignedIntType> theSecurityLabelNumber) { 7546 this.securityLabelNumber = theSecurityLabelNumber; 7547 return this; 7548 } 7549 7550 public boolean hasSecurityLabelNumber() { 7551 if (this.securityLabelNumber == null) 7552 return false; 7553 for (UnsignedIntType item : this.securityLabelNumber) 7554 if (!item.isEmpty()) 7555 return true; 7556 return false; 7557 } 7558 7559 /** 7560 * @return {@link #securityLabelNumber} (A set of security labels that define 7561 * which terms are controlled by this condition.) 7562 */ 7563 public UnsignedIntType addSecurityLabelNumberElement() {// 2 7564 UnsignedIntType t = new UnsignedIntType(); 7565 if (this.securityLabelNumber == null) 7566 this.securityLabelNumber = new ArrayList<UnsignedIntType>(); 7567 this.securityLabelNumber.add(t); 7568 return t; 7569 } 7570 7571 /** 7572 * @param value {@link #securityLabelNumber} (A set of security labels that 7573 * define which terms are controlled by this condition.) 7574 */ 7575 public ValuedItemComponent addSecurityLabelNumber(int value) { // 1 7576 UnsignedIntType t = new UnsignedIntType(); 7577 t.setValue(value); 7578 if (this.securityLabelNumber == null) 7579 this.securityLabelNumber = new ArrayList<UnsignedIntType>(); 7580 this.securityLabelNumber.add(t); 7581 return this; 7582 } 7583 7584 /** 7585 * @param value {@link #securityLabelNumber} (A set of security labels that 7586 * define which terms are controlled by this condition.) 7587 */ 7588 public boolean hasSecurityLabelNumber(int value) { 7589 if (this.securityLabelNumber == null) 7590 return false; 7591 for (UnsignedIntType v : this.securityLabelNumber) 7592 if (v.getValue().equals(value)) // unsignedInt 7593 return true; 7594 return false; 7595 } 7596 7597 protected void listChildren(List<Property> children) { 7598 super.listChildren(children); 7599 children.add(new Property("entity[x]", "CodeableConcept|Reference(Any)", 7600 "Specific type of Contract Valued Item that may be priced.", 0, 1, entity)); 7601 children.add( 7602 new Property("identifier", "Identifier", "Identifies a Contract Valued Item instance.", 0, 1, identifier)); 7603 children.add(new Property("effectiveTime", "dateTime", 7604 "Indicates the time during which this Contract ValuedItem information is effective.", 0, 1, effectiveTime)); 7605 children.add(new Property("quantity", "SimpleQuantity", 7606 "Specifies the units by which the Contract Valued Item is measured or counted, and quantifies the countable or measurable Contract Valued Item instances.", 7607 0, 1, quantity)); 7608 children 7609 .add(new Property("unitPrice", "Money", "A Contract Valued Item unit valuation measure.", 0, 1, unitPrice)); 7610 children.add(new Property("factor", "decimal", 7611 "A real number that represents a multiplier used in determining the overall value of the Contract Valued Item delivered. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.", 7612 0, 1, factor)); 7613 children.add(new Property("points", "decimal", 7614 "An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the Contract Valued Item delivered. The concept of Points allows for assignment of point values for a Contract Valued Item, such that a monetary amount can be assigned to each point.", 7615 0, 1, points)); 7616 children.add(new Property("net", "Money", 7617 "Expresses the product of the Contract Valued Item unitQuantity and the unitPriceAmt. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied.", 7618 0, 1, net)); 7619 children.add(new Property("payment", "string", "Terms of valuation.", 0, 1, payment)); 7620 children.add(new Property("paymentDate", "dateTime", "When payment is due.", 0, 1, paymentDate)); 7621 children.add( 7622 new Property("responsible", "Reference(Organization|Patient|Practitioner|PractitionerRole|RelatedPerson)", 7623 "Who will make payment.", 0, 1, responsible)); 7624 children 7625 .add(new Property("recipient", "Reference(Organization|Patient|Practitioner|PractitionerRole|RelatedPerson)", 7626 "Who will receive payment.", 0, 1, recipient)); 7627 children.add(new Property("linkId", "string", 7628 "Id of the clause or question text related to the context of this valuedItem in the referenced form or QuestionnaireResponse.", 7629 0, java.lang.Integer.MAX_VALUE, linkId)); 7630 children.add(new Property("securityLabelNumber", "unsignedInt", 7631 "A set of security labels that define which terms are controlled by this condition.", 0, 7632 java.lang.Integer.MAX_VALUE, securityLabelNumber)); 7633 } 7634 7635 @Override 7636 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 7637 switch (_hash) { 7638 case -740568643: 7639 /* entity[x] */ return new Property("entity[x]", "CodeableConcept|Reference(Any)", 7640 "Specific type of Contract Valued Item that may be priced.", 0, 1, entity); 7641 case -1298275357: 7642 /* entity */ return new Property("entity[x]", "CodeableConcept|Reference(Any)", 7643 "Specific type of Contract Valued Item that may be priced.", 0, 1, entity); 7644 case 924197182: 7645 /* entityCodeableConcept */ return new Property("entity[x]", "CodeableConcept|Reference(Any)", 7646 "Specific type of Contract Valued Item that may be priced.", 0, 1, entity); 7647 case -356635992: 7648 /* entityReference */ return new Property("entity[x]", "CodeableConcept|Reference(Any)", 7649 "Specific type of Contract Valued Item that may be priced.", 0, 1, entity); 7650 case -1618432855: 7651 /* identifier */ return new Property("identifier", "Identifier", "Identifies a Contract Valued Item instance.", 7652 0, 1, identifier); 7653 case -929905388: 7654 /* effectiveTime */ return new Property("effectiveTime", "dateTime", 7655 "Indicates the time during which this Contract ValuedItem information is effective.", 0, 1, effectiveTime); 7656 case -1285004149: 7657 /* quantity */ return new Property("quantity", "SimpleQuantity", 7658 "Specifies the units by which the Contract Valued Item is measured or counted, and quantifies the countable or measurable Contract Valued Item instances.", 7659 0, 1, quantity); 7660 case -486196699: 7661 /* unitPrice */ return new Property("unitPrice", "Money", "A Contract Valued Item unit valuation measure.", 0, 7662 1, unitPrice); 7663 case -1282148017: 7664 /* factor */ return new Property("factor", "decimal", 7665 "A real number that represents a multiplier used in determining the overall value of the Contract Valued Item delivered. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.", 7666 0, 1, factor); 7667 case -982754077: 7668 /* points */ return new Property("points", "decimal", 7669 "An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the Contract Valued Item delivered. The concept of Points allows for assignment of point values for a Contract Valued Item, such that a monetary amount can be assigned to each point.", 7670 0, 1, points); 7671 case 108957: 7672 /* net */ return new Property("net", "Money", 7673 "Expresses the product of the Contract Valued Item unitQuantity and the unitPriceAmt. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied.", 7674 0, 1, net); 7675 case -786681338: 7676 /* payment */ return new Property("payment", "string", "Terms of valuation.", 0, 1, payment); 7677 case -1540873516: 7678 /* paymentDate */ return new Property("paymentDate", "dateTime", "When payment is due.", 0, 1, paymentDate); 7679 case 1847674614: 7680 /* responsible */ return new Property("responsible", 7681 "Reference(Organization|Patient|Practitioner|PractitionerRole|RelatedPerson)", "Who will make payment.", 0, 7682 1, responsible); 7683 case 820081177: 7684 /* recipient */ return new Property("recipient", 7685 "Reference(Organization|Patient|Practitioner|PractitionerRole|RelatedPerson)", "Who will receive payment.", 7686 0, 1, recipient); 7687 case -1102667083: 7688 /* linkId */ return new Property("linkId", "string", 7689 "Id of the clause or question text related to the context of this valuedItem in the referenced form or QuestionnaireResponse.", 7690 0, java.lang.Integer.MAX_VALUE, linkId); 7691 case -149460995: 7692 /* securityLabelNumber */ return new Property("securityLabelNumber", "unsignedInt", 7693 "A set of security labels that define which terms are controlled by this condition.", 0, 7694 java.lang.Integer.MAX_VALUE, securityLabelNumber); 7695 default: 7696 return super.getNamedProperty(_hash, _name, _checkValid); 7697 } 7698 7699 } 7700 7701 @Override 7702 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 7703 switch (hash) { 7704 case -1298275357: 7705 /* entity */ return this.entity == null ? new Base[0] : new Base[] { this.entity }; // Type 7706 case -1618432855: 7707 /* identifier */ return this.identifier == null ? new Base[0] : new Base[] { this.identifier }; // Identifier 7708 case -929905388: 7709 /* effectiveTime */ return this.effectiveTime == null ? new Base[0] : new Base[] { this.effectiveTime }; // DateTimeType 7710 case -1285004149: 7711 /* quantity */ return this.quantity == null ? new Base[0] : new Base[] { this.quantity }; // Quantity 7712 case -486196699: 7713 /* unitPrice */ return this.unitPrice == null ? new Base[0] : new Base[] { this.unitPrice }; // Money 7714 case -1282148017: 7715 /* factor */ return this.factor == null ? new Base[0] : new Base[] { this.factor }; // DecimalType 7716 case -982754077: 7717 /* points */ return this.points == null ? new Base[0] : new Base[] { this.points }; // DecimalType 7718 case 108957: 7719 /* net */ return this.net == null ? new Base[0] : new Base[] { this.net }; // Money 7720 case -786681338: 7721 /* payment */ return this.payment == null ? new Base[0] : new Base[] { this.payment }; // StringType 7722 case -1540873516: 7723 /* paymentDate */ return this.paymentDate == null ? new Base[0] : new Base[] { this.paymentDate }; // DateTimeType 7724 case 1847674614: 7725 /* responsible */ return this.responsible == null ? new Base[0] : new Base[] { this.responsible }; // Reference 7726 case 820081177: 7727 /* recipient */ return this.recipient == null ? new Base[0] : new Base[] { this.recipient }; // Reference 7728 case -1102667083: 7729 /* linkId */ return this.linkId == null ? new Base[0] : this.linkId.toArray(new Base[this.linkId.size()]); // StringType 7730 case -149460995: 7731 /* securityLabelNumber */ return this.securityLabelNumber == null ? new Base[0] 7732 : this.securityLabelNumber.toArray(new Base[this.securityLabelNumber.size()]); // UnsignedIntType 7733 default: 7734 return super.getProperty(hash, name, checkValid); 7735 } 7736 7737 } 7738 7739 @Override 7740 public Base setProperty(int hash, String name, Base value) throws FHIRException { 7741 switch (hash) { 7742 case -1298275357: // entity 7743 this.entity = castToType(value); // Type 7744 return value; 7745 case -1618432855: // identifier 7746 this.identifier = castToIdentifier(value); // Identifier 7747 return value; 7748 case -929905388: // effectiveTime 7749 this.effectiveTime = castToDateTime(value); // DateTimeType 7750 return value; 7751 case -1285004149: // quantity 7752 this.quantity = castToQuantity(value); // Quantity 7753 return value; 7754 case -486196699: // unitPrice 7755 this.unitPrice = castToMoney(value); // Money 7756 return value; 7757 case -1282148017: // factor 7758 this.factor = castToDecimal(value); // DecimalType 7759 return value; 7760 case -982754077: // points 7761 this.points = castToDecimal(value); // DecimalType 7762 return value; 7763 case 108957: // net 7764 this.net = castToMoney(value); // Money 7765 return value; 7766 case -786681338: // payment 7767 this.payment = castToString(value); // StringType 7768 return value; 7769 case -1540873516: // paymentDate 7770 this.paymentDate = castToDateTime(value); // DateTimeType 7771 return value; 7772 case 1847674614: // responsible 7773 this.responsible = castToReference(value); // Reference 7774 return value; 7775 case 820081177: // recipient 7776 this.recipient = castToReference(value); // Reference 7777 return value; 7778 case -1102667083: // linkId 7779 this.getLinkId().add(castToString(value)); // StringType 7780 return value; 7781 case -149460995: // securityLabelNumber 7782 this.getSecurityLabelNumber().add(castToUnsignedInt(value)); // UnsignedIntType 7783 return value; 7784 default: 7785 return super.setProperty(hash, name, value); 7786 } 7787 7788 } 7789 7790 @Override 7791 public Base setProperty(String name, Base value) throws FHIRException { 7792 if (name.equals("entity[x]")) { 7793 this.entity = castToType(value); // Type 7794 } else if (name.equals("identifier")) { 7795 this.identifier = castToIdentifier(value); // Identifier 7796 } else if (name.equals("effectiveTime")) { 7797 this.effectiveTime = castToDateTime(value); // DateTimeType 7798 } else if (name.equals("quantity")) { 7799 this.quantity = castToQuantity(value); // Quantity 7800 } else if (name.equals("unitPrice")) { 7801 this.unitPrice = castToMoney(value); // Money 7802 } else if (name.equals("factor")) { 7803 this.factor = castToDecimal(value); // DecimalType 7804 } else if (name.equals("points")) { 7805 this.points = castToDecimal(value); // DecimalType 7806 } else if (name.equals("net")) { 7807 this.net = castToMoney(value); // Money 7808 } else if (name.equals("payment")) { 7809 this.payment = castToString(value); // StringType 7810 } else if (name.equals("paymentDate")) { 7811 this.paymentDate = castToDateTime(value); // DateTimeType 7812 } else if (name.equals("responsible")) { 7813 this.responsible = castToReference(value); // Reference 7814 } else if (name.equals("recipient")) { 7815 this.recipient = castToReference(value); // Reference 7816 } else if (name.equals("linkId")) { 7817 this.getLinkId().add(castToString(value)); 7818 } else if (name.equals("securityLabelNumber")) { 7819 this.getSecurityLabelNumber().add(castToUnsignedInt(value)); 7820 } else 7821 return super.setProperty(name, value); 7822 return value; 7823 } 7824 7825 @Override 7826 public void removeChild(String name, Base value) throws FHIRException { 7827 if (name.equals("entity[x]")) { 7828 this.entity = null; 7829 } else if (name.equals("identifier")) { 7830 this.identifier = null; 7831 } else if (name.equals("effectiveTime")) { 7832 this.effectiveTime = null; 7833 } else if (name.equals("quantity")) { 7834 this.quantity = null; 7835 } else if (name.equals("unitPrice")) { 7836 this.unitPrice = null; 7837 } else if (name.equals("factor")) { 7838 this.factor = null; 7839 } else if (name.equals("points")) { 7840 this.points = null; 7841 } else if (name.equals("net")) { 7842 this.net = null; 7843 } else if (name.equals("payment")) { 7844 this.payment = null; 7845 } else if (name.equals("paymentDate")) { 7846 this.paymentDate = null; 7847 } else if (name.equals("responsible")) { 7848 this.responsible = null; 7849 } else if (name.equals("recipient")) { 7850 this.recipient = null; 7851 } else if (name.equals("linkId")) { 7852 this.getLinkId().remove(castToString(value)); 7853 } else if (name.equals("securityLabelNumber")) { 7854 this.getSecurityLabelNumber().remove(castToUnsignedInt(value)); 7855 } else 7856 super.removeChild(name, value); 7857 7858 } 7859 7860 @Override 7861 public Base makeProperty(int hash, String name) throws FHIRException { 7862 switch (hash) { 7863 case -740568643: 7864 return getEntity(); 7865 case -1298275357: 7866 return getEntity(); 7867 case -1618432855: 7868 return getIdentifier(); 7869 case -929905388: 7870 return getEffectiveTimeElement(); 7871 case -1285004149: 7872 return getQuantity(); 7873 case -486196699: 7874 return getUnitPrice(); 7875 case -1282148017: 7876 return getFactorElement(); 7877 case -982754077: 7878 return getPointsElement(); 7879 case 108957: 7880 return getNet(); 7881 case -786681338: 7882 return getPaymentElement(); 7883 case -1540873516: 7884 return getPaymentDateElement(); 7885 case 1847674614: 7886 return getResponsible(); 7887 case 820081177: 7888 return getRecipient(); 7889 case -1102667083: 7890 return addLinkIdElement(); 7891 case -149460995: 7892 return addSecurityLabelNumberElement(); 7893 default: 7894 return super.makeProperty(hash, name); 7895 } 7896 7897 } 7898 7899 @Override 7900 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 7901 switch (hash) { 7902 case -1298275357: 7903 /* entity */ return new String[] { "CodeableConcept", "Reference" }; 7904 case -1618432855: 7905 /* identifier */ return new String[] { "Identifier" }; 7906 case -929905388: 7907 /* effectiveTime */ return new String[] { "dateTime" }; 7908 case -1285004149: 7909 /* quantity */ return new String[] { "SimpleQuantity" }; 7910 case -486196699: 7911 /* unitPrice */ return new String[] { "Money" }; 7912 case -1282148017: 7913 /* factor */ return new String[] { "decimal" }; 7914 case -982754077: 7915 /* points */ return new String[] { "decimal" }; 7916 case 108957: 7917 /* net */ return new String[] { "Money" }; 7918 case -786681338: 7919 /* payment */ return new String[] { "string" }; 7920 case -1540873516: 7921 /* paymentDate */ return new String[] { "dateTime" }; 7922 case 1847674614: 7923 /* responsible */ return new String[] { "Reference" }; 7924 case 820081177: 7925 /* recipient */ return new String[] { "Reference" }; 7926 case -1102667083: 7927 /* linkId */ return new String[] { "string" }; 7928 case -149460995: 7929 /* securityLabelNumber */ return new String[] { "unsignedInt" }; 7930 default: 7931 return super.getTypesForProperty(hash, name); 7932 } 7933 7934 } 7935 7936 @Override 7937 public Base addChild(String name) throws FHIRException { 7938 if (name.equals("entityCodeableConcept")) { 7939 this.entity = new CodeableConcept(); 7940 return this.entity; 7941 } else if (name.equals("entityReference")) { 7942 this.entity = new Reference(); 7943 return this.entity; 7944 } else if (name.equals("identifier")) { 7945 this.identifier = new Identifier(); 7946 return this.identifier; 7947 } else if (name.equals("effectiveTime")) { 7948 throw new FHIRException("Cannot call addChild on a singleton property Contract.effectiveTime"); 7949 } else if (name.equals("quantity")) { 7950 this.quantity = new Quantity(); 7951 return this.quantity; 7952 } else if (name.equals("unitPrice")) { 7953 this.unitPrice = new Money(); 7954 return this.unitPrice; 7955 } else if (name.equals("factor")) { 7956 throw new FHIRException("Cannot call addChild on a singleton property Contract.factor"); 7957 } else if (name.equals("points")) { 7958 throw new FHIRException("Cannot call addChild on a singleton property Contract.points"); 7959 } else if (name.equals("net")) { 7960 this.net = new Money(); 7961 return this.net; 7962 } else if (name.equals("payment")) { 7963 throw new FHIRException("Cannot call addChild on a singleton property Contract.payment"); 7964 } else if (name.equals("paymentDate")) { 7965 throw new FHIRException("Cannot call addChild on a singleton property Contract.paymentDate"); 7966 } else if (name.equals("responsible")) { 7967 this.responsible = new Reference(); 7968 return this.responsible; 7969 } else if (name.equals("recipient")) { 7970 this.recipient = new Reference(); 7971 return this.recipient; 7972 } else if (name.equals("linkId")) { 7973 throw new FHIRException("Cannot call addChild on a singleton property Contract.linkId"); 7974 } else if (name.equals("securityLabelNumber")) { 7975 throw new FHIRException("Cannot call addChild on a singleton property Contract.securityLabelNumber"); 7976 } else 7977 return super.addChild(name); 7978 } 7979 7980 public ValuedItemComponent copy() { 7981 ValuedItemComponent dst = new ValuedItemComponent(); 7982 copyValues(dst); 7983 return dst; 7984 } 7985 7986 public void copyValues(ValuedItemComponent dst) { 7987 super.copyValues(dst); 7988 dst.entity = entity == null ? null : entity.copy(); 7989 dst.identifier = identifier == null ? null : identifier.copy(); 7990 dst.effectiveTime = effectiveTime == null ? null : effectiveTime.copy(); 7991 dst.quantity = quantity == null ? null : quantity.copy(); 7992 dst.unitPrice = unitPrice == null ? null : unitPrice.copy(); 7993 dst.factor = factor == null ? null : factor.copy(); 7994 dst.points = points == null ? null : points.copy(); 7995 dst.net = net == null ? null : net.copy(); 7996 dst.payment = payment == null ? null : payment.copy(); 7997 dst.paymentDate = paymentDate == null ? null : paymentDate.copy(); 7998 dst.responsible = responsible == null ? null : responsible.copy(); 7999 dst.recipient = recipient == null ? null : recipient.copy(); 8000 if (linkId != null) { 8001 dst.linkId = new ArrayList<StringType>(); 8002 for (StringType i : linkId) 8003 dst.linkId.add(i.copy()); 8004 } 8005 ; 8006 if (securityLabelNumber != null) { 8007 dst.securityLabelNumber = new ArrayList<UnsignedIntType>(); 8008 for (UnsignedIntType i : securityLabelNumber) 8009 dst.securityLabelNumber.add(i.copy()); 8010 } 8011 ; 8012 } 8013 8014 @Override 8015 public boolean equalsDeep(Base other_) { 8016 if (!super.equalsDeep(other_)) 8017 return false; 8018 if (!(other_ instanceof ValuedItemComponent)) 8019 return false; 8020 ValuedItemComponent o = (ValuedItemComponent) other_; 8021 return compareDeep(entity, o.entity, true) && compareDeep(identifier, o.identifier, true) 8022 && compareDeep(effectiveTime, o.effectiveTime, true) && compareDeep(quantity, o.quantity, true) 8023 && compareDeep(unitPrice, o.unitPrice, true) && compareDeep(factor, o.factor, true) 8024 && compareDeep(points, o.points, true) && compareDeep(net, o.net, true) 8025 && compareDeep(payment, o.payment, true) && compareDeep(paymentDate, o.paymentDate, true) 8026 && compareDeep(responsible, o.responsible, true) && compareDeep(recipient, o.recipient, true) 8027 && compareDeep(linkId, o.linkId, true) && compareDeep(securityLabelNumber, o.securityLabelNumber, true); 8028 } 8029 8030 @Override 8031 public boolean equalsShallow(Base other_) { 8032 if (!super.equalsShallow(other_)) 8033 return false; 8034 if (!(other_ instanceof ValuedItemComponent)) 8035 return false; 8036 ValuedItemComponent o = (ValuedItemComponent) other_; 8037 return compareValues(effectiveTime, o.effectiveTime, true) && compareValues(factor, o.factor, true) 8038 && compareValues(points, o.points, true) && compareValues(payment, o.payment, true) 8039 && compareValues(paymentDate, o.paymentDate, true) && compareValues(linkId, o.linkId, true) 8040 && compareValues(securityLabelNumber, o.securityLabelNumber, true); 8041 } 8042 8043 public boolean isEmpty() { 8044 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(entity, identifier, effectiveTime, quantity, 8045 unitPrice, factor, points, net, payment, paymentDate, responsible, recipient, linkId, securityLabelNumber); 8046 } 8047 8048 public String fhirType() { 8049 return "Contract.term.asset.valuedItem"; 8050 8051 } 8052 8053 } 8054 8055 @Block() 8056 public static class ActionComponent extends BackboneElement implements IBaseBackboneElement { 8057 /** 8058 * True if the term prohibits the action. 8059 */ 8060 @Child(name = "doNotPerform", type = { 8061 BooleanType.class }, order = 1, min = 0, max = 1, modifier = true, summary = false) 8062 @Description(shortDefinition = "True if the term prohibits the action", formalDefinition = "True if the term prohibits the action.") 8063 protected BooleanType doNotPerform; 8064 8065 /** 8066 * Activity or service obligation to be done or not done, performed or not 8067 * performed, effectuated or not by this Contract term. 8068 */ 8069 @Child(name = "type", type = { 8070 CodeableConcept.class }, order = 2, min = 1, max = 1, modifier = false, summary = false) 8071 @Description(shortDefinition = "Type or form of the action", formalDefinition = "Activity or service obligation to be done or not done, performed or not performed, effectuated or not by this Contract term.") 8072 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/contract-action") 8073 protected CodeableConcept type; 8074 8075 /** 8076 * Entity of the action. 8077 */ 8078 @Child(name = "subject", type = {}, order = 3, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 8079 @Description(shortDefinition = "Entity of the action", formalDefinition = "Entity of the action.") 8080 protected List<ActionSubjectComponent> subject; 8081 8082 /** 8083 * Reason or purpose for the action stipulated by this Contract Provision. 8084 */ 8085 @Child(name = "intent", type = { 8086 CodeableConcept.class }, order = 4, min = 1, max = 1, modifier = false, summary = false) 8087 @Description(shortDefinition = "Purpose for the Contract Term Action", formalDefinition = "Reason or purpose for the action stipulated by this Contract Provision.") 8088 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://terminology.hl7.org/ValueSet/v3-PurposeOfUse") 8089 protected CodeableConcept intent; 8090 8091 /** 8092 * Id [identifier??] of the clause or question text related to this action in 8093 * the referenced form or QuestionnaireResponse. 8094 */ 8095 @Child(name = "linkId", type = { 8096 StringType.class }, order = 5, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 8097 @Description(shortDefinition = "Pointer to specific item", formalDefinition = "Id [identifier??] of the clause or question text related to this action in the referenced form or QuestionnaireResponse.") 8098 protected List<StringType> linkId; 8099 8100 /** 8101 * Current state of the term action. 8102 */ 8103 @Child(name = "status", type = { 8104 CodeableConcept.class }, order = 6, min = 1, max = 1, modifier = false, summary = false) 8105 @Description(shortDefinition = "State of the action", formalDefinition = "Current state of the term action.") 8106 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/contract-actionstatus") 8107 protected CodeableConcept status; 8108 8109 /** 8110 * Encounter or Episode with primary association to specified term activity. 8111 */ 8112 @Child(name = "context", type = { Encounter.class, 8113 EpisodeOfCare.class }, order = 7, min = 0, max = 1, modifier = false, summary = false) 8114 @Description(shortDefinition = "Episode associated with action", formalDefinition = "Encounter or Episode with primary association to specified term activity.") 8115 protected Reference context; 8116 8117 /** 8118 * The actual object that is the target of the reference (Encounter or Episode 8119 * with primary association to specified term activity.) 8120 */ 8121 protected Resource contextTarget; 8122 8123 /** 8124 * Id [identifier??] of the clause or question text related to the requester of 8125 * this action in the referenced form or QuestionnaireResponse. 8126 */ 8127 @Child(name = "contextLinkId", type = { 8128 StringType.class }, order = 8, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 8129 @Description(shortDefinition = "Pointer to specific item", formalDefinition = "Id [identifier??] of the clause or question text related to the requester of this action in the referenced form or QuestionnaireResponse.") 8130 protected List<StringType> contextLinkId; 8131 8132 /** 8133 * When action happens. 8134 */ 8135 @Child(name = "occurrence", type = { DateTimeType.class, Period.class, 8136 Timing.class }, order = 9, min = 0, max = 1, modifier = false, summary = false) 8137 @Description(shortDefinition = "When action happens", formalDefinition = "When action happens.") 8138 protected Type occurrence; 8139 8140 /** 8141 * Who or what initiated the action and has responsibility for its activation. 8142 */ 8143 @Child(name = "requester", type = { Patient.class, RelatedPerson.class, Practitioner.class, PractitionerRole.class, 8144 Device.class, Group.class, 8145 Organization.class }, order = 10, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 8146 @Description(shortDefinition = "Who asked for action", formalDefinition = "Who or what initiated the action and has responsibility for its activation.") 8147 protected List<Reference> requester; 8148 /** 8149 * The actual objects that are the target of the reference (Who or what 8150 * initiated the action and has responsibility for its activation.) 8151 */ 8152 protected List<Resource> requesterTarget; 8153 8154 /** 8155 * Id [identifier??] of the clause or question text related to the requester of 8156 * this action in the referenced form or QuestionnaireResponse. 8157 */ 8158 @Child(name = "requesterLinkId", type = { 8159 StringType.class }, order = 11, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 8160 @Description(shortDefinition = "Pointer to specific item", formalDefinition = "Id [identifier??] of the clause or question text related to the requester of this action in the referenced form or QuestionnaireResponse.") 8161 protected List<StringType> requesterLinkId; 8162 8163 /** 8164 * The type of individual that is desired or required to perform or not perform 8165 * the action. 8166 */ 8167 @Child(name = "performerType", type = { 8168 CodeableConcept.class }, order = 12, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 8169 @Description(shortDefinition = "Kind of service performer", formalDefinition = "The type of individual that is desired or required to perform or not perform the action.") 8170 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/provenance-agent-type") 8171 protected List<CodeableConcept> performerType; 8172 8173 /** 8174 * The type of role or competency of an individual desired or required to 8175 * perform or not perform the action. 8176 */ 8177 @Child(name = "performerRole", type = { 8178 CodeableConcept.class }, order = 13, min = 0, max = 1, modifier = false, summary = false) 8179 @Description(shortDefinition = "Competency of the performer", formalDefinition = "The type of role or competency of an individual desired or required to perform or not perform the action.") 8180 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/provenance-agent-role") 8181 protected CodeableConcept performerRole; 8182 8183 /** 8184 * Indicates who or what is being asked to perform (or not perform) the ction. 8185 */ 8186 @Child(name = "performer", type = { RelatedPerson.class, Patient.class, Practitioner.class, PractitionerRole.class, 8187 CareTeam.class, Device.class, Substance.class, Organization.class, 8188 Location.class }, order = 14, min = 0, max = 1, modifier = false, summary = false) 8189 @Description(shortDefinition = "Actor that wil execute (or not) the action", formalDefinition = "Indicates who or what is being asked to perform (or not perform) the ction.") 8190 protected Reference performer; 8191 8192 /** 8193 * The actual object that is the target of the reference (Indicates who or what 8194 * is being asked to perform (or not perform) the ction.) 8195 */ 8196 protected Resource performerTarget; 8197 8198 /** 8199 * Id [identifier??] of the clause or question text related to the reason type 8200 * or reference of this action in the referenced form or QuestionnaireResponse. 8201 */ 8202 @Child(name = "performerLinkId", type = { 8203 StringType.class }, order = 15, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 8204 @Description(shortDefinition = "Pointer to specific item", formalDefinition = "Id [identifier??] of the clause or question text related to the reason type or reference of this action in the referenced form or QuestionnaireResponse.") 8205 protected List<StringType> performerLinkId; 8206 8207 /** 8208 * Rationale for the action to be performed or not performed. Describes why the 8209 * action is permitted or prohibited. 8210 */ 8211 @Child(name = "reasonCode", type = { 8212 CodeableConcept.class }, order = 16, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 8213 @Description(shortDefinition = "Why is action (not) needed?", formalDefinition = "Rationale for the action to be performed or not performed. Describes why the action is permitted or prohibited.") 8214 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://terminology.hl7.org/ValueSet/v3-PurposeOfUse") 8215 protected List<CodeableConcept> reasonCode; 8216 8217 /** 8218 * Indicates another resource whose existence justifies permitting or not 8219 * permitting this action. 8220 */ 8221 @Child(name = "reasonReference", type = { Condition.class, Observation.class, DiagnosticReport.class, 8222 DocumentReference.class, Questionnaire.class, 8223 QuestionnaireResponse.class }, order = 17, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 8224 @Description(shortDefinition = "Why is action (not) needed?", formalDefinition = "Indicates another resource whose existence justifies permitting or not permitting this action.") 8225 protected List<Reference> reasonReference; 8226 /** 8227 * The actual objects that are the target of the reference (Indicates another 8228 * resource whose existence justifies permitting or not permitting this action.) 8229 */ 8230 protected List<Resource> reasonReferenceTarget; 8231 8232 /** 8233 * Describes why the action is to be performed or not performed in textual form. 8234 */ 8235 @Child(name = "reason", type = { 8236 StringType.class }, order = 18, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 8237 @Description(shortDefinition = "Why action is to be performed", formalDefinition = "Describes why the action is to be performed or not performed in textual form.") 8238 protected List<StringType> reason; 8239 8240 /** 8241 * Id [identifier??] of the clause or question text related to the reason type 8242 * or reference of this action in the referenced form or QuestionnaireResponse. 8243 */ 8244 @Child(name = "reasonLinkId", type = { 8245 StringType.class }, order = 19, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 8246 @Description(shortDefinition = "Pointer to specific item", formalDefinition = "Id [identifier??] of the clause or question text related to the reason type or reference of this action in the referenced form or QuestionnaireResponse.") 8247 protected List<StringType> reasonLinkId; 8248 8249 /** 8250 * Comments made about the term action made by the requester, performer, subject 8251 * or other participants. 8252 */ 8253 @Child(name = "note", type = { 8254 Annotation.class }, order = 20, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 8255 @Description(shortDefinition = "Comments about the action", formalDefinition = "Comments made about the term action made by the requester, performer, subject or other participants.") 8256 protected List<Annotation> note; 8257 8258 /** 8259 * Security labels that protects the action. 8260 */ 8261 @Child(name = "securityLabelNumber", type = { 8262 UnsignedIntType.class }, order = 21, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 8263 @Description(shortDefinition = "Action restriction numbers", formalDefinition = "Security labels that protects the action.") 8264 protected List<UnsignedIntType> securityLabelNumber; 8265 8266 private static final long serialVersionUID = -178728180L; 8267 8268 /** 8269 * Constructor 8270 */ 8271 public ActionComponent() { 8272 super(); 8273 } 8274 8275 /** 8276 * Constructor 8277 */ 8278 public ActionComponent(CodeableConcept type, CodeableConcept intent, CodeableConcept status) { 8279 super(); 8280 this.type = type; 8281 this.intent = intent; 8282 this.status = status; 8283 } 8284 8285 /** 8286 * @return {@link #doNotPerform} (True if the term prohibits the action.). This 8287 * is the underlying object with id, value and extensions. The accessor 8288 * "getDoNotPerform" gives direct access to the value 8289 */ 8290 public BooleanType getDoNotPerformElement() { 8291 if (this.doNotPerform == null) 8292 if (Configuration.errorOnAutoCreate()) 8293 throw new Error("Attempt to auto-create ActionComponent.doNotPerform"); 8294 else if (Configuration.doAutoCreate()) 8295 this.doNotPerform = new BooleanType(); // bb 8296 return this.doNotPerform; 8297 } 8298 8299 public boolean hasDoNotPerformElement() { 8300 return this.doNotPerform != null && !this.doNotPerform.isEmpty(); 8301 } 8302 8303 public boolean hasDoNotPerform() { 8304 return this.doNotPerform != null && !this.doNotPerform.isEmpty(); 8305 } 8306 8307 /** 8308 * @param value {@link #doNotPerform} (True if the term prohibits the action.). 8309 * This is the underlying object with id, value and extensions. The 8310 * accessor "getDoNotPerform" gives direct access to the value 8311 */ 8312 public ActionComponent setDoNotPerformElement(BooleanType value) { 8313 this.doNotPerform = value; 8314 return this; 8315 } 8316 8317 /** 8318 * @return True if the term prohibits the action. 8319 */ 8320 public boolean getDoNotPerform() { 8321 return this.doNotPerform == null || this.doNotPerform.isEmpty() ? false : this.doNotPerform.getValue(); 8322 } 8323 8324 /** 8325 * @param value True if the term prohibits the action. 8326 */ 8327 public ActionComponent setDoNotPerform(boolean value) { 8328 if (this.doNotPerform == null) 8329 this.doNotPerform = new BooleanType(); 8330 this.doNotPerform.setValue(value); 8331 return this; 8332 } 8333 8334 /** 8335 * @return {@link #type} (Activity or service obligation to be done or not done, 8336 * performed or not performed, effectuated or not by this Contract 8337 * term.) 8338 */ 8339 public CodeableConcept getType() { 8340 if (this.type == null) 8341 if (Configuration.errorOnAutoCreate()) 8342 throw new Error("Attempt to auto-create ActionComponent.type"); 8343 else if (Configuration.doAutoCreate()) 8344 this.type = new CodeableConcept(); // cc 8345 return this.type; 8346 } 8347 8348 public boolean hasType() { 8349 return this.type != null && !this.type.isEmpty(); 8350 } 8351 8352 /** 8353 * @param value {@link #type} (Activity or service obligation to be done or not 8354 * done, performed or not performed, effectuated or not by this 8355 * Contract term.) 8356 */ 8357 public ActionComponent setType(CodeableConcept value) { 8358 this.type = value; 8359 return this; 8360 } 8361 8362 /** 8363 * @return {@link #subject} (Entity of the action.) 8364 */ 8365 public List<ActionSubjectComponent> getSubject() { 8366 if (this.subject == null) 8367 this.subject = new ArrayList<ActionSubjectComponent>(); 8368 return this.subject; 8369 } 8370 8371 /** 8372 * @return Returns a reference to <code>this</code> for easy method chaining 8373 */ 8374 public ActionComponent setSubject(List<ActionSubjectComponent> theSubject) { 8375 this.subject = theSubject; 8376 return this; 8377 } 8378 8379 public boolean hasSubject() { 8380 if (this.subject == null) 8381 return false; 8382 for (ActionSubjectComponent item : this.subject) 8383 if (!item.isEmpty()) 8384 return true; 8385 return false; 8386 } 8387 8388 public ActionSubjectComponent addSubject() { // 3 8389 ActionSubjectComponent t = new ActionSubjectComponent(); 8390 if (this.subject == null) 8391 this.subject = new ArrayList<ActionSubjectComponent>(); 8392 this.subject.add(t); 8393 return t; 8394 } 8395 8396 public ActionComponent addSubject(ActionSubjectComponent t) { // 3 8397 if (t == null) 8398 return this; 8399 if (this.subject == null) 8400 this.subject = new ArrayList<ActionSubjectComponent>(); 8401 this.subject.add(t); 8402 return this; 8403 } 8404 8405 /** 8406 * @return The first repetition of repeating field {@link #subject}, creating it 8407 * if it does not already exist 8408 */ 8409 public ActionSubjectComponent getSubjectFirstRep() { 8410 if (getSubject().isEmpty()) { 8411 addSubject(); 8412 } 8413 return getSubject().get(0); 8414 } 8415 8416 /** 8417 * @return {@link #intent} (Reason or purpose for the action stipulated by this 8418 * Contract Provision.) 8419 */ 8420 public CodeableConcept getIntent() { 8421 if (this.intent == null) 8422 if (Configuration.errorOnAutoCreate()) 8423 throw new Error("Attempt to auto-create ActionComponent.intent"); 8424 else if (Configuration.doAutoCreate()) 8425 this.intent = new CodeableConcept(); // cc 8426 return this.intent; 8427 } 8428 8429 public boolean hasIntent() { 8430 return this.intent != null && !this.intent.isEmpty(); 8431 } 8432 8433 /** 8434 * @param value {@link #intent} (Reason or purpose for the action stipulated by 8435 * this Contract Provision.) 8436 */ 8437 public ActionComponent setIntent(CodeableConcept value) { 8438 this.intent = value; 8439 return this; 8440 } 8441 8442 /** 8443 * @return {@link #linkId} (Id [identifier??] of the clause or question text 8444 * related to this action in the referenced form or 8445 * QuestionnaireResponse.) 8446 */ 8447 public List<StringType> getLinkId() { 8448 if (this.linkId == null) 8449 this.linkId = new ArrayList<StringType>(); 8450 return this.linkId; 8451 } 8452 8453 /** 8454 * @return Returns a reference to <code>this</code> for easy method chaining 8455 */ 8456 public ActionComponent setLinkId(List<StringType> theLinkId) { 8457 this.linkId = theLinkId; 8458 return this; 8459 } 8460 8461 public boolean hasLinkId() { 8462 if (this.linkId == null) 8463 return false; 8464 for (StringType item : this.linkId) 8465 if (!item.isEmpty()) 8466 return true; 8467 return false; 8468 } 8469 8470 /** 8471 * @return {@link #linkId} (Id [identifier??] of the clause or question text 8472 * related to this action in the referenced form or 8473 * QuestionnaireResponse.) 8474 */ 8475 public StringType addLinkIdElement() {// 2 8476 StringType t = new StringType(); 8477 if (this.linkId == null) 8478 this.linkId = new ArrayList<StringType>(); 8479 this.linkId.add(t); 8480 return t; 8481 } 8482 8483 /** 8484 * @param value {@link #linkId} (Id [identifier??] of the clause or question 8485 * text related to this action in the referenced form or 8486 * QuestionnaireResponse.) 8487 */ 8488 public ActionComponent addLinkId(String value) { // 1 8489 StringType t = new StringType(); 8490 t.setValue(value); 8491 if (this.linkId == null) 8492 this.linkId = new ArrayList<StringType>(); 8493 this.linkId.add(t); 8494 return this; 8495 } 8496 8497 /** 8498 * @param value {@link #linkId} (Id [identifier??] of the clause or question 8499 * text related to this action in the referenced form or 8500 * QuestionnaireResponse.) 8501 */ 8502 public boolean hasLinkId(String value) { 8503 if (this.linkId == null) 8504 return false; 8505 for (StringType v : this.linkId) 8506 if (v.getValue().equals(value)) // string 8507 return true; 8508 return false; 8509 } 8510 8511 /** 8512 * @return {@link #status} (Current state of the term action.) 8513 */ 8514 public CodeableConcept getStatus() { 8515 if (this.status == null) 8516 if (Configuration.errorOnAutoCreate()) 8517 throw new Error("Attempt to auto-create ActionComponent.status"); 8518 else if (Configuration.doAutoCreate()) 8519 this.status = new CodeableConcept(); // cc 8520 return this.status; 8521 } 8522 8523 public boolean hasStatus() { 8524 return this.status != null && !this.status.isEmpty(); 8525 } 8526 8527 /** 8528 * @param value {@link #status} (Current state of the term action.) 8529 */ 8530 public ActionComponent setStatus(CodeableConcept value) { 8531 this.status = value; 8532 return this; 8533 } 8534 8535 /** 8536 * @return {@link #context} (Encounter or Episode with primary association to 8537 * specified term activity.) 8538 */ 8539 public Reference getContext() { 8540 if (this.context == null) 8541 if (Configuration.errorOnAutoCreate()) 8542 throw new Error("Attempt to auto-create ActionComponent.context"); 8543 else if (Configuration.doAutoCreate()) 8544 this.context = new Reference(); // cc 8545 return this.context; 8546 } 8547 8548 public boolean hasContext() { 8549 return this.context != null && !this.context.isEmpty(); 8550 } 8551 8552 /** 8553 * @param value {@link #context} (Encounter or Episode with primary association 8554 * to specified term activity.) 8555 */ 8556 public ActionComponent setContext(Reference value) { 8557 this.context = value; 8558 return this; 8559 } 8560 8561 /** 8562 * @return {@link #context} The actual object that is the target of the 8563 * reference. The reference library doesn't populate this, but you can 8564 * use it to hold the resource if you resolve it. (Encounter or Episode 8565 * with primary association to specified term activity.) 8566 */ 8567 public Resource getContextTarget() { 8568 return this.contextTarget; 8569 } 8570 8571 /** 8572 * @param value {@link #context} The actual object that is the target of the 8573 * reference. The reference library doesn't use these, but you can 8574 * use it to hold the resource if you resolve it. (Encounter or 8575 * Episode with primary association to specified term activity.) 8576 */ 8577 public ActionComponent setContextTarget(Resource value) { 8578 this.contextTarget = value; 8579 return this; 8580 } 8581 8582 /** 8583 * @return {@link #contextLinkId} (Id [identifier??] of the clause or question 8584 * text related to the requester of this action in the referenced form 8585 * or QuestionnaireResponse.) 8586 */ 8587 public List<StringType> getContextLinkId() { 8588 if (this.contextLinkId == null) 8589 this.contextLinkId = new ArrayList<StringType>(); 8590 return this.contextLinkId; 8591 } 8592 8593 /** 8594 * @return Returns a reference to <code>this</code> for easy method chaining 8595 */ 8596 public ActionComponent setContextLinkId(List<StringType> theContextLinkId) { 8597 this.contextLinkId = theContextLinkId; 8598 return this; 8599 } 8600 8601 public boolean hasContextLinkId() { 8602 if (this.contextLinkId == null) 8603 return false; 8604 for (StringType item : this.contextLinkId) 8605 if (!item.isEmpty()) 8606 return true; 8607 return false; 8608 } 8609 8610 /** 8611 * @return {@link #contextLinkId} (Id [identifier??] of the clause or question 8612 * text related to the requester of this action in the referenced form 8613 * or QuestionnaireResponse.) 8614 */ 8615 public StringType addContextLinkIdElement() {// 2 8616 StringType t = new StringType(); 8617 if (this.contextLinkId == null) 8618 this.contextLinkId = new ArrayList<StringType>(); 8619 this.contextLinkId.add(t); 8620 return t; 8621 } 8622 8623 /** 8624 * @param value {@link #contextLinkId} (Id [identifier??] of the clause or 8625 * question text related to the requester of this action in the 8626 * referenced form or QuestionnaireResponse.) 8627 */ 8628 public ActionComponent addContextLinkId(String value) { // 1 8629 StringType t = new StringType(); 8630 t.setValue(value); 8631 if (this.contextLinkId == null) 8632 this.contextLinkId = new ArrayList<StringType>(); 8633 this.contextLinkId.add(t); 8634 return this; 8635 } 8636 8637 /** 8638 * @param value {@link #contextLinkId} (Id [identifier??] of the clause or 8639 * question text related to the requester of this action in the 8640 * referenced form or QuestionnaireResponse.) 8641 */ 8642 public boolean hasContextLinkId(String value) { 8643 if (this.contextLinkId == null) 8644 return false; 8645 for (StringType v : this.contextLinkId) 8646 if (v.getValue().equals(value)) // string 8647 return true; 8648 return false; 8649 } 8650 8651 /** 8652 * @return {@link #occurrence} (When action happens.) 8653 */ 8654 public Type getOccurrence() { 8655 return this.occurrence; 8656 } 8657 8658 /** 8659 * @return {@link #occurrence} (When action happens.) 8660 */ 8661 public DateTimeType getOccurrenceDateTimeType() throws FHIRException { 8662 if (this.occurrence == null) 8663 this.occurrence = new DateTimeType(); 8664 if (!(this.occurrence instanceof DateTimeType)) 8665 throw new FHIRException("Type mismatch: the type DateTimeType was expected, but " 8666 + this.occurrence.getClass().getName() + " was encountered"); 8667 return (DateTimeType) this.occurrence; 8668 } 8669 8670 public boolean hasOccurrenceDateTimeType() { 8671 return this != null && this.occurrence instanceof DateTimeType; 8672 } 8673 8674 /** 8675 * @return {@link #occurrence} (When action happens.) 8676 */ 8677 public Period getOccurrencePeriod() throws FHIRException { 8678 if (this.occurrence == null) 8679 this.occurrence = new Period(); 8680 if (!(this.occurrence instanceof Period)) 8681 throw new FHIRException("Type mismatch: the type Period was expected, but " 8682 + this.occurrence.getClass().getName() + " was encountered"); 8683 return (Period) this.occurrence; 8684 } 8685 8686 public boolean hasOccurrencePeriod() { 8687 return this != null && this.occurrence instanceof Period; 8688 } 8689 8690 /** 8691 * @return {@link #occurrence} (When action happens.) 8692 */ 8693 public Timing getOccurrenceTiming() throws FHIRException { 8694 if (this.occurrence == null) 8695 this.occurrence = new Timing(); 8696 if (!(this.occurrence instanceof Timing)) 8697 throw new FHIRException("Type mismatch: the type Timing was expected, but " 8698 + this.occurrence.getClass().getName() + " was encountered"); 8699 return (Timing) this.occurrence; 8700 } 8701 8702 public boolean hasOccurrenceTiming() { 8703 return this != null && this.occurrence instanceof Timing; 8704 } 8705 8706 public boolean hasOccurrence() { 8707 return this.occurrence != null && !this.occurrence.isEmpty(); 8708 } 8709 8710 /** 8711 * @param value {@link #occurrence} (When action happens.) 8712 */ 8713 public ActionComponent setOccurrence(Type value) { 8714 if (value != null && !(value instanceof DateTimeType || value instanceof Period || value instanceof Timing)) 8715 throw new Error("Not the right type for Contract.term.action.occurrence[x]: " + value.fhirType()); 8716 this.occurrence = value; 8717 return this; 8718 } 8719 8720 /** 8721 * @return {@link #requester} (Who or what initiated the action and has 8722 * responsibility for its activation.) 8723 */ 8724 public List<Reference> getRequester() { 8725 if (this.requester == null) 8726 this.requester = new ArrayList<Reference>(); 8727 return this.requester; 8728 } 8729 8730 /** 8731 * @return Returns a reference to <code>this</code> for easy method chaining 8732 */ 8733 public ActionComponent setRequester(List<Reference> theRequester) { 8734 this.requester = theRequester; 8735 return this; 8736 } 8737 8738 public boolean hasRequester() { 8739 if (this.requester == null) 8740 return false; 8741 for (Reference item : this.requester) 8742 if (!item.isEmpty()) 8743 return true; 8744 return false; 8745 } 8746 8747 public Reference addRequester() { // 3 8748 Reference t = new Reference(); 8749 if (this.requester == null) 8750 this.requester = new ArrayList<Reference>(); 8751 this.requester.add(t); 8752 return t; 8753 } 8754 8755 public ActionComponent addRequester(Reference t) { // 3 8756 if (t == null) 8757 return this; 8758 if (this.requester == null) 8759 this.requester = new ArrayList<Reference>(); 8760 this.requester.add(t); 8761 return this; 8762 } 8763 8764 /** 8765 * @return The first repetition of repeating field {@link #requester}, creating 8766 * it if it does not already exist 8767 */ 8768 public Reference getRequesterFirstRep() { 8769 if (getRequester().isEmpty()) { 8770 addRequester(); 8771 } 8772 return getRequester().get(0); 8773 } 8774 8775 /** 8776 * @deprecated Use Reference#setResource(IBaseResource) instead 8777 */ 8778 @Deprecated 8779 public List<Resource> getRequesterTarget() { 8780 if (this.requesterTarget == null) 8781 this.requesterTarget = new ArrayList<Resource>(); 8782 return this.requesterTarget; 8783 } 8784 8785 /** 8786 * @return {@link #requesterLinkId} (Id [identifier??] of the clause or question 8787 * text related to the requester of this action in the referenced form 8788 * or QuestionnaireResponse.) 8789 */ 8790 public List<StringType> getRequesterLinkId() { 8791 if (this.requesterLinkId == null) 8792 this.requesterLinkId = new ArrayList<StringType>(); 8793 return this.requesterLinkId; 8794 } 8795 8796 /** 8797 * @return Returns a reference to <code>this</code> for easy method chaining 8798 */ 8799 public ActionComponent setRequesterLinkId(List<StringType> theRequesterLinkId) { 8800 this.requesterLinkId = theRequesterLinkId; 8801 return this; 8802 } 8803 8804 public boolean hasRequesterLinkId() { 8805 if (this.requesterLinkId == null) 8806 return false; 8807 for (StringType item : this.requesterLinkId) 8808 if (!item.isEmpty()) 8809 return true; 8810 return false; 8811 } 8812 8813 /** 8814 * @return {@link #requesterLinkId} (Id [identifier??] of the clause or question 8815 * text related to the requester of this action in the referenced form 8816 * or QuestionnaireResponse.) 8817 */ 8818 public StringType addRequesterLinkIdElement() {// 2 8819 StringType t = new StringType(); 8820 if (this.requesterLinkId == null) 8821 this.requesterLinkId = new ArrayList<StringType>(); 8822 this.requesterLinkId.add(t); 8823 return t; 8824 } 8825 8826 /** 8827 * @param value {@link #requesterLinkId} (Id [identifier??] of the clause or 8828 * question text related to the requester of this action in the 8829 * referenced form or QuestionnaireResponse.) 8830 */ 8831 public ActionComponent addRequesterLinkId(String value) { // 1 8832 StringType t = new StringType(); 8833 t.setValue(value); 8834 if (this.requesterLinkId == null) 8835 this.requesterLinkId = new ArrayList<StringType>(); 8836 this.requesterLinkId.add(t); 8837 return this; 8838 } 8839 8840 /** 8841 * @param value {@link #requesterLinkId} (Id [identifier??] of the clause or 8842 * question text related to the requester of this action in the 8843 * referenced form or QuestionnaireResponse.) 8844 */ 8845 public boolean hasRequesterLinkId(String value) { 8846 if (this.requesterLinkId == null) 8847 return false; 8848 for (StringType v : this.requesterLinkId) 8849 if (v.getValue().equals(value)) // string 8850 return true; 8851 return false; 8852 } 8853 8854 /** 8855 * @return {@link #performerType} (The type of individual that is desired or 8856 * required to perform or not perform the action.) 8857 */ 8858 public List<CodeableConcept> getPerformerType() { 8859 if (this.performerType == null) 8860 this.performerType = new ArrayList<CodeableConcept>(); 8861 return this.performerType; 8862 } 8863 8864 /** 8865 * @return Returns a reference to <code>this</code> for easy method chaining 8866 */ 8867 public ActionComponent setPerformerType(List<CodeableConcept> thePerformerType) { 8868 this.performerType = thePerformerType; 8869 return this; 8870 } 8871 8872 public boolean hasPerformerType() { 8873 if (this.performerType == null) 8874 return false; 8875 for (CodeableConcept item : this.performerType) 8876 if (!item.isEmpty()) 8877 return true; 8878 return false; 8879 } 8880 8881 public CodeableConcept addPerformerType() { // 3 8882 CodeableConcept t = new CodeableConcept(); 8883 if (this.performerType == null) 8884 this.performerType = new ArrayList<CodeableConcept>(); 8885 this.performerType.add(t); 8886 return t; 8887 } 8888 8889 public ActionComponent addPerformerType(CodeableConcept t) { // 3 8890 if (t == null) 8891 return this; 8892 if (this.performerType == null) 8893 this.performerType = new ArrayList<CodeableConcept>(); 8894 this.performerType.add(t); 8895 return this; 8896 } 8897 8898 /** 8899 * @return The first repetition of repeating field {@link #performerType}, 8900 * creating it if it does not already exist 8901 */ 8902 public CodeableConcept getPerformerTypeFirstRep() { 8903 if (getPerformerType().isEmpty()) { 8904 addPerformerType(); 8905 } 8906 return getPerformerType().get(0); 8907 } 8908 8909 /** 8910 * @return {@link #performerRole} (The type of role or competency of an 8911 * individual desired or required to perform or not perform the action.) 8912 */ 8913 public CodeableConcept getPerformerRole() { 8914 if (this.performerRole == null) 8915 if (Configuration.errorOnAutoCreate()) 8916 throw new Error("Attempt to auto-create ActionComponent.performerRole"); 8917 else if (Configuration.doAutoCreate()) 8918 this.performerRole = new CodeableConcept(); // cc 8919 return this.performerRole; 8920 } 8921 8922 public boolean hasPerformerRole() { 8923 return this.performerRole != null && !this.performerRole.isEmpty(); 8924 } 8925 8926 /** 8927 * @param value {@link #performerRole} (The type of role or competency of an 8928 * individual desired or required to perform or not perform the 8929 * action.) 8930 */ 8931 public ActionComponent setPerformerRole(CodeableConcept value) { 8932 this.performerRole = value; 8933 return this; 8934 } 8935 8936 /** 8937 * @return {@link #performer} (Indicates who or what is being asked to perform 8938 * (or not perform) the ction.) 8939 */ 8940 public Reference getPerformer() { 8941 if (this.performer == null) 8942 if (Configuration.errorOnAutoCreate()) 8943 throw new Error("Attempt to auto-create ActionComponent.performer"); 8944 else if (Configuration.doAutoCreate()) 8945 this.performer = new Reference(); // cc 8946 return this.performer; 8947 } 8948 8949 public boolean hasPerformer() { 8950 return this.performer != null && !this.performer.isEmpty(); 8951 } 8952 8953 /** 8954 * @param value {@link #performer} (Indicates who or what is being asked to 8955 * perform (or not perform) the ction.) 8956 */ 8957 public ActionComponent setPerformer(Reference value) { 8958 this.performer = value; 8959 return this; 8960 } 8961 8962 /** 8963 * @return {@link #performer} The actual object that is the target of the 8964 * reference. The reference library doesn't populate this, but you can 8965 * use it to hold the resource if you resolve it. (Indicates who or what 8966 * is being asked to perform (or not perform) the ction.) 8967 */ 8968 public Resource getPerformerTarget() { 8969 return this.performerTarget; 8970 } 8971 8972 /** 8973 * @param value {@link #performer} The actual object that is the target of the 8974 * reference. The reference library doesn't use these, but you can 8975 * use it to hold the resource if you resolve it. (Indicates who or 8976 * what is being asked to perform (or not perform) the ction.) 8977 */ 8978 public ActionComponent setPerformerTarget(Resource value) { 8979 this.performerTarget = value; 8980 return this; 8981 } 8982 8983 /** 8984 * @return {@link #performerLinkId} (Id [identifier??] of the clause or question 8985 * text related to the reason type or reference of this action in the 8986 * referenced form or QuestionnaireResponse.) 8987 */ 8988 public List<StringType> getPerformerLinkId() { 8989 if (this.performerLinkId == null) 8990 this.performerLinkId = new ArrayList<StringType>(); 8991 return this.performerLinkId; 8992 } 8993 8994 /** 8995 * @return Returns a reference to <code>this</code> for easy method chaining 8996 */ 8997 public ActionComponent setPerformerLinkId(List<StringType> thePerformerLinkId) { 8998 this.performerLinkId = thePerformerLinkId; 8999 return this; 9000 } 9001 9002 public boolean hasPerformerLinkId() { 9003 if (this.performerLinkId == null) 9004 return false; 9005 for (StringType item : this.performerLinkId) 9006 if (!item.isEmpty()) 9007 return true; 9008 return false; 9009 } 9010 9011 /** 9012 * @return {@link #performerLinkId} (Id [identifier??] of the clause or question 9013 * text related to the reason type or reference of this action in the 9014 * referenced form or QuestionnaireResponse.) 9015 */ 9016 public StringType addPerformerLinkIdElement() {// 2 9017 StringType t = new StringType(); 9018 if (this.performerLinkId == null) 9019 this.performerLinkId = new ArrayList<StringType>(); 9020 this.performerLinkId.add(t); 9021 return t; 9022 } 9023 9024 /** 9025 * @param value {@link #performerLinkId} (Id [identifier??] of the clause or 9026 * question text related to the reason type or reference of this 9027 * action in the referenced form or QuestionnaireResponse.) 9028 */ 9029 public ActionComponent addPerformerLinkId(String value) { // 1 9030 StringType t = new StringType(); 9031 t.setValue(value); 9032 if (this.performerLinkId == null) 9033 this.performerLinkId = new ArrayList<StringType>(); 9034 this.performerLinkId.add(t); 9035 return this; 9036 } 9037 9038 /** 9039 * @param value {@link #performerLinkId} (Id [identifier??] of the clause or 9040 * question text related to the reason type or reference of this 9041 * action in the referenced form or QuestionnaireResponse.) 9042 */ 9043 public boolean hasPerformerLinkId(String value) { 9044 if (this.performerLinkId == null) 9045 return false; 9046 for (StringType v : this.performerLinkId) 9047 if (v.getValue().equals(value)) // string 9048 return true; 9049 return false; 9050 } 9051 9052 /** 9053 * @return {@link #reasonCode} (Rationale for the action to be performed or not 9054 * performed. Describes why the action is permitted or prohibited.) 9055 */ 9056 public List<CodeableConcept> getReasonCode() { 9057 if (this.reasonCode == null) 9058 this.reasonCode = new ArrayList<CodeableConcept>(); 9059 return this.reasonCode; 9060 } 9061 9062 /** 9063 * @return Returns a reference to <code>this</code> for easy method chaining 9064 */ 9065 public ActionComponent setReasonCode(List<CodeableConcept> theReasonCode) { 9066 this.reasonCode = theReasonCode; 9067 return this; 9068 } 9069 9070 public boolean hasReasonCode() { 9071 if (this.reasonCode == null) 9072 return false; 9073 for (CodeableConcept item : this.reasonCode) 9074 if (!item.isEmpty()) 9075 return true; 9076 return false; 9077 } 9078 9079 public CodeableConcept addReasonCode() { // 3 9080 CodeableConcept t = new CodeableConcept(); 9081 if (this.reasonCode == null) 9082 this.reasonCode = new ArrayList<CodeableConcept>(); 9083 this.reasonCode.add(t); 9084 return t; 9085 } 9086 9087 public ActionComponent addReasonCode(CodeableConcept t) { // 3 9088 if (t == null) 9089 return this; 9090 if (this.reasonCode == null) 9091 this.reasonCode = new ArrayList<CodeableConcept>(); 9092 this.reasonCode.add(t); 9093 return this; 9094 } 9095 9096 /** 9097 * @return The first repetition of repeating field {@link #reasonCode}, creating 9098 * it if it does not already exist 9099 */ 9100 public CodeableConcept getReasonCodeFirstRep() { 9101 if (getReasonCode().isEmpty()) { 9102 addReasonCode(); 9103 } 9104 return getReasonCode().get(0); 9105 } 9106 9107 /** 9108 * @return {@link #reasonReference} (Indicates another resource whose existence 9109 * justifies permitting or not permitting this action.) 9110 */ 9111 public List<Reference> getReasonReference() { 9112 if (this.reasonReference == null) 9113 this.reasonReference = new ArrayList<Reference>(); 9114 return this.reasonReference; 9115 } 9116 9117 /** 9118 * @return Returns a reference to <code>this</code> for easy method chaining 9119 */ 9120 public ActionComponent setReasonReference(List<Reference> theReasonReference) { 9121 this.reasonReference = theReasonReference; 9122 return this; 9123 } 9124 9125 public boolean hasReasonReference() { 9126 if (this.reasonReference == null) 9127 return false; 9128 for (Reference item : this.reasonReference) 9129 if (!item.isEmpty()) 9130 return true; 9131 return false; 9132 } 9133 9134 public Reference addReasonReference() { // 3 9135 Reference t = new Reference(); 9136 if (this.reasonReference == null) 9137 this.reasonReference = new ArrayList<Reference>(); 9138 this.reasonReference.add(t); 9139 return t; 9140 } 9141 9142 public ActionComponent addReasonReference(Reference t) { // 3 9143 if (t == null) 9144 return this; 9145 if (this.reasonReference == null) 9146 this.reasonReference = new ArrayList<Reference>(); 9147 this.reasonReference.add(t); 9148 return this; 9149 } 9150 9151 /** 9152 * @return The first repetition of repeating field {@link #reasonReference}, 9153 * creating it if it does not already exist 9154 */ 9155 public Reference getReasonReferenceFirstRep() { 9156 if (getReasonReference().isEmpty()) { 9157 addReasonReference(); 9158 } 9159 return getReasonReference().get(0); 9160 } 9161 9162 /** 9163 * @deprecated Use Reference#setResource(IBaseResource) instead 9164 */ 9165 @Deprecated 9166 public List<Resource> getReasonReferenceTarget() { 9167 if (this.reasonReferenceTarget == null) 9168 this.reasonReferenceTarget = new ArrayList<Resource>(); 9169 return this.reasonReferenceTarget; 9170 } 9171 9172 /** 9173 * @return {@link #reason} (Describes why the action is to be performed or not 9174 * performed in textual form.) 9175 */ 9176 public List<StringType> getReason() { 9177 if (this.reason == null) 9178 this.reason = new ArrayList<StringType>(); 9179 return this.reason; 9180 } 9181 9182 /** 9183 * @return Returns a reference to <code>this</code> for easy method chaining 9184 */ 9185 public ActionComponent setReason(List<StringType> theReason) { 9186 this.reason = theReason; 9187 return this; 9188 } 9189 9190 public boolean hasReason() { 9191 if (this.reason == null) 9192 return false; 9193 for (StringType item : this.reason) 9194 if (!item.isEmpty()) 9195 return true; 9196 return false; 9197 } 9198 9199 /** 9200 * @return {@link #reason} (Describes why the action is to be performed or not 9201 * performed in textual form.) 9202 */ 9203 public StringType addReasonElement() {// 2 9204 StringType t = new StringType(); 9205 if (this.reason == null) 9206 this.reason = new ArrayList<StringType>(); 9207 this.reason.add(t); 9208 return t; 9209 } 9210 9211 /** 9212 * @param value {@link #reason} (Describes why the action is to be performed or 9213 * not performed in textual form.) 9214 */ 9215 public ActionComponent addReason(String value) { // 1 9216 StringType t = new StringType(); 9217 t.setValue(value); 9218 if (this.reason == null) 9219 this.reason = new ArrayList<StringType>(); 9220 this.reason.add(t); 9221 return this; 9222 } 9223 9224 /** 9225 * @param value {@link #reason} (Describes why the action is to be performed or 9226 * not performed in textual form.) 9227 */ 9228 public boolean hasReason(String value) { 9229 if (this.reason == null) 9230 return false; 9231 for (StringType v : this.reason) 9232 if (v.getValue().equals(value)) // string 9233 return true; 9234 return false; 9235 } 9236 9237 /** 9238 * @return {@link #reasonLinkId} (Id [identifier??] of the clause or question 9239 * text related to the reason type or reference of this action in the 9240 * referenced form or QuestionnaireResponse.) 9241 */ 9242 public List<StringType> getReasonLinkId() { 9243 if (this.reasonLinkId == null) 9244 this.reasonLinkId = new ArrayList<StringType>(); 9245 return this.reasonLinkId; 9246 } 9247 9248 /** 9249 * @return Returns a reference to <code>this</code> for easy method chaining 9250 */ 9251 public ActionComponent setReasonLinkId(List<StringType> theReasonLinkId) { 9252 this.reasonLinkId = theReasonLinkId; 9253 return this; 9254 } 9255 9256 public boolean hasReasonLinkId() { 9257 if (this.reasonLinkId == null) 9258 return false; 9259 for (StringType item : this.reasonLinkId) 9260 if (!item.isEmpty()) 9261 return true; 9262 return false; 9263 } 9264 9265 /** 9266 * @return {@link #reasonLinkId} (Id [identifier??] of the clause or question 9267 * text related to the reason type or reference of this action in the 9268 * referenced form or QuestionnaireResponse.) 9269 */ 9270 public StringType addReasonLinkIdElement() {// 2 9271 StringType t = new StringType(); 9272 if (this.reasonLinkId == null) 9273 this.reasonLinkId = new ArrayList<StringType>(); 9274 this.reasonLinkId.add(t); 9275 return t; 9276 } 9277 9278 /** 9279 * @param value {@link #reasonLinkId} (Id [identifier??] of the clause or 9280 * question text related to the reason type or reference of this 9281 * action in the referenced form or QuestionnaireResponse.) 9282 */ 9283 public ActionComponent addReasonLinkId(String value) { // 1 9284 StringType t = new StringType(); 9285 t.setValue(value); 9286 if (this.reasonLinkId == null) 9287 this.reasonLinkId = new ArrayList<StringType>(); 9288 this.reasonLinkId.add(t); 9289 return this; 9290 } 9291 9292 /** 9293 * @param value {@link #reasonLinkId} (Id [identifier??] of the clause or 9294 * question text related to the reason type or reference of this 9295 * action in the referenced form or QuestionnaireResponse.) 9296 */ 9297 public boolean hasReasonLinkId(String value) { 9298 if (this.reasonLinkId == null) 9299 return false; 9300 for (StringType v : this.reasonLinkId) 9301 if (v.getValue().equals(value)) // string 9302 return true; 9303 return false; 9304 } 9305 9306 /** 9307 * @return {@link #note} (Comments made about the term action made by the 9308 * requester, performer, subject or other participants.) 9309 */ 9310 public List<Annotation> getNote() { 9311 if (this.note == null) 9312 this.note = new ArrayList<Annotation>(); 9313 return this.note; 9314 } 9315 9316 /** 9317 * @return Returns a reference to <code>this</code> for easy method chaining 9318 */ 9319 public ActionComponent setNote(List<Annotation> theNote) { 9320 this.note = theNote; 9321 return this; 9322 } 9323 9324 public boolean hasNote() { 9325 if (this.note == null) 9326 return false; 9327 for (Annotation item : this.note) 9328 if (!item.isEmpty()) 9329 return true; 9330 return false; 9331 } 9332 9333 public Annotation addNote() { // 3 9334 Annotation t = new Annotation(); 9335 if (this.note == null) 9336 this.note = new ArrayList<Annotation>(); 9337 this.note.add(t); 9338 return t; 9339 } 9340 9341 public ActionComponent addNote(Annotation t) { // 3 9342 if (t == null) 9343 return this; 9344 if (this.note == null) 9345 this.note = new ArrayList<Annotation>(); 9346 this.note.add(t); 9347 return this; 9348 } 9349 9350 /** 9351 * @return The first repetition of repeating field {@link #note}, creating it if 9352 * it does not already exist 9353 */ 9354 public Annotation getNoteFirstRep() { 9355 if (getNote().isEmpty()) { 9356 addNote(); 9357 } 9358 return getNote().get(0); 9359 } 9360 9361 /** 9362 * @return {@link #securityLabelNumber} (Security labels that protects the 9363 * action.) 9364 */ 9365 public List<UnsignedIntType> getSecurityLabelNumber() { 9366 if (this.securityLabelNumber == null) 9367 this.securityLabelNumber = new ArrayList<UnsignedIntType>(); 9368 return this.securityLabelNumber; 9369 } 9370 9371 /** 9372 * @return Returns a reference to <code>this</code> for easy method chaining 9373 */ 9374 public ActionComponent setSecurityLabelNumber(List<UnsignedIntType> theSecurityLabelNumber) { 9375 this.securityLabelNumber = theSecurityLabelNumber; 9376 return this; 9377 } 9378 9379 public boolean hasSecurityLabelNumber() { 9380 if (this.securityLabelNumber == null) 9381 return false; 9382 for (UnsignedIntType item : this.securityLabelNumber) 9383 if (!item.isEmpty()) 9384 return true; 9385 return false; 9386 } 9387 9388 /** 9389 * @return {@link #securityLabelNumber} (Security labels that protects the 9390 * action.) 9391 */ 9392 public UnsignedIntType addSecurityLabelNumberElement() {// 2 9393 UnsignedIntType t = new UnsignedIntType(); 9394 if (this.securityLabelNumber == null) 9395 this.securityLabelNumber = new ArrayList<UnsignedIntType>(); 9396 this.securityLabelNumber.add(t); 9397 return t; 9398 } 9399 9400 /** 9401 * @param value {@link #securityLabelNumber} (Security labels that protects the 9402 * action.) 9403 */ 9404 public ActionComponent addSecurityLabelNumber(int value) { // 1 9405 UnsignedIntType t = new UnsignedIntType(); 9406 t.setValue(value); 9407 if (this.securityLabelNumber == null) 9408 this.securityLabelNumber = new ArrayList<UnsignedIntType>(); 9409 this.securityLabelNumber.add(t); 9410 return this; 9411 } 9412 9413 /** 9414 * @param value {@link #securityLabelNumber} (Security labels that protects the 9415 * action.) 9416 */ 9417 public boolean hasSecurityLabelNumber(int value) { 9418 if (this.securityLabelNumber == null) 9419 return false; 9420 for (UnsignedIntType v : this.securityLabelNumber) 9421 if (v.getValue().equals(value)) // unsignedInt 9422 return true; 9423 return false; 9424 } 9425 9426 protected void listChildren(List<Property> children) { 9427 super.listChildren(children); 9428 children 9429 .add(new Property("doNotPerform", "boolean", "True if the term prohibits the action.", 0, 1, doNotPerform)); 9430 children.add(new Property("type", "CodeableConcept", 9431 "Activity or service obligation to be done or not done, performed or not performed, effectuated or not by this Contract term.", 9432 0, 1, type)); 9433 children.add(new Property("subject", "", "Entity of the action.", 0, java.lang.Integer.MAX_VALUE, subject)); 9434 children.add(new Property("intent", "CodeableConcept", 9435 "Reason or purpose for the action stipulated by this Contract Provision.", 0, 1, intent)); 9436 children.add(new Property("linkId", "string", 9437 "Id [identifier??] of the clause or question text related to this action in the referenced form or QuestionnaireResponse.", 9438 0, java.lang.Integer.MAX_VALUE, linkId)); 9439 children.add(new Property("status", "CodeableConcept", "Current state of the term action.", 0, 1, status)); 9440 children.add(new Property("context", "Reference(Encounter|EpisodeOfCare)", 9441 "Encounter or Episode with primary association to specified term activity.", 0, 1, context)); 9442 children.add(new Property("contextLinkId", "string", 9443 "Id [identifier??] of the clause or question text related to the requester of this action in the referenced form or QuestionnaireResponse.", 9444 0, java.lang.Integer.MAX_VALUE, contextLinkId)); 9445 children.add(new Property("occurrence[x]", "dateTime|Period|Timing", "When action happens.", 0, 1, occurrence)); 9446 children.add(new Property("requester", 9447 "Reference(Patient|RelatedPerson|Practitioner|PractitionerRole|Device|Group|Organization)", 9448 "Who or what initiated the action and has responsibility for its activation.", 0, java.lang.Integer.MAX_VALUE, 9449 requester)); 9450 children.add(new Property("requesterLinkId", "string", 9451 "Id [identifier??] of the clause or question text related to the requester of this action in the referenced form or QuestionnaireResponse.", 9452 0, java.lang.Integer.MAX_VALUE, requesterLinkId)); 9453 children.add(new Property("performerType", "CodeableConcept", 9454 "The type of individual that is desired or required to perform or not perform the action.", 0, 9455 java.lang.Integer.MAX_VALUE, performerType)); 9456 children.add(new Property("performerRole", "CodeableConcept", 9457 "The type of role or competency of an individual desired or required to perform or not perform the action.", 9458 0, 1, performerRole)); 9459 children.add(new Property("performer", 9460 "Reference(RelatedPerson|Patient|Practitioner|PractitionerRole|CareTeam|Device|Substance|Organization|Location)", 9461 "Indicates who or what is being asked to perform (or not perform) the ction.", 0, 1, performer)); 9462 children.add(new Property("performerLinkId", "string", 9463 "Id [identifier??] of the clause or question text related to the reason type or reference of this action in the referenced form or QuestionnaireResponse.", 9464 0, java.lang.Integer.MAX_VALUE, performerLinkId)); 9465 children.add(new Property("reasonCode", "CodeableConcept", 9466 "Rationale for the action to be performed or not performed. Describes why the action is permitted or prohibited.", 9467 0, java.lang.Integer.MAX_VALUE, reasonCode)); 9468 children.add(new Property("reasonReference", 9469 "Reference(Condition|Observation|DiagnosticReport|DocumentReference|Questionnaire|QuestionnaireResponse)", 9470 "Indicates another resource whose existence justifies permitting or not permitting this action.", 0, 9471 java.lang.Integer.MAX_VALUE, reasonReference)); 9472 children.add(new Property("reason", "string", 9473 "Describes why the action is to be performed or not performed in textual form.", 0, 9474 java.lang.Integer.MAX_VALUE, reason)); 9475 children.add(new Property("reasonLinkId", "string", 9476 "Id [identifier??] of the clause or question text related to the reason type or reference of this action in the referenced form or QuestionnaireResponse.", 9477 0, java.lang.Integer.MAX_VALUE, reasonLinkId)); 9478 children.add(new Property("note", "Annotation", 9479 "Comments made about the term action made by the requester, performer, subject or other participants.", 0, 9480 java.lang.Integer.MAX_VALUE, note)); 9481 children.add(new Property("securityLabelNumber", "unsignedInt", "Security labels that protects the action.", 0, 9482 java.lang.Integer.MAX_VALUE, securityLabelNumber)); 9483 } 9484 9485 @Override 9486 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 9487 switch (_hash) { 9488 case -1788508167: 9489 /* doNotPerform */ return new Property("doNotPerform", "boolean", "True if the term prohibits the action.", 0, 9490 1, doNotPerform); 9491 case 3575610: 9492 /* type */ return new Property("type", "CodeableConcept", 9493 "Activity or service obligation to be done or not done, performed or not performed, effectuated or not by this Contract term.", 9494 0, 1, type); 9495 case -1867885268: 9496 /* subject */ return new Property("subject", "", "Entity of the action.", 0, java.lang.Integer.MAX_VALUE, 9497 subject); 9498 case -1183762788: 9499 /* intent */ return new Property("intent", "CodeableConcept", 9500 "Reason or purpose for the action stipulated by this Contract Provision.", 0, 1, intent); 9501 case -1102667083: 9502 /* linkId */ return new Property("linkId", "string", 9503 "Id [identifier??] of the clause or question text related to this action in the referenced form or QuestionnaireResponse.", 9504 0, java.lang.Integer.MAX_VALUE, linkId); 9505 case -892481550: 9506 /* status */ return new Property("status", "CodeableConcept", "Current state of the term action.", 0, 1, 9507 status); 9508 case 951530927: 9509 /* context */ return new Property("context", "Reference(Encounter|EpisodeOfCare)", 9510 "Encounter or Episode with primary association to specified term activity.", 0, 1, context); 9511 case -288783036: 9512 /* contextLinkId */ return new Property("contextLinkId", "string", 9513 "Id [identifier??] of the clause or question text related to the requester of this action in the referenced form or QuestionnaireResponse.", 9514 0, java.lang.Integer.MAX_VALUE, contextLinkId); 9515 case -2022646513: 9516 /* occurrence[x] */ return new Property("occurrence[x]", "dateTime|Period|Timing", "When action happens.", 0, 1, 9517 occurrence); 9518 case 1687874001: 9519 /* occurrence */ return new Property("occurrence[x]", "dateTime|Period|Timing", "When action happens.", 0, 1, 9520 occurrence); 9521 case -298443636: 9522 /* occurrenceDateTime */ return new Property("occurrence[x]", "dateTime|Period|Timing", "When action happens.", 9523 0, 1, occurrence); 9524 case 1397156594: 9525 /* occurrencePeriod */ return new Property("occurrence[x]", "dateTime|Period|Timing", "When action happens.", 0, 9526 1, occurrence); 9527 case 1515218299: 9528 /* occurrenceTiming */ return new Property("occurrence[x]", "dateTime|Period|Timing", "When action happens.", 0, 9529 1, occurrence); 9530 case 693933948: 9531 /* requester */ return new Property("requester", 9532 "Reference(Patient|RelatedPerson|Practitioner|PractitionerRole|Device|Group|Organization)", 9533 "Who or what initiated the action and has responsibility for its activation.", 0, 9534 java.lang.Integer.MAX_VALUE, requester); 9535 case -1468032687: 9536 /* requesterLinkId */ return new Property("requesterLinkId", "string", 9537 "Id [identifier??] of the clause or question text related to the requester of this action in the referenced form or QuestionnaireResponse.", 9538 0, java.lang.Integer.MAX_VALUE, requesterLinkId); 9539 case -901444568: 9540 /* performerType */ return new Property("performerType", "CodeableConcept", 9541 "The type of individual that is desired or required to perform or not perform the action.", 0, 9542 java.lang.Integer.MAX_VALUE, performerType); 9543 case -901513884: 9544 /* performerRole */ return new Property("performerRole", "CodeableConcept", 9545 "The type of role or competency of an individual desired or required to perform or not perform the action.", 9546 0, 1, performerRole); 9547 case 481140686: 9548 /* performer */ return new Property("performer", 9549 "Reference(RelatedPerson|Patient|Practitioner|PractitionerRole|CareTeam|Device|Substance|Organization|Location)", 9550 "Indicates who or what is being asked to perform (or not perform) the ction.", 0, 1, performer); 9551 case 1051302947: 9552 /* performerLinkId */ return new Property("performerLinkId", "string", 9553 "Id [identifier??] of the clause or question text related to the reason type or reference of this action in the referenced form or QuestionnaireResponse.", 9554 0, java.lang.Integer.MAX_VALUE, performerLinkId); 9555 case 722137681: 9556 /* reasonCode */ return new Property("reasonCode", "CodeableConcept", 9557 "Rationale for the action to be performed or not performed. Describes why the action is permitted or prohibited.", 9558 0, java.lang.Integer.MAX_VALUE, reasonCode); 9559 case -1146218137: 9560 /* reasonReference */ return new Property("reasonReference", 9561 "Reference(Condition|Observation|DiagnosticReport|DocumentReference|Questionnaire|QuestionnaireResponse)", 9562 "Indicates another resource whose existence justifies permitting or not permitting this action.", 0, 9563 java.lang.Integer.MAX_VALUE, reasonReference); 9564 case -934964668: 9565 /* reason */ return new Property("reason", "string", 9566 "Describes why the action is to be performed or not performed in textual form.", 0, 9567 java.lang.Integer.MAX_VALUE, reason); 9568 case -1557963239: 9569 /* reasonLinkId */ return new Property("reasonLinkId", "string", 9570 "Id [identifier??] of the clause or question text related to the reason type or reference of this action in the referenced form or QuestionnaireResponse.", 9571 0, java.lang.Integer.MAX_VALUE, reasonLinkId); 9572 case 3387378: 9573 /* note */ return new Property("note", "Annotation", 9574 "Comments made about the term action made by the requester, performer, subject or other participants.", 0, 9575 java.lang.Integer.MAX_VALUE, note); 9576 case -149460995: 9577 /* securityLabelNumber */ return new Property("securityLabelNumber", "unsignedInt", 9578 "Security labels that protects the action.", 0, java.lang.Integer.MAX_VALUE, securityLabelNumber); 9579 default: 9580 return super.getNamedProperty(_hash, _name, _checkValid); 9581 } 9582 9583 } 9584 9585 @Override 9586 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 9587 switch (hash) { 9588 case -1788508167: 9589 /* doNotPerform */ return this.doNotPerform == null ? new Base[0] : new Base[] { this.doNotPerform }; // BooleanType 9590 case 3575610: 9591 /* type */ return this.type == null ? new Base[0] : new Base[] { this.type }; // CodeableConcept 9592 case -1867885268: 9593 /* subject */ return this.subject == null ? new Base[0] : this.subject.toArray(new Base[this.subject.size()]); // ActionSubjectComponent 9594 case -1183762788: 9595 /* intent */ return this.intent == null ? new Base[0] : new Base[] { this.intent }; // CodeableConcept 9596 case -1102667083: 9597 /* linkId */ return this.linkId == null ? new Base[0] : this.linkId.toArray(new Base[this.linkId.size()]); // StringType 9598 case -892481550: 9599 /* status */ return this.status == null ? new Base[0] : new Base[] { this.status }; // CodeableConcept 9600 case 951530927: 9601 /* context */ return this.context == null ? new Base[0] : new Base[] { this.context }; // Reference 9602 case -288783036: 9603 /* contextLinkId */ return this.contextLinkId == null ? new Base[0] 9604 : this.contextLinkId.toArray(new Base[this.contextLinkId.size()]); // StringType 9605 case 1687874001: 9606 /* occurrence */ return this.occurrence == null ? new Base[0] : new Base[] { this.occurrence }; // Type 9607 case 693933948: 9608 /* requester */ return this.requester == null ? new Base[0] 9609 : this.requester.toArray(new Base[this.requester.size()]); // Reference 9610 case -1468032687: 9611 /* requesterLinkId */ return this.requesterLinkId == null ? new Base[0] 9612 : this.requesterLinkId.toArray(new Base[this.requesterLinkId.size()]); // StringType 9613 case -901444568: 9614 /* performerType */ return this.performerType == null ? new Base[0] 9615 : this.performerType.toArray(new Base[this.performerType.size()]); // CodeableConcept 9616 case -901513884: 9617 /* performerRole */ return this.performerRole == null ? new Base[0] : new Base[] { this.performerRole }; // CodeableConcept 9618 case 481140686: 9619 /* performer */ return this.performer == null ? new Base[0] : new Base[] { this.performer }; // Reference 9620 case 1051302947: 9621 /* performerLinkId */ return this.performerLinkId == null ? new Base[0] 9622 : this.performerLinkId.toArray(new Base[this.performerLinkId.size()]); // StringType 9623 case 722137681: 9624 /* reasonCode */ return this.reasonCode == null ? new Base[0] 9625 : this.reasonCode.toArray(new Base[this.reasonCode.size()]); // CodeableConcept 9626 case -1146218137: 9627 /* reasonReference */ return this.reasonReference == null ? new Base[0] 9628 : this.reasonReference.toArray(new Base[this.reasonReference.size()]); // Reference 9629 case -934964668: 9630 /* reason */ return this.reason == null ? new Base[0] : this.reason.toArray(new Base[this.reason.size()]); // StringType 9631 case -1557963239: 9632 /* reasonLinkId */ return this.reasonLinkId == null ? new Base[0] 9633 : this.reasonLinkId.toArray(new Base[this.reasonLinkId.size()]); // StringType 9634 case 3387378: 9635 /* note */ return this.note == null ? new Base[0] : this.note.toArray(new Base[this.note.size()]); // Annotation 9636 case -149460995: 9637 /* securityLabelNumber */ return this.securityLabelNumber == null ? new Base[0] 9638 : this.securityLabelNumber.toArray(new Base[this.securityLabelNumber.size()]); // UnsignedIntType 963