001package org.hl7.fhir.r4.model; 002 003/* 004 Copyright (c) 2011+, HL7, Inc. 005 All rights reserved. 006 007 Redistribution and use in source and binary forms, with or without modification, 008 are permitted provided that the following conditions are met: 009 010 * Redistributions of source code must retain the above copyright notice, this 011 list of conditions and the following disclaimer. 012 * Redistributions in binary form must reproduce the above copyright notice, 013 this list of conditions and the following disclaimer in the documentation 014 and/or other materials provided with the distribution. 015 * Neither the name of HL7 nor the names of its contributors may be used to 016 endorse or promote products derived from this software without specific 017 prior written permission. 018 019 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 020 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 021 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 022 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 023 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 024 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 025 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 026 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 027 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 028 POSSIBILITY OF SUCH DAMAGE. 029 030*/ 031 032// Generated on Tue, May 12, 2020 07:26+1000 for FHIR v4.0.1 033import java.util.ArrayList; 034import java.util.Date; 035import java.util.List; 036 037import org.hl7.fhir.exceptions.FHIRException; 038import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 039import org.hl7.fhir.r4.model.Enumerations.NoteType; 040import org.hl7.fhir.r4.model.Enumerations.NoteTypeEnumFactory; 041import org.hl7.fhir.r4.model.Enumerations.RemittanceOutcome; 042import org.hl7.fhir.r4.model.Enumerations.RemittanceOutcomeEnumFactory; 043import org.hl7.fhir.utilities.Utilities; 044 045import ca.uhn.fhir.model.api.annotation.Block; 046import ca.uhn.fhir.model.api.annotation.Child; 047import ca.uhn.fhir.model.api.annotation.Description; 048import ca.uhn.fhir.model.api.annotation.ResourceDef; 049import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 050 051/** 052 * This resource provides the details including amount of a payment and 053 * allocates the payment items being paid. 054 */ 055@ResourceDef(name = "PaymentReconciliation", profile = "http://hl7.org/fhir/StructureDefinition/PaymentReconciliation") 056public class PaymentReconciliation extends DomainResource { 057 058 public enum PaymentReconciliationStatus { 059 /** 060 * The instance is currently in-force. 061 */ 062 ACTIVE, 063 /** 064 * The instance is withdrawn, rescinded or reversed. 065 */ 066 CANCELLED, 067 /** 068 * A new instance the contents of which is not complete. 069 */ 070 DRAFT, 071 /** 072 * The instance was entered in error. 073 */ 074 ENTEREDINERROR, 075 /** 076 * added to help the parsers with the generic types 077 */ 078 NULL; 079 080 public static PaymentReconciliationStatus fromCode(String codeString) throws FHIRException { 081 if (codeString == null || "".equals(codeString)) 082 return null; 083 if ("active".equals(codeString)) 084 return ACTIVE; 085 if ("cancelled".equals(codeString)) 086 return CANCELLED; 087 if ("draft".equals(codeString)) 088 return DRAFT; 089 if ("entered-in-error".equals(codeString)) 090 return ENTEREDINERROR; 091 if (Configuration.isAcceptInvalidEnums()) 092 return null; 093 else 094 throw new FHIRException("Unknown PaymentReconciliationStatus code '" + codeString + "'"); 095 } 096 097 public String toCode() { 098 switch (this) { 099 case ACTIVE: 100 return "active"; 101 case CANCELLED: 102 return "cancelled"; 103 case DRAFT: 104 return "draft"; 105 case ENTEREDINERROR: 106 return "entered-in-error"; 107 case NULL: 108 return null; 109 default: 110 return "?"; 111 } 112 } 113 114 public String getSystem() { 115 switch (this) { 116 case ACTIVE: 117 return "http://hl7.org/fhir/fm-status"; 118 case CANCELLED: 119 return "http://hl7.org/fhir/fm-status"; 120 case DRAFT: 121 return "http://hl7.org/fhir/fm-status"; 122 case ENTEREDINERROR: 123 return "http://hl7.org/fhir/fm-status"; 124 case NULL: 125 return null; 126 default: 127 return "?"; 128 } 129 } 130 131 public String getDefinition() { 132 switch (this) { 133 case ACTIVE: 134 return "The instance is currently in-force."; 135 case CANCELLED: 136 return "The instance is withdrawn, rescinded or reversed."; 137 case DRAFT: 138 return "A new instance the contents of which is not complete."; 139 case ENTEREDINERROR: 140 return "The instance was entered in error."; 141 case NULL: 142 return null; 143 default: 144 return "?"; 145 } 146 } 147 148 public String getDisplay() { 149 switch (this) { 150 case ACTIVE: 151 return "Active"; 152 case CANCELLED: 153 return "Cancelled"; 154 case DRAFT: 155 return "Draft"; 156 case ENTEREDINERROR: 157 return "Entered in Error"; 158 case NULL: 159 return null; 160 default: 161 return "?"; 162 } 163 } 164 } 165 166 public static class PaymentReconciliationStatusEnumFactory implements EnumFactory<PaymentReconciliationStatus> { 167 public PaymentReconciliationStatus fromCode(String codeString) throws IllegalArgumentException { 168 if (codeString == null || "".equals(codeString)) 169 if (codeString == null || "".equals(codeString)) 170 return null; 171 if ("active".equals(codeString)) 172 return PaymentReconciliationStatus.ACTIVE; 173 if ("cancelled".equals(codeString)) 174 return PaymentReconciliationStatus.CANCELLED; 175 if ("draft".equals(codeString)) 176 return PaymentReconciliationStatus.DRAFT; 177 if ("entered-in-error".equals(codeString)) 178 return PaymentReconciliationStatus.ENTEREDINERROR; 179 throw new IllegalArgumentException("Unknown PaymentReconciliationStatus code '" + codeString + "'"); 180 } 181 182 public Enumeration<PaymentReconciliationStatus> fromType(PrimitiveType<?> code) throws FHIRException { 183 if (code == null) 184 return null; 185 if (code.isEmpty()) 186 return new Enumeration<PaymentReconciliationStatus>(this, PaymentReconciliationStatus.NULL, code); 187 String codeString = code.asStringValue(); 188 if (codeString == null || "".equals(codeString)) 189 return new Enumeration<PaymentReconciliationStatus>(this, PaymentReconciliationStatus.NULL, code); 190 if ("active".equals(codeString)) 191 return new Enumeration<PaymentReconciliationStatus>(this, PaymentReconciliationStatus.ACTIVE, code); 192 if ("cancelled".equals(codeString)) 193 return new Enumeration<PaymentReconciliationStatus>(this, PaymentReconciliationStatus.CANCELLED, code); 194 if ("draft".equals(codeString)) 195 return new Enumeration<PaymentReconciliationStatus>(this, PaymentReconciliationStatus.DRAFT, code); 196 if ("entered-in-error".equals(codeString)) 197 return new Enumeration<PaymentReconciliationStatus>(this, PaymentReconciliationStatus.ENTEREDINERROR, code); 198 throw new FHIRException("Unknown PaymentReconciliationStatus code '" + codeString + "'"); 199 } 200 201 public String toCode(PaymentReconciliationStatus code) { 202 if (code == PaymentReconciliationStatus.ACTIVE) 203 return "active"; 204 if (code == PaymentReconciliationStatus.CANCELLED) 205 return "cancelled"; 206 if (code == PaymentReconciliationStatus.DRAFT) 207 return "draft"; 208 if (code == PaymentReconciliationStatus.ENTEREDINERROR) 209 return "entered-in-error"; 210 return "?"; 211 } 212 213 public String toSystem(PaymentReconciliationStatus code) { 214 return code.getSystem(); 215 } 216 } 217 218 @Block() 219 public static class DetailsComponent extends BackboneElement implements IBaseBackboneElement { 220 /** 221 * Unique identifier for the current payment item for the referenced payable. 222 */ 223 @Child(name = "identifier", type = { 224 Identifier.class }, order = 1, min = 0, max = 1, modifier = false, summary = false) 225 @Description(shortDefinition = "Business identifier of the payment detail", formalDefinition = "Unique identifier for the current payment item for the referenced payable.") 226 protected Identifier identifier; 227 228 /** 229 * Unique identifier for the prior payment item for the referenced payable. 230 */ 231 @Child(name = "predecessor", type = { 232 Identifier.class }, order = 2, min = 0, max = 1, modifier = false, summary = false) 233 @Description(shortDefinition = "Business identifier of the prior payment detail", formalDefinition = "Unique identifier for the prior payment item for the referenced payable.") 234 protected Identifier predecessor; 235 236 /** 237 * Code to indicate the nature of the payment. 238 */ 239 @Child(name = "type", type = { 240 CodeableConcept.class }, order = 3, min = 1, max = 1, modifier = false, summary = false) 241 @Description(shortDefinition = "Category of payment", formalDefinition = "Code to indicate the nature of the payment.") 242 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/payment-type") 243 protected CodeableConcept type; 244 245 /** 246 * A resource, such as a Claim, the evaluation of which could lead to payment. 247 */ 248 @Child(name = "request", type = { Reference.class }, order = 4, min = 0, max = 1, modifier = false, summary = false) 249 @Description(shortDefinition = "Request giving rise to the payment", formalDefinition = "A resource, such as a Claim, the evaluation of which could lead to payment.") 250 protected Reference request; 251 252 /** 253 * The actual object that is the target of the reference (A resource, such as a 254 * Claim, the evaluation of which could lead to payment.) 255 */ 256 protected Resource requestTarget; 257 258 /** 259 * The party which submitted the claim or financial transaction. 260 */ 261 @Child(name = "submitter", type = { Practitioner.class, PractitionerRole.class, 262 Organization.class }, order = 5, min = 0, max = 1, modifier = false, summary = false) 263 @Description(shortDefinition = "Submitter of the request", formalDefinition = "The party which submitted the claim or financial transaction.") 264 protected Reference submitter; 265 266 /** 267 * The actual object that is the target of the reference (The party which 268 * submitted the claim or financial transaction.) 269 */ 270 protected Resource submitterTarget; 271 272 /** 273 * A resource, such as a ClaimResponse, which contains a commitment to payment. 274 */ 275 @Child(name = "response", type = { 276 Reference.class }, order = 6, min = 0, max = 1, modifier = false, summary = false) 277 @Description(shortDefinition = "Response committing to a payment", formalDefinition = "A resource, such as a ClaimResponse, which contains a commitment to payment.") 278 protected Reference response; 279 280 /** 281 * The actual object that is the target of the reference (A resource, such as a 282 * ClaimResponse, which contains a commitment to payment.) 283 */ 284 protected Resource responseTarget; 285 286 /** 287 * The date from the response resource containing a commitment to pay. 288 */ 289 @Child(name = "date", type = { DateType.class }, order = 7, min = 0, max = 1, modifier = false, summary = false) 290 @Description(shortDefinition = "Date of commitment to pay", formalDefinition = "The date from the response resource containing a commitment to pay.") 291 protected DateType date; 292 293 /** 294 * A reference to the individual who is responsible for inquiries regarding the 295 * response and its payment. 296 */ 297 @Child(name = "responsible", type = { 298 PractitionerRole.class }, order = 8, min = 0, max = 1, modifier = false, summary = false) 299 @Description(shortDefinition = "Contact for the response", formalDefinition = "A reference to the individual who is responsible for inquiries regarding the response and its payment.") 300 protected Reference responsible; 301 302 /** 303 * The actual object that is the target of the reference (A reference to the 304 * individual who is responsible for inquiries regarding the response and its 305 * payment.) 306 */ 307 protected PractitionerRole responsibleTarget; 308 309 /** 310 * The party which is receiving the payment. 311 */ 312 @Child(name = "payee", type = { Practitioner.class, PractitionerRole.class, 313 Organization.class }, order = 9, min = 0, max = 1, modifier = false, summary = false) 314 @Description(shortDefinition = "Recipient of the payment", formalDefinition = "The party which is receiving the payment.") 315 protected Reference payee; 316 317 /** 318 * The actual object that is the target of the reference (The party which is 319 * receiving the payment.) 320 */ 321 protected Resource payeeTarget; 322 323 /** 324 * The monetary amount allocated from the total payment to the payable. 325 */ 326 @Child(name = "amount", type = { Money.class }, order = 10, min = 0, max = 1, modifier = false, summary = false) 327 @Description(shortDefinition = "Amount allocated to this payable", formalDefinition = "The monetary amount allocated from the total payment to the payable.") 328 protected Money amount; 329 330 private static final long serialVersionUID = -1361848619L; 331 332 /** 333 * Constructor 334 */ 335 public DetailsComponent() { 336 super(); 337 } 338 339 /** 340 * Constructor 341 */ 342 public DetailsComponent(CodeableConcept type) { 343 super(); 344 this.type = type; 345 } 346 347 /** 348 * @return {@link #identifier} (Unique identifier for the current payment item 349 * for the referenced payable.) 350 */ 351 public Identifier getIdentifier() { 352 if (this.identifier == null) 353 if (Configuration.errorOnAutoCreate()) 354 throw new Error("Attempt to auto-create DetailsComponent.identifier"); 355 else if (Configuration.doAutoCreate()) 356 this.identifier = new Identifier(); // cc 357 return this.identifier; 358 } 359 360 public boolean hasIdentifier() { 361 return this.identifier != null && !this.identifier.isEmpty(); 362 } 363 364 /** 365 * @param value {@link #identifier} (Unique identifier for the current payment 366 * item for the referenced payable.) 367 */ 368 public DetailsComponent setIdentifier(Identifier value) { 369 this.identifier = value; 370 return this; 371 } 372 373 /** 374 * @return {@link #predecessor} (Unique identifier for the prior payment item 375 * for the referenced payable.) 376 */ 377 public Identifier getPredecessor() { 378 if (this.predecessor == null) 379 if (Configuration.errorOnAutoCreate()) 380 throw new Error("Attempt to auto-create DetailsComponent.predecessor"); 381 else if (Configuration.doAutoCreate()) 382 this.predecessor = new Identifier(); // cc 383 return this.predecessor; 384 } 385 386 public boolean hasPredecessor() { 387 return this.predecessor != null && !this.predecessor.isEmpty(); 388 } 389 390 /** 391 * @param value {@link #predecessor} (Unique identifier for the prior payment 392 * item for the referenced payable.) 393 */ 394 public DetailsComponent setPredecessor(Identifier value) { 395 this.predecessor = value; 396 return this; 397 } 398 399 /** 400 * @return {@link #type} (Code to indicate the nature of the payment.) 401 */ 402 public CodeableConcept getType() { 403 if (this.type == null) 404 if (Configuration.errorOnAutoCreate()) 405 throw new Error("Attempt to auto-create DetailsComponent.type"); 406 else if (Configuration.doAutoCreate()) 407 this.type = new CodeableConcept(); // cc 408 return this.type; 409 } 410 411 public boolean hasType() { 412 return this.type != null && !this.type.isEmpty(); 413 } 414 415 /** 416 * @param value {@link #type} (Code to indicate the nature of the payment.) 417 */ 418 public DetailsComponent setType(CodeableConcept value) { 419 this.type = value; 420 return this; 421 } 422 423 /** 424 * @return {@link #request} (A resource, such as a Claim, the evaluation of 425 * which could lead to payment.) 426 */ 427 public Reference getRequest() { 428 if (this.request == null) 429 if (Configuration.errorOnAutoCreate()) 430 throw new Error("Attempt to auto-create DetailsComponent.request"); 431 else if (Configuration.doAutoCreate()) 432 this.request = new Reference(); // cc 433 return this.request; 434 } 435 436 public boolean hasRequest() { 437 return this.request != null && !this.request.isEmpty(); 438 } 439 440 /** 441 * @param value {@link #request} (A resource, such as a Claim, the evaluation of 442 * which could lead to payment.) 443 */ 444 public DetailsComponent setRequest(Reference value) { 445 this.request = value; 446 return this; 447 } 448 449 /** 450 * @return {@link #request} The actual object that is the target of the 451 * reference. The reference library doesn't populate this, but you can 452 * use it to hold the resource if you resolve it. (A resource, such as a 453 * Claim, the evaluation of which could lead to payment.) 454 */ 455 public Resource getRequestTarget() { 456 return this.requestTarget; 457 } 458 459 /** 460 * @param value {@link #request} The actual object that is the target of the 461 * reference. The reference library doesn't use these, but you can 462 * use it to hold the resource if you resolve it. (A resource, such 463 * as a Claim, the evaluation of which could lead to payment.) 464 */ 465 public DetailsComponent setRequestTarget(Resource value) { 466 this.requestTarget = value; 467 return this; 468 } 469 470 /** 471 * @return {@link #submitter} (The party which submitted the claim or financial 472 * transaction.) 473 */ 474 public Reference getSubmitter() { 475 if (this.submitter == null) 476 if (Configuration.errorOnAutoCreate()) 477 throw new Error("Attempt to auto-create DetailsComponent.submitter"); 478 else if (Configuration.doAutoCreate()) 479 this.submitter = new Reference(); // cc 480 return this.submitter; 481 } 482 483 public boolean hasSubmitter() { 484 return this.submitter != null && !this.submitter.isEmpty(); 485 } 486 487 /** 488 * @param value {@link #submitter} (The party which submitted the claim or 489 * financial transaction.) 490 */ 491 public DetailsComponent setSubmitter(Reference value) { 492 this.submitter = value; 493 return this; 494 } 495 496 /** 497 * @return {@link #submitter} The actual object that is the target of the 498 * reference. The reference library doesn't populate this, but you can 499 * use it to hold the resource if you resolve it. (The party which 500 * submitted the claim or financial transaction.) 501 */ 502 public Resource getSubmitterTarget() { 503 return this.submitterTarget; 504 } 505 506 /** 507 * @param value {@link #submitter} The actual object that is the target of the 508 * reference. The reference library doesn't use these, but you can 509 * use it to hold the resource if you resolve it. (The party which 510 * submitted the claim or financial transaction.) 511 */ 512 public DetailsComponent setSubmitterTarget(Resource value) { 513 this.submitterTarget = value; 514 return this; 515 } 516 517 /** 518 * @return {@link #response} (A resource, such as a ClaimResponse, which 519 * contains a commitment to payment.) 520 */ 521 public Reference getResponse() { 522 if (this.response == null) 523 if (Configuration.errorOnAutoCreate()) 524 throw new Error("Attempt to auto-create DetailsComponent.response"); 525 else if (Configuration.doAutoCreate()) 526 this.response = new Reference(); // cc 527 return this.response; 528 } 529 530 public boolean hasResponse() { 531 return this.response != null && !this.response.isEmpty(); 532 } 533 534 /** 535 * @param value {@link #response} (A resource, such as a ClaimResponse, which 536 * contains a commitment to payment.) 537 */ 538 public DetailsComponent setResponse(Reference value) { 539 this.response = value; 540 return this; 541 } 542 543 /** 544 * @return {@link #response} The actual object that is the target of the 545 * reference. The reference library doesn't populate this, but you can 546 * use it to hold the resource if you resolve it. (A resource, such as a 547 * ClaimResponse, which contains a commitment to payment.) 548 */ 549 public Resource getResponseTarget() { 550 return this.responseTarget; 551 } 552 553 /** 554 * @param value {@link #response} The actual object that is the target of the 555 * reference. The reference library doesn't use these, but you can 556 * use it to hold the resource if you resolve it. (A resource, such 557 * as a ClaimResponse, which contains a commitment to payment.) 558 */ 559 public DetailsComponent setResponseTarget(Resource value) { 560 this.responseTarget = value; 561 return this; 562 } 563 564 /** 565 * @return {@link #date} (The date from the response resource containing a 566 * commitment to pay.). This is the underlying object with id, value and 567 * extensions. The accessor "getDate" gives direct access to the value 568 */ 569 public DateType getDateElement() { 570 if (this.date == null) 571 if (Configuration.errorOnAutoCreate()) 572 throw new Error("Attempt to auto-create DetailsComponent.date"); 573 else if (Configuration.doAutoCreate()) 574 this.date = new DateType(); // bb 575 return this.date; 576 } 577 578 public boolean hasDateElement() { 579 return this.date != null && !this.date.isEmpty(); 580 } 581 582 public boolean hasDate() { 583 return this.date != null && !this.date.isEmpty(); 584 } 585 586 /** 587 * @param value {@link #date} (The date from the response resource containing a 588 * commitment to pay.). This is the underlying object with id, 589 * value and extensions. The accessor "getDate" gives direct access 590 * to the value 591 */ 592 public DetailsComponent setDateElement(DateType value) { 593 this.date = value; 594 return this; 595 } 596 597 /** 598 * @return The date from the response resource containing a commitment to pay. 599 */ 600 public Date getDate() { 601 return this.date == null ? null : this.date.getValue(); 602 } 603 604 /** 605 * @param value The date from the response resource containing a commitment to 606 * pay. 607 */ 608 public DetailsComponent setDate(Date value) { 609 if (value == null) 610 this.date = null; 611 else { 612 if (this.date == null) 613 this.date = new DateType(); 614 this.date.setValue(value); 615 } 616 return this; 617 } 618 619 /** 620 * @return {@link #responsible} (A reference to the individual who is 621 * responsible for inquiries regarding the response and its payment.) 622 */ 623 public Reference getResponsible() { 624 if (this.responsible == null) 625 if (Configuration.errorOnAutoCreate()) 626 throw new Error("Attempt to auto-create DetailsComponent.responsible"); 627 else if (Configuration.doAutoCreate()) 628 this.responsible = new Reference(); // cc 629 return this.responsible; 630 } 631 632 public boolean hasResponsible() { 633 return this.responsible != null && !this.responsible.isEmpty(); 634 } 635 636 /** 637 * @param value {@link #responsible} (A reference to the individual who is 638 * responsible for inquiries regarding the response and its 639 * payment.) 640 */ 641 public DetailsComponent setResponsible(Reference value) { 642 this.responsible = value; 643 return this; 644 } 645 646 /** 647 * @return {@link #responsible} The actual object that is the target of the 648 * reference. The reference library doesn't populate this, but you can 649 * use it to hold the resource if you resolve it. (A reference to the 650 * individual who is responsible for inquiries regarding the response 651 * and its payment.) 652 */ 653 public PractitionerRole getResponsibleTarget() { 654 if (this.responsibleTarget == null) 655 if (Configuration.errorOnAutoCreate()) 656 throw new Error("Attempt to auto-create DetailsComponent.responsible"); 657 else if (Configuration.doAutoCreate()) 658 this.responsibleTarget = new PractitionerRole(); // aa 659 return this.responsibleTarget; 660 } 661 662 /** 663 * @param value {@link #responsible} The actual object that is the target of the 664 * reference. The reference library doesn't use these, but you can 665 * use it to hold the resource if you resolve it. (A reference to 666 * the individual who is responsible for inquiries regarding the 667 * response and its payment.) 668 */ 669 public DetailsComponent setResponsibleTarget(PractitionerRole value) { 670 this.responsibleTarget = value; 671 return this; 672 } 673 674 /** 675 * @return {@link #payee} (The party which is receiving the payment.) 676 */ 677 public Reference getPayee() { 678 if (this.payee == null) 679 if (Configuration.errorOnAutoCreate()) 680 throw new Error("Attempt to auto-create DetailsComponent.payee"); 681 else if (Configuration.doAutoCreate()) 682 this.payee = new Reference(); // cc 683 return this.payee; 684 } 685 686 public boolean hasPayee() { 687 return this.payee != null && !this.payee.isEmpty(); 688 } 689 690 /** 691 * @param value {@link #payee} (The party which is receiving the payment.) 692 */ 693 public DetailsComponent setPayee(Reference value) { 694 this.payee = value; 695 return this; 696 } 697 698 /** 699 * @return {@link #payee} The actual object that is the target of the reference. 700 * The reference library doesn't populate this, but you can use it to 701 * hold the resource if you resolve it. (The party which is receiving 702 * the payment.) 703 */ 704 public Resource getPayeeTarget() { 705 return this.payeeTarget; 706 } 707 708 /** 709 * @param value {@link #payee} The actual object that is the target of the 710 * reference. The reference library doesn't use these, but you can 711 * use it to hold the resource if you resolve it. (The party which 712 * is receiving the payment.) 713 */ 714 public DetailsComponent setPayeeTarget(Resource value) { 715 this.payeeTarget = value; 716 return this; 717 } 718 719 /** 720 * @return {@link #amount} (The monetary amount allocated from the total payment 721 * to the payable.) 722 */ 723 public Money getAmount() { 724 if (this.amount == null) 725 if (Configuration.errorOnAutoCreate()) 726 throw new Error("Attempt to auto-create DetailsComponent.amount"); 727 else if (Configuration.doAutoCreate()) 728 this.amount = new Money(); // cc 729 return this.amount; 730 } 731 732 public boolean hasAmount() { 733 return this.amount != null && !this.amount.isEmpty(); 734 } 735 736 /** 737 * @param value {@link #amount} (The monetary amount allocated from the total 738 * payment to the payable.) 739 */ 740 public DetailsComponent setAmount(Money value) { 741 this.amount = value; 742 return this; 743 } 744 745 protected void listChildren(List<Property> children) { 746 super.listChildren(children); 747 children.add(new Property("identifier", "Identifier", 748 "Unique identifier for the current payment item for the referenced payable.", 0, 1, identifier)); 749 children.add(new Property("predecessor", "Identifier", 750 "Unique identifier for the prior payment item for the referenced payable.", 0, 1, predecessor)); 751 children.add(new Property("type", "CodeableConcept", "Code to indicate the nature of the payment.", 0, 1, type)); 752 children.add(new Property("request", "Reference(Any)", 753 "A resource, such as a Claim, the evaluation of which could lead to payment.", 0, 1, request)); 754 children.add(new Property("submitter", "Reference(Practitioner|PractitionerRole|Organization)", 755 "The party which submitted the claim or financial transaction.", 0, 1, submitter)); 756 children.add(new Property("response", "Reference(Any)", 757 "A resource, such as a ClaimResponse, which contains a commitment to payment.", 0, 1, response)); 758 children.add(new Property("date", "date", "The date from the response resource containing a commitment to pay.", 759 0, 1, date)); 760 children.add(new Property("responsible", "Reference(PractitionerRole)", 761 "A reference to the individual who is responsible for inquiries regarding the response and its payment.", 0, 762 1, responsible)); 763 children.add(new Property("payee", "Reference(Practitioner|PractitionerRole|Organization)", 764 "The party which is receiving the payment.", 0, 1, payee)); 765 children.add(new Property("amount", "Money", 766 "The monetary amount allocated from the total payment to the payable.", 0, 1, amount)); 767 } 768 769 @Override 770 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 771 switch (_hash) { 772 case -1618432855: 773 /* identifier */ return new Property("identifier", "Identifier", 774 "Unique identifier for the current payment item for the referenced payable.", 0, 1, identifier); 775 case -1925032183: 776 /* predecessor */ return new Property("predecessor", "Identifier", 777 "Unique identifier for the prior payment item for the referenced payable.", 0, 1, predecessor); 778 case 3575610: 779 /* type */ return new Property("type", "CodeableConcept", "Code to indicate the nature of the payment.", 0, 1, 780 type); 781 case 1095692943: 782 /* request */ return new Property("request", "Reference(Any)", 783 "A resource, such as a Claim, the evaluation of which could lead to payment.", 0, 1, request); 784 case 348678409: 785 /* submitter */ return new Property("submitter", "Reference(Practitioner|PractitionerRole|Organization)", 786 "The party which submitted the claim or financial transaction.", 0, 1, submitter); 787 case -340323263: 788 /* response */ return new Property("response", "Reference(Any)", 789 "A resource, such as a ClaimResponse, which contains a commitment to payment.", 0, 1, response); 790 case 3076014: 791 /* date */ return new Property("date", "date", 792 "The date from the response resource containing a commitment to pay.", 0, 1, date); 793 case 1847674614: 794 /* responsible */ return new Property("responsible", "Reference(PractitionerRole)", 795 "A reference to the individual who is responsible for inquiries regarding the response and its payment.", 0, 796 1, responsible); 797 case 106443592: 798 /* payee */ return new Property("payee", "Reference(Practitioner|PractitionerRole|Organization)", 799 "The party which is receiving the payment.", 0, 1, payee); 800 case -1413853096: 801 /* amount */ return new Property("amount", "Money", 802 "The monetary amount allocated from the total payment to the payable.", 0, 1, amount); 803 default: 804 return super.getNamedProperty(_hash, _name, _checkValid); 805 } 806 807 } 808 809 @Override 810 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 811 switch (hash) { 812 case -1618432855: 813 /* identifier */ return this.identifier == null ? new Base[0] : new Base[] { this.identifier }; // Identifier 814 case -1925032183: 815 /* predecessor */ return this.predecessor == null ? new Base[0] : new Base[] { this.predecessor }; // Identifier 816 case 3575610: 817 /* type */ return this.type == null ? new Base[0] : new Base[] { this.type }; // CodeableConcept 818 case 1095692943: 819 /* request */ return this.request == null ? new Base[0] : new Base[] { this.request }; // Reference 820 case 348678409: 821 /* submitter */ return this.submitter == null ? new Base[0] : new Base[] { this.submitter }; // Reference 822 case -340323263: 823 /* response */ return this.response == null ? new Base[0] : new Base[] { this.response }; // Reference 824 case 3076014: 825 /* date */ return this.date == null ? new Base[0] : new Base[] { this.date }; // DateType 826 case 1847674614: 827 /* responsible */ return this.responsible == null ? new Base[0] : new Base[] { this.responsible }; // Reference 828 case 106443592: 829 /* payee */ return this.payee == null ? new Base[0] : new Base[] { this.payee }; // Reference 830 case -1413853096: 831 /* amount */ return this.amount == null ? new Base[0] : new Base[] { this.amount }; // Money 832 default: 833 return super.getProperty(hash, name, checkValid); 834 } 835 836 } 837 838 @Override 839 public Base setProperty(int hash, String name, Base value) throws FHIRException { 840 switch (hash) { 841 case -1618432855: // identifier 842 this.identifier = castToIdentifier(value); // Identifier 843 return value; 844 case -1925032183: // predecessor 845 this.predecessor = castToIdentifier(value); // Identifier 846 return value; 847 case 3575610: // type 848 this.type = castToCodeableConcept(value); // CodeableConcept 849 return value; 850 case 1095692943: // request 851 this.request = castToReference(value); // Reference 852 return value; 853 case 348678409: // submitter 854 this.submitter = castToReference(value); // Reference 855 return value; 856 case -340323263: // response 857 this.response = castToReference(value); // Reference 858 return value; 859 case 3076014: // date 860 this.date = castToDate(value); // DateType 861 return value; 862 case 1847674614: // responsible 863 this.responsible = castToReference(value); // Reference 864 return value; 865 case 106443592: // payee 866 this.payee = castToReference(value); // Reference 867 return value; 868 case -1413853096: // amount 869 this.amount = castToMoney(value); // Money 870 return value; 871 default: 872 return super.setProperty(hash, name, value); 873 } 874 875 } 876 877 @Override 878 public Base setProperty(String name, Base value) throws FHIRException { 879 if (name.equals("identifier")) { 880 this.identifier = castToIdentifier(value); // Identifier 881 } else if (name.equals("predecessor")) { 882 this.predecessor = castToIdentifier(value); // Identifier 883 } else if (name.equals("type")) { 884 this.type = castToCodeableConcept(value); // CodeableConcept 885 } else if (name.equals("request")) { 886 this.request = castToReference(value); // Reference 887 } else if (name.equals("submitter")) { 888 this.submitter = castToReference(value); // Reference 889 } else if (name.equals("response")) { 890 this.response = castToReference(value); // Reference 891 } else if (name.equals("date")) { 892 this.date = castToDate(value); // DateType 893 } else if (name.equals("responsible")) { 894 this.responsible = castToReference(value); // Reference 895 } else if (name.equals("payee")) { 896 this.payee = castToReference(value); // Reference 897 } else if (name.equals("amount")) { 898 this.amount = castToMoney(value); // Money 899 } else 900 return super.setProperty(name, value); 901 return value; 902 } 903 904 @Override 905 public Base makeProperty(int hash, String name) throws FHIRException { 906 switch (hash) { 907 case -1618432855: 908 return getIdentifier(); 909 case -1925032183: 910 return getPredecessor(); 911 case 3575610: 912 return getType(); 913 case 1095692943: 914 return getRequest(); 915 case 348678409: 916 return getSubmitter(); 917 case -340323263: 918 return getResponse(); 919 case 3076014: 920 return getDateElement(); 921 case 1847674614: 922 return getResponsible(); 923 case 106443592: 924 return getPayee(); 925 case -1413853096: 926 return getAmount(); 927 default: 928 return super.makeProperty(hash, name); 929 } 930 931 } 932 933 @Override 934 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 935 switch (hash) { 936 case -1618432855: 937 /* identifier */ return new String[] { "Identifier" }; 938 case -1925032183: 939 /* predecessor */ return new String[] { "Identifier" }; 940 case 3575610: 941 /* type */ return new String[] { "CodeableConcept" }; 942 case 1095692943: 943 /* request */ return new String[] { "Reference" }; 944 case 348678409: 945 /* submitter */ return new String[] { "Reference" }; 946 case -340323263: 947 /* response */ return new String[] { "Reference" }; 948 case 3076014: 949 /* date */ return new String[] { "date" }; 950 case 1847674614: 951 /* responsible */ return new String[] { "Reference" }; 952 case 106443592: 953 /* payee */ return new String[] { "Reference" }; 954 case -1413853096: 955 /* amount */ return new String[] { "Money" }; 956 default: 957 return super.getTypesForProperty(hash, name); 958 } 959 960 } 961 962 @Override 963 public Base addChild(String name) throws FHIRException { 964 if (name.equals("identifier")) { 965 this.identifier = new Identifier(); 966 return this.identifier; 967 } else if (name.equals("predecessor")) { 968 this.predecessor = new Identifier(); 969 return this.predecessor; 970 } else if (name.equals("type")) { 971 this.type = new CodeableConcept(); 972 return this.type; 973 } else if (name.equals("request")) { 974 this.request = new Reference(); 975 return this.request; 976 } else if (name.equals("submitter")) { 977 this.submitter = new Reference(); 978 return this.submitter; 979 } else if (name.equals("response")) { 980 this.response = new Reference(); 981 return this.response; 982 } else if (name.equals("date")) { 983 throw new FHIRException("Cannot call addChild on a singleton property PaymentReconciliation.date"); 984 } else if (name.equals("responsible")) { 985 this.responsible = new Reference(); 986 return this.responsible; 987 } else if (name.equals("payee")) { 988 this.payee = new Reference(); 989 return this.payee; 990 } else if (name.equals("amount")) { 991 this.amount = new Money(); 992 return this.amount; 993 } else 994 return super.addChild(name); 995 } 996 997 public DetailsComponent copy() { 998 DetailsComponent dst = new DetailsComponent(); 999 copyValues(dst); 1000 return dst; 1001 } 1002 1003 public void copyValues(DetailsComponent dst) { 1004 super.copyValues(dst); 1005 dst.identifier = identifier == null ? null : identifier.copy(); 1006 dst.predecessor = predecessor == null ? null : predecessor.copy(); 1007 dst.type = type == null ? null : type.copy(); 1008 dst.request = request == null ? null : request.copy(); 1009 dst.submitter = submitter == null ? null : submitter.copy(); 1010 dst.response = response == null ? null : response.copy(); 1011 dst.date = date == null ? null : date.copy(); 1012 dst.responsible = responsible == null ? null : responsible.copy(); 1013 dst.payee = payee == null ? null : payee.copy(); 1014 dst.amount = amount == null ? null : amount.copy(); 1015 } 1016 1017 @Override 1018 public boolean equalsDeep(Base other_) { 1019 if (!super.equalsDeep(other_)) 1020 return false; 1021 if (!(other_ instanceof DetailsComponent)) 1022 return false; 1023 DetailsComponent o = (DetailsComponent) other_; 1024 return compareDeep(identifier, o.identifier, true) && compareDeep(predecessor, o.predecessor, true) 1025 && compareDeep(type, o.type, true) && compareDeep(request, o.request, true) 1026 && compareDeep(submitter, o.submitter, true) && compareDeep(response, o.response, true) 1027 && compareDeep(date, o.date, true) && compareDeep(responsible, o.responsible, true) 1028 && compareDeep(payee, o.payee, true) && compareDeep(amount, o.amount, true); 1029 } 1030 1031 @Override 1032 public boolean equalsShallow(Base other_) { 1033 if (!super.equalsShallow(other_)) 1034 return false; 1035 if (!(other_ instanceof DetailsComponent)) 1036 return false; 1037 DetailsComponent o = (DetailsComponent) other_; 1038 return compareValues(date, o.date, true); 1039 } 1040 1041 public boolean isEmpty() { 1042 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, predecessor, type, request, submitter, 1043 response, date, responsible, payee, amount); 1044 } 1045 1046 public String fhirType() { 1047 return "PaymentReconciliation.detail"; 1048 1049 } 1050 1051 } 1052 1053 @Block() 1054 public static class NotesComponent extends BackboneElement implements IBaseBackboneElement { 1055 /** 1056 * The business purpose of the note text. 1057 */ 1058 @Child(name = "type", type = { CodeType.class }, order = 1, min = 0, max = 1, modifier = false, summary = false) 1059 @Description(shortDefinition = "display | print | printoper", formalDefinition = "The business purpose of the note text.") 1060 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/note-type") 1061 protected Enumeration<NoteType> type; 1062 1063 /** 1064 * The explanation or description associated with the processing. 1065 */ 1066 @Child(name = "text", type = { StringType.class }, order = 2, min = 0, max = 1, modifier = false, summary = false) 1067 @Description(shortDefinition = "Note explanatory text", formalDefinition = "The explanation or description associated with the processing.") 1068 protected StringType text; 1069 1070 private static final long serialVersionUID = 529250161L; 1071 1072 /** 1073 * Constructor 1074 */ 1075 public NotesComponent() { 1076 super(); 1077 } 1078 1079 /** 1080 * @return {@link #type} (The business purpose of the note text.). This is the 1081 * underlying object with id, value and extensions. The accessor 1082 * "getType" gives direct access to the value 1083 */ 1084 public Enumeration<NoteType> getTypeElement() { 1085 if (this.type == null) 1086 if (Configuration.errorOnAutoCreate()) 1087 throw new Error("Attempt to auto-create NotesComponent.type"); 1088 else if (Configuration.doAutoCreate()) 1089 this.type = new Enumeration<NoteType>(new NoteTypeEnumFactory()); // bb 1090 return this.type; 1091 } 1092 1093 public boolean hasTypeElement() { 1094 return this.type != null && !this.type.isEmpty(); 1095 } 1096 1097 public boolean hasType() { 1098 return this.type != null && !this.type.isEmpty(); 1099 } 1100 1101 /** 1102 * @param value {@link #type} (The business purpose of the note text.). This is 1103 * the underlying object with id, value and extensions. The 1104 * accessor "getType" gives direct access to the value 1105 */ 1106 public NotesComponent setTypeElement(Enumeration<NoteType> value) { 1107 this.type = value; 1108 return this; 1109 } 1110 1111 /** 1112 * @return The business purpose of the note text. 1113 */ 1114 public NoteType getType() { 1115 return this.type == null ? null : this.type.getValue(); 1116 } 1117 1118 /** 1119 * @param value The business purpose of the note text. 1120 */ 1121 public NotesComponent setType(NoteType value) { 1122 if (value == null) 1123 this.type = null; 1124 else { 1125 if (this.type == null) 1126 this.type = new Enumeration<NoteType>(new NoteTypeEnumFactory()); 1127 this.type.setValue(value); 1128 } 1129 return this; 1130 } 1131 1132 /** 1133 * @return {@link #text} (The explanation or description associated with the 1134 * processing.). This is the underlying object with id, value and 1135 * extensions. The accessor "getText" gives direct access to the value 1136 */ 1137 public StringType getTextElement() { 1138 if (this.text == null) 1139 if (Configuration.errorOnAutoCreate()) 1140 throw new Error("Attempt to auto-create NotesComponent.text"); 1141 else if (Configuration.doAutoCreate()) 1142 this.text = new StringType(); // bb 1143 return this.text; 1144 } 1145 1146 public boolean hasTextElement() { 1147 return this.text != null && !this.text.isEmpty(); 1148 } 1149 1150 public boolean hasText() { 1151 return this.text != null && !this.text.isEmpty(); 1152 } 1153 1154 /** 1155 * @param value {@link #text} (The explanation or description associated with 1156 * the processing.). This is the underlying object with id, value 1157 * and extensions. The accessor "getText" gives direct access to 1158 * the value 1159 */ 1160 public NotesComponent setTextElement(StringType value) { 1161 this.text = value; 1162 return this; 1163 } 1164 1165 /** 1166 * @return The explanation or description associated with the processing. 1167 */ 1168 public String getText() { 1169 return this.text == null ? null : this.text.getValue(); 1170 } 1171 1172 /** 1173 * @param value The explanation or description associated with the processing. 1174 */ 1175 public NotesComponent setText(String value) { 1176 if (Utilities.noString(value)) 1177 this.text = null; 1178 else { 1179 if (this.text == null) 1180 this.text = new StringType(); 1181 this.text.setValue(value); 1182 } 1183 return this; 1184 } 1185 1186 protected void listChildren(List<Property> children) { 1187 super.listChildren(children); 1188 children.add(new Property("type", "code", "The business purpose of the note text.", 0, 1, type)); 1189 children.add( 1190 new Property("text", "string", "The explanation or description associated with the processing.", 0, 1, text)); 1191 } 1192 1193 @Override 1194 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1195 switch (_hash) { 1196 case 3575610: 1197 /* type */ return new Property("type", "code", "The business purpose of the note text.", 0, 1, type); 1198 case 3556653: 1199 /* text */ return new Property("text", "string", 1200 "The explanation or description associated with the processing.", 0, 1, text); 1201 default: 1202 return super.getNamedProperty(_hash, _name, _checkValid); 1203 } 1204 1205 } 1206 1207 @Override 1208 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1209 switch (hash) { 1210 case 3575610: 1211 /* type */ return this.type == null ? new Base[0] : new Base[] { this.type }; // Enumeration<NoteType> 1212 case 3556653: 1213 /* text */ return this.text == null ? new Base[0] : new Base[] { this.text }; // StringType 1214 default: 1215 return super.getProperty(hash, name, checkValid); 1216 } 1217 1218 } 1219 1220 @Override 1221 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1222 switch (hash) { 1223 case 3575610: // type 1224 value = new NoteTypeEnumFactory().fromType(castToCode(value)); 1225 this.type = (Enumeration) value; // Enumeration<NoteType> 1226 return value; 1227 case 3556653: // text 1228 this.text = castToString(value); // StringType 1229 return value; 1230 default: 1231 return super.setProperty(hash, name, value); 1232 } 1233 1234 } 1235 1236 @Override 1237 public Base setProperty(String name, Base value) throws FHIRException { 1238 if (name.equals("type")) { 1239 value = new NoteTypeEnumFactory().fromType(castToCode(value)); 1240 this.type = (Enumeration) value; // Enumeration<NoteType> 1241 } else if (name.equals("text")) { 1242 this.text = castToString(value); // StringType 1243 } else 1244 return super.setProperty(name, value); 1245 return value; 1246 } 1247 1248 @Override 1249 public Base makeProperty(int hash, String name) throws FHIRException { 1250 switch (hash) { 1251 case 3575610: 1252 return getTypeElement(); 1253 case 3556653: 1254 return getTextElement(); 1255 default: 1256 return super.makeProperty(hash, name); 1257 } 1258 1259 } 1260 1261 @Override 1262 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1263 switch (hash) { 1264 case 3575610: 1265 /* type */ return new String[] { "code" }; 1266 case 3556653: 1267 /* text */ return new String[] { "string" }; 1268 default: 1269 return super.getTypesForProperty(hash, name); 1270 } 1271 1272 } 1273 1274 @Override 1275 public Base addChild(String name) throws FHIRException { 1276 if (name.equals("type")) { 1277 throw new FHIRException("Cannot call addChild on a singleton property PaymentReconciliation.type"); 1278 } else if (name.equals("text")) { 1279 throw new FHIRException("Cannot call addChild on a singleton property PaymentReconciliation.text"); 1280 } else 1281 return super.addChild(name); 1282 } 1283 1284 public NotesComponent copy() { 1285 NotesComponent dst = new NotesComponent(); 1286 copyValues(dst); 1287 return dst; 1288 } 1289 1290 public void copyValues(NotesComponent dst) { 1291 super.copyValues(dst); 1292 dst.type = type == null ? null : type.copy(); 1293 dst.text = text == null ? null : text.copy(); 1294 } 1295 1296 @Override 1297 public boolean equalsDeep(Base other_) { 1298 if (!super.equalsDeep(other_)) 1299 return false; 1300 if (!(other_ instanceof NotesComponent)) 1301 return false; 1302 NotesComponent o = (NotesComponent) other_; 1303 return compareDeep(type, o.type, true) && compareDeep(text, o.text, true); 1304 } 1305 1306 @Override 1307 public boolean equalsShallow(Base other_) { 1308 if (!super.equalsShallow(other_)) 1309 return false; 1310 if (!(other_ instanceof NotesComponent)) 1311 return false; 1312 NotesComponent o = (NotesComponent) other_; 1313 return compareValues(type, o.type, true) && compareValues(text, o.text, true); 1314 } 1315 1316 public boolean isEmpty() { 1317 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(type, text); 1318 } 1319 1320 public String fhirType() { 1321 return "PaymentReconciliation.processNote"; 1322 1323 } 1324 1325 } 1326 1327 /** 1328 * A unique identifier assigned to this payment reconciliation. 1329 */ 1330 @Child(name = "identifier", type = { 1331 Identifier.class }, order = 0, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 1332 @Description(shortDefinition = "Business Identifier for a payment reconciliation", formalDefinition = "A unique identifier assigned to this payment reconciliation.") 1333 protected List<Identifier> identifier; 1334 1335 /** 1336 * The status of the resource instance. 1337 */ 1338 @Child(name = "status", type = { CodeType.class }, order = 1, min = 1, max = 1, modifier = true, summary = true) 1339 @Description(shortDefinition = "active | cancelled | draft | entered-in-error", formalDefinition = "The status of the resource instance.") 1340 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/fm-status") 1341 protected Enumeration<PaymentReconciliationStatus> status; 1342 1343 /** 1344 * The period of time for which payments have been gathered into this bulk 1345 * payment for settlement. 1346 */ 1347 @Child(name = "period", type = { Period.class }, order = 2, min = 0, max = 1, modifier = false, summary = true) 1348 @Description(shortDefinition = "Period covered", formalDefinition = "The period of time for which payments have been gathered into this bulk payment for settlement.") 1349 protected Period period; 1350 1351 /** 1352 * The date when the resource was created. 1353 */ 1354 @Child(name = "created", type = { DateTimeType.class }, order = 3, min = 1, max = 1, modifier = false, summary = true) 1355 @Description(shortDefinition = "Creation date", formalDefinition = "The date when the resource was created.") 1356 protected DateTimeType created; 1357 1358 /** 1359 * The party who generated the payment. 1360 */ 1361 @Child(name = "paymentIssuer", type = { 1362 Organization.class }, order = 4, min = 0, max = 1, modifier = false, summary = true) 1363 @Description(shortDefinition = "Party generating payment", formalDefinition = "The party who generated the payment.") 1364 protected Reference paymentIssuer; 1365 1366 /** 1367 * The actual object that is the target of the reference (The party who 1368 * generated the payment.) 1369 */ 1370 protected Organization paymentIssuerTarget; 1371 1372 /** 1373 * Original request resource reference. 1374 */ 1375 @Child(name = "request", type = { Task.class }, order = 5, min = 0, max = 1, modifier = false, summary = false) 1376 @Description(shortDefinition = "Reference to requesting resource", formalDefinition = "Original request resource reference.") 1377 protected Reference request; 1378 1379 /** 1380 * The actual object that is the target of the reference (Original request 1381 * resource reference.) 1382 */ 1383 protected Task requestTarget; 1384 1385 /** 1386 * The practitioner who is responsible for the services rendered to the patient. 1387 */ 1388 @Child(name = "requestor", type = { Practitioner.class, PractitionerRole.class, 1389 Organization.class }, order = 6, min = 0, max = 1, modifier = false, summary = false) 1390 @Description(shortDefinition = "Responsible practitioner", formalDefinition = "The practitioner who is responsible for the services rendered to the patient.") 1391 protected Reference requestor; 1392 1393 /** 1394 * The actual object that is the target of the reference (The practitioner who 1395 * is responsible for the services rendered to the patient.) 1396 */ 1397 protected Resource requestorTarget; 1398 1399 /** 1400 * The outcome of a request for a reconciliation. 1401 */ 1402 @Child(name = "outcome", type = { CodeType.class }, order = 7, min = 0, max = 1, modifier = false, summary = false) 1403 @Description(shortDefinition = "queued | complete | error | partial", formalDefinition = "The outcome of a request for a reconciliation.") 1404 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/remittance-outcome") 1405 protected Enumeration<RemittanceOutcome> outcome; 1406 1407 /** 1408 * A human readable description of the status of the request for the 1409 * reconciliation. 1410 */ 1411 @Child(name = "disposition", type = { 1412 StringType.class }, order = 8, min = 0, max = 1, modifier = false, summary = false) 1413 @Description(shortDefinition = "Disposition message", formalDefinition = "A human readable description of the status of the request for the reconciliation.") 1414 protected StringType disposition; 1415 1416 /** 1417 * The date of payment as indicated on the financial instrument. 1418 */ 1419 @Child(name = "paymentDate", type = { DateType.class }, order = 9, min = 1, max = 1, modifier = false, summary = true) 1420 @Description(shortDefinition = "When payment issued", formalDefinition = "The date of payment as indicated on the financial instrument.") 1421 protected DateType paymentDate; 1422 1423 /** 1424 * Total payment amount as indicated on the financial instrument. 1425 */ 1426 @Child(name = "paymentAmount", type = { Money.class }, order = 10, min = 1, max = 1, modifier = false, summary = true) 1427 @Description(shortDefinition = "Total amount of Payment", formalDefinition = "Total payment amount as indicated on the financial instrument.") 1428 protected Money paymentAmount; 1429 1430 /** 1431 * Issuer's unique identifier for the payment instrument. 1432 */ 1433 @Child(name = "paymentIdentifier", type = { 1434 Identifier.class }, order = 11, min = 0, max = 1, modifier = false, summary = false) 1435 @Description(shortDefinition = "Business identifier for the payment", formalDefinition = "Issuer's unique identifier for the payment instrument.") 1436 protected Identifier paymentIdentifier; 1437 1438 /** 1439 * Distribution of the payment amount for a previously acknowledged payable. 1440 */ 1441 @Child(name = "detail", type = {}, order = 12, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 1442 @Description(shortDefinition = "Settlement particulars", formalDefinition = "Distribution of the payment amount for a previously acknowledged payable.") 1443 protected List<DetailsComponent> detail; 1444 1445 /** 1446 * A code for the form to be used for printing the content. 1447 */ 1448 @Child(name = "formCode", type = { 1449 CodeableConcept.class }, order = 13, min = 0, max = 1, modifier = false, summary = false) 1450 @Description(shortDefinition = "Printed form identifier", formalDefinition = "A code for the form to be used for printing the content.") 1451 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/forms") 1452 protected CodeableConcept formCode; 1453 1454 /** 1455 * A note that describes or explains the processing in a human readable form. 1456 */ 1457 @Child(name = "processNote", type = {}, order = 14, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 1458 @Description(shortDefinition = "Note concerning processing", formalDefinition = "A note that describes or explains the processing in a human readable form.") 1459 protected List<NotesComponent> processNote; 1460 1461 private static final long serialVersionUID = -1620965037L; 1462 1463 /** 1464 * Constructor 1465 */ 1466 public PaymentReconciliation() { 1467 super(); 1468 } 1469 1470 /** 1471 * Constructor 1472 */ 1473 public PaymentReconciliation(Enumeration<PaymentReconciliationStatus> status, DateTimeType created, 1474 DateType paymentDate, Money paymentAmount) { 1475 super(); 1476 this.status = status; 1477 this.created = created; 1478 this.paymentDate = paymentDate; 1479 this.paymentAmount = paymentAmount; 1480 } 1481 1482 /** 1483 * @return {@link #identifier} (A unique identifier assigned to this payment 1484 * reconciliation.) 1485 */ 1486 public List<Identifier> getIdentifier() { 1487 if (this.identifier == null) 1488 this.identifier = new ArrayList<Identifier>(); 1489 return this.identifier; 1490 } 1491 1492 /** 1493 * @return Returns a reference to <code>this</code> for easy method chaining 1494 */ 1495 public PaymentReconciliation setIdentifier(List<Identifier> theIdentifier) { 1496 this.identifier = theIdentifier; 1497 return this; 1498 } 1499 1500 public boolean hasIdentifier() { 1501 if (this.identifier == null) 1502 return false; 1503 for (Identifier item : this.identifier) 1504 if (!item.isEmpty()) 1505 return true; 1506 return false; 1507 } 1508 1509 public Identifier addIdentifier() { // 3 1510 Identifier t = new Identifier(); 1511 if (this.identifier == null) 1512 this.identifier = new ArrayList<Identifier>(); 1513 this.identifier.add(t); 1514 return t; 1515 } 1516 1517 public PaymentReconciliation addIdentifier(Identifier t) { // 3 1518 if (t == null) 1519 return this; 1520 if (this.identifier == null) 1521 this.identifier = new ArrayList<Identifier>(); 1522 this.identifier.add(t); 1523 return this; 1524 } 1525 1526 /** 1527 * @return The first repetition of repeating field {@link #identifier}, creating 1528 * it if it does not already exist 1529 */ 1530 public Identifier getIdentifierFirstRep() { 1531 if (getIdentifier().isEmpty()) { 1532 addIdentifier(); 1533 } 1534 return getIdentifier().get(0); 1535 } 1536 1537 /** 1538 * @return {@link #status} (The status of the resource instance.). This is the 1539 * underlying object with id, value and extensions. The accessor 1540 * "getStatus" gives direct access to the value 1541 */ 1542 public Enumeration<PaymentReconciliationStatus> getStatusElement() { 1543 if (this.status == null) 1544 if (Configuration.errorOnAutoCreate()) 1545 throw new Error("Attempt to auto-create PaymentReconciliation.status"); 1546 else if (Configuration.doAutoCreate()) 1547 this.status = new Enumeration<PaymentReconciliationStatus>(new PaymentReconciliationStatusEnumFactory()); // bb 1548 return this.status; 1549 } 1550 1551 public boolean hasStatusElement() { 1552 return this.status != null && !this.status.isEmpty(); 1553 } 1554 1555 public boolean hasStatus() { 1556 return this.status != null && !this.status.isEmpty(); 1557 } 1558 1559 /** 1560 * @param value {@link #status} (The status of the resource instance.). This is 1561 * the underlying object with id, value and extensions. The 1562 * accessor "getStatus" gives direct access to the value 1563 */ 1564 public PaymentReconciliation setStatusElement(Enumeration<PaymentReconciliationStatus> value) { 1565 this.status = value; 1566 return this; 1567 } 1568 1569 /** 1570 * @return The status of the resource instance. 1571 */ 1572 public PaymentReconciliationStatus getStatus() { 1573 return this.status == null ? null : this.status.getValue(); 1574 } 1575 1576 /** 1577 * @param value The status of the resource instance. 1578 */ 1579 public PaymentReconciliation setStatus(PaymentReconciliationStatus value) { 1580 if (this.status == null) 1581 this.status = new Enumeration<PaymentReconciliationStatus>(new PaymentReconciliationStatusEnumFactory()); 1582 this.status.setValue(value); 1583 return this; 1584 } 1585 1586 /** 1587 * @return {@link #period} (The period of time for which payments have been 1588 * gathered into this bulk payment for settlement.) 1589 */ 1590 public Period getPeriod() { 1591 if (this.period == null) 1592 if (Configuration.errorOnAutoCreate()) 1593 throw new Error("Attempt to auto-create PaymentReconciliation.period"); 1594 else if (Configuration.doAutoCreate()) 1595 this.period = new Period(); // cc 1596 return this.period; 1597 } 1598 1599 public boolean hasPeriod() { 1600 return this.period != null && !this.period.isEmpty(); 1601 } 1602 1603 /** 1604 * @param value {@link #period} (The period of time for which payments have been 1605 * gathered into this bulk payment for settlement.) 1606 */ 1607 public PaymentReconciliation setPeriod(Period value) { 1608 this.period = value; 1609 return this; 1610 } 1611 1612 /** 1613 * @return {@link #created} (The date when the resource was created.). This is 1614 * the underlying object with id, value and extensions. The accessor 1615 * "getCreated" gives direct access to the value 1616 */ 1617 public DateTimeType getCreatedElement() { 1618 if (this.created == null) 1619 if (Configuration.errorOnAutoCreate()) 1620 throw new Error("Attempt to auto-create PaymentReconciliation.created"); 1621 else if (Configuration.doAutoCreate()) 1622 this.created = new DateTimeType(); // bb 1623 return this.created; 1624 } 1625 1626 public boolean hasCreatedElement() { 1627 return this.created != null && !this.created.isEmpty(); 1628 } 1629 1630 public boolean hasCreated() { 1631 return this.created != null && !this.created.isEmpty(); 1632 } 1633 1634 /** 1635 * @param value {@link #created} (The date when the resource was created.). This 1636 * is the underlying object with id, value and extensions. The 1637 * accessor "getCreated" gives direct access to the value 1638 */ 1639 public PaymentReconciliation setCreatedElement(DateTimeType value) { 1640 this.created = value; 1641 return this; 1642 } 1643 1644 /** 1645 * @return The date when the resource was created. 1646 */ 1647 public Date getCreated() { 1648 return this.created == null ? null : this.created.getValue(); 1649 } 1650 1651 /** 1652 * @param value The date when the resource was created. 1653 */ 1654 public PaymentReconciliation setCreated(Date value) { 1655 if (this.created == null) 1656 this.created = new DateTimeType(); 1657 this.created.setValue(value); 1658 return this; 1659 } 1660 1661 /** 1662 * @return {@link #paymentIssuer} (The party who generated the payment.) 1663 */ 1664 public Reference getPaymentIssuer() { 1665 if (this.paymentIssuer == null) 1666 if (Configuration.errorOnAutoCreate()) 1667 throw new Error("Attempt to auto-create PaymentReconciliation.paymentIssuer"); 1668 else if (Configuration.doAutoCreate()) 1669 this.paymentIssuer = new Reference(); // cc 1670 return this.paymentIssuer; 1671 } 1672 1673 public boolean hasPaymentIssuer() { 1674 return this.paymentIssuer != null && !this.paymentIssuer.isEmpty(); 1675 } 1676 1677 /** 1678 * @param value {@link #paymentIssuer} (The party who generated the payment.) 1679 */ 1680 public PaymentReconciliation setPaymentIssuer(Reference value) { 1681 this.paymentIssuer = value; 1682 return this; 1683 } 1684 1685 /** 1686 * @return {@link #paymentIssuer} The actual object that is the target of the 1687 * reference. The reference library doesn't populate this, but you can 1688 * use it to hold the resource if you resolve it. (The party who 1689 * generated the payment.) 1690 */ 1691 public Organization getPaymentIssuerTarget() { 1692 if (this.paymentIssuerTarget == null) 1693 if (Configuration.errorOnAutoCreate()) 1694 throw new Error("Attempt to auto-create PaymentReconciliation.paymentIssuer"); 1695 else if (Configuration.doAutoCreate()) 1696 this.paymentIssuerTarget = new Organization(); // aa 1697 return this.paymentIssuerTarget; 1698 } 1699 1700 /** 1701 * @param value {@link #paymentIssuer} The actual object that is the target of 1702 * the reference. The reference library doesn't use these, but you 1703 * can use it to hold the resource if you resolve it. (The party 1704 * who generated the payment.) 1705 */ 1706 public PaymentReconciliation setPaymentIssuerTarget(Organization value) { 1707 this.paymentIssuerTarget = value; 1708 return this; 1709 } 1710 1711 /** 1712 * @return {@link #request} (Original request resource reference.) 1713 */ 1714 public Reference getRequest() { 1715 if (this.request == null) 1716 if (Configuration.errorOnAutoCreate()) 1717 throw new Error("Attempt to auto-create PaymentReconciliation.request"); 1718 else if (Configuration.doAutoCreate()) 1719 this.request = new Reference(); // cc 1720 return this.request; 1721 } 1722 1723 public boolean hasRequest() { 1724 return this.request != null && !this.request.isEmpty(); 1725 } 1726 1727 /** 1728 * @param value {@link #request} (Original request resource reference.) 1729 */ 1730 public PaymentReconciliation setRequest(Reference value) { 1731 this.request = value; 1732 return this; 1733 } 1734 1735 /** 1736 * @return {@link #request} The actual object that is the target of the 1737 * reference. The reference library doesn't populate this, but you can 1738 * use it to hold the resource if you resolve it. (Original request 1739 * resource reference.) 1740 */ 1741 public Task getRequestTarget() { 1742 if (this.requestTarget == null) 1743 if (Configuration.errorOnAutoCreate()) 1744 throw new Error("Attempt to auto-create PaymentReconciliation.request"); 1745 else if (Configuration.doAutoCreate()) 1746 this.requestTarget = new Task(); // aa 1747 return this.requestTarget; 1748 } 1749 1750 /** 1751 * @param value {@link #request} The actual object that is the target of the 1752 * reference. The reference library doesn't use these, but you can 1753 * use it to hold the resource if you resolve it. (Original request 1754 * resource reference.) 1755 */ 1756 public PaymentReconciliation setRequestTarget(Task value) { 1757 this.requestTarget = value; 1758 return this; 1759 } 1760 1761 /** 1762 * @return {@link #requestor} (The practitioner who is responsible for the 1763 * services rendered to the patient.) 1764 */ 1765 public Reference getRequestor() { 1766 if (this.requestor == null) 1767 if (Configuration.errorOnAutoCreate()) 1768 throw new Error("Attempt to auto-create PaymentReconciliation.requestor"); 1769 else if (Configuration.doAutoCreate()) 1770 this.requestor = new Reference(); // cc 1771 return this.requestor; 1772 } 1773 1774 public boolean hasRequestor() { 1775 return this.requestor != null && !this.requestor.isEmpty(); 1776 } 1777 1778 /** 1779 * @param value {@link #requestor} (The practitioner who is responsible for the 1780 * services rendered to the patient.) 1781 */ 1782 public PaymentReconciliation setRequestor(Reference value) { 1783 this.requestor = value; 1784 return this; 1785 } 1786 1787 /** 1788 * @return {@link #requestor} The actual object that is the target of the 1789 * reference. The reference library doesn't populate this, but you can 1790 * use it to hold the resource if you resolve it. (The practitioner who 1791 * is responsible for the services rendered to the patient.) 1792 */ 1793 public Resource getRequestorTarget() { 1794 return this.requestorTarget; 1795 } 1796 1797 /** 1798 * @param value {@link #requestor} The actual object that is the target of the 1799 * reference. The reference library doesn't use these, but you can 1800 * use it to hold the resource if you resolve it. (The practitioner 1801 * who is responsible for the services rendered to the patient.) 1802 */ 1803 public PaymentReconciliation setRequestorTarget(Resource value) { 1804 this.requestorTarget = value; 1805 return this; 1806 } 1807 1808 /** 1809 * @return {@link #outcome} (The outcome of a request for a reconciliation.). 1810 * This is the underlying object with id, value and extensions. The 1811 * accessor "getOutcome" gives direct access to the value 1812 */ 1813 public Enumeration<RemittanceOutcome> getOutcomeElement() { 1814 if (this.outcome == null) 1815 if (Configuration.errorOnAutoCreate()) 1816 throw new Error("Attempt to auto-create PaymentReconciliation.outcome"); 1817 else if (Configuration.doAutoCreate()) 1818 this.outcome = new Enumeration<RemittanceOutcome>(new RemittanceOutcomeEnumFactory()); // bb 1819 return this.outcome; 1820 } 1821 1822 public boolean hasOutcomeElement() { 1823 return this.outcome != null && !this.outcome.isEmpty(); 1824 } 1825 1826 public boolean hasOutcome() { 1827 return this.outcome != null && !this.outcome.isEmpty(); 1828 } 1829 1830 /** 1831 * @param value {@link #outcome} (The outcome of a request for a 1832 * reconciliation.). This is the underlying object with id, value 1833 * and extensions. The accessor "getOutcome" gives direct access to 1834 * the value 1835 */ 1836 public PaymentReconciliation setOutcomeElement(Enumeration<RemittanceOutcome> value) { 1837 this.outcome = value; 1838 return this; 1839 } 1840 1841 /** 1842 * @return The outcome of a request for a reconciliation. 1843 */ 1844 public RemittanceOutcome getOutcome() { 1845 return this.outcome == null ? null : this.outcome.getValue(); 1846 } 1847 1848 /** 1849 * @param value The outcome of a request for a reconciliation. 1850 */ 1851 public PaymentReconciliation setOutcome(RemittanceOutcome value) { 1852 if (value == null) 1853 this.outcome = null; 1854 else { 1855 if (this.outcome == null) 1856 this.outcome = new Enumeration<RemittanceOutcome>(new RemittanceOutcomeEnumFactory()); 1857 this.outcome.setValue(value); 1858 } 1859 return this; 1860 } 1861 1862 /** 1863 * @return {@link #disposition} (A human readable description of the status of 1864 * the request for the reconciliation.). This is the underlying object 1865 * with id, value and extensions. The accessor "getDisposition" gives 1866 * direct access to the value 1867 */ 1868 public StringType getDispositionElement() { 1869 if (this.disposition == null) 1870 if (Configuration.errorOnAutoCreate()) 1871 throw new Error("Attempt to auto-create PaymentReconciliation.disposition"); 1872 else if (Configuration.doAutoCreate()) 1873 this.disposition = new StringType(); // bb 1874 return this.disposition; 1875 } 1876 1877 public boolean hasDispositionElement() { 1878 return this.disposition != null && !this.disposition.isEmpty(); 1879 } 1880 1881 public boolean hasDisposition() { 1882 return this.disposition != null && !this.disposition.isEmpty(); 1883 } 1884 1885 /** 1886 * @param value {@link #disposition} (A human readable description of the status 1887 * of the request for the reconciliation.). This is the underlying 1888 * object with id, value and extensions. The accessor 1889 * "getDisposition" gives direct access to the value 1890 */ 1891 public PaymentReconciliation setDispositionElement(StringType value) { 1892 this.disposition = value; 1893 return this; 1894 } 1895 1896 /** 1897 * @return A human readable description of the status of the request for the 1898 * reconciliation. 1899 */ 1900 public String getDisposition() { 1901 return this.disposition == null ? null : this.disposition.getValue(); 1902 } 1903 1904 /** 1905 * @param value A human readable description of the status of the request for 1906 * the reconciliation. 1907 */ 1908 public PaymentReconciliation setDisposition(String value) { 1909 if (Utilities.noString(value)) 1910 this.disposition = null; 1911 else { 1912 if (this.disposition == null) 1913 this.disposition = new StringType(); 1914 this.disposition.setValue(value); 1915 } 1916 return this; 1917 } 1918 1919 /** 1920 * @return {@link #paymentDate} (The date of payment as indicated on the 1921 * financial instrument.). This is the underlying object with id, value 1922 * and extensions. The accessor "getPaymentDate" gives direct access to 1923 * the value 1924 */ 1925 public DateType getPaymentDateElement() { 1926 if (this.paymentDate == null) 1927 if (Configuration.errorOnAutoCreate()) 1928 throw new Error("Attempt to auto-create PaymentReconciliation.paymentDate"); 1929 else if (Configuration.doAutoCreate()) 1930 this.paymentDate = new DateType(); // bb 1931 return this.paymentDate; 1932 } 1933 1934 public boolean hasPaymentDateElement() { 1935 return this.paymentDate != null && !this.paymentDate.isEmpty(); 1936 } 1937 1938 public boolean hasPaymentDate() { 1939 return this.paymentDate != null && !this.paymentDate.isEmpty(); 1940 } 1941 1942 /** 1943 * @param value {@link #paymentDate} (The date of payment as indicated on the 1944 * financial instrument.). This is the underlying object with id, 1945 * value and extensions. The accessor "getPaymentDate" gives direct 1946 * access to the value 1947 */ 1948 public PaymentReconciliation setPaymentDateElement(DateType value) { 1949 this.paymentDate = value; 1950 return this; 1951 } 1952 1953 /** 1954 * @return The date of payment as indicated on the financial instrument. 1955 */ 1956 public Date getPaymentDate() { 1957 return this.paymentDate == null ? null : this.paymentDate.getValue(); 1958 } 1959 1960 /** 1961 * @param value The date of payment as indicated on the financial instrument. 1962 */ 1963 public PaymentReconciliation setPaymentDate(Date value) { 1964 if (this.paymentDate == null) 1965 this.paymentDate = new DateType(); 1966 this.paymentDate.setValue(value); 1967 return this; 1968 } 1969 1970 /** 1971 * @return {@link #paymentAmount} (Total payment amount as indicated on the 1972 * financial instrument.) 1973 */ 1974 public Money getPaymentAmount() { 1975 if (this.paymentAmount == null) 1976 if (Configuration.errorOnAutoCreate()) 1977 throw new Error("Attempt to auto-create PaymentReconciliation.paymentAmount"); 1978 else if (Configuration.doAutoCreate()) 1979 this.paymentAmount = new Money(); // cc 1980 return this.paymentAmount; 1981 } 1982 1983 public boolean hasPaymentAmount() { 1984 return this.paymentAmount != null && !this.paymentAmount.isEmpty(); 1985 } 1986 1987 /** 1988 * @param value {@link #paymentAmount} (Total payment amount as indicated on the 1989 * financial instrument.) 1990 */ 1991 public PaymentReconciliation setPaymentAmount(Money value) { 1992 this.paymentAmount = value; 1993 return this; 1994 } 1995 1996 /** 1997 * @return {@link #paymentIdentifier} (Issuer's unique identifier for the 1998 * payment instrument.) 1999 */ 2000 public Identifier getPaymentIdentifier() { 2001 if (this.paymentIdentifier == null) 2002 if (Configuration.errorOnAutoCreate()) 2003 throw new Error("Attempt to auto-create PaymentReconciliation.paymentIdentifier"); 2004 else if (Configuration.doAutoCreate()) 2005 this.paymentIdentifier = new Identifier(); // cc 2006 return this.paymentIdentifier; 2007 } 2008 2009 public boolean hasPaymentIdentifier() { 2010 return this.paymentIdentifier != null && !this.paymentIdentifier.isEmpty(); 2011 } 2012 2013 /** 2014 * @param value {@link #paymentIdentifier} (Issuer's unique identifier for the 2015 * payment instrument.) 2016 */ 2017 public PaymentReconciliation setPaymentIdentifier(Identifier value) { 2018 this.paymentIdentifier = value; 2019 return this; 2020 } 2021 2022 /** 2023 * @return {@link #detail} (Distribution of the payment amount for a previously 2024 * acknowledged payable.) 2025 */ 2026 public List<DetailsComponent> getDetail() { 2027 if (this.detail == null) 2028 this.detail = new ArrayList<DetailsComponent>(); 2029 return this.detail; 2030 } 2031 2032 /** 2033 * @return Returns a reference to <code>this</code> for easy method chaining 2034 */ 2035 public PaymentReconciliation setDetail(List<DetailsComponent> theDetail) { 2036 this.detail = theDetail; 2037 return this; 2038 } 2039 2040 public boolean hasDetail() { 2041 if (this.detail == null) 2042 return false; 2043 for (DetailsComponent item : this.detail) 2044 if (!item.isEmpty()) 2045 return true; 2046 return false; 2047 } 2048 2049 public DetailsComponent addDetail() { // 3 2050 DetailsComponent t = new DetailsComponent(); 2051 if (this.detail == null) 2052 this.detail = new ArrayList<DetailsComponent>(); 2053 this.detail.add(t); 2054 return t; 2055 } 2056 2057 public PaymentReconciliation addDetail(DetailsComponent t) { // 3 2058 if (t == null) 2059 return this; 2060 if (this.detail == null) 2061 this.detail = new ArrayList<DetailsComponent>(); 2062 this.detail.add(t); 2063 return this; 2064 } 2065 2066 /** 2067 * @return The first repetition of repeating field {@link #detail}, creating it 2068 * if it does not already exist 2069 */ 2070 public DetailsComponent getDetailFirstRep() { 2071 if (getDetail().isEmpty()) { 2072 addDetail(); 2073 } 2074 return getDetail().get(0); 2075 } 2076 2077 /** 2078 * @return {@link #formCode} (A code for the form to be used for printing the 2079 * content.) 2080 */ 2081 public CodeableConcept getFormCode() { 2082 if (this.formCode == null) 2083 if (Configuration.errorOnAutoCreate()) 2084 throw new Error("Attempt to auto-create PaymentReconciliation.formCode"); 2085 else if (Configuration.doAutoCreate()) 2086 this.formCode = new CodeableConcept(); // cc 2087 return this.formCode; 2088 } 2089 2090 public boolean hasFormCode() { 2091 return this.formCode != null && !this.formCode.isEmpty(); 2092 } 2093 2094 /** 2095 * @param value {@link #formCode} (A code for the form to be used for printing 2096 * the content.) 2097 */ 2098 public PaymentReconciliation setFormCode(CodeableConcept value) { 2099 this.formCode = value; 2100 return this; 2101 } 2102 2103 /** 2104 * @return {@link #processNote} (A note that describes or explains the 2105 * processing in a human readable form.) 2106 */ 2107 public List<NotesComponent> getProcessNote() { 2108 if (this.processNote == null) 2109 this.processNote = new ArrayList<NotesComponent>(); 2110 return this.processNote; 2111 } 2112 2113 /** 2114 * @return Returns a reference to <code>this</code> for easy method chaining 2115 */ 2116 public PaymentReconciliation setProcessNote(List<NotesComponent> theProcessNote) { 2117 this.processNote = theProcessNote; 2118 return this; 2119 } 2120 2121 public boolean hasProcessNote() { 2122 if (this.processNote == null) 2123 return false; 2124 for (NotesComponent item : this.processNote) 2125 if (!item.isEmpty()) 2126 return true; 2127 return false; 2128 } 2129 2130 public NotesComponent addProcessNote() { // 3 2131 NotesComponent t = new NotesComponent(); 2132 if (this.processNote == null) 2133 this.processNote = new ArrayList<NotesComponent>(); 2134 this.processNote.add(t); 2135 return t; 2136 } 2137 2138 public PaymentReconciliation addProcessNote(NotesComponent t) { // 3 2139 if (t == null) 2140 return this; 2141 if (this.processNote == null) 2142 this.processNote = new ArrayList<NotesComponent>(); 2143 this.processNote.add(t); 2144 return this; 2145 } 2146 2147 /** 2148 * @return The first repetition of repeating field {@link #processNote}, 2149 * creating it if it does not already exist 2150 */ 2151 public NotesComponent getProcessNoteFirstRep() { 2152 if (getProcessNote().isEmpty()) { 2153 addProcessNote(); 2154 } 2155 return getProcessNote().get(0); 2156 } 2157 2158 protected void listChildren(List<Property> children) { 2159 super.listChildren(children); 2160 children.add(new Property("identifier", "Identifier", 2161 "A unique identifier assigned to this payment reconciliation.", 0, java.lang.Integer.MAX_VALUE, identifier)); 2162 children.add(new Property("status", "code", "The status of the resource instance.", 0, 1, status)); 2163 children.add(new Property("period", "Period", 2164 "The period of time for which payments have been gathered into this bulk payment for settlement.", 0, 1, 2165 period)); 2166 children.add(new Property("created", "dateTime", "The date when the resource was created.", 0, 1, created)); 2167 children.add(new Property("paymentIssuer", "Reference(Organization)", "The party who generated the payment.", 0, 1, 2168 paymentIssuer)); 2169 children.add(new Property("request", "Reference(Task)", "Original request resource reference.", 0, 1, request)); 2170 children.add(new Property("requestor", "Reference(Practitioner|PractitionerRole|Organization)", 2171 "The practitioner who is responsible for the services rendered to the patient.", 0, 1, requestor)); 2172 children.add(new Property("outcome", "code", "The outcome of a request for a reconciliation.", 0, 1, outcome)); 2173 children.add(new Property("disposition", "string", 2174 "A human readable description of the status of the request for the reconciliation.", 0, 1, disposition)); 2175 children.add(new Property("paymentDate", "date", "The date of payment as indicated on the financial instrument.", 0, 2176 1, paymentDate)); 2177 children.add(new Property("paymentAmount", "Money", 2178 "Total payment amount as indicated on the financial instrument.", 0, 1, paymentAmount)); 2179 children.add(new Property("paymentIdentifier", "Identifier", 2180 "Issuer's unique identifier for the payment instrument.", 0, 1, paymentIdentifier)); 2181 children.add(new Property("detail", "", "Distribution of the payment amount for a previously acknowledged payable.", 2182 0, java.lang.Integer.MAX_VALUE, detail)); 2183 children.add(new Property("formCode", "CodeableConcept", "A code for the form to be used for printing the content.", 2184 0, 1, formCode)); 2185 children.add( 2186 new Property("processNote", "", "A note that describes or explains the processing in a human readable form.", 0, 2187 java.lang.Integer.MAX_VALUE, processNote)); 2188 } 2189 2190 @Override 2191 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 2192 switch (_hash) { 2193 case -1618432855: 2194 /* identifier */ return new Property("identifier", "Identifier", 2195 "A unique identifier assigned to this payment reconciliation.", 0, java.lang.Integer.MAX_VALUE, identifier); 2196 case -892481550: 2197 /* status */ return new Property("status", "code", "The status of the resource instance.", 0, 1, status); 2198 case -991726143: 2199 /* period */ return new Property("period", "Period", 2200 "The period of time for which payments have been gathered into this bulk payment for settlement.", 0, 1, 2201 period); 2202 case 1028554472: 2203 /* created */ return new Property("created", "dateTime", "The date when the resource was created.", 0, 1, 2204 created); 2205 case 1144026207: 2206 /* paymentIssuer */ return new Property("paymentIssuer", "Reference(Organization)", 2207 "The party who generated the payment.", 0, 1, paymentIssuer); 2208 case 1095692943: 2209 /* request */ return new Property("request", "Reference(Task)", "Original request resource reference.", 0, 1, 2210 request); 2211 case 693934258: 2212 /* requestor */ return new Property("requestor", "Reference(Practitioner|PractitionerRole|Organization)", 2213 "The practitioner who is responsible for the services rendered to the patient.", 0, 1, requestor); 2214 case -1106507950: 2215 /* outcome */ return new Property("outcome", "code", "The outcome of a request for a reconciliation.", 0, 1, 2216 outcome); 2217 case 583380919: 2218 /* disposition */ return new Property("disposition", "string", 2219 "A human readable description of the status of the request for the reconciliation.", 0, 1, disposition); 2220 case -1540873516: 2221 /* paymentDate */ return new Property("paymentDate", "date", 2222 "The date of payment as indicated on the financial instrument.", 0, 1, paymentDate); 2223 case 909332990: 2224 /* paymentAmount */ return new Property("paymentAmount", "Money", 2225 "Total payment amount as indicated on the financial instrument.", 0, 1, paymentAmount); 2226 case 1555852111: 2227 /* paymentIdentifier */ return new Property("paymentIdentifier", "Identifier", 2228 "Issuer's unique identifier for the payment instrument.", 0, 1, paymentIdentifier); 2229 case -1335224239: 2230 /* detail */ return new Property("detail", "", 2231 "Distribution of the payment amount for a previously acknowledged payable.", 0, java.lang.Integer.MAX_VALUE, 2232 detail); 2233 case 473181393: 2234 /* formCode */ return new Property("formCode", "CodeableConcept", 2235 "A code for the form to be used for printing the content.", 0, 1, formCode); 2236 case 202339073: 2237 /* processNote */ return new Property("processNote", "", 2238 "A note that describes or explains the processing in a human readable form.", 0, java.lang.Integer.MAX_VALUE, 2239 processNote); 2240 default: 2241 return super.getNamedProperty(_hash, _name, _checkValid); 2242 } 2243 2244 } 2245 2246 @Override 2247 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2248 switch (hash) { 2249 case -1618432855: 2250 /* identifier */ return this.identifier == null ? new Base[0] 2251 : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 2252 case -892481550: 2253 /* status */ return this.status == null ? new Base[0] : new Base[] { this.status }; // Enumeration<PaymentReconciliationStatus> 2254 case -991726143: 2255 /* period */ return this.period == null ? new Base[0] : new Base[] { this.period }; // Period 2256 case 1028554472: 2257 /* created */ return this.created == null ? new Base[0] : new Base[] { this.created }; // DateTimeType 2258 case 1144026207: 2259 /* paymentIssuer */ return this.paymentIssuer == null ? new Base[0] : new Base[] { this.paymentIssuer }; // Reference 2260 case 1095692943: 2261 /* request */ return this.request == null ? new Base[0] : new Base[] { this.request }; // Reference 2262 case 693934258: 2263 /* requestor */ return this.requestor == null ? new Base[0] : new Base[] { this.requestor }; // Reference 2264 case -1106507950: 2265 /* outcome */ return this.outcome == null ? new Base[0] : new Base[] { this.outcome }; // Enumeration<RemittanceOutcome> 2266 case 583380919: 2267 /* disposition */ return this.disposition == null ? new Base[0] : new Base[] { this.disposition }; // StringType 2268 case -1540873516: 2269 /* paymentDate */ return this.paymentDate == null ? new Base[0] : new Base[] { this.paymentDate }; // DateType 2270 case 909332990: 2271 /* paymentAmount */ return this.paymentAmount == null ? new Base[0] : new Base[] { this.paymentAmount }; // Money 2272 case 1555852111: 2273 /* paymentIdentifier */ return this.paymentIdentifier == null ? new Base[0] 2274 : new Base[] { this.paymentIdentifier }; // Identifier 2275 case -1335224239: 2276 /* detail */ return this.detail == null ? new Base[0] : this.detail.toArray(new Base[this.detail.size()]); // DetailsComponent 2277 case 473181393: 2278 /* formCode */ return this.formCode == null ? new Base[0] : new Base[] { this.formCode }; // CodeableConcept 2279 case 202339073: 2280 /* processNote */ return this.processNote == null ? new Base[0] 2281 : this.processNote.toArray(new Base[this.processNote.size()]); // NotesComponent 2282 default: 2283 return super.getProperty(hash, name, checkValid); 2284 } 2285 2286 } 2287 2288 @Override 2289 public Base setProperty(int hash, String name, Base value) throws FHIRException { 2290 switch (hash) { 2291 case -1618432855: // identifier 2292 this.getIdentifier().add(castToIdentifier(value)); // Identifier 2293 return value; 2294 case -892481550: // status 2295 value = new PaymentReconciliationStatusEnumFactory().fromType(castToCode(value)); 2296 this.status = (Enumeration) value; // Enumeration<PaymentReconciliationStatus> 2297 return value; 2298 case -991726143: // period 2299 this.period = castToPeriod(value); // Period 2300 return value; 2301 case 1028554472: // created 2302 this.created = castToDateTime(value); // DateTimeType 2303 return value; 2304 case 1144026207: // paymentIssuer 2305 this.paymentIssuer = castToReference(value); // Reference 2306 return value; 2307 case 1095692943: // request 2308 this.request = castToReference(value); // Reference 2309 return value; 2310 case 693934258: // requestor 2311 this.requestor = castToReference(value); // Reference 2312 return value; 2313 case -1106507950: // outcome 2314 value = new RemittanceOutcomeEnumFactory().fromType(castToCode(value)); 2315 this.outcome = (Enumeration) value; // Enumeration<RemittanceOutcome> 2316 return value; 2317 case 583380919: // disposition 2318 this.disposition = castToString(value); // StringType 2319 return value; 2320 case -1540873516: // paymentDate 2321 this.paymentDate = castToDate(value); // DateType 2322 return value; 2323 case 909332990: // paymentAmount 2324 this.paymentAmount = castToMoney(value); // Money 2325 return value; 2326 case 1555852111: // paymentIdentifier 2327 this.paymentIdentifier = castToIdentifier(value); // Identifier 2328 return value; 2329 case -1335224239: // detail 2330 this.getDetail().add((DetailsComponent) value); // DetailsComponent 2331 return value; 2332 case 473181393: // formCode 2333 this.formCode = castToCodeableConcept(value); // CodeableConcept 2334 return value; 2335 case 202339073: // processNote 2336 this.getProcessNote().add((NotesComponent) value); // NotesComponent 2337 return value; 2338 default: 2339 return super.setProperty(hash, name, value); 2340 } 2341 2342 } 2343 2344 @Override 2345 public Base setProperty(String name, Base value) throws FHIRException { 2346 if (name.equals("identifier")) { 2347 this.getIdentifier().add(castToIdentifier(value)); 2348 } else if (name.equals("status")) { 2349 value = new PaymentReconciliationStatusEnumFactory().fromType(castToCode(value)); 2350 this.status = (Enumeration) value; // Enumeration<PaymentReconciliationStatus> 2351 } else if (name.equals("period")) { 2352 this.period = castToPeriod(value); // Period 2353 } else if (name.equals("created")) { 2354 this.created = castToDateTime(value); // DateTimeType 2355 } else if (name.equals("paymentIssuer")) { 2356 this.paymentIssuer = castToReference(value); // Reference 2357 } else if (name.equals("request")) { 2358 this.request = castToReference(value); // Reference 2359 } else if (name.equals("requestor")) { 2360 this.requestor = castToReference(value); // Reference 2361 } else if (name.equals("outcome")) { 2362 value = new RemittanceOutcomeEnumFactory().fromType(castToCode(value)); 2363 this.outcome = (Enumeration) value; // Enumeration<RemittanceOutcome> 2364 } else if (name.equals("disposition")) { 2365 this.disposition = castToString(value); // StringType 2366 } else if (name.equals("paymentDate")) { 2367 this.paymentDate = castToDate(value); // DateType 2368 } else if (name.equals("paymentAmount")) { 2369 this.paymentAmount = castToMoney(value); // Money 2370 } else if (name.equals("paymentIdentifier")) { 2371 this.paymentIdentifier = castToIdentifier(value); // Identifier 2372 } else if (name.equals("detail")) { 2373 this.getDetail().add((DetailsComponent) value); 2374 } else if (name.equals("formCode")) { 2375 this.formCode = castToCodeableConcept(value); // CodeableConcept 2376 } else if (name.equals("processNote")) { 2377 this.getProcessNote().add((NotesComponent) value); 2378 } else 2379 return super.setProperty(name, value); 2380 return value; 2381 } 2382 2383 @Override 2384 public Base makeProperty(int hash, String name) throws FHIRException { 2385 switch (hash) { 2386 case -1618432855: 2387 return addIdentifier(); 2388 case -892481550: 2389 return getStatusElement(); 2390 case -991726143: 2391 return getPeriod(); 2392 case 1028554472: 2393 return getCreatedElement(); 2394 case 1144026207: 2395 return getPaymentIssuer(); 2396 case 1095692943: 2397 return getRequest(); 2398 case 693934258: 2399 return getRequestor(); 2400 case -1106507950: 2401 return getOutcomeElement(); 2402 case 583380919: 2403 return getDispositionElement(); 2404 case -1540873516: 2405 return getPaymentDateElement(); 2406 case 909332990: 2407 return getPaymentAmount(); 2408 case 1555852111: 2409 return getPaymentIdentifier(); 2410 case -1335224239: 2411 return addDetail(); 2412 case 473181393: 2413 return getFormCode(); 2414 case 202339073: 2415 return addProcessNote(); 2416 default: 2417 return super.makeProperty(hash, name); 2418 } 2419 2420 } 2421 2422 @Override 2423 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2424 switch (hash) { 2425 case -1618432855: 2426 /* identifier */ return new String[] { "Identifier" }; 2427 case -892481550: 2428 /* status */ return new String[] { "code" }; 2429 case -991726143: 2430 /* period */ return new String[] { "Period" }; 2431 case 1028554472: 2432 /* created */ return new String[] { "dateTime" }; 2433 case 1144026207: 2434 /* paymentIssuer */ return new String[] { "Reference" }; 2435 case 1095692943: 2436 /* request */ return new String[] { "Reference" }; 2437 case 693934258: 2438 /* requestor */ return new String[] { "Reference" }; 2439 case -1106507950: 2440 /* outcome */ return new String[] { "code" }; 2441 case 583380919: 2442 /* disposition */ return new String[] { "string" }; 2443 case -1540873516: 2444 /* paymentDate */ return new String[] { "date" }; 2445 case 909332990: 2446 /* paymentAmount */ return new String[] { "Money" }; 2447 case 1555852111: 2448 /* paymentIdentifier */ return new String[] { "Identifier" }; 2449 case -1335224239: 2450 /* detail */ return new String[] {}; 2451 case 473181393: 2452 /* formCode */ return new String[] { "CodeableConcept" }; 2453 case 202339073: 2454 /* processNote */ return new String[] {}; 2455 default: 2456 return super.getTypesForProperty(hash, name); 2457 } 2458 2459 } 2460 2461 @Override 2462 public Base addChild(String name) throws FHIRException { 2463 if (name.equals("identifier")) { 2464 return addIdentifier(); 2465 } else if (name.equals("status")) { 2466 throw new FHIRException("Cannot call addChild on a singleton property PaymentReconciliation.status"); 2467 } else if (name.equals("period")) { 2468 this.period = new Period(); 2469 return this.period; 2470 } else if (name.equals("created")) { 2471 throw new FHIRException("Cannot call addChild on a singleton property PaymentReconciliation.created"); 2472 } else if (name.equals("paymentIssuer")) { 2473 this.paymentIssuer = new Reference(); 2474 return this.paymentIssuer; 2475 } else if (name.equals("request")) { 2476 this.request = new Reference(); 2477 return this.request; 2478 } else if (name.equals("requestor")) { 2479 this.requestor = new Reference(); 2480 return this.requestor; 2481 } else if (name.equals("outcome")) { 2482 throw new FHIRException("Cannot call addChild on a singleton property PaymentReconciliation.outcome"); 2483 } else if (name.equals("disposition")) { 2484 throw new FHIRException("Cannot call addChild on a singleton property PaymentReconciliation.disposition"); 2485 } else if (name.equals("paymentDate")) { 2486 throw new FHIRException("Cannot call addChild on a singleton property PaymentReconciliation.paymentDate"); 2487 } else if (name.equals("paymentAmount")) { 2488 this.paymentAmount = new Money(); 2489 return this.paymentAmount; 2490 } else if (name.equals("paymentIdentifier")) { 2491 this.paymentIdentifier = new Identifier(); 2492 return this.paymentIdentifier; 2493 } else if (name.equals("detail")) { 2494 return addDetail(); 2495 } else if (name.equals("formCode")) { 2496 this.formCode = new CodeableConcept(); 2497 return this.formCode; 2498 } else if (name.equals("processNote")) { 2499 return addProcessNote(); 2500 } else 2501 return super.addChild(name); 2502 } 2503 2504 public String fhirType() { 2505 return "PaymentReconciliation"; 2506 2507 } 2508 2509 public PaymentReconciliation copy() { 2510 PaymentReconciliation dst = new PaymentReconciliation(); 2511 copyValues(dst); 2512 return dst; 2513 } 2514 2515 public void copyValues(PaymentReconciliation dst) { 2516 super.copyValues(dst); 2517 if (identifier != null) { 2518 dst.identifier = new ArrayList<Identifier>(); 2519 for (Identifier i : identifier) 2520 dst.identifier.add(i.copy()); 2521 } 2522 ; 2523 dst.status = status == null ? null : status.copy(); 2524 dst.period = period == null ? null : period.copy(); 2525 dst.created = created == null ? null : created.copy(); 2526 dst.paymentIssuer = paymentIssuer == null ? null : paymentIssuer.copy(); 2527 dst.request = request == null ? null : request.copy(); 2528 dst.requestor = requestor == null ? null : requestor.copy(); 2529 dst.outcome = outcome == null ? null : outcome.copy(); 2530 dst.disposition = disposition == null ? null : disposition.copy(); 2531 dst.paymentDate = paymentDate == null ? null : paymentDate.copy(); 2532 dst.paymentAmount = paymentAmount == null ? null : paymentAmount.copy(); 2533 dst.paymentIdentifier = paymentIdentifier == null ? null : paymentIdentifier.copy(); 2534 if (detail != null) { 2535 dst.detail = new ArrayList<DetailsComponent>(); 2536 for (DetailsComponent i : detail) 2537 dst.detail.add(i.copy()); 2538 } 2539 ; 2540 dst.formCode = formCode == null ? null : formCode.copy(); 2541 if (processNote != null) { 2542 dst.processNote = new ArrayList<NotesComponent>(); 2543 for (NotesComponent i : processNote) 2544 dst.processNote.add(i.copy()); 2545 } 2546 ; 2547 } 2548 2549 protected PaymentReconciliation typedCopy() { 2550 return copy(); 2551 } 2552 2553 @Override 2554 public boolean equalsDeep(Base other_) { 2555 if (!super.equalsDeep(other_)) 2556 return false; 2557 if (!(other_ instanceof PaymentReconciliation)) 2558 return false; 2559 PaymentReconciliation o = (PaymentReconciliation) other_; 2560 return compareDeep(identifier, o.identifier, true) && compareDeep(status, o.status, true) 2561 && compareDeep(period, o.period, true) && compareDeep(created, o.created, true) 2562 && compareDeep(paymentIssuer, o.paymentIssuer, true) && compareDeep(request, o.request, true) 2563 && compareDeep(requestor, o.requestor, true) && compareDeep(outcome, o.outcome, true) 2564 && compareDeep(disposition, o.disposition, true) && compareDeep(paymentDate, o.paymentDate, true) 2565 && compareDeep(paymentAmount, o.paymentAmount, true) 2566 && compareDeep(paymentIdentifier, o.paymentIdentifier, true) && compareDeep(detail, o.detail, true) 2567 && compareDeep(formCode, o.formCode, true) && compareDeep(processNote, o.processNote, true); 2568 } 2569 2570 @Override 2571 public boolean equalsShallow(Base other_) { 2572 if (!super.equalsShallow(other_)) 2573 return false; 2574 if (!(other_ instanceof PaymentReconciliation)) 2575 return false; 2576 PaymentReconciliation o = (PaymentReconciliation) other_; 2577 return compareValues(status, o.status, true) && compareValues(created, o.created, true) 2578 && compareValues(outcome, o.outcome, true) && compareValues(disposition, o.disposition, true) 2579 && compareValues(paymentDate, o.paymentDate, true); 2580 } 2581 2582 public boolean isEmpty() { 2583 return super.isEmpty() 2584 && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, status, period, created, paymentIssuer, request, requestor, 2585 outcome, disposition, paymentDate, paymentAmount, paymentIdentifier, detail, formCode, processNote); 2586 } 2587 2588 @Override 2589 public ResourceType getResourceType() { 2590 return ResourceType.PaymentReconciliation; 2591 } 2592 2593 /** 2594 * Search parameter: <b>identifier</b> 2595 * <p> 2596 * Description: <b>The business identifier of the ExplanationOfBenefit</b><br> 2597 * Type: <b>token</b><br> 2598 * Path: <b>PaymentReconciliation.identifier</b><br> 2599 * </p> 2600 */ 2601 @SearchParamDefinition(name = "identifier", path = "PaymentReconciliation.identifier", description = "The business identifier of the ExplanationOfBenefit", type = "token") 2602 public static final String SP_IDENTIFIER = "identifier"; 2603 /** 2604 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 2605 * <p> 2606 * Description: <b>The business identifier of the ExplanationOfBenefit</b><br> 2607 * Type: <b>token</b><br> 2608 * Path: <b>PaymentReconciliation.identifier</b><br> 2609 * </p> 2610 */ 2611 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam( 2612 SP_IDENTIFIER); 2613 2614 /** 2615 * Search parameter: <b>request</b> 2616 * <p> 2617 * Description: <b>The reference to the claim</b><br> 2618 * Type: <b>reference</b><br> 2619 * Path: <b>PaymentReconciliation.request</b><br> 2620 * </p> 2621 */ 2622 @SearchParamDefinition(name = "request", path = "PaymentReconciliation.request", description = "The reference to the claim", type = "reference", target = { 2623 Task.class }) 2624 public static final String SP_REQUEST = "request"; 2625 /** 2626 * <b>Fluent Client</b> search parameter constant for <b>request</b> 2627 * <p> 2628 * Description: <b>The reference to the claim</b><br> 2629 * Type: <b>reference</b><br> 2630 * Path: <b>PaymentReconciliation.request</b><br> 2631 * </p> 2632 */ 2633 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam REQUEST = new ca.uhn.fhir.rest.gclient.ReferenceClientParam( 2634 SP_REQUEST); 2635 2636 /** 2637 * Constant for fluent queries to be used to add include statements. Specifies 2638 * the path value of "<b>PaymentReconciliation:request</b>". 2639 */ 2640 public static final ca.uhn.fhir.model.api.Include INCLUDE_REQUEST = new ca.uhn.fhir.model.api.Include( 2641 "PaymentReconciliation:request").toLocked(); 2642 2643 /** 2644 * Search parameter: <b>disposition</b> 2645 * <p> 2646 * Description: <b>The contents of the disposition message</b><br> 2647 * Type: <b>string</b><br> 2648 * Path: <b>PaymentReconciliation.disposition</b><br> 2649 * </p> 2650 */ 2651 @SearchParamDefinition(name = "disposition", path = "PaymentReconciliation.disposition", description = "The contents of the disposition message", type = "string") 2652 public static final String SP_DISPOSITION = "disposition"; 2653 /** 2654 * <b>Fluent Client</b> search parameter constant for <b>disposition</b> 2655 * <p> 2656 * Description: <b>The contents of the disposition message</b><br> 2657 * Type: <b>string</b><br> 2658 * Path: <b>PaymentReconciliation.disposition</b><br> 2659 * </p> 2660 */ 2661 public static final ca.uhn.fhir.rest.gclient.StringClientParam DISPOSITION = new ca.uhn.fhir.rest.gclient.StringClientParam( 2662 SP_DISPOSITION); 2663 2664 /** 2665 * Search parameter: <b>created</b> 2666 * <p> 2667 * Description: <b>The creation date</b><br> 2668 * Type: <b>date</b><br> 2669 * Path: <b>PaymentReconciliation.created</b><br> 2670 * </p> 2671 */ 2672 @SearchParamDefinition(name = "created", path = "PaymentReconciliation.created", description = "The creation date", type = "date") 2673 public static final String SP_CREATED = "created"; 2674 /** 2675 * <b>Fluent Client</b> search parameter constant for <b>created</b> 2676 * <p> 2677 * Description: <b>The creation date</b><br> 2678 * Type: <b>date</b><br> 2679 * Path: <b>PaymentReconciliation.created</b><br> 2680 * </p> 2681 */ 2682 public static final ca.uhn.fhir.rest.gclient.DateClientParam CREATED = new ca.uhn.fhir.rest.gclient.DateClientParam( 2683 SP_CREATED); 2684 2685 /** 2686 * Search parameter: <b>payment-issuer</b> 2687 * <p> 2688 * Description: <b>The organization which generated this resource</b><br> 2689 * Type: <b>reference</b><br> 2690 * Path: <b>PaymentReconciliation.paymentIssuer</b><br> 2691 * </p> 2692 */ 2693 @SearchParamDefinition(name = "payment-issuer", path = "PaymentReconciliation.paymentIssuer", description = "The organization which generated this resource", type = "reference", target = { 2694 Organization.class }) 2695 public static final String SP_PAYMENT_ISSUER = "payment-issuer"; 2696 /** 2697 * <b>Fluent Client</b> search parameter constant for <b>payment-issuer</b> 2698 * <p> 2699 * Description: <b>The organization which generated this resource</b><br> 2700 * Type: <b>reference</b><br> 2701 * Path: <b>PaymentReconciliation.paymentIssuer</b><br> 2702 * </p> 2703 */ 2704 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PAYMENT_ISSUER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam( 2705 SP_PAYMENT_ISSUER); 2706 2707 /** 2708 * Constant for fluent queries to be used to add include statements. Specifies 2709 * the path value of "<b>PaymentReconciliation:payment-issuer</b>". 2710 */ 2711 public static final ca.uhn.fhir.model.api.Include INCLUDE_PAYMENT_ISSUER = new ca.uhn.fhir.model.api.Include( 2712 "PaymentReconciliation:payment-issuer").toLocked(); 2713 2714 /** 2715 * Search parameter: <b>outcome</b> 2716 * <p> 2717 * Description: <b>The processing outcome</b><br> 2718 * Type: <b>token</b><br> 2719 * Path: <b>PaymentReconciliation.outcome</b><br> 2720 * </p> 2721 */ 2722 @SearchParamDefinition(name = "outcome", path = "PaymentReconciliation.outcome", description = "The processing outcome", type = "token") 2723 public static final String SP_OUTCOME = "outcome"; 2724 /** 2725 * <b>Fluent Client</b> search parameter constant for <b>outcome</b> 2726 * <p> 2727 * Description: <b>The processing outcome</b><br> 2728 * Type: <b>token</b><br> 2729 * Path: <b>PaymentReconciliation.outcome</b><br> 2730 * </p> 2731 */ 2732 public static final ca.uhn.fhir.rest.gclient.TokenClientParam OUTCOME = new ca.uhn.fhir.rest.gclient.TokenClientParam( 2733 SP_OUTCOME); 2734 2735 /** 2736 * Search parameter: <b>requestor</b> 2737 * <p> 2738 * Description: <b>The reference to the provider who submitted the claim</b><br> 2739 * Type: <b>reference</b><br> 2740 * Path: <b>PaymentReconciliation.requestor</b><br> 2741 * </p> 2742 */ 2743 @SearchParamDefinition(name = "requestor", path = "PaymentReconciliation.requestor", description = "The reference to the provider who submitted the claim", type = "reference", providesMembershipIn = { 2744 @ca.uhn.fhir.model.api.annotation.Compartment(name = "Practitioner") }, target = { Organization.class, 2745 Practitioner.class, PractitionerRole.class }) 2746 public static final String SP_REQUESTOR = "requestor"; 2747 /** 2748 * <b>Fluent Client</b> search parameter constant for <b>requestor</b> 2749 * <p> 2750 * Description: <b>The reference to the provider who submitted the claim</b><br> 2751 * Type: <b>reference</b><br> 2752 * Path: <b>PaymentReconciliation.requestor</b><br> 2753 * </p> 2754 */ 2755 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam REQUESTOR = new ca.uhn.fhir.rest.gclient.ReferenceClientParam( 2756 SP_REQUESTOR); 2757 2758 /** 2759 * Constant for fluent queries to be used to add include statements. Specifies 2760 * the path value of "<b>PaymentReconciliation:requestor</b>". 2761 */ 2762 public static final ca.uhn.fhir.model.api.Include INCLUDE_REQUESTOR = new ca.uhn.fhir.model.api.Include( 2763 "PaymentReconciliation:requestor").toLocked(); 2764 2765 /** 2766 * Search parameter: <b>status</b> 2767 * <p> 2768 * Description: <b>The status of the payment reconciliation</b><br> 2769 * Type: <b>token</b><br> 2770 * Path: <b>PaymentReconciliation.status</b><br> 2771 * </p> 2772 */ 2773 @SearchParamDefinition(name = "status", path = "PaymentReconciliation.status", description = "The status of the payment reconciliation", type = "token") 2774 public static final String SP_STATUS = "status"; 2775 /** 2776 * <b>Fluent Client</b> search parameter constant for <b>status</b> 2777 * <p> 2778 * Description: <b>The status of the payment reconciliation</b><br> 2779 * Type: <b>token</b><br> 2780 * Path: <b>PaymentReconciliation.status</b><br> 2781 * </p> 2782 */ 2783 public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam( 2784 SP_STATUS); 2785 2786}