001package org.hl7.fhir.r5.model; 002 003 004/* 005 Copyright (c) 2011+, HL7, Inc. 006 All rights reserved. 007 008 Redistribution and use in source and binary forms, with or without modification, \ 009 are permitted provided that the following conditions are met: 010 011 * Redistributions of source code must retain the above copyright notice, this \ 012 list of conditions and the following disclaimer. 013 * Redistributions in binary form must reproduce the above copyright notice, \ 014 this list of conditions and the following disclaimer in the documentation \ 015 and/or other materials provided with the distribution. 016 * Neither the name of HL7 nor the names of its contributors may be used to 017 endorse or promote products derived from this software without specific 018 prior written permission. 019 020 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \ 021 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \ 022 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \ 023 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \ 024 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT \ 025 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR \ 026 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, \ 027 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) \ 028 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE \ 029 POSSIBILITY OF SUCH DAMAGE. 030 */ 031 032// Generated on Thu, Mar 23, 2023 19:59+1100 for FHIR v5.0.0 033 034import java.util.ArrayList; 035import java.util.Date; 036import java.util.List; 037import org.hl7.fhir.utilities.Utilities; 038import org.hl7.fhir.r5.model.Enumerations.*; 039import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 040import org.hl7.fhir.exceptions.FHIRException; 041import org.hl7.fhir.instance.model.api.ICompositeType; 042import ca.uhn.fhir.model.api.annotation.ResourceDef; 043import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 044import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 045import ca.uhn.fhir.model.api.annotation.Child; 046import ca.uhn.fhir.model.api.annotation.ChildOrder; 047import ca.uhn.fhir.model.api.annotation.Description; 048import ca.uhn.fhir.model.api.annotation.Block; 049 050/** 051 * This resource provides the details including amount of a payment and allocates the payment items being paid. 052 */ 053@ResourceDef(name="PaymentReconciliation", profile="http://hl7.org/fhir/StructureDefinition/PaymentReconciliation") 054public class PaymentReconciliation extends DomainResource { 055 056 public enum NoteType { 057 /** 058 * Display the note. 059 */ 060 DISPLAY, 061 /** 062 * Print the note on the form. 063 */ 064 PRINT, 065 /** 066 * Print the note for the operator. 067 */ 068 PRINTOPER, 069 /** 070 * added to help the parsers with the generic types 071 */ 072 NULL; 073 public static NoteType fromCode(String codeString) throws FHIRException { 074 if (codeString == null || "".equals(codeString)) 075 return null; 076 if ("display".equals(codeString)) 077 return DISPLAY; 078 if ("print".equals(codeString)) 079 return PRINT; 080 if ("printoper".equals(codeString)) 081 return PRINTOPER; 082 if (Configuration.isAcceptInvalidEnums()) 083 return null; 084 else 085 throw new FHIRException("Unknown NoteType code '"+codeString+"'"); 086 } 087 public String toCode() { 088 switch (this) { 089 case DISPLAY: return "display"; 090 case PRINT: return "print"; 091 case PRINTOPER: return "printoper"; 092 case NULL: return null; 093 default: return "?"; 094 } 095 } 096 public String getSystem() { 097 switch (this) { 098 case DISPLAY: return "http://hl7.org/fhir/note-type"; 099 case PRINT: return "http://hl7.org/fhir/note-type"; 100 case PRINTOPER: return "http://hl7.org/fhir/note-type"; 101 case NULL: return null; 102 default: return "?"; 103 } 104 } 105 public String getDefinition() { 106 switch (this) { 107 case DISPLAY: return "Display the note."; 108 case PRINT: return "Print the note on the form."; 109 case PRINTOPER: return "Print the note for the operator."; 110 case NULL: return null; 111 default: return "?"; 112 } 113 } 114 public String getDisplay() { 115 switch (this) { 116 case DISPLAY: return "Display"; 117 case PRINT: return "Print (Form)"; 118 case PRINTOPER: return "Print (Operator)"; 119 case NULL: return null; 120 default: return "?"; 121 } 122 } 123 } 124 125 public static class NoteTypeEnumFactory implements EnumFactory<NoteType> { 126 public NoteType fromCode(String codeString) throws IllegalArgumentException { 127 if (codeString == null || "".equals(codeString)) 128 if (codeString == null || "".equals(codeString)) 129 return null; 130 if ("display".equals(codeString)) 131 return NoteType.DISPLAY; 132 if ("print".equals(codeString)) 133 return NoteType.PRINT; 134 if ("printoper".equals(codeString)) 135 return NoteType.PRINTOPER; 136 throw new IllegalArgumentException("Unknown NoteType code '"+codeString+"'"); 137 } 138 public Enumeration<NoteType> fromType(PrimitiveType<?> code) throws FHIRException { 139 if (code == null) 140 return null; 141 if (code.isEmpty()) 142 return new Enumeration<NoteType>(this, NoteType.NULL, code); 143 String codeString = ((PrimitiveType) code).asStringValue(); 144 if (codeString == null || "".equals(codeString)) 145 return new Enumeration<NoteType>(this, NoteType.NULL, code); 146 if ("display".equals(codeString)) 147 return new Enumeration<NoteType>(this, NoteType.DISPLAY, code); 148 if ("print".equals(codeString)) 149 return new Enumeration<NoteType>(this, NoteType.PRINT, code); 150 if ("printoper".equals(codeString)) 151 return new Enumeration<NoteType>(this, NoteType.PRINTOPER, code); 152 throw new FHIRException("Unknown NoteType code '"+codeString+"'"); 153 } 154 public String toCode(NoteType code) { 155 if (code == NoteType.NULL) 156 return null; 157 if (code == NoteType.DISPLAY) 158 return "display"; 159 if (code == NoteType.PRINT) 160 return "print"; 161 if (code == NoteType.PRINTOPER) 162 return "printoper"; 163 return "?"; 164 } 165 public String toSystem(NoteType code) { 166 return code.getSystem(); 167 } 168 } 169 170 public enum PaymentOutcome { 171 /** 172 * The Claim/Pre-authorization/Pre-determination has been received but processing has not begun. 173 */ 174 QUEUED, 175 /** 176 * The processing has completed without errors 177 */ 178 COMPLETE, 179 /** 180 * One or more errors have been detected in the Claim 181 */ 182 ERROR, 183 /** 184 * No errors have been detected in the Claim and some of the adjudication has been performed. 185 */ 186 PARTIAL, 187 /** 188 * added to help the parsers with the generic types 189 */ 190 NULL; 191 public static PaymentOutcome fromCode(String codeString) throws FHIRException { 192 if (codeString == null || "".equals(codeString)) 193 return null; 194 if ("queued".equals(codeString)) 195 return QUEUED; 196 if ("complete".equals(codeString)) 197 return COMPLETE; 198 if ("error".equals(codeString)) 199 return ERROR; 200 if ("partial".equals(codeString)) 201 return PARTIAL; 202 if (Configuration.isAcceptInvalidEnums()) 203 return null; 204 else 205 throw new FHIRException("Unknown PaymentOutcome code '"+codeString+"'"); 206 } 207 public String toCode() { 208 switch (this) { 209 case QUEUED: return "queued"; 210 case COMPLETE: return "complete"; 211 case ERROR: return "error"; 212 case PARTIAL: return "partial"; 213 case NULL: return null; 214 default: return "?"; 215 } 216 } 217 public String getSystem() { 218 switch (this) { 219 case QUEUED: return "http://hl7.org/fhir/payment-outcome"; 220 case COMPLETE: return "http://hl7.org/fhir/payment-outcome"; 221 case ERROR: return "http://hl7.org/fhir/payment-outcome"; 222 case PARTIAL: return "http://hl7.org/fhir/payment-outcome"; 223 case NULL: return null; 224 default: return "?"; 225 } 226 } 227 public String getDefinition() { 228 switch (this) { 229 case QUEUED: return "The Claim/Pre-authorization/Pre-determination has been received but processing has not begun."; 230 case COMPLETE: return "The processing has completed without errors"; 231 case ERROR: return "One or more errors have been detected in the Claim"; 232 case PARTIAL: return "No errors have been detected in the Claim and some of the adjudication has been performed."; 233 case NULL: return null; 234 default: return "?"; 235 } 236 } 237 public String getDisplay() { 238 switch (this) { 239 case QUEUED: return "Queued"; 240 case COMPLETE: return "Processing Complete"; 241 case ERROR: return "Error"; 242 case PARTIAL: return "Partial Processing"; 243 case NULL: return null; 244 default: return "?"; 245 } 246 } 247 } 248 249 public static class PaymentOutcomeEnumFactory implements EnumFactory<PaymentOutcome> { 250 public PaymentOutcome fromCode(String codeString) throws IllegalArgumentException { 251 if (codeString == null || "".equals(codeString)) 252 if (codeString == null || "".equals(codeString)) 253 return null; 254 if ("queued".equals(codeString)) 255 return PaymentOutcome.QUEUED; 256 if ("complete".equals(codeString)) 257 return PaymentOutcome.COMPLETE; 258 if ("error".equals(codeString)) 259 return PaymentOutcome.ERROR; 260 if ("partial".equals(codeString)) 261 return PaymentOutcome.PARTIAL; 262 throw new IllegalArgumentException("Unknown PaymentOutcome code '"+codeString+"'"); 263 } 264 public Enumeration<PaymentOutcome> fromType(PrimitiveType<?> code) throws FHIRException { 265 if (code == null) 266 return null; 267 if (code.isEmpty()) 268 return new Enumeration<PaymentOutcome>(this, PaymentOutcome.NULL, code); 269 String codeString = ((PrimitiveType) code).asStringValue(); 270 if (codeString == null || "".equals(codeString)) 271 return new Enumeration<PaymentOutcome>(this, PaymentOutcome.NULL, code); 272 if ("queued".equals(codeString)) 273 return new Enumeration<PaymentOutcome>(this, PaymentOutcome.QUEUED, code); 274 if ("complete".equals(codeString)) 275 return new Enumeration<PaymentOutcome>(this, PaymentOutcome.COMPLETE, code); 276 if ("error".equals(codeString)) 277 return new Enumeration<PaymentOutcome>(this, PaymentOutcome.ERROR, code); 278 if ("partial".equals(codeString)) 279 return new Enumeration<PaymentOutcome>(this, PaymentOutcome.PARTIAL, code); 280 throw new FHIRException("Unknown PaymentOutcome code '"+codeString+"'"); 281 } 282 public String toCode(PaymentOutcome code) { 283 if (code == PaymentOutcome.NULL) 284 return null; 285 if (code == PaymentOutcome.QUEUED) 286 return "queued"; 287 if (code == PaymentOutcome.COMPLETE) 288 return "complete"; 289 if (code == PaymentOutcome.ERROR) 290 return "error"; 291 if (code == PaymentOutcome.PARTIAL) 292 return "partial"; 293 return "?"; 294 } 295 public String toSystem(PaymentOutcome code) { 296 return code.getSystem(); 297 } 298 } 299 300 @Block() 301 public static class PaymentReconciliationAllocationComponent extends BackboneElement implements IBaseBackboneElement { 302 /** 303 * Unique identifier for the current payment item for the referenced payable. 304 */ 305 @Child(name = "identifier", type = {Identifier.class}, order=1, min=0, max=1, modifier=false, summary=false) 306 @Description(shortDefinition="Business identifier of the payment detail", formalDefinition="Unique identifier for the current payment item for the referenced payable." ) 307 protected Identifier identifier; 308 309 /** 310 * Unique identifier for the prior payment item for the referenced payable. 311 */ 312 @Child(name = "predecessor", type = {Identifier.class}, order=2, min=0, max=1, modifier=false, summary=false) 313 @Description(shortDefinition="Business identifier of the prior payment detail", formalDefinition="Unique identifier for the prior payment item for the referenced payable." ) 314 protected Identifier predecessor; 315 316 /** 317 * Specific resource to which the payment/adjustment/advance applies. 318 */ 319 @Child(name = "target", type = {Claim.class, Account.class, Invoice.class, ChargeItem.class, Encounter.class, Contract.class}, order=3, min=0, max=1, modifier=false, summary=false) 320 @Description(shortDefinition="Subject of the payment", formalDefinition="Specific resource to which the payment/adjustment/advance applies." ) 321 protected Reference target; 322 323 /** 324 * Identifies the claim line item, encounter or other sub-element being paid. Note payment may be partial, that is not match the then outstanding balance or amount incurred. 325 */ 326 @Child(name = "targetItem", type = {StringType.class, Identifier.class, PositiveIntType.class}, order=4, min=0, max=1, modifier=false, summary=false) 327 @Description(shortDefinition="Sub-element of the subject", formalDefinition=" Identifies the claim line item, encounter or other sub-element being paid. Note payment may be partial, that is not match the then outstanding balance or amount incurred." ) 328 protected DataType targetItem; 329 330 /** 331 * The Encounter to which this payment applies, may be completed by the receiver, used for search. 332 */ 333 @Child(name = "encounter", type = {Encounter.class}, order=5, min=0, max=1, modifier=false, summary=false) 334 @Description(shortDefinition="Applied-to encounter", formalDefinition="The Encounter to which this payment applies, may be completed by the receiver, used for search." ) 335 protected Reference encounter; 336 337 /** 338 * The Account to which this payment applies, may be completed by the receiver, used for search. 339 */ 340 @Child(name = "account", type = {Account.class}, order=6, min=0, max=1, modifier=false, summary=false) 341 @Description(shortDefinition="Applied-to account", formalDefinition="The Account to which this payment applies, may be completed by the receiver, used for search." ) 342 protected Reference account; 343 344 /** 345 * Code to indicate the nature of the payment. 346 */ 347 @Child(name = "type", type = {CodeableConcept.class}, order=7, min=0, max=1, modifier=false, summary=false) 348 @Description(shortDefinition="Category of payment", formalDefinition="Code to indicate the nature of the payment." ) 349 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/payment-type") 350 protected CodeableConcept type; 351 352 /** 353 * The party which submitted the claim or financial transaction. 354 */ 355 @Child(name = "submitter", type = {Practitioner.class, PractitionerRole.class, Organization.class}, order=8, min=0, max=1, modifier=false, summary=false) 356 @Description(shortDefinition="Submitter of the request", formalDefinition="The party which submitted the claim or financial transaction." ) 357 protected Reference submitter; 358 359 /** 360 * A resource, such as a ClaimResponse, which contains a commitment to payment. 361 */ 362 @Child(name = "response", type = {ClaimResponse.class}, order=9, min=0, max=1, modifier=false, summary=false) 363 @Description(shortDefinition="Response committing to a payment", formalDefinition="A resource, such as a ClaimResponse, which contains a commitment to payment." ) 364 protected Reference response; 365 366 /** 367 * The date from the response resource containing a commitment to pay. 368 */ 369 @Child(name = "date", type = {DateType.class}, order=10, min=0, max=1, modifier=false, summary=false) 370 @Description(shortDefinition="Date of commitment to pay", formalDefinition="The date from the response resource containing a commitment to pay." ) 371 protected DateType date; 372 373 /** 374 * A reference to the individual who is responsible for inquiries regarding the response and its payment. 375 */ 376 @Child(name = "responsible", type = {PractitionerRole.class}, order=11, min=0, max=1, modifier=false, summary=false) 377 @Description(shortDefinition="Contact for the response", formalDefinition="A reference to the individual who is responsible for inquiries regarding the response and its payment." ) 378 protected Reference responsible; 379 380 /** 381 * The party which is receiving the payment. 382 */ 383 @Child(name = "payee", type = {Practitioner.class, PractitionerRole.class, Organization.class}, order=12, min=0, max=1, modifier=false, summary=false) 384 @Description(shortDefinition="Recipient of the payment", formalDefinition="The party which is receiving the payment." ) 385 protected Reference payee; 386 387 /** 388 * The monetary amount allocated from the total payment to the payable. 389 */ 390 @Child(name = "amount", type = {Money.class}, order=13, min=0, max=1, modifier=false, summary=false) 391 @Description(shortDefinition="Amount allocated to this payable", formalDefinition="The monetary amount allocated from the total payment to the payable." ) 392 protected Money amount; 393 394 private static final long serialVersionUID = -1153705409L; 395 396 /** 397 * Constructor 398 */ 399 public PaymentReconciliationAllocationComponent() { 400 super(); 401 } 402 403 /** 404 * @return {@link #identifier} (Unique identifier for the current payment item for the referenced payable.) 405 */ 406 public Identifier getIdentifier() { 407 if (this.identifier == null) 408 if (Configuration.errorOnAutoCreate()) 409 throw new Error("Attempt to auto-create PaymentReconciliationAllocationComponent.identifier"); 410 else if (Configuration.doAutoCreate()) 411 this.identifier = new Identifier(); // cc 412 return this.identifier; 413 } 414 415 public boolean hasIdentifier() { 416 return this.identifier != null && !this.identifier.isEmpty(); 417 } 418 419 /** 420 * @param value {@link #identifier} (Unique identifier for the current payment item for the referenced payable.) 421 */ 422 public PaymentReconciliationAllocationComponent setIdentifier(Identifier value) { 423 this.identifier = value; 424 return this; 425 } 426 427 /** 428 * @return {@link #predecessor} (Unique identifier for the prior payment item for the referenced payable.) 429 */ 430 public Identifier getPredecessor() { 431 if (this.predecessor == null) 432 if (Configuration.errorOnAutoCreate()) 433 throw new Error("Attempt to auto-create PaymentReconciliationAllocationComponent.predecessor"); 434 else if (Configuration.doAutoCreate()) 435 this.predecessor = new Identifier(); // cc 436 return this.predecessor; 437 } 438 439 public boolean hasPredecessor() { 440 return this.predecessor != null && !this.predecessor.isEmpty(); 441 } 442 443 /** 444 * @param value {@link #predecessor} (Unique identifier for the prior payment item for the referenced payable.) 445 */ 446 public PaymentReconciliationAllocationComponent setPredecessor(Identifier value) { 447 this.predecessor = value; 448 return this; 449 } 450 451 /** 452 * @return {@link #target} (Specific resource to which the payment/adjustment/advance applies.) 453 */ 454 public Reference getTarget() { 455 if (this.target == null) 456 if (Configuration.errorOnAutoCreate()) 457 throw new Error("Attempt to auto-create PaymentReconciliationAllocationComponent.target"); 458 else if (Configuration.doAutoCreate()) 459 this.target = new Reference(); // cc 460 return this.target; 461 } 462 463 public boolean hasTarget() { 464 return this.target != null && !this.target.isEmpty(); 465 } 466 467 /** 468 * @param value {@link #target} (Specific resource to which the payment/adjustment/advance applies.) 469 */ 470 public PaymentReconciliationAllocationComponent setTarget(Reference value) { 471 this.target = value; 472 return this; 473 } 474 475 /** 476 * @return {@link #targetItem} ( Identifies the claim line item, encounter or other sub-element being paid. Note payment may be partial, that is not match the then outstanding balance or amount incurred.) 477 */ 478 public DataType getTargetItem() { 479 return this.targetItem; 480 } 481 482 /** 483 * @return {@link #targetItem} ( Identifies the claim line item, encounter or other sub-element being paid. Note payment may be partial, that is not match the then outstanding balance or amount incurred.) 484 */ 485 public StringType getTargetItemStringType() throws FHIRException { 486 if (this.targetItem == null) 487 this.targetItem = new StringType(); 488 if (!(this.targetItem instanceof StringType)) 489 throw new FHIRException("Type mismatch: the type StringType was expected, but "+this.targetItem.getClass().getName()+" was encountered"); 490 return (StringType) this.targetItem; 491 } 492 493 public boolean hasTargetItemStringType() { 494 return this != null && this.targetItem instanceof StringType; 495 } 496 497 /** 498 * @return {@link #targetItem} ( Identifies the claim line item, encounter or other sub-element being paid. Note payment may be partial, that is not match the then outstanding balance or amount incurred.) 499 */ 500 public Identifier getTargetItemIdentifier() throws FHIRException { 501 if (this.targetItem == null) 502 this.targetItem = new Identifier(); 503 if (!(this.targetItem instanceof Identifier)) 504 throw new FHIRException("Type mismatch: the type Identifier was expected, but "+this.targetItem.getClass().getName()+" was encountered"); 505 return (Identifier) this.targetItem; 506 } 507 508 public boolean hasTargetItemIdentifier() { 509 return this != null && this.targetItem instanceof Identifier; 510 } 511 512 /** 513 * @return {@link #targetItem} ( Identifies the claim line item, encounter or other sub-element being paid. Note payment may be partial, that is not match the then outstanding balance or amount incurred.) 514 */ 515 public PositiveIntType getTargetItemPositiveIntType() throws FHIRException { 516 if (this.targetItem == null) 517 this.targetItem = new PositiveIntType(); 518 if (!(this.targetItem instanceof PositiveIntType)) 519 throw new FHIRException("Type mismatch: the type PositiveIntType was expected, but "+this.targetItem.getClass().getName()+" was encountered"); 520 return (PositiveIntType) this.targetItem; 521 } 522 523 public boolean hasTargetItemPositiveIntType() { 524 return this != null && this.targetItem instanceof PositiveIntType; 525 } 526 527 public boolean hasTargetItem() { 528 return this.targetItem != null && !this.targetItem.isEmpty(); 529 } 530 531 /** 532 * @param value {@link #targetItem} ( Identifies the claim line item, encounter or other sub-element being paid. Note payment may be partial, that is not match the then outstanding balance or amount incurred.) 533 */ 534 public PaymentReconciliationAllocationComponent setTargetItem(DataType value) { 535 if (value != null && !(value instanceof StringType || value instanceof Identifier || value instanceof PositiveIntType)) 536 throw new FHIRException("Not the right type for PaymentReconciliation.allocation.targetItem[x]: "+value.fhirType()); 537 this.targetItem = value; 538 return this; 539 } 540 541 /** 542 * @return {@link #encounter} (The Encounter to which this payment applies, may be completed by the receiver, used for search.) 543 */ 544 public Reference getEncounter() { 545 if (this.encounter == null) 546 if (Configuration.errorOnAutoCreate()) 547 throw new Error("Attempt to auto-create PaymentReconciliationAllocationComponent.encounter"); 548 else if (Configuration.doAutoCreate()) 549 this.encounter = new Reference(); // cc 550 return this.encounter; 551 } 552 553 public boolean hasEncounter() { 554 return this.encounter != null && !this.encounter.isEmpty(); 555 } 556 557 /** 558 * @param value {@link #encounter} (The Encounter to which this payment applies, may be completed by the receiver, used for search.) 559 */ 560 public PaymentReconciliationAllocationComponent setEncounter(Reference value) { 561 this.encounter = value; 562 return this; 563 } 564 565 /** 566 * @return {@link #account} (The Account to which this payment applies, may be completed by the receiver, used for search.) 567 */ 568 public Reference getAccount() { 569 if (this.account == null) 570 if (Configuration.errorOnAutoCreate()) 571 throw new Error("Attempt to auto-create PaymentReconciliationAllocationComponent.account"); 572 else if (Configuration.doAutoCreate()) 573 this.account = new Reference(); // cc 574 return this.account; 575 } 576 577 public boolean hasAccount() { 578 return this.account != null && !this.account.isEmpty(); 579 } 580 581 /** 582 * @param value {@link #account} (The Account to which this payment applies, may be completed by the receiver, used for search.) 583 */ 584 public PaymentReconciliationAllocationComponent setAccount(Reference value) { 585 this.account = value; 586 return this; 587 } 588 589 /** 590 * @return {@link #type} (Code to indicate the nature of the payment.) 591 */ 592 public CodeableConcept getType() { 593 if (this.type == null) 594 if (Configuration.errorOnAutoCreate()) 595 throw new Error("Attempt to auto-create PaymentReconciliationAllocationComponent.type"); 596 else if (Configuration.doAutoCreate()) 597 this.type = new CodeableConcept(); // cc 598 return this.type; 599 } 600 601 public boolean hasType() { 602 return this.type != null && !this.type.isEmpty(); 603 } 604 605 /** 606 * @param value {@link #type} (Code to indicate the nature of the payment.) 607 */ 608 public PaymentReconciliationAllocationComponent setType(CodeableConcept value) { 609 this.type = value; 610 return this; 611 } 612 613 /** 614 * @return {@link #submitter} (The party which submitted the claim or financial transaction.) 615 */ 616 public Reference getSubmitter() { 617 if (this.submitter == null) 618 if (Configuration.errorOnAutoCreate()) 619 throw new Error("Attempt to auto-create PaymentReconciliationAllocationComponent.submitter"); 620 else if (Configuration.doAutoCreate()) 621 this.submitter = new Reference(); // cc 622 return this.submitter; 623 } 624 625 public boolean hasSubmitter() { 626 return this.submitter != null && !this.submitter.isEmpty(); 627 } 628 629 /** 630 * @param value {@link #submitter} (The party which submitted the claim or financial transaction.) 631 */ 632 public PaymentReconciliationAllocationComponent setSubmitter(Reference value) { 633 this.submitter = value; 634 return this; 635 } 636 637 /** 638 * @return {@link #response} (A resource, such as a ClaimResponse, which contains a commitment to payment.) 639 */ 640 public Reference getResponse() { 641 if (this.response == null) 642 if (Configuration.errorOnAutoCreate()) 643 throw new Error("Attempt to auto-create PaymentReconciliationAllocationComponent.response"); 644 else if (Configuration.doAutoCreate()) 645 this.response = new Reference(); // cc 646 return this.response; 647 } 648 649 public boolean hasResponse() { 650 return this.response != null && !this.response.isEmpty(); 651 } 652 653 /** 654 * @param value {@link #response} (A resource, such as a ClaimResponse, which contains a commitment to payment.) 655 */ 656 public PaymentReconciliationAllocationComponent setResponse(Reference value) { 657 this.response = value; 658 return this; 659 } 660 661 /** 662 * @return {@link #date} (The date from the response resource containing a commitment to pay.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value 663 */ 664 public DateType getDateElement() { 665 if (this.date == null) 666 if (Configuration.errorOnAutoCreate()) 667 throw new Error("Attempt to auto-create PaymentReconciliationAllocationComponent.date"); 668 else if (Configuration.doAutoCreate()) 669 this.date = new DateType(); // bb 670 return this.date; 671 } 672 673 public boolean hasDateElement() { 674 return this.date != null && !this.date.isEmpty(); 675 } 676 677 public boolean hasDate() { 678 return this.date != null && !this.date.isEmpty(); 679 } 680 681 /** 682 * @param value {@link #date} (The date from the response resource containing a commitment to pay.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value 683 */ 684 public PaymentReconciliationAllocationComponent setDateElement(DateType value) { 685 this.date = value; 686 return this; 687 } 688 689 /** 690 * @return The date from the response resource containing a commitment to pay. 691 */ 692 public Date getDate() { 693 return this.date == null ? null : this.date.getValue(); 694 } 695 696 /** 697 * @param value The date from the response resource containing a commitment to pay. 698 */ 699 public PaymentReconciliationAllocationComponent setDate(Date value) { 700 if (value == null) 701 this.date = null; 702 else { 703 if (this.date == null) 704 this.date = new DateType(); 705 this.date.setValue(value); 706 } 707 return this; 708 } 709 710 /** 711 * @return {@link #responsible} (A reference to the individual who is responsible for inquiries regarding the response and its payment.) 712 */ 713 public Reference getResponsible() { 714 if (this.responsible == null) 715 if (Configuration.errorOnAutoCreate()) 716 throw new Error("Attempt to auto-create PaymentReconciliationAllocationComponent.responsible"); 717 else if (Configuration.doAutoCreate()) 718 this.responsible = new Reference(); // cc 719 return this.responsible; 720 } 721 722 public boolean hasResponsible() { 723 return this.responsible != null && !this.responsible.isEmpty(); 724 } 725 726 /** 727 * @param value {@link #responsible} (A reference to the individual who is responsible for inquiries regarding the response and its payment.) 728 */ 729 public PaymentReconciliationAllocationComponent setResponsible(Reference value) { 730 this.responsible = value; 731 return this; 732 } 733 734 /** 735 * @return {@link #payee} (The party which is receiving the payment.) 736 */ 737 public Reference getPayee() { 738 if (this.payee == null) 739 if (Configuration.errorOnAutoCreate()) 740 throw new Error("Attempt to auto-create PaymentReconciliationAllocationComponent.payee"); 741 else if (Configuration.doAutoCreate()) 742 this.payee = new Reference(); // cc 743 return this.payee; 744 } 745 746 public boolean hasPayee() { 747 return this.payee != null && !this.payee.isEmpty(); 748 } 749 750 /** 751 * @param value {@link #payee} (The party which is receiving the payment.) 752 */ 753 public PaymentReconciliationAllocationComponent setPayee(Reference value) { 754 this.payee = value; 755 return this; 756 } 757 758 /** 759 * @return {@link #amount} (The monetary amount allocated from the total payment to the payable.) 760 */ 761 public Money getAmount() { 762 if (this.amount == null) 763 if (Configuration.errorOnAutoCreate()) 764 throw new Error("Attempt to auto-create PaymentReconciliationAllocationComponent.amount"); 765 else if (Configuration.doAutoCreate()) 766 this.amount = new Money(); // cc 767 return this.amount; 768 } 769 770 public boolean hasAmount() { 771 return this.amount != null && !this.amount.isEmpty(); 772 } 773 774 /** 775 * @param value {@link #amount} (The monetary amount allocated from the total payment to the payable.) 776 */ 777 public PaymentReconciliationAllocationComponent setAmount(Money value) { 778 this.amount = value; 779 return this; 780 } 781 782 protected void listChildren(List<Property> children) { 783 super.listChildren(children); 784 children.add(new Property("identifier", "Identifier", "Unique identifier for the current payment item for the referenced payable.", 0, 1, identifier)); 785 children.add(new Property("predecessor", "Identifier", "Unique identifier for the prior payment item for the referenced payable.", 0, 1, predecessor)); 786 children.add(new Property("target", "Reference(Claim|Account|Invoice|ChargeItem|Encounter|Contract)", "Specific resource to which the payment/adjustment/advance applies.", 0, 1, target)); 787 children.add(new Property("targetItem[x]", "string|Identifier|positiveInt", " Identifies the claim line item, encounter or other sub-element being paid. Note payment may be partial, that is not match the then outstanding balance or amount incurred.", 0, 1, targetItem)); 788 children.add(new Property("encounter", "Reference(Encounter)", "The Encounter to which this payment applies, may be completed by the receiver, used for search.", 0, 1, encounter)); 789 children.add(new Property("account", "Reference(Account)", "The Account to which this payment applies, may be completed by the receiver, used for search.", 0, 1, account)); 790 children.add(new Property("type", "CodeableConcept", "Code to indicate the nature of the payment.", 0, 1, type)); 791 children.add(new Property("submitter", "Reference(Practitioner|PractitionerRole|Organization)", "The party which submitted the claim or financial transaction.", 0, 1, submitter)); 792 children.add(new Property("response", "Reference(ClaimResponse)", "A resource, such as a ClaimResponse, which contains a commitment to payment.", 0, 1, response)); 793 children.add(new Property("date", "date", "The date from the response resource containing a commitment to pay.", 0, 1, date)); 794 children.add(new Property("responsible", "Reference(PractitionerRole)", "A reference to the individual who is responsible for inquiries regarding the response and its payment.", 0, 1, responsible)); 795 children.add(new Property("payee", "Reference(Practitioner|PractitionerRole|Organization)", "The party which is receiving the payment.", 0, 1, payee)); 796 children.add(new Property("amount", "Money", "The monetary amount allocated from the total payment to the payable.", 0, 1, amount)); 797 } 798 799 @Override 800 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 801 switch (_hash) { 802 case -1618432855: /*identifier*/ return new Property("identifier", "Identifier", "Unique identifier for the current payment item for the referenced payable.", 0, 1, identifier); 803 case -1925032183: /*predecessor*/ return new Property("predecessor", "Identifier", "Unique identifier for the prior payment item for the referenced payable.", 0, 1, predecessor); 804 case -880905839: /*target*/ return new Property("target", "Reference(Claim|Account|Invoice|ChargeItem|Encounter|Contract)", "Specific resource to which the payment/adjustment/advance applies.", 0, 1, target); 805 case 125181372: /*targetItem[x]*/ return new Property("targetItem[x]", "string|Identifier|positiveInt", " Identifies the claim line item, encounter or other sub-element being paid. Note payment may be partial, that is not match the then outstanding balance or amount incurred.", 0, 1, targetItem); 806 case 486289476: /*targetItem*/ return new Property("targetItem[x]", "string|Identifier|positiveInt", " Identifies the claim line item, encounter or other sub-element being paid. Note payment may be partial, that is not match the then outstanding balance or amount incurred.", 0, 1, targetItem); 807 case 1014643061: /*targetItemString*/ return new Property("targetItem[x]", "string", " Identifies the claim line item, encounter or other sub-element being paid. Note payment may be partial, that is not match the then outstanding balance or amount incurred.", 0, 1, targetItem); 808 case -1768279027: /*targetItemIdentifier*/ return new Property("targetItem[x]", "Identifier", " Identifies the claim line item, encounter or other sub-element being paid. Note payment may be partial, that is not match the then outstanding balance or amount incurred.", 0, 1, targetItem); 809 case -481526702: /*targetItemPositiveInt*/ return new Property("targetItem[x]", "positiveInt", " Identifies the claim line item, encounter or other sub-element being paid. Note payment may be partial, that is not match the then outstanding balance or amount incurred.", 0, 1, targetItem); 810 case 1524132147: /*encounter*/ return new Property("encounter", "Reference(Encounter)", "The Encounter to which this payment applies, may be completed by the receiver, used for search.", 0, 1, encounter); 811 case -1177318867: /*account*/ return new Property("account", "Reference(Account)", "The Account to which this payment applies, may be completed by the receiver, used for search.", 0, 1, account); 812 case 3575610: /*type*/ return new Property("type", "CodeableConcept", "Code to indicate the nature of the payment.", 0, 1, type); 813 case 348678409: /*submitter*/ return new Property("submitter", "Reference(Practitioner|PractitionerRole|Organization)", "The party which submitted the claim or financial transaction.", 0, 1, submitter); 814 case -340323263: /*response*/ return new Property("response", "Reference(ClaimResponse)", "A resource, such as a ClaimResponse, which contains a commitment to payment.", 0, 1, response); 815 case 3076014: /*date*/ return new Property("date", "date", "The date from the response resource containing a commitment to pay.", 0, 1, date); 816 case 1847674614: /*responsible*/ return new Property("responsible", "Reference(PractitionerRole)", "A reference to the individual who is responsible for inquiries regarding the response and its payment.", 0, 1, responsible); 817 case 106443592: /*payee*/ return new Property("payee", "Reference(Practitioner|PractitionerRole|Organization)", "The party which is receiving the payment.", 0, 1, payee); 818 case -1413853096: /*amount*/ return new Property("amount", "Money", "The monetary amount allocated from the total payment to the payable.", 0, 1, amount); 819 default: return super.getNamedProperty(_hash, _name, _checkValid); 820 } 821 822 } 823 824 @Override 825 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 826 switch (hash) { 827 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : new Base[] {this.identifier}; // Identifier 828 case -1925032183: /*predecessor*/ return this.predecessor == null ? new Base[0] : new Base[] {this.predecessor}; // Identifier 829 case -880905839: /*target*/ return this.target == null ? new Base[0] : new Base[] {this.target}; // Reference 830 case 486289476: /*targetItem*/ return this.targetItem == null ? new Base[0] : new Base[] {this.targetItem}; // DataType 831 case 1524132147: /*encounter*/ return this.encounter == null ? new Base[0] : new Base[] {this.encounter}; // Reference 832 case -1177318867: /*account*/ return this.account == null ? new Base[0] : new Base[] {this.account}; // Reference 833 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // CodeableConcept 834 case 348678409: /*submitter*/ return this.submitter == null ? new Base[0] : new Base[] {this.submitter}; // Reference 835 case -340323263: /*response*/ return this.response == null ? new Base[0] : new Base[] {this.response}; // Reference 836 case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateType 837 case 1847674614: /*responsible*/ return this.responsible == null ? new Base[0] : new Base[] {this.responsible}; // Reference 838 case 106443592: /*payee*/ return this.payee == null ? new Base[0] : new Base[] {this.payee}; // Reference 839 case -1413853096: /*amount*/ return this.amount == null ? new Base[0] : new Base[] {this.amount}; // Money 840 default: return super.getProperty(hash, name, checkValid); 841 } 842 843 } 844 845 @Override 846 public Base setProperty(int hash, String name, Base value) throws FHIRException { 847 switch (hash) { 848 case -1618432855: // identifier 849 this.identifier = TypeConvertor.castToIdentifier(value); // Identifier 850 return value; 851 case -1925032183: // predecessor 852 this.predecessor = TypeConvertor.castToIdentifier(value); // Identifier 853 return value; 854 case -880905839: // target 855 this.target = TypeConvertor.castToReference(value); // Reference 856 return value; 857 case 486289476: // targetItem 858 this.targetItem = TypeConvertor.castToType(value); // DataType 859 return value; 860 case 1524132147: // encounter 861 this.encounter = TypeConvertor.castToReference(value); // Reference 862 return value; 863 case -1177318867: // account 864 this.account = TypeConvertor.castToReference(value); // Reference 865 return value; 866 case 3575610: // type 867 this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 868 return value; 869 case 348678409: // submitter 870 this.submitter = TypeConvertor.castToReference(value); // Reference 871 return value; 872 case -340323263: // response 873 this.response = TypeConvertor.castToReference(value); // Reference 874 return value; 875 case 3076014: // date 876 this.date = TypeConvertor.castToDate(value); // DateType 877 return value; 878 case 1847674614: // responsible 879 this.responsible = TypeConvertor.castToReference(value); // Reference 880 return value; 881 case 106443592: // payee 882 this.payee = TypeConvertor.castToReference(value); // Reference 883 return value; 884 case -1413853096: // amount 885 this.amount = TypeConvertor.castToMoney(value); // Money 886 return value; 887 default: return super.setProperty(hash, name, value); 888 } 889 890 } 891 892 @Override 893 public Base setProperty(String name, Base value) throws FHIRException { 894 if (name.equals("identifier")) { 895 this.identifier = TypeConvertor.castToIdentifier(value); // Identifier 896 } else if (name.equals("predecessor")) { 897 this.predecessor = TypeConvertor.castToIdentifier(value); // Identifier 898 } else if (name.equals("target")) { 899 this.target = TypeConvertor.castToReference(value); // Reference 900 } else if (name.equals("targetItem[x]")) { 901 this.targetItem = TypeConvertor.castToType(value); // DataType 902 } else if (name.equals("encounter")) { 903 this.encounter = TypeConvertor.castToReference(value); // Reference 904 } else if (name.equals("account")) { 905 this.account = TypeConvertor.castToReference(value); // Reference 906 } else if (name.equals("type")) { 907 this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 908 } else if (name.equals("submitter")) { 909 this.submitter = TypeConvertor.castToReference(value); // Reference 910 } else if (name.equals("response")) { 911 this.response = TypeConvertor.castToReference(value); // Reference 912 } else if (name.equals("date")) { 913 this.date = TypeConvertor.castToDate(value); // DateType 914 } else if (name.equals("responsible")) { 915 this.responsible = TypeConvertor.castToReference(value); // Reference 916 } else if (name.equals("payee")) { 917 this.payee = TypeConvertor.castToReference(value); // Reference 918 } else if (name.equals("amount")) { 919 this.amount = TypeConvertor.castToMoney(value); // Money 920 } else 921 return super.setProperty(name, value); 922 return value; 923 } 924 925 @Override 926 public void removeChild(String name, Base value) throws FHIRException { 927 if (name.equals("identifier")) { 928 this.identifier = null; 929 } else if (name.equals("predecessor")) { 930 this.predecessor = null; 931 } else if (name.equals("target")) { 932 this.target = null; 933 } else if (name.equals("targetItem[x]")) { 934 this.targetItem = null; 935 } else if (name.equals("encounter")) { 936 this.encounter = null; 937 } else if (name.equals("account")) { 938 this.account = null; 939 } else if (name.equals("type")) { 940 this.type = null; 941 } else if (name.equals("submitter")) { 942 this.submitter = null; 943 } else if (name.equals("response")) { 944 this.response = null; 945 } else if (name.equals("date")) { 946 this.date = null; 947 } else if (name.equals("responsible")) { 948 this.responsible = null; 949 } else if (name.equals("payee")) { 950 this.payee = null; 951 } else if (name.equals("amount")) { 952 this.amount = null; 953 } else 954 super.removeChild(name, value); 955 956 } 957 958 @Override 959 public Base makeProperty(int hash, String name) throws FHIRException { 960 switch (hash) { 961 case -1618432855: return getIdentifier(); 962 case -1925032183: return getPredecessor(); 963 case -880905839: return getTarget(); 964 case 125181372: return getTargetItem(); 965 case 486289476: return getTargetItem(); 966 case 1524132147: return getEncounter(); 967 case -1177318867: return getAccount(); 968 case 3575610: return getType(); 969 case 348678409: return getSubmitter(); 970 case -340323263: return getResponse(); 971 case 3076014: return getDateElement(); 972 case 1847674614: return getResponsible(); 973 case 106443592: return getPayee(); 974 case -1413853096: return getAmount(); 975 default: return super.makeProperty(hash, name); 976 } 977 978 } 979 980 @Override 981 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 982 switch (hash) { 983 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 984 case -1925032183: /*predecessor*/ return new String[] {"Identifier"}; 985 case -880905839: /*target*/ return new String[] {"Reference"}; 986 case 486289476: /*targetItem*/ return new String[] {"string", "Identifier", "positiveInt"}; 987 case 1524132147: /*encounter*/ return new String[] {"Reference"}; 988 case -1177318867: /*account*/ return new String[] {"Reference"}; 989 case 3575610: /*type*/ return new String[] {"CodeableConcept"}; 990 case 348678409: /*submitter*/ return new String[] {"Reference"}; 991 case -340323263: /*response*/ return new String[] {"Reference"}; 992 case 3076014: /*date*/ return new String[] {"date"}; 993 case 1847674614: /*responsible*/ return new String[] {"Reference"}; 994 case 106443592: /*payee*/ return new String[] {"Reference"}; 995 case -1413853096: /*amount*/ return new String[] {"Money"}; 996 default: return super.getTypesForProperty(hash, name); 997 } 998 999 } 1000 1001 @Override 1002 public Base addChild(String name) throws FHIRException { 1003 if (name.equals("identifier")) { 1004 this.identifier = new Identifier(); 1005 return this.identifier; 1006 } 1007 else if (name.equals("predecessor")) { 1008 this.predecessor = new Identifier(); 1009 return this.predecessor; 1010 } 1011 else if (name.equals("target")) { 1012 this.target = new Reference(); 1013 return this.target; 1014 } 1015 else if (name.equals("targetItemString")) { 1016 this.targetItem = new StringType(); 1017 return this.targetItem; 1018 } 1019 else if (name.equals("targetItemIdentifier")) { 1020 this.targetItem = new Identifier(); 1021 return this.targetItem; 1022 } 1023 else if (name.equals("targetItemPositiveInt")) { 1024 this.targetItem = new PositiveIntType(); 1025 return this.targetItem; 1026 } 1027 else if (name.equals("encounter")) { 1028 this.encounter = new Reference(); 1029 return this.encounter; 1030 } 1031 else if (name.equals("account")) { 1032 this.account = new Reference(); 1033 return this.account; 1034 } 1035 else if (name.equals("type")) { 1036 this.type = new CodeableConcept(); 1037 return this.type; 1038 } 1039 else if (name.equals("submitter")) { 1040 this.submitter = new Reference(); 1041 return this.submitter; 1042 } 1043 else if (name.equals("response")) { 1044 this.response = new Reference(); 1045 return this.response; 1046 } 1047 else if (name.equals("date")) { 1048 throw new FHIRException("Cannot call addChild on a singleton property PaymentReconciliation.allocation.date"); 1049 } 1050 else if (name.equals("responsible")) { 1051 this.responsible = new Reference(); 1052 return this.responsible; 1053 } 1054 else if (name.equals("payee")) { 1055 this.payee = new Reference(); 1056 return this.payee; 1057 } 1058 else if (name.equals("amount")) { 1059 this.amount = new Money(); 1060 return this.amount; 1061 } 1062 else 1063 return super.addChild(name); 1064 } 1065 1066 public PaymentReconciliationAllocationComponent copy() { 1067 PaymentReconciliationAllocationComponent dst = new PaymentReconciliationAllocationComponent(); 1068 copyValues(dst); 1069 return dst; 1070 } 1071 1072 public void copyValues(PaymentReconciliationAllocationComponent dst) { 1073 super.copyValues(dst); 1074 dst.identifier = identifier == null ? null : identifier.copy(); 1075 dst.predecessor = predecessor == null ? null : predecessor.copy(); 1076 dst.target = target == null ? null : target.copy(); 1077 dst.targetItem = targetItem == null ? null : targetItem.copy(); 1078 dst.encounter = encounter == null ? null : encounter.copy(); 1079 dst.account = account == null ? null : account.copy(); 1080 dst.type = type == null ? null : type.copy(); 1081 dst.submitter = submitter == null ? null : submitter.copy(); 1082 dst.response = response == null ? null : response.copy(); 1083 dst.date = date == null ? null : date.copy(); 1084 dst.responsible = responsible == null ? null : responsible.copy(); 1085 dst.payee = payee == null ? null : payee.copy(); 1086 dst.amount = amount == null ? null : amount.copy(); 1087 } 1088 1089 @Override 1090 public boolean equalsDeep(Base other_) { 1091 if (!super.equalsDeep(other_)) 1092 return false; 1093 if (!(other_ instanceof PaymentReconciliationAllocationComponent)) 1094 return false; 1095 PaymentReconciliationAllocationComponent o = (PaymentReconciliationAllocationComponent) other_; 1096 return compareDeep(identifier, o.identifier, true) && compareDeep(predecessor, o.predecessor, true) 1097 && compareDeep(target, o.target, true) && compareDeep(targetItem, o.targetItem, true) && compareDeep(encounter, o.encounter, true) 1098 && compareDeep(account, o.account, true) && compareDeep(type, o.type, true) && compareDeep(submitter, o.submitter, true) 1099 && compareDeep(response, o.response, true) && compareDeep(date, o.date, true) && compareDeep(responsible, o.responsible, true) 1100 && compareDeep(payee, o.payee, true) && compareDeep(amount, o.amount, true); 1101 } 1102 1103 @Override 1104 public boolean equalsShallow(Base other_) { 1105 if (!super.equalsShallow(other_)) 1106 return false; 1107 if (!(other_ instanceof PaymentReconciliationAllocationComponent)) 1108 return false; 1109 PaymentReconciliationAllocationComponent o = (PaymentReconciliationAllocationComponent) other_; 1110 return compareValues(date, o.date, true); 1111 } 1112 1113 public boolean isEmpty() { 1114 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, predecessor, target 1115 , targetItem, encounter, account, type, submitter, response, date, responsible 1116 , payee, amount); 1117 } 1118 1119 public String fhirType() { 1120 return "PaymentReconciliation.allocation"; 1121 1122 } 1123 1124 } 1125 1126 @Block() 1127 public static class NotesComponent extends BackboneElement implements IBaseBackboneElement { 1128 /** 1129 * The business purpose of the note text. 1130 */ 1131 @Child(name = "type", type = {CodeType.class}, order=1, min=0, max=1, modifier=false, summary=false) 1132 @Description(shortDefinition="display | print | printoper", formalDefinition="The business purpose of the note text." ) 1133 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/note-type") 1134 protected Enumeration<NoteType> type; 1135 1136 /** 1137 * The explanation or description associated with the processing. 1138 */ 1139 @Child(name = "text", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=false) 1140 @Description(shortDefinition="Note explanatory text", formalDefinition="The explanation or description associated with the processing." ) 1141 protected StringType text; 1142 1143 private static final long serialVersionUID = 529250161L; 1144 1145 /** 1146 * Constructor 1147 */ 1148 public NotesComponent() { 1149 super(); 1150 } 1151 1152 /** 1153 * @return {@link #type} (The business purpose of the note text.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value 1154 */ 1155 public Enumeration<NoteType> getTypeElement() { 1156 if (this.type == null) 1157 if (Configuration.errorOnAutoCreate()) 1158 throw new Error("Attempt to auto-create NotesComponent.type"); 1159 else if (Configuration.doAutoCreate()) 1160 this.type = new Enumeration<NoteType>(new NoteTypeEnumFactory()); // bb 1161 return this.type; 1162 } 1163 1164 public boolean hasTypeElement() { 1165 return this.type != null && !this.type.isEmpty(); 1166 } 1167 1168 public boolean hasType() { 1169 return this.type != null && !this.type.isEmpty(); 1170 } 1171 1172 /** 1173 * @param value {@link #type} (The business purpose of the note text.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value 1174 */ 1175 public NotesComponent setTypeElement(Enumeration<NoteType> value) { 1176 this.type = value; 1177 return this; 1178 } 1179 1180 /** 1181 * @return The business purpose of the note text. 1182 */ 1183 public NoteType getType() { 1184 return this.type == null ? null : this.type.getValue(); 1185 } 1186 1187 /** 1188 * @param value The business purpose of the note text. 1189 */ 1190 public NotesComponent setType(NoteType value) { 1191 if (value == null) 1192 this.type = null; 1193 else { 1194 if (this.type == null) 1195 this.type = new Enumeration<NoteType>(new NoteTypeEnumFactory()); 1196 this.type.setValue(value); 1197 } 1198 return this; 1199 } 1200 1201 /** 1202 * @return {@link #text} (The explanation or description associated with the processing.). This is the underlying object with id, value and extensions. The accessor "getText" gives direct access to the value 1203 */ 1204 public StringType getTextElement() { 1205 if (this.text == null) 1206 if (Configuration.errorOnAutoCreate()) 1207 throw new Error("Attempt to auto-create NotesComponent.text"); 1208 else if (Configuration.doAutoCreate()) 1209 this.text = new StringType(); // bb 1210 return this.text; 1211 } 1212 1213 public boolean hasTextElement() { 1214 return this.text != null && !this.text.isEmpty(); 1215 } 1216 1217 public boolean hasText() { 1218 return this.text != null && !this.text.isEmpty(); 1219 } 1220 1221 /** 1222 * @param value {@link #text} (The explanation or description associated with the processing.). This is the underlying object with id, value and extensions. The accessor "getText" gives direct access to the value 1223 */ 1224 public NotesComponent setTextElement(StringType value) { 1225 this.text = value; 1226 return this; 1227 } 1228 1229 /** 1230 * @return The explanation or description associated with the processing. 1231 */ 1232 public String getText() { 1233 return this.text == null ? null : this.text.getValue(); 1234 } 1235 1236 /** 1237 * @param value The explanation or description associated with the processing. 1238 */ 1239 public NotesComponent setText(String value) { 1240 if (Utilities.noString(value)) 1241 this.text = null; 1242 else { 1243 if (this.text == null) 1244 this.text = new StringType(); 1245 this.text.setValue(value); 1246 } 1247 return this; 1248 } 1249 1250 protected void listChildren(List<Property> children) { 1251 super.listChildren(children); 1252 children.add(new Property("type", "code", "The business purpose of the note text.", 0, 1, type)); 1253 children.add(new Property("text", "string", "The explanation or description associated with the processing.", 0, 1, text)); 1254 } 1255 1256 @Override 1257 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1258 switch (_hash) { 1259 case 3575610: /*type*/ return new Property("type", "code", "The business purpose of the note text.", 0, 1, type); 1260 case 3556653: /*text*/ return new Property("text", "string", "The explanation or description associated with the processing.", 0, 1, text); 1261 default: return super.getNamedProperty(_hash, _name, _checkValid); 1262 } 1263 1264 } 1265 1266 @Override 1267 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1268 switch (hash) { 1269 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // Enumeration<NoteType> 1270 case 3556653: /*text*/ return this.text == null ? new Base[0] : new Base[] {this.text}; // StringType 1271 default: return super.getProperty(hash, name, checkValid); 1272 } 1273 1274 } 1275 1276 @Override 1277 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1278 switch (hash) { 1279 case 3575610: // type 1280 value = new NoteTypeEnumFactory().fromType(TypeConvertor.castToCode(value)); 1281 this.type = (Enumeration) value; // Enumeration<NoteType> 1282 return value; 1283 case 3556653: // text 1284 this.text = TypeConvertor.castToString(value); // StringType 1285 return value; 1286 default: return super.setProperty(hash, name, value); 1287 } 1288 1289 } 1290 1291 @Override 1292 public Base setProperty(String name, Base value) throws FHIRException { 1293 if (name.equals("type")) { 1294 value = new NoteTypeEnumFactory().fromType(TypeConvertor.castToCode(value)); 1295 this.type = (Enumeration) value; // Enumeration<NoteType> 1296 } else if (name.equals("text")) { 1297 this.text = TypeConvertor.castToString(value); // StringType 1298 } else 1299 return super.setProperty(name, value); 1300 return value; 1301 } 1302 1303 @Override 1304 public void removeChild(String name, Base value) throws FHIRException { 1305 if (name.equals("type")) { 1306 value = new NoteTypeEnumFactory().fromType(TypeConvertor.castToCode(value)); 1307 this.type = (Enumeration) value; // Enumeration<NoteType> 1308 } else if (name.equals("text")) { 1309 this.text = null; 1310 } else 1311 super.removeChild(name, value); 1312 1313 } 1314 1315 @Override 1316 public Base makeProperty(int hash, String name) throws FHIRException { 1317 switch (hash) { 1318 case 3575610: return getTypeElement(); 1319 case 3556653: return getTextElement(); 1320 default: return super.makeProperty(hash, name); 1321 } 1322 1323 } 1324 1325 @Override 1326 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1327 switch (hash) { 1328 case 3575610: /*type*/ return new String[] {"code"}; 1329 case 3556653: /*text*/ return new String[] {"string"}; 1330 default: return super.getTypesForProperty(hash, name); 1331 } 1332 1333 } 1334 1335 @Override 1336 public Base addChild(String name) throws FHIRException { 1337 if (name.equals("type")) { 1338 throw new FHIRException("Cannot call addChild on a singleton property PaymentReconciliation.processNote.type"); 1339 } 1340 else if (name.equals("text")) { 1341 throw new FHIRException("Cannot call addChild on a singleton property PaymentReconciliation.processNote.text"); 1342 } 1343 else 1344 return super.addChild(name); 1345 } 1346 1347 public NotesComponent copy() { 1348 NotesComponent dst = new NotesComponent(); 1349 copyValues(dst); 1350 return dst; 1351 } 1352 1353 public void copyValues(NotesComponent dst) { 1354 super.copyValues(dst); 1355 dst.type = type == null ? null : type.copy(); 1356 dst.text = text == null ? null : text.copy(); 1357 } 1358 1359 @Override 1360 public boolean equalsDeep(Base other_) { 1361 if (!super.equalsDeep(other_)) 1362 return false; 1363 if (!(other_ instanceof NotesComponent)) 1364 return false; 1365 NotesComponent o = (NotesComponent) other_; 1366 return compareDeep(type, o.type, true) && compareDeep(text, o.text, true); 1367 } 1368 1369 @Override 1370 public boolean equalsShallow(Base other_) { 1371 if (!super.equalsShallow(other_)) 1372 return false; 1373 if (!(other_ instanceof NotesComponent)) 1374 return false; 1375 NotesComponent o = (NotesComponent) other_; 1376 return compareValues(type, o.type, true) && compareValues(text, o.text, true); 1377 } 1378 1379 public boolean isEmpty() { 1380 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(type, text); 1381 } 1382 1383 public String fhirType() { 1384 return "PaymentReconciliation.processNote"; 1385 1386 } 1387 1388 } 1389 1390 /** 1391 * A unique identifier assigned to this payment reconciliation. 1392 */ 1393 @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1394 @Description(shortDefinition="Business Identifier for a payment reconciliation", formalDefinition="A unique identifier assigned to this payment reconciliation." ) 1395 protected List<Identifier> identifier; 1396 1397 /** 1398 * Code to indicate the nature of the payment such as payment, adjustment. 1399 */ 1400 @Child(name = "type", type = {CodeableConcept.class}, order=1, min=1, max=1, modifier=false, summary=true) 1401 @Description(shortDefinition="Category of payment", formalDefinition="Code to indicate the nature of the payment such as payment, adjustment." ) 1402 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/payment-type") 1403 protected CodeableConcept type; 1404 1405 /** 1406 * The status of the resource instance. 1407 */ 1408 @Child(name = "status", type = {CodeType.class}, order=2, min=1, max=1, modifier=true, summary=true) 1409 @Description(shortDefinition="active | cancelled | draft | entered-in-error", formalDefinition="The status of the resource instance." ) 1410 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/fm-status") 1411 protected Enumeration<FinancialResourceStatusCodes> status; 1412 1413 /** 1414 * The workflow or activity which gave rise to or during which the payment ocurred such as a kiosk, deposit on account, periodic payment etc. 1415 */ 1416 @Child(name = "kind", type = {CodeableConcept.class}, order=3, min=0, max=1, modifier=false, summary=false) 1417 @Description(shortDefinition="Workflow originating payment", formalDefinition="The workflow or activity which gave rise to or during which the payment ocurred such as a kiosk, deposit on account, periodic payment etc." ) 1418 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/payment-kind") 1419 protected CodeableConcept kind; 1420 1421 /** 1422 * The period of time for which payments have been gathered into this bulk payment for settlement. 1423 */ 1424 @Child(name = "period", type = {Period.class}, order=4, min=0, max=1, modifier=false, summary=true) 1425 @Description(shortDefinition="Period covered", formalDefinition="The period of time for which payments have been gathered into this bulk payment for settlement." ) 1426 protected Period period; 1427 1428 /** 1429 * The date when the resource was created. 1430 */ 1431 @Child(name = "created", type = {DateTimeType.class}, order=5, min=1, max=1, modifier=false, summary=true) 1432 @Description(shortDefinition="Creation date", formalDefinition="The date when the resource was created." ) 1433 protected DateTimeType created; 1434 1435 /** 1436 * Payment enterer if not the actual payment issuer. 1437 */ 1438 @Child(name = "enterer", type = {Practitioner.class, PractitionerRole.class, Organization.class}, order=6, min=0, max=1, modifier=false, summary=false) 1439 @Description(shortDefinition="Who entered the payment", formalDefinition="Payment enterer if not the actual payment issuer." ) 1440 protected Reference enterer; 1441 1442 /** 1443 * The type of the source such as patient or insurance. 1444 */ 1445 @Child(name = "issuerType", type = {CodeableConcept.class}, order=7, min=0, max=1, modifier=false, summary=false) 1446 @Description(shortDefinition="Nature of the source", formalDefinition="The type of the source such as patient or insurance." ) 1447 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/payment-issuertype") 1448 protected CodeableConcept issuerType; 1449 1450 /** 1451 * The party who generated the payment. 1452 */ 1453 @Child(name = "paymentIssuer", type = {Organization.class, Patient.class, RelatedPerson.class}, order=8, min=0, max=1, modifier=false, summary=true) 1454 @Description(shortDefinition="Party generating payment", formalDefinition="The party who generated the payment." ) 1455 protected Reference paymentIssuer; 1456 1457 /** 1458 * Original request resource reference. 1459 */ 1460 @Child(name = "request", type = {Task.class}, order=9, min=0, max=1, modifier=false, summary=false) 1461 @Description(shortDefinition="Reference to requesting resource", formalDefinition="Original request resource reference." ) 1462 protected Reference request; 1463 1464 /** 1465 * The practitioner who is responsible for the services rendered to the patient. 1466 */ 1467 @Child(name = "requestor", type = {Practitioner.class, PractitionerRole.class, Organization.class}, order=10, min=0, max=1, modifier=false, summary=false) 1468 @Description(shortDefinition="Responsible practitioner", formalDefinition="The practitioner who is responsible for the services rendered to the patient." ) 1469 protected Reference requestor; 1470 1471 /** 1472 * The outcome of a request for a reconciliation. 1473 */ 1474 @Child(name = "outcome", type = {CodeType.class}, order=11, min=0, max=1, modifier=false, summary=false) 1475 @Description(shortDefinition="queued | complete | error | partial", formalDefinition="The outcome of a request for a reconciliation." ) 1476 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/payment-outcome") 1477 protected Enumeration<PaymentOutcome> outcome; 1478 1479 /** 1480 * A human readable description of the status of the request for the reconciliation. 1481 */ 1482 @Child(name = "disposition", type = {StringType.class}, order=12, min=0, max=1, modifier=false, summary=false) 1483 @Description(shortDefinition="Disposition message", formalDefinition="A human readable description of the status of the request for the reconciliation." ) 1484 protected StringType disposition; 1485 1486 /** 1487 * The date of payment as indicated on the financial instrument. 1488 */ 1489 @Child(name = "date", type = {DateType.class}, order=13, min=1, max=1, modifier=false, summary=true) 1490 @Description(shortDefinition="When payment issued", formalDefinition="The date of payment as indicated on the financial instrument." ) 1491 protected DateType date; 1492 1493 /** 1494 * The location of the site or device for electronic transfers or physical location for cash payments. 1495 */ 1496 @Child(name = "location", type = {Location.class}, order=14, min=0, max=1, modifier=false, summary=false) 1497 @Description(shortDefinition="Where payment collected", formalDefinition="The location of the site or device for electronic transfers or physical location for cash payments." ) 1498 protected Reference location; 1499 1500 /** 1501 * The means of payment such as check, card cash, or electronic funds transfer. 1502 */ 1503 @Child(name = "method", type = {CodeableConcept.class}, order=15, min=0, max=1, modifier=false, summary=false) 1504 @Description(shortDefinition="Payment instrument", formalDefinition="The means of payment such as check, card cash, or electronic funds transfer." ) 1505 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://terminology.hl7.org/ValueSet/v2-0570") 1506 protected CodeableConcept method; 1507 1508 /** 1509 * The card brand such as debit, Visa, Amex etc. used if a card is the method of payment. 1510 */ 1511 @Child(name = "cardBrand", type = {StringType.class}, order=16, min=0, max=1, modifier=false, summary=false) 1512 @Description(shortDefinition="Type of card", formalDefinition="The card brand such as debit, Visa, Amex etc. used if a card is the method of payment." ) 1513 protected StringType cardBrand; 1514 1515 /** 1516 * A portion of the account number, often the last 4 digits, used for verification not charging purposes. 1517 */ 1518 @Child(name = "accountNumber", type = {StringType.class}, order=17, min=0, max=1, modifier=false, summary=false) 1519 @Description(shortDefinition="Digits for verification", formalDefinition="A portion of the account number, often the last 4 digits, used for verification not charging purposes." ) 1520 protected StringType accountNumber; 1521 1522 /** 1523 * The year and month (YYYY-MM) when the instrument, typically card, expires. 1524 */ 1525 @Child(name = "expirationDate", type = {DateType.class}, order=18, min=0, max=1, modifier=false, summary=false) 1526 @Description(shortDefinition="Expiration year-month", formalDefinition="The year and month (YYYY-MM) when the instrument, typically card, expires." ) 1527 protected DateType expirationDate; 1528 1529 /** 1530 * The name of the card processor, etf processor, bank for checks. 1531 */ 1532 @Child(name = "processor", type = {StringType.class}, order=19, min=0, max=1, modifier=false, summary=false) 1533 @Description(shortDefinition="Processor name", formalDefinition="The name of the card processor, etf processor, bank for checks." ) 1534 protected StringType processor; 1535 1536 /** 1537 * The check number, eft reference, car processor reference. 1538 */ 1539 @Child(name = "referenceNumber", type = {StringType.class}, order=20, min=0, max=1, modifier=false, summary=false) 1540 @Description(shortDefinition="Check number or payment reference", formalDefinition="The check number, eft reference, car processor reference." ) 1541 protected StringType referenceNumber; 1542 1543 /** 1544 * An alphanumeric issued by the processor to confirm the successful issuance of payment. 1545 */ 1546 @Child(name = "authorization", type = {StringType.class}, order=21, min=0, max=1, modifier=false, summary=false) 1547 @Description(shortDefinition="Authorization number", formalDefinition="An alphanumeric issued by the processor to confirm the successful issuance of payment." ) 1548 protected StringType authorization; 1549 1550 /** 1551 * The amount offered by the issuer, typically applies to cash when the issuer provides an amount in bank note denominations equal to or excess of the amount actually being paid. 1552 */ 1553 @Child(name = "tenderedAmount", type = {Money.class}, order=22, min=0, max=1, modifier=false, summary=false) 1554 @Description(shortDefinition="Amount offered by the issuer", formalDefinition="The amount offered by the issuer, typically applies to cash when the issuer provides an amount in bank note denominations equal to or excess of the amount actually being paid." ) 1555 protected Money tenderedAmount; 1556 1557 /** 1558 * The amount returned by the receiver which is excess to the amount payable, often referred to as 'change'. 1559 */ 1560 @Child(name = "returnedAmount", type = {Money.class}, order=23, min=0, max=1, modifier=false, summary=false) 1561 @Description(shortDefinition="Amount returned by the receiver", formalDefinition="The amount returned by the receiver which is excess to the amount payable, often referred to as 'change'." ) 1562 protected Money returnedAmount; 1563 1564 /** 1565 * Total payment amount as indicated on the financial instrument. 1566 */ 1567 @Child(name = "amount", type = {Money.class}, order=24, min=1, max=1, modifier=false, summary=true) 1568 @Description(shortDefinition="Total amount of Payment", formalDefinition="Total payment amount as indicated on the financial instrument." ) 1569 protected Money amount; 1570 1571 /** 1572 * Issuer's unique identifier for the payment instrument. 1573 */ 1574 @Child(name = "paymentIdentifier", type = {Identifier.class}, order=25, min=0, max=1, modifier=false, summary=false) 1575 @Description(shortDefinition="Business identifier for the payment", formalDefinition="Issuer's unique identifier for the payment instrument." ) 1576 protected Identifier paymentIdentifier; 1577 1578 /** 1579 * Distribution of the payment amount for a previously acknowledged payable. 1580 */ 1581 @Child(name = "allocation", type = {}, order=26, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1582 @Description(shortDefinition="Settlement particulars", formalDefinition="Distribution of the payment amount for a previously acknowledged payable." ) 1583 protected List<PaymentReconciliationAllocationComponent> allocation; 1584 1585 /** 1586 * A code for the form to be used for printing the content. 1587 */ 1588 @Child(name = "formCode", type = {CodeableConcept.class}, order=27, min=0, max=1, modifier=false, summary=false) 1589 @Description(shortDefinition="Printed form identifier", formalDefinition="A code for the form to be used for printing the content." ) 1590 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/forms") 1591 protected CodeableConcept formCode; 1592 1593 /** 1594 * A note that describes or explains the processing in a human readable form. 1595 */ 1596 @Child(name = "processNote", type = {}, order=28, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1597 @Description(shortDefinition="Note concerning processing", formalDefinition="A note that describes or explains the processing in a human readable form." ) 1598 protected List<NotesComponent> processNote; 1599 1600 private static final long serialVersionUID = 705873820L; 1601 1602 /** 1603 * Constructor 1604 */ 1605 public PaymentReconciliation() { 1606 super(); 1607 } 1608 1609 /** 1610 * Constructor 1611 */ 1612 public PaymentReconciliation(CodeableConcept type, FinancialResourceStatusCodes status, Date created, Date date, Money amount) { 1613 super(); 1614 this.setType(type); 1615 this.setStatus(status); 1616 this.setCreated(created); 1617 this.setDate(date); 1618 this.setAmount(amount); 1619 } 1620 1621 /** 1622 * @return {@link #identifier} (A unique identifier assigned to this payment reconciliation.) 1623 */ 1624 public List<Identifier> getIdentifier() { 1625 if (this.identifier == null) 1626 this.identifier = new ArrayList<Identifier>(); 1627 return this.identifier; 1628 } 1629 1630 /** 1631 * @return Returns a reference to <code>this</code> for easy method chaining 1632 */ 1633 public PaymentReconciliation setIdentifier(List<Identifier> theIdentifier) { 1634 this.identifier = theIdentifier; 1635 return this; 1636 } 1637 1638 public boolean hasIdentifier() { 1639 if (this.identifier == null) 1640 return false; 1641 for (Identifier item : this.identifier) 1642 if (!item.isEmpty()) 1643 return true; 1644 return false; 1645 } 1646 1647 public Identifier addIdentifier() { //3 1648 Identifier t = new Identifier(); 1649 if (this.identifier == null) 1650 this.identifier = new ArrayList<Identifier>(); 1651 this.identifier.add(t); 1652 return t; 1653 } 1654 1655 public PaymentReconciliation addIdentifier(Identifier t) { //3 1656 if (t == null) 1657 return this; 1658 if (this.identifier == null) 1659 this.identifier = new ArrayList<Identifier>(); 1660 this.identifier.add(t); 1661 return this; 1662 } 1663 1664 /** 1665 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3} 1666 */ 1667 public Identifier getIdentifierFirstRep() { 1668 if (getIdentifier().isEmpty()) { 1669 addIdentifier(); 1670 } 1671 return getIdentifier().get(0); 1672 } 1673 1674 /** 1675 * @return {@link #type} (Code to indicate the nature of the payment such as payment, adjustment.) 1676 */ 1677 public CodeableConcept getType() { 1678 if (this.type == null) 1679 if (Configuration.errorOnAutoCreate()) 1680 throw new Error("Attempt to auto-create PaymentReconciliation.type"); 1681 else if (Configuration.doAutoCreate()) 1682 this.type = new CodeableConcept(); // cc 1683 return this.type; 1684 } 1685 1686 public boolean hasType() { 1687 return this.type != null && !this.type.isEmpty(); 1688 } 1689 1690 /** 1691 * @param value {@link #type} (Code to indicate the nature of the payment such as payment, adjustment.) 1692 */ 1693 public PaymentReconciliation setType(CodeableConcept value) { 1694 this.type = value; 1695 return this; 1696 } 1697 1698 /** 1699 * @return {@link #status} (The status of the resource instance.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 1700 */ 1701 public Enumeration<FinancialResourceStatusCodes> getStatusElement() { 1702 if (this.status == null) 1703 if (Configuration.errorOnAutoCreate()) 1704 throw new Error("Attempt to auto-create PaymentReconciliation.status"); 1705 else if (Configuration.doAutoCreate()) 1706 this.status = new Enumeration<FinancialResourceStatusCodes>(new FinancialResourceStatusCodesEnumFactory()); // bb 1707 return this.status; 1708 } 1709 1710 public boolean hasStatusElement() { 1711 return this.status != null && !this.status.isEmpty(); 1712 } 1713 1714 public boolean hasStatus() { 1715 return this.status != null && !this.status.isEmpty(); 1716 } 1717 1718 /** 1719 * @param value {@link #status} (The status of the resource instance.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 1720 */ 1721 public PaymentReconciliation setStatusElement(Enumeration<FinancialResourceStatusCodes> value) { 1722 this.status = value; 1723 return this; 1724 } 1725 1726 /** 1727 * @return The status of the resource instance. 1728 */ 1729 public FinancialResourceStatusCodes getStatus() { 1730 return this.status == null ? null : this.status.getValue(); 1731 } 1732 1733 /** 1734 * @param value The status of the resource instance. 1735 */ 1736 public PaymentReconciliation setStatus(FinancialResourceStatusCodes value) { 1737 if (this.status == null) 1738 this.status = new Enumeration<FinancialResourceStatusCodes>(new FinancialResourceStatusCodesEnumFactory()); 1739 this.status.setValue(value); 1740 return this; 1741 } 1742 1743 /** 1744 * @return {@link #kind} (The workflow or activity which gave rise to or during which the payment ocurred such as a kiosk, deposit on account, periodic payment etc.) 1745 */ 1746 public CodeableConcept getKind() { 1747 if (this.kind == null) 1748 if (Configuration.errorOnAutoCreate()) 1749 throw new Error("Attempt to auto-create PaymentReconciliation.kind"); 1750 else if (Configuration.doAutoCreate()) 1751 this.kind = new CodeableConcept(); // cc 1752 return this.kind; 1753 } 1754 1755 public boolean hasKind() { 1756 return this.kind != null && !this.kind.isEmpty(); 1757 } 1758 1759 /** 1760 * @param value {@link #kind} (The workflow or activity which gave rise to or during which the payment ocurred such as a kiosk, deposit on account, periodic payment etc.) 1761 */ 1762 public PaymentReconciliation setKind(CodeableConcept value) { 1763 this.kind = value; 1764 return this; 1765 } 1766 1767 /** 1768 * @return {@link #period} (The period of time for which payments have been gathered into this bulk payment for settlement.) 1769 */ 1770 public Period getPeriod() { 1771 if (this.period == null) 1772 if (Configuration.errorOnAutoCreate()) 1773 throw new Error("Attempt to auto-create PaymentReconciliation.period"); 1774 else if (Configuration.doAutoCreate()) 1775 this.period = new Period(); // cc 1776 return this.period; 1777 } 1778 1779 public boolean hasPeriod() { 1780 return this.period != null && !this.period.isEmpty(); 1781 } 1782 1783 /** 1784 * @param value {@link #period} (The period of time for which payments have been gathered into this bulk payment for settlement.) 1785 */ 1786 public PaymentReconciliation setPeriod(Period value) { 1787 this.period = value; 1788 return this; 1789 } 1790 1791 /** 1792 * @return {@link #created} (The date when the resource was created.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value 1793 */ 1794 public DateTimeType getCreatedElement() { 1795 if (this.created == null) 1796 if (Configuration.errorOnAutoCreate()) 1797 throw new Error("Attempt to auto-create PaymentReconciliation.created"); 1798 else if (Configuration.doAutoCreate()) 1799 this.created = new DateTimeType(); // bb 1800 return this.created; 1801 } 1802 1803 public boolean hasCreatedElement() { 1804 return this.created != null && !this.created.isEmpty(); 1805 } 1806 1807 public boolean hasCreated() { 1808 return this.created != null && !this.created.isEmpty(); 1809 } 1810 1811 /** 1812 * @param value {@link #created} (The date when the resource was created.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value 1813 */ 1814 public PaymentReconciliation setCreatedElement(DateTimeType value) { 1815 this.created = value; 1816 return this; 1817 } 1818 1819 /** 1820 * @return The date when the resource was created. 1821 */ 1822 public Date getCreated() { 1823 return this.created == null ? null : this.created.getValue(); 1824 } 1825 1826 /** 1827 * @param value The date when the resource was created. 1828 */ 1829 public PaymentReconciliation setCreated(Date value) { 1830 if (this.created == null) 1831 this.created = new DateTimeType(); 1832 this.created.setValue(value); 1833 return this; 1834 } 1835 1836 /** 1837 * @return {@link #enterer} (Payment enterer if not the actual payment issuer.) 1838 */ 1839 public Reference getEnterer() { 1840 if (this.enterer == null) 1841 if (Configuration.errorOnAutoCreate()) 1842 throw new Error("Attempt to auto-create PaymentReconciliation.enterer"); 1843 else if (Configuration.doAutoCreate()) 1844 this.enterer = new Reference(); // cc 1845 return this.enterer; 1846 } 1847 1848 public boolean hasEnterer() { 1849 return this.enterer != null && !this.enterer.isEmpty(); 1850 } 1851 1852 /** 1853 * @param value {@link #enterer} (Payment enterer if not the actual payment issuer.) 1854 */ 1855 public PaymentReconciliation setEnterer(Reference value) { 1856 this.enterer = value; 1857 return this; 1858 } 1859 1860 /** 1861 * @return {@link #issuerType} (The type of the source such as patient or insurance.) 1862 */ 1863 public CodeableConcept getIssuerType() { 1864 if (this.issuerType == null) 1865 if (Configuration.errorOnAutoCreate()) 1866 throw new Error("Attempt to auto-create PaymentReconciliation.issuerType"); 1867 else if (Configuration.doAutoCreate()) 1868 this.issuerType = new CodeableConcept(); // cc 1869 return this.issuerType; 1870 } 1871 1872 public boolean hasIssuerType() { 1873 return this.issuerType != null && !this.issuerType.isEmpty(); 1874 } 1875 1876 /** 1877 * @param value {@link #issuerType} (The type of the source such as patient or insurance.) 1878 */ 1879 public PaymentReconciliation setIssuerType(CodeableConcept value) { 1880 this.issuerType = value; 1881 return this; 1882 } 1883 1884 /** 1885 * @return {@link #paymentIssuer} (The party who generated the payment.) 1886 */ 1887 public Reference getPaymentIssuer() { 1888 if (this.paymentIssuer == null) 1889 if (Configuration.errorOnAutoCreate()) 1890 throw new Error("Attempt to auto-create PaymentReconciliation.paymentIssuer"); 1891 else if (Configuration.doAutoCreate()) 1892 this.paymentIssuer = new Reference(); // cc 1893 return this.paymentIssuer; 1894 } 1895 1896 public boolean hasPaymentIssuer() { 1897 return this.paymentIssuer != null && !this.paymentIssuer.isEmpty(); 1898 } 1899 1900 /** 1901 * @param value {@link #paymentIssuer} (The party who generated the payment.) 1902 */ 1903 public PaymentReconciliation setPaymentIssuer(Reference value) { 1904 this.paymentIssuer = value; 1905 return this; 1906 } 1907 1908 /** 1909 * @return {@link #request} (Original request resource reference.) 1910 */ 1911 public Reference getRequest() { 1912 if (this.request == null) 1913 if (Configuration.errorOnAutoCreate()) 1914 throw new Error("Attempt to auto-create PaymentReconciliation.request"); 1915 else if (Configuration.doAutoCreate()) 1916 this.request = new Reference(); // cc 1917 return this.request; 1918 } 1919 1920 public boolean hasRequest() { 1921 return this.request != null && !this.request.isEmpty(); 1922 } 1923 1924 /** 1925 * @param value {@link #request} (Original request resource reference.) 1926 */ 1927 public PaymentReconciliation setRequest(Reference value) { 1928 this.request = value; 1929 return this; 1930 } 1931 1932 /** 1933 * @return {@link #requestor} (The practitioner who is responsible for the services rendered to the patient.) 1934 */ 1935 public Reference getRequestor() { 1936 if (this.requestor == null) 1937 if (Configuration.errorOnAutoCreate()) 1938 throw new Error("Attempt to auto-create PaymentReconciliation.requestor"); 1939 else if (Configuration.doAutoCreate()) 1940 this.requestor = new Reference(); // cc 1941 return this.requestor; 1942 } 1943 1944 public boolean hasRequestor() { 1945 return this.requestor != null && !this.requestor.isEmpty(); 1946 } 1947 1948 /** 1949 * @param value {@link #requestor} (The practitioner who is responsible for the services rendered to the patient.) 1950 */ 1951 public PaymentReconciliation setRequestor(Reference value) { 1952 this.requestor = value; 1953 return this; 1954 } 1955 1956 /** 1957 * @return {@link #outcome} (The outcome of a request for a reconciliation.). This is the underlying object with id, value and extensions. The accessor "getOutcome" gives direct access to the value 1958 */ 1959 public Enumeration<PaymentOutcome> getOutcomeElement() { 1960 if (this.outcome == null) 1961 if (Configuration.errorOnAutoCreate()) 1962 throw new Error("Attempt to auto-create PaymentReconciliation.outcome"); 1963 else if (Configuration.doAutoCreate()) 1964 this.outcome = new Enumeration<PaymentOutcome>(new PaymentOutcomeEnumFactory()); // bb 1965 return this.outcome; 1966 } 1967 1968 public boolean hasOutcomeElement() { 1969 return this.outcome != null && !this.outcome.isEmpty(); 1970 } 1971 1972 public boolean hasOutcome() { 1973 return this.outcome != null && !this.outcome.isEmpty(); 1974 } 1975 1976 /** 1977 * @param value {@link #outcome} (The outcome of a request for a reconciliation.). This is the underlying object with id, value and extensions. The accessor "getOutcome" gives direct access to the value 1978 */ 1979 public PaymentReconciliation setOutcomeElement(Enumeration<PaymentOutcome> value) { 1980 this.outcome = value; 1981 return this; 1982 } 1983 1984 /** 1985 * @return The outcome of a request for a reconciliation. 1986 */ 1987 public PaymentOutcome getOutcome() { 1988 return this.outcome == null ? null : this.outcome.getValue(); 1989 } 1990 1991 /** 1992 * @param value The outcome of a request for a reconciliation. 1993 */ 1994 public PaymentReconciliation setOutcome(PaymentOutcome value) { 1995 if (value == null) 1996 this.outcome = null; 1997 else { 1998 if (this.outcome == null) 1999 this.outcome = new Enumeration<PaymentOutcome>(new PaymentOutcomeEnumFactory()); 2000 this.outcome.setValue(value); 2001 } 2002 return this; 2003 } 2004 2005 /** 2006 * @return {@link #disposition} (A human readable description of the status of the request for the reconciliation.). This is the underlying object with id, value and extensions. The accessor "getDisposition" gives direct access to the value 2007 */ 2008 public StringType getDispositionElement() { 2009 if (this.disposition == null) 2010 if (Configuration.errorOnAutoCreate()) 2011 throw new Error("Attempt to auto-create PaymentReconciliation.disposition"); 2012 else if (Configuration.doAutoCreate()) 2013 this.disposition = new StringType(); // bb 2014 return this.disposition; 2015 } 2016 2017 public boolean hasDispositionElement() { 2018 return this.disposition != null && !this.disposition.isEmpty(); 2019 } 2020 2021 public boolean hasDisposition() { 2022 return this.disposition != null && !this.disposition.isEmpty(); 2023 } 2024 2025 /** 2026 * @param value {@link #disposition} (A human readable description of the status of the request for the reconciliation.). This is the underlying object with id, value and extensions. The accessor "getDisposition" gives direct access to the value 2027 */ 2028 public PaymentReconciliation setDispositionElement(StringType value) { 2029 this.disposition = value; 2030 return this; 2031 } 2032 2033 /** 2034 * @return A human readable description of the status of the request for the reconciliation. 2035 */ 2036 public String getDisposition() { 2037 return this.disposition == null ? null : this.disposition.getValue(); 2038 } 2039 2040 /** 2041 * @param value A human readable description of the status of the request for the reconciliation. 2042 */ 2043 public PaymentReconciliation setDisposition(String value) { 2044 if (Utilities.noString(value)) 2045 this.disposition = null; 2046 else { 2047 if (this.disposition == null) 2048 this.disposition = new StringType(); 2049 this.disposition.setValue(value); 2050 } 2051 return this; 2052 } 2053 2054 /** 2055 * @return {@link #date} (The date of payment as indicated on the financial instrument.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value 2056 */ 2057 public DateType getDateElement() { 2058 if (this.date == null) 2059 if (Configuration.errorOnAutoCreate()) 2060 throw new Error("Attempt to auto-create PaymentReconciliation.date"); 2061 else if (Configuration.doAutoCreate()) 2062 this.date = new DateType(); // bb 2063 return this.date; 2064 } 2065 2066 public boolean hasDateElement() { 2067 return this.date != null && !this.date.isEmpty(); 2068 } 2069 2070 public boolean hasDate() { 2071 return this.date != null && !this.date.isEmpty(); 2072 } 2073 2074 /** 2075 * @param value {@link #date} (The date of payment as indicated on the financial instrument.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value 2076 */ 2077 public PaymentReconciliation setDateElement(DateType value) { 2078 this.date = value; 2079 return this; 2080 } 2081 2082 /** 2083 * @return The date of payment as indicated on the financial instrument. 2084 */ 2085 public Date getDate() { 2086 return this.date == null ? null : this.date.getValue(); 2087 } 2088 2089 /** 2090 * @param value The date of payment as indicated on the financial instrument. 2091 */ 2092 public PaymentReconciliation setDate(Date value) { 2093 if (this.date == null) 2094 this.date = new DateType(); 2095 this.date.setValue(value); 2096 return this; 2097 } 2098 2099 /** 2100 * @return {@link #location} (The location of the site or device for electronic transfers or physical location for cash payments.) 2101 */ 2102 public Reference getLocation() { 2103 if (this.location == null) 2104 if (Configuration.errorOnAutoCreate()) 2105 throw new Error("Attempt to auto-create PaymentReconciliation.location"); 2106 else if (Configuration.doAutoCreate()) 2107 this.location = new Reference(); // cc 2108 return this.location; 2109 } 2110 2111 public boolean hasLocation() { 2112 return this.location != null && !this.location.isEmpty(); 2113 } 2114 2115 /** 2116 * @param value {@link #location} (The location of the site or device for electronic transfers or physical location for cash payments.) 2117 */ 2118 public PaymentReconciliation setLocation(Reference value) { 2119 this.location = value; 2120 return this; 2121 } 2122 2123 /** 2124 * @return {@link #method} (The means of payment such as check, card cash, or electronic funds transfer.) 2125 */ 2126 public CodeableConcept getMethod() { 2127 if (this.method == null) 2128 if (Configuration.errorOnAutoCreate()) 2129 throw new Error("Attempt to auto-create PaymentReconciliation.method"); 2130 else if (Configuration.doAutoCreate()) 2131 this.method = new CodeableConcept(); // cc 2132 return this.method; 2133 } 2134 2135 public boolean hasMethod() { 2136 return this.method != null && !this.method.isEmpty(); 2137 } 2138 2139 /** 2140 * @param value {@link #method} (The means of payment such as check, card cash, or electronic funds transfer.) 2141 */ 2142 public PaymentReconciliation setMethod(CodeableConcept value) { 2143 this.method = value; 2144 return this; 2145 } 2146 2147 /** 2148 * @return {@link #cardBrand} (The card brand such as debit, Visa, Amex etc. used if a card is the method of payment.). This is the underlying object with id, value and extensions. The accessor "getCardBrand" gives direct access to the value 2149 */ 2150 public StringType getCardBrandElement() { 2151 if (this.cardBrand == null) 2152 if (Configuration.errorOnAutoCreate()) 2153 throw new Error("Attempt to auto-create PaymentReconciliation.cardBrand"); 2154 else if (Configuration.doAutoCreate()) 2155 this.cardBrand = new StringType(); // bb 2156 return this.cardBrand; 2157 } 2158 2159 public boolean hasCardBrandElement() { 2160 return this.cardBrand != null && !this.cardBrand.isEmpty(); 2161 } 2162 2163 public boolean hasCardBrand() { 2164 return this.cardBrand != null && !this.cardBrand.isEmpty(); 2165 } 2166 2167 /** 2168 * @param value {@link #cardBrand} (The card brand such as debit, Visa, Amex etc. used if a card is the method of payment.). This is the underlying object with id, value and extensions. The accessor "getCardBrand" gives direct access to the value 2169 */ 2170 public PaymentReconciliation setCardBrandElement(StringType value) { 2171 this.cardBrand = value; 2172 return this; 2173 } 2174 2175 /** 2176 * @return The card brand such as debit, Visa, Amex etc. used if a card is the method of payment. 2177 */ 2178 public String getCardBrand() { 2179 return this.cardBrand == null ? null : this.cardBrand.getValue(); 2180 } 2181 2182 /** 2183 * @param value The card brand such as debit, Visa, Amex etc. used if a card is the method of payment. 2184 */ 2185 public PaymentReconciliation setCardBrand(String value) { 2186 if (Utilities.noString(value)) 2187 this.cardBrand = null; 2188 else { 2189 if (this.cardBrand == null) 2190 this.cardBrand = new StringType(); 2191 this.cardBrand.setValue(value); 2192 } 2193 return this; 2194 } 2195 2196 /** 2197 * @return {@link #accountNumber} (A portion of the account number, often the last 4 digits, used for verification not charging purposes.). This is the underlying object with id, value and extensions. The accessor "getAccountNumber" gives direct access to the value 2198 */ 2199 public StringType getAccountNumberElement() { 2200 if (this.accountNumber == null) 2201 if (Configuration.errorOnAutoCreate()) 2202 throw new Error("Attempt to auto-create PaymentReconciliation.accountNumber"); 2203 else if (Configuration.doAutoCreate()) 2204 this.accountNumber = new StringType(); // bb 2205 return this.accountNumber; 2206 } 2207 2208 public boolean hasAccountNumberElement() { 2209 return this.accountNumber != null && !this.accountNumber.isEmpty(); 2210 } 2211 2212 public boolean hasAccountNumber() { 2213 return this.accountNumber != null && !this.accountNumber.isEmpty(); 2214 } 2215 2216 /** 2217 * @param value {@link #accountNumber} (A portion of the account number, often the last 4 digits, used for verification not charging purposes.). This is the underlying object with id, value and extensions. The accessor "getAccountNumber" gives direct access to the value 2218 */ 2219 public PaymentReconciliation setAccountNumberElement(StringType value) { 2220 this.accountNumber = value; 2221 return this; 2222 } 2223 2224 /** 2225 * @return A portion of the account number, often the last 4 digits, used for verification not charging purposes. 2226 */ 2227 public String getAccountNumber() { 2228 return this.accountNumber == null ? null : this.accountNumber.getValue(); 2229 } 2230 2231 /** 2232 * @param value A portion of the account number, often the last 4 digits, used for verification not charging purposes. 2233 */ 2234 public PaymentReconciliation setAccountNumber(String value) { 2235 if (Utilities.noString(value)) 2236 this.accountNumber = null; 2237 else { 2238 if (this.accountNumber == null) 2239 this.accountNumber = new StringType(); 2240 this.accountNumber.setValue(value); 2241 } 2242 return this; 2243 } 2244 2245 /** 2246 * @return {@link #expirationDate} (The year and month (YYYY-MM) when the instrument, typically card, expires.). This is the underlying object with id, value and extensions. The accessor "getExpirationDate" gives direct access to the value 2247 */ 2248 public DateType getExpirationDateElement() { 2249 if (this.expirationDate == null) 2250 if (Configuration.errorOnAutoCreate()) 2251 throw new Error("Attempt to auto-create PaymentReconciliation.expirationDate"); 2252 else if (Configuration.doAutoCreate()) 2253 this.expirationDate = new DateType(); // bb 2254 return this.expirationDate; 2255 } 2256 2257 public boolean hasExpirationDateElement() { 2258 return this.expirationDate != null && !this.expirationDate.isEmpty(); 2259 } 2260 2261 public boolean hasExpirationDate() { 2262 return this.expirationDate != null && !this.expirationDate.isEmpty(); 2263 } 2264 2265 /** 2266 * @param value {@link #expirationDate} (The year and month (YYYY-MM) when the instrument, typically card, expires.). This is the underlying object with id, value and extensions. The accessor "getExpirationDate" gives direct access to the value 2267 */ 2268 public PaymentReconciliation setExpirationDateElement(DateType value) { 2269 this.expirationDate = value; 2270 return this; 2271 } 2272 2273 /** 2274 * @return The year and month (YYYY-MM) when the instrument, typically card, expires. 2275 */ 2276 public Date getExpirationDate() { 2277 return this.expirationDate == null ? null : this.expirationDate.getValue(); 2278 } 2279 2280 /** 2281 * @param value The year and month (YYYY-MM) when the instrument, typically card, expires. 2282 */ 2283 public PaymentReconciliation setExpirationDate(Date value) { 2284 if (value == null) 2285 this.expirationDate = null; 2286 else { 2287 if (this.expirationDate == null) 2288 this.expirationDate = new DateType(); 2289 this.expirationDate.setValue(value); 2290 } 2291 return this; 2292 } 2293 2294 /** 2295 * @return {@link #processor} (The name of the card processor, etf processor, bank for checks.). This is the underlying object with id, value and extensions. The accessor "getProcessor" gives direct access to the value 2296 */ 2297 public StringType getProcessorElement() { 2298 if (this.processor == null) 2299 if (Configuration.errorOnAutoCreate()) 2300 throw new Error("Attempt to auto-create PaymentReconciliation.processor"); 2301 else if (Configuration.doAutoCreate()) 2302 this.processor = new StringType(); // bb 2303 return this.processor; 2304 } 2305 2306 public boolean hasProcessorElement() { 2307 return this.processor != null && !this.processor.isEmpty(); 2308 } 2309 2310 public boolean hasProcessor() { 2311 return this.processor != null && !this.processor.isEmpty(); 2312 } 2313 2314 /** 2315 * @param value {@link #processor} (The name of the card processor, etf processor, bank for checks.). This is the underlying object with id, value and extensions. The accessor "getProcessor" gives direct access to the value 2316 */ 2317 public PaymentReconciliation setProcessorElement(StringType value) { 2318 this.processor = value; 2319 return this; 2320 } 2321 2322 /** 2323 * @return The name of the card processor, etf processor, bank for checks. 2324 */ 2325 public String getProcessor() { 2326 return this.processor == null ? null : this.processor.getValue(); 2327 } 2328 2329 /** 2330 * @param value The name of the card processor, etf processor, bank for checks. 2331 */ 2332 public PaymentReconciliation setProcessor(String value) { 2333 if (Utilities.noString(value)) 2334 this.processor = null; 2335 else { 2336 if (this.processor == null) 2337 this.processor = new StringType(); 2338 this.processor.setValue(value); 2339 } 2340 return this; 2341 } 2342 2343 /** 2344 * @return {@link #referenceNumber} (The check number, eft reference, car processor reference.). This is the underlying object with id, value and extensions. The accessor "getReferenceNumber" gives direct access to the value 2345 */ 2346 public StringType getReferenceNumberElement() { 2347 if (this.referenceNumber == null) 2348 if (Configuration.errorOnAutoCreate()) 2349 throw new Error("Attempt to auto-create PaymentReconciliation.referenceNumber"); 2350 else if (Configuration.doAutoCreate()) 2351 this.referenceNumber = new StringType(); // bb 2352 return this.referenceNumber; 2353 } 2354 2355 public boolean hasReferenceNumberElement() { 2356 return this.referenceNumber != null && !this.referenceNumber.isEmpty(); 2357 } 2358 2359 public boolean hasReferenceNumber() { 2360 return this.referenceNumber != null && !this.referenceNumber.isEmpty(); 2361 } 2362 2363 /** 2364 * @param value {@link #referenceNumber} (The check number, eft reference, car processor reference.). This is the underlying object with id, value and extensions. The accessor "getReferenceNumber" gives direct access to the value 2365 */ 2366 public PaymentReconciliation setReferenceNumberElement(StringType value) { 2367 this.referenceNumber = value; 2368 return this; 2369 } 2370 2371 /** 2372 * @return The check number, eft reference, car processor reference. 2373 */ 2374 public String getReferenceNumber() { 2375 return this.referenceNumber == null ? null : this.referenceNumber.getValue(); 2376 } 2377 2378 /** 2379 * @param value The check number, eft reference, car processor reference. 2380 */ 2381 public PaymentReconciliation setReferenceNumber(String value) { 2382 if (Utilities.noString(value)) 2383 this.referenceNumber = null; 2384 else { 2385 if (this.referenceNumber == null) 2386 this.referenceNumber = new StringType(); 2387 this.referenceNumber.setValue(value); 2388 } 2389 return this; 2390 } 2391 2392 /** 2393 * @return {@link #authorization} (An alphanumeric issued by the processor to confirm the successful issuance of payment.). This is the underlying object with id, value and extensions. The accessor "getAuthorization" gives direct access to the value 2394 */ 2395 public StringType getAuthorizationElement() { 2396 if (this.authorization == null) 2397 if (Configuration.errorOnAutoCreate()) 2398 throw new Error("Attempt to auto-create PaymentReconciliation.authorization"); 2399 else if (Configuration.doAutoCreate()) 2400 this.authorization = new StringType(); // bb 2401 return this.authorization; 2402 } 2403 2404 public boolean hasAuthorizationElement() { 2405 return this.authorization != null && !this.authorization.isEmpty(); 2406 } 2407 2408 public boolean hasAuthorization() { 2409 return this.authorization != null && !this.authorization.isEmpty(); 2410 } 2411 2412 /** 2413 * @param value {@link #authorization} (An alphanumeric issued by the processor to confirm the successful issuance of payment.). This is the underlying object with id, value and extensions. The accessor "getAuthorization" gives direct access to the value 2414 */ 2415 public PaymentReconciliation setAuthorizationElement(StringType value) { 2416 this.authorization = value; 2417 return this; 2418 } 2419 2420 /** 2421 * @return An alphanumeric issued by the processor to confirm the successful issuance of payment. 2422 */ 2423 public String getAuthorization() { 2424 return this.authorization == null ? null : this.authorization.getValue(); 2425 } 2426 2427 /** 2428 * @param value An alphanumeric issued by the processor to confirm the successful issuance of payment. 2429 */ 2430 public PaymentReconciliation setAuthorization(String value) { 2431 if (Utilities.noString(value)) 2432 this.authorization = null; 2433 else { 2434 if (this.authorization == null) 2435 this.authorization = new StringType(); 2436 this.authorization.setValue(value); 2437 } 2438 return this; 2439 } 2440 2441 /** 2442 * @return {@link #tenderedAmount} (The amount offered by the issuer, typically applies to cash when the issuer provides an amount in bank note denominations equal to or excess of the amount actually being paid.) 2443 */ 2444 public Money getTenderedAmount() { 2445 if (this.tenderedAmount == null) 2446 if (Configuration.errorOnAutoCreate()) 2447 throw new Error("Attempt to auto-create PaymentReconciliation.tenderedAmount"); 2448 else if (Configuration.doAutoCreate()) 2449 this.tenderedAmount = new Money(); // cc 2450 return this.tenderedAmount; 2451 } 2452 2453 public boolean hasTenderedAmount() { 2454 return this.tenderedAmount != null && !this.tenderedAmount.isEmpty(); 2455 } 2456 2457 /** 2458 * @param value {@link #tenderedAmount} (The amount offered by the issuer, typically applies to cash when the issuer provides an amount in bank note denominations equal to or excess of the amount actually being paid.) 2459 */ 2460 public PaymentReconciliation setTenderedAmount(Money value) { 2461 this.tenderedAmount = value; 2462 return this; 2463 } 2464 2465 /** 2466 * @return {@link #returnedAmount} (The amount returned by the receiver which is excess to the amount payable, often referred to as 'change'.) 2467 */ 2468 public Money getReturnedAmount() { 2469 if (this.returnedAmount == null) 2470 if (Configuration.errorOnAutoCreate()) 2471 throw new Error("Attempt to auto-create PaymentReconciliation.returnedAmount"); 2472 else if (Configuration.doAutoCreate()) 2473 this.returnedAmount = new Money(); // cc 2474 return this.returnedAmount; 2475 } 2476 2477 public boolean hasReturnedAmount() { 2478 return this.returnedAmount != null && !this.returnedAmount.isEmpty(); 2479 } 2480 2481 /** 2482 * @param value {@link #returnedAmount} (The amount returned by the receiver which is excess to the amount payable, often referred to as 'change'.) 2483 */ 2484 public PaymentReconciliation setReturnedAmount(Money value) { 2485 this.returnedAmount = value; 2486 return this; 2487 } 2488 2489 /** 2490 * @return {@link #amount} (Total payment amount as indicated on the financial instrument.) 2491 */ 2492 public Money getAmount() { 2493 if (this.amount == null) 2494 if (Configuration.errorOnAutoCreate()) 2495 throw new Error("Attempt to auto-create PaymentReconciliation.amount"); 2496 else if (Configuration.doAutoCreate()) 2497 this.amount = new Money(); // cc 2498 return this.amount; 2499 } 2500 2501 public boolean hasAmount() { 2502 return this.amount != null && !this.amount.isEmpty(); 2503 } 2504 2505 /** 2506 * @param value {@link #amount} (Total payment amount as indicated on the financial instrument.) 2507 */ 2508 public PaymentReconciliation setAmount(Money value) { 2509 this.amount = value; 2510 return this; 2511 } 2512 2513 /** 2514 * @return {@link #paymentIdentifier} (Issuer's unique identifier for the payment instrument.) 2515 */ 2516 public Identifier getPaymentIdentifier() { 2517 if (this.paymentIdentifier == null) 2518 if (Configuration.errorOnAutoCreate()) 2519 throw new Error("Attempt to auto-create PaymentReconciliation.paymentIdentifier"); 2520 else if (Configuration.doAutoCreate()) 2521 this.paymentIdentifier = new Identifier(); // cc 2522 return this.paymentIdentifier; 2523 } 2524 2525 public boolean hasPaymentIdentifier() { 2526 return this.paymentIdentifier != null && !this.paymentIdentifier.isEmpty(); 2527 } 2528 2529 /** 2530 * @param value {@link #paymentIdentifier} (Issuer's unique identifier for the payment instrument.) 2531 */ 2532 public PaymentReconciliation setPaymentIdentifier(Identifier value) { 2533 this.paymentIdentifier = value; 2534 return this; 2535 } 2536 2537 /** 2538 * @return {@link #allocation} (Distribution of the payment amount for a previously acknowledged payable.) 2539 */ 2540 public List<PaymentReconciliationAllocationComponent> getAllocation() { 2541 if (this.allocation == null) 2542 this.allocation = new ArrayList<PaymentReconciliationAllocationComponent>(); 2543 return this.allocation; 2544 } 2545 2546 /** 2547 * @return Returns a reference to <code>this</code> for easy method chaining 2548 */ 2549 public PaymentReconciliation setAllocation(List<PaymentReconciliationAllocationComponent> theAllocation) { 2550 this.allocation = theAllocation; 2551 return this; 2552 } 2553 2554 public boolean hasAllocation() { 2555 if (this.allocation == null) 2556 return false; 2557 for (PaymentReconciliationAllocationComponent item : this.allocation) 2558 if (!item.isEmpty()) 2559 return true; 2560 return false; 2561 } 2562 2563 public PaymentReconciliationAllocationComponent addAllocation() { //3 2564 PaymentReconciliationAllocationComponent t = new PaymentReconciliationAllocationComponent(); 2565 if (this.allocation == null) 2566 this.allocation = new ArrayList<PaymentReconciliationAllocationComponent>(); 2567 this.allocation.add(t); 2568 return t; 2569 } 2570 2571 public PaymentReconciliation addAllocation(PaymentReconciliationAllocationComponent t) { //3 2572 if (t == null) 2573 return this; 2574 if (this.allocation == null) 2575 this.allocation = new ArrayList<PaymentReconciliationAllocationComponent>(); 2576 this.allocation.add(t); 2577 return this; 2578 } 2579 2580 /** 2581 * @return The first repetition of repeating field {@link #allocation}, creating it if it does not already exist {3} 2582 */ 2583 public PaymentReconciliationAllocationComponent getAllocationFirstRep() { 2584 if (getAllocation().isEmpty()) { 2585 addAllocation(); 2586 } 2587 return getAllocation().get(0); 2588 } 2589 2590 /** 2591 * @return {@link #formCode} (A code for the form to be used for printing the content.) 2592 */ 2593 public CodeableConcept getFormCode() { 2594 if (this.formCode == null) 2595 if (Configuration.errorOnAutoCreate()) 2596 throw new Error("Attempt to auto-create PaymentReconciliation.formCode"); 2597 else if (Configuration.doAutoCreate()) 2598 this.formCode = new CodeableConcept(); // cc 2599 return this.formCode; 2600 } 2601 2602 public boolean hasFormCode() { 2603 return this.formCode != null && !this.formCode.isEmpty(); 2604 } 2605 2606 /** 2607 * @param value {@link #formCode} (A code for the form to be used for printing the content.) 2608 */ 2609 public PaymentReconciliation setFormCode(CodeableConcept value) { 2610 this.formCode = value; 2611 return this; 2612 } 2613 2614 /** 2615 * @return {@link #processNote} (A note that describes or explains the processing in a human readable form.) 2616 */ 2617 public List<NotesComponent> getProcessNote() { 2618 if (this.processNote == null) 2619 this.processNote = new ArrayList<NotesComponent>(); 2620 return this.processNote; 2621 } 2622 2623 /** 2624 * @return Returns a reference to <code>this</code> for easy method chaining 2625 */ 2626 public PaymentReconciliation setProcessNote(List<NotesComponent> theProcessNote) { 2627 this.processNote = theProcessNote; 2628 return this; 2629 } 2630 2631 public boolean hasProcessNote() { 2632 if (this.processNote == null) 2633 return false; 2634 for (NotesComponent item : this.processNote) 2635 if (!item.isEmpty()) 2636 return true; 2637 return false; 2638 } 2639 2640 public NotesComponent addProcessNote() { //3 2641 NotesComponent t = new NotesComponent(); 2642 if (this.processNote == null) 2643 this.processNote = new ArrayList<NotesComponent>(); 2644 this.processNote.add(t); 2645 return t; 2646 } 2647 2648 public PaymentReconciliation addProcessNote(NotesComponent t) { //3 2649 if (t == null) 2650 return this; 2651 if (this.processNote == null) 2652 this.processNote = new ArrayList<NotesComponent>(); 2653 this.processNote.add(t); 2654 return this; 2655 } 2656 2657 /** 2658 * @return The first repetition of repeating field {@link #processNote}, creating it if it does not already exist {3} 2659 */ 2660 public NotesComponent getProcessNoteFirstRep() { 2661 if (getProcessNote().isEmpty()) { 2662 addProcessNote(); 2663 } 2664 return getProcessNote().get(0); 2665 } 2666 2667 protected void listChildren(List<Property> children) { 2668 super.listChildren(children); 2669 children.add(new Property("identifier", "Identifier", "A unique identifier assigned to this payment reconciliation.", 0, java.lang.Integer.MAX_VALUE, identifier)); 2670 children.add(new Property("type", "CodeableConcept", "Code to indicate the nature of the payment such as payment, adjustment.", 0, 1, type)); 2671 children.add(new Property("status", "code", "The status of the resource instance.", 0, 1, status)); 2672 children.add(new Property("kind", "CodeableConcept", "The workflow or activity which gave rise to or during which the payment ocurred such as a kiosk, deposit on account, periodic payment etc.", 0, 1, kind)); 2673 children.add(new Property("period", "Period", "The period of time for which payments have been gathered into this bulk payment for settlement.", 0, 1, period)); 2674 children.add(new Property("created", "dateTime", "The date when the resource was created.", 0, 1, created)); 2675 children.add(new Property("enterer", "Reference(Practitioner|PractitionerRole|Organization)", "Payment enterer if not the actual payment issuer.", 0, 1, enterer)); 2676 children.add(new Property("issuerType", "CodeableConcept", "The type of the source such as patient or insurance.", 0, 1, issuerType)); 2677 children.add(new Property("paymentIssuer", "Reference(Organization|Patient|RelatedPerson)", "The party who generated the payment.", 0, 1, paymentIssuer)); 2678 children.add(new Property("request", "Reference(Task)", "Original request resource reference.", 0, 1, request)); 2679 children.add(new Property("requestor", "Reference(Practitioner|PractitionerRole|Organization)", "The practitioner who is responsible for the services rendered to the patient.", 0, 1, requestor)); 2680 children.add(new Property("outcome", "code", "The outcome of a request for a reconciliation.", 0, 1, outcome)); 2681 children.add(new Property("disposition", "string", "A human readable description of the status of the request for the reconciliation.", 0, 1, disposition)); 2682 children.add(new Property("date", "date", "The date of payment as indicated on the financial instrument.", 0, 1, date)); 2683 children.add(new Property("location", "Reference(Location)", "The location of the site or device for electronic transfers or physical location for cash payments.", 0, 1, location)); 2684 children.add(new Property("method", "CodeableConcept", "The means of payment such as check, card cash, or electronic funds transfer.", 0, 1, method)); 2685 children.add(new Property("cardBrand", "string", "The card brand such as debit, Visa, Amex etc. used if a card is the method of payment.", 0, 1, cardBrand)); 2686 children.add(new Property("accountNumber", "string", "A portion of the account number, often the last 4 digits, used for verification not charging purposes.", 0, 1, accountNumber)); 2687 children.add(new Property("expirationDate", "date", "The year and month (YYYY-MM) when the instrument, typically card, expires.", 0, 1, expirationDate)); 2688 children.add(new Property("processor", "string", "The name of the card processor, etf processor, bank for checks.", 0, 1, processor)); 2689 children.add(new Property("referenceNumber", "string", "The check number, eft reference, car processor reference.", 0, 1, referenceNumber)); 2690 children.add(new Property("authorization", "string", "An alphanumeric issued by the processor to confirm the successful issuance of payment.", 0, 1, authorization)); 2691 children.add(new Property("tenderedAmount", "Money", "The amount offered by the issuer, typically applies to cash when the issuer provides an amount in bank note denominations equal to or excess of the amount actually being paid.", 0, 1, tenderedAmount)); 2692 children.add(new Property("returnedAmount", "Money", "The amount returned by the receiver which is excess to the amount payable, often referred to as 'change'.", 0, 1, returnedAmount)); 2693 children.add(new Property("amount", "Money", "Total payment amount as indicated on the financial instrument.", 0, 1, amount)); 2694 children.add(new Property("paymentIdentifier", "Identifier", "Issuer's unique identifier for the payment instrument.", 0, 1, paymentIdentifier)); 2695 children.add(new Property("allocation", "", "Distribution of the payment amount for a previously acknowledged payable.", 0, java.lang.Integer.MAX_VALUE, allocation)); 2696 children.add(new Property("formCode", "CodeableConcept", "A code for the form to be used for printing the content.", 0, 1, formCode)); 2697 children.add(new Property("processNote", "", "A note that describes or explains the processing in a human readable form.", 0, java.lang.Integer.MAX_VALUE, processNote)); 2698 } 2699 2700 @Override 2701 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 2702 switch (_hash) { 2703 case -1618432855: /*identifier*/ return new Property("identifier", "Identifier", "A unique identifier assigned to this payment reconciliation.", 0, java.lang.Integer.MAX_VALUE, identifier); 2704 case 3575610: /*type*/ return new Property("type", "CodeableConcept", "Code to indicate the nature of the payment such as payment, adjustment.", 0, 1, type); 2705 case -892481550: /*status*/ return new Property("status", "code", "The status of the resource instance.", 0, 1, status); 2706 case 3292052: /*kind*/ return new Property("kind", "CodeableConcept", "The workflow or activity which gave rise to or during which the payment ocurred such as a kiosk, deposit on account, periodic payment etc.", 0, 1, kind); 2707 case -991726143: /*period*/ return new Property("period", "Period", "The period of time for which payments have been gathered into this bulk payment for settlement.", 0, 1, period); 2708 case 1028554472: /*created*/ return new Property("created", "dateTime", "The date when the resource was created.", 0, 1, created); 2709 case -1591951995: /*enterer*/ return new Property("enterer", "Reference(Practitioner|PractitionerRole|Organization)", "Payment enterer if not the actual payment issuer.", 0, 1, enterer); 2710 case 1459974547: /*issuerType*/ return new Property("issuerType", "CodeableConcept", "The type of the source such as patient or insurance.", 0, 1, issuerType); 2711 case 1144026207: /*paymentIssuer*/ return new Property("paymentIssuer", "Reference(Organization|Patient|RelatedPerson)", "The party who generated the payment.", 0, 1, paymentIssuer); 2712 case 1095692943: /*request*/ return new Property("request", "Reference(Task)", "Original request resource reference.", 0, 1, request); 2713 case 693934258: /*requestor*/ return new Property("requestor", "Reference(Practitioner|PractitionerRole|Organization)", "The practitioner who is responsible for the services rendered to the patient.", 0, 1, requestor); 2714 case -1106507950: /*outcome*/ return new Property("outcome", "code", "The outcome of a request for a reconciliation.", 0, 1, outcome); 2715 case 583380919: /*disposition*/ return new Property("disposition", "string", "A human readable description of the status of the request for the reconciliation.", 0, 1, disposition); 2716 case 3076014: /*date*/ return new Property("date", "date", "The date of payment as indicated on the financial instrument.", 0, 1, date); 2717 case 1901043637: /*location*/ return new Property("location", "Reference(Location)", "The location of the site or device for electronic transfers or physical location for cash payments.", 0, 1, location); 2718 case -1077554975: /*method*/ return new Property("method", "CodeableConcept", "The means of payment such as check, card cash, or electronic funds transfer.", 0, 1, method); 2719 case -271889833: /*cardBrand*/ return new Property("cardBrand", "string", "The card brand such as debit, Visa, Amex etc. used if a card is the method of payment.", 0, 1, cardBrand); 2720 case -1011205162: /*accountNumber*/ return new Property("accountNumber", "string", "A portion of the account number, often the last 4 digits, used for verification not charging purposes.", 0, 1, accountNumber); 2721 case -668811523: /*expirationDate*/ return new Property("expirationDate", "date", "The year and month (YYYY-MM) when the instrument, typically card, expires.", 0, 1, expirationDate); 2722 case -1094759278: /*processor*/ return new Property("processor", "string", "The name of the card processor, etf processor, bank for checks.", 0, 1, processor); 2723 case 744563316: /*referenceNumber*/ return new Property("referenceNumber", "string", "The check number, eft reference, car processor reference.", 0, 1, referenceNumber); 2724 case -1385570183: /*authorization*/ return new Property("authorization", "string", "An alphanumeric issued by the processor to confirm the successful issuance of payment.", 0, 1, authorization); 2725 case 1815344299: /*tenderedAmount*/ return new Property("tenderedAmount", "Money", "The amount offered by the issuer, typically applies to cash when the issuer provides an amount in bank note denominations equal to or excess of the amount actually being paid.", 0, 1, tenderedAmount); 2726 case -797236473: /*returnedAmount*/ return new Property("returnedAmount", "Money", "The amount returned by the receiver which is excess to the amount payable, often referred to as 'change'.", 0, 1, returnedAmount); 2727 case -1413853096: /*amount*/ return new Property("amount", "Money", "Total payment amount as indicated on the financial instrument.", 0, 1, amount); 2728 case 1555852111: /*paymentIdentifier*/ return new Property("paymentIdentifier", "Identifier", "Issuer's unique identifier for the payment instrument.", 0, 1, paymentIdentifier); 2729 case -1912450848: /*allocation*/ return new Property("allocation", "", "Distribution of the payment amount for a previously acknowledged payable.", 0, java.lang.Integer.MAX_VALUE, allocation); 2730 case 473181393: /*formCode*/ return new Property("formCode", "CodeableConcept", "A code for the form to be used for printing the content.", 0, 1, formCode); 2731 case 202339073: /*processNote*/ return new Property("processNote", "", "A note that describes or explains the processing in a human readable form.", 0, java.lang.Integer.MAX_VALUE, processNote); 2732 default: return super.getNamedProperty(_hash, _name, _checkValid); 2733 } 2734 2735 } 2736 2737 @Override 2738 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2739 switch (hash) { 2740 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 2741 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // CodeableConcept 2742 case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<FinancialResourceStatusCodes> 2743 case 3292052: /*kind*/ return this.kind == null ? new Base[0] : new Base[] {this.kind}; // CodeableConcept 2744 case -991726143: /*period*/ return this.period == null ? new Base[0] : new Base[] {this.period}; // Period 2745 case 1028554472: /*created*/ return this.created == null ? new Base[0] : new Base[] {this.created}; // DateTimeType 2746 case -1591951995: /*enterer*/ return this.enterer == null ? new Base[0] : new Base[] {this.enterer}; // Reference 2747 case 1459974547: /*issuerType*/ return this.issuerType == null ? new Base[0] : new Base[] {this.issuerType}; // CodeableConcept 2748 case 1144026207: /*paymentIssuer*/ return this.paymentIssuer == null ? new Base[0] : new Base[] {this.paymentIssuer}; // Reference 2749 case 1095692943: /*request*/ return this.request == null ? new Base[0] : new Base[] {this.request}; // Reference 2750 case 693934258: /*requestor*/ return this.requestor == null ? new Base[0] : new Base[] {this.requestor}; // Reference 2751 case -1106507950: /*outcome*/ return this.outcome == null ? new Base[0] : new Base[] {this.outcome}; // Enumeration<PaymentOutcome> 2752 case 583380919: /*disposition*/ return this.disposition == null ? new Base[0] : new Base[] {this.disposition}; // StringType 2753 case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateType 2754 case 1901043637: /*location*/ return this.location == null ? new Base[0] : new Base[] {this.location}; // Reference 2755 case -1077554975: /*method*/ return this.method == null ? new Base[0] : new Base[] {this.method}; // CodeableConcept 2756 case -271889833: /*cardBrand*/ return this.cardBrand == null ? new Base[0] : new Base[] {this.cardBrand}; // StringType 2757 case -1011205162: /*accountNumber*/ return this.accountNumber == null ? new Base[0] : new Base[] {this.accountNumber}; // StringType 2758 case -668811523: /*expirationDate*/ return this.expirationDate == null ? new Base[0] : new Base[] {this.expirationDate}; // DateType 2759 case -1094759278: /*processor*/ return this.processor == null ? new Base[0] : new Base[] {this.processor}; // StringType 2760 case 744563316: /*referenceNumber*/ return this.referenceNumber == null ? new Base[0] : new Base[] {this.referenceNumber}; // StringType 2761 case -1385570183: /*authorization*/ return this.authorization == null ? new Base[0] : new Base[] {this.authorization}; // StringType 2762 case 1815344299: /*tenderedAmount*/ return this.tenderedAmount == null ? new Base[0] : new Base[] {this.tenderedAmount}; // Money 2763 case -797236473: /*returnedAmount*/ return this.returnedAmount == null ? new Base[0] : new Base[] {this.returnedAmount}; // Money 2764 case -1413853096: /*amount*/ return this.amount == null ? new Base[0] : new Base[] {this.amount}; // Money 2765 case 1555852111: /*paymentIdentifier*/ return this.paymentIdentifier == null ? new Base[0] : new Base[] {this.paymentIdentifier}; // Identifier 2766 case -1912450848: /*allocation*/ return this.allocation == null ? new Base[0] : this.allocation.toArray(new Base[this.allocation.size()]); // PaymentReconciliationAllocationComponent 2767 case 473181393: /*formCode*/ return this.formCode == null ? new Base[0] : new Base[] {this.formCode}; // CodeableConcept 2768 case 202339073: /*processNote*/ return this.processNote == null ? new Base[0] : this.processNote.toArray(new Base[this.processNote.size()]); // NotesComponent 2769 default: return super.getProperty(hash, name, checkValid); 2770 } 2771 2772 } 2773 2774 @Override 2775 public Base setProperty(int hash, String name, Base value) throws FHIRException { 2776 switch (hash) { 2777 case -1618432855: // identifier 2778 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier 2779 return value; 2780 case 3575610: // type 2781 this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 2782 return value; 2783 case -892481550: // status 2784 value = new FinancialResourceStatusCodesEnumFactory().fromType(TypeConvertor.castToCode(value)); 2785 this.status = (Enumeration) value; // Enumeration<FinancialResourceStatusCodes> 2786 return value; 2787 case 3292052: // kind 2788 this.kind = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 2789 return value; 2790 case -991726143: // period 2791 this.period = TypeConvertor.castToPeriod(value); // Period 2792 return value; 2793 case 1028554472: // created 2794 this.created = TypeConvertor.castToDateTime(value); // DateTimeType 2795 return value; 2796 case -1591951995: // enterer 2797 this.enterer = TypeConvertor.castToReference(value); // Reference 2798 return value; 2799 case 1459974547: // issuerType 2800 this.issuerType = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 2801 return value; 2802 case 1144026207: // paymentIssuer 2803 this.paymentIssuer = TypeConvertor.castToReference(value); // Reference 2804 return value; 2805 case 1095692943: // request 2806 this.request = TypeConvertor.castToReference(value); // Reference 2807 return value; 2808 case 693934258: // requestor 2809 this.requestor = TypeConvertor.castToReference(value); // Reference 2810 return value; 2811 case -1106507950: // outcome 2812 value = new PaymentOutcomeEnumFactory().fromType(TypeConvertor.castToCode(value)); 2813 this.outcome = (Enumeration) value; // Enumeration<PaymentOutcome> 2814 return value; 2815 case 583380919: // disposition 2816 this.disposition = TypeConvertor.castToString(value); // StringType 2817 return value; 2818 case 3076014: // date 2819 this.date = TypeConvertor.castToDate(value); // DateType 2820 return value; 2821 case 1901043637: // location 2822 this.location = TypeConvertor.castToReference(value); // Reference 2823 return value; 2824 case -1077554975: // method 2825 this.method = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 2826 return value; 2827 case -271889833: // cardBrand 2828 this.cardBrand = TypeConvertor.castToString(value); // StringType 2829 return value; 2830 case -1011205162: // accountNumber 2831 this.accountNumber = TypeConvertor.castToString(value); // StringType 2832 return value; 2833 case -668811523: // expirationDate 2834 this.expirationDate = TypeConvertor.castToDate(value); // DateType 2835 return value; 2836 case -1094759278: // processor 2837 this.processor = TypeConvertor.castToString(value); // StringType 2838 return value; 2839 case 744563316: // referenceNumber 2840 this.referenceNumber = TypeConvertor.castToString(value); // StringType 2841 return value; 2842 case -1385570183: // authorization 2843 this.authorization = TypeConvertor.castToString(value); // StringType 2844 return value; 2845 case 1815344299: // tenderedAmount 2846 this.tenderedAmount = TypeConvertor.castToMoney(value); // Money 2847 return value; 2848 case -797236473: // returnedAmount 2849 this.returnedAmount = TypeConvertor.castToMoney(value); // Money 2850 return value; 2851 case -1413853096: // amount 2852 this.amount = TypeConvertor.castToMoney(value); // Money 2853 return value; 2854 case 1555852111: // paymentIdentifier 2855 this.paymentIdentifier = TypeConvertor.castToIdentifier(value); // Identifier 2856 return value; 2857 case -1912450848: // allocation 2858 this.getAllocation().add((PaymentReconciliationAllocationComponent) value); // PaymentReconciliationAllocationComponent 2859 return value; 2860 case 473181393: // formCode 2861 this.formCode = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 2862 return value; 2863 case 202339073: // processNote 2864 this.getProcessNote().add((NotesComponent) value); // NotesComponent 2865 return value; 2866 default: return super.setProperty(hash, name, value); 2867 } 2868 2869 } 2870 2871 @Override 2872 public Base setProperty(String name, Base value) throws FHIRException { 2873 if (name.equals("identifier")) { 2874 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); 2875 } else if (name.equals("type")) { 2876 this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 2877 } else if (name.equals("status")) { 2878 value = new FinancialResourceStatusCodesEnumFactory().fromType(TypeConvertor.castToCode(value)); 2879 this.status = (Enumeration) value; // Enumeration<FinancialResourceStatusCodes> 2880 } else if (name.equals("kind")) { 2881 this.kind = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 2882 } else if (name.equals("period")) { 2883 this.period = TypeConvertor.castToPeriod(value); // Period 2884 } else if (name.equals("created")) { 2885 this.created = TypeConvertor.castToDateTime(value); // DateTimeType 2886 } else if (name.equals("enterer")) { 2887 this.enterer = TypeConvertor.castToReference(value); // Reference 2888 } else if (name.equals("issuerType")) { 2889 this.issuerType = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 2890 } else if (name.equals("paymentIssuer")) { 2891 this.paymentIssuer = TypeConvertor.castToReference(value); // Reference 2892 } else if (name.equals("request")) { 2893 this.request = TypeConvertor.castToReference(value); // Reference 2894 } else if (name.equals("requestor")) { 2895 this.requestor = TypeConvertor.castToReference(value); // Reference 2896 } else if (name.equals("outcome")) { 2897 value = new PaymentOutcomeEnumFactory().fromType(TypeConvertor.castToCode(value)); 2898 this.outcome = (Enumeration) value; // Enumeration<PaymentOutcome> 2899 } else if (name.equals("disposition")) { 2900 this.disposition = TypeConvertor.castToString(value); // StringType 2901 } else if (name.equals("date")) { 2902 this.date = TypeConvertor.castToDate(value); // DateType 2903 } else if (name.equals("location")) { 2904 this.location = TypeConvertor.castToReference(value); // Reference 2905 } else if (name.equals("method")) { 2906 this.method = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 2907 } else if (name.equals("cardBrand")) { 2908 this.cardBrand = TypeConvertor.castToString(value); // StringType 2909 } else if (name.equals("accountNumber")) { 2910 this.accountNumber = TypeConvertor.castToString(value); // StringType 2911 } else if (name.equals("expirationDate")) { 2912 this.expirationDate = TypeConvertor.castToDate(value); // DateType 2913 } else if (name.equals("processor")) { 2914 this.processor = TypeConvertor.castToString(value); // StringType 2915 } else if (name.equals("referenceNumber")) { 2916 this.referenceNumber = TypeConvertor.castToString(value); // StringType 2917 } else if (name.equals("authorization")) { 2918 this.authorization = TypeConvertor.castToString(value); // StringType 2919 } else if (name.equals("tenderedAmount")) { 2920 this.tenderedAmount = TypeConvertor.castToMoney(value); // Money 2921 } else if (name.equals("returnedAmount")) { 2922 this.returnedAmount = TypeConvertor.castToMoney(value); // Money 2923 } else if (name.equals("amount")) { 2924 this.amount = TypeConvertor.castToMoney(value); // Money 2925 } else if (name.equals("paymentIdentifier")) { 2926 this.paymentIdentifier = TypeConvertor.castToIdentifier(value); // Identifier 2927 } else if (name.equals("allocation")) { 2928 this.getAllocation().add((PaymentReconciliationAllocationComponent) value); 2929 } else if (name.equals("formCode")) { 2930 this.formCode = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 2931 } else if (name.equals("processNote")) { 2932 this.getProcessNote().add((NotesComponent) value); 2933 } else 2934 return super.setProperty(name, value); 2935 return value; 2936 } 2937 2938 @Override 2939 public void removeChild(String name, Base value) throws FHIRException { 2940 if (name.equals("identifier")) { 2941 this.getIdentifier().remove(value); 2942 } else if (name.equals("type")) { 2943 this.type = null; 2944 } else if (name.equals("status")) { 2945 value = new FinancialResourceStatusCodesEnumFactory().fromType(TypeConvertor.castToCode(value)); 2946 this.status = (Enumeration) value; // Enumeration<FinancialResourceStatusCodes> 2947 } else if (name.equals("kind")) { 2948 this.kind = null; 2949 } else if (name.equals("period")) { 2950 this.period = null; 2951 } else if (name.equals("created")) { 2952 this.created = null; 2953 } else if (name.equals("enterer")) { 2954 this.enterer = null; 2955 } else if (name.equals("issuerType")) { 2956 this.issuerType = null; 2957 } else if (name.equals("paymentIssuer")) { 2958 this.paymentIssuer = null; 2959 } else if (name.equals("request")) { 2960 this.request = null; 2961 } else if (name.equals("requestor")) { 2962 this.requestor = null; 2963 } else if (name.equals("outcome")) { 2964 value = new PaymentOutcomeEnumFactory().fromType(TypeConvertor.castToCode(value)); 2965 this.outcome = (Enumeration) value; // Enumeration<PaymentOutcome> 2966 } else if (name.equals("disposition")) { 2967 this.disposition = null; 2968 } else if (name.equals("date")) { 2969 this.date = null; 2970 } else if (name.equals("location")) { 2971 this.location = null; 2972 } else if (name.equals("method")) { 2973 this.method = null; 2974 } else if (name.equals("cardBrand")) { 2975 this.cardBrand = null; 2976 } else if (name.equals("accountNumber")) { 2977 this.accountNumber = null; 2978 } else if (name.equals("expirationDate")) { 2979 this.expirationDate = null; 2980 } else if (name.equals("processor")) { 2981 this.processor = null; 2982 } else if (name.equals("referenceNumber")) { 2983 this.referenceNumber = null; 2984 } else if (name.equals("authorization")) { 2985 this.authorization = null; 2986 } else if (name.equals("tenderedAmount")) { 2987 this.tenderedAmount = null; 2988 } else if (name.equals("returnedAmount")) { 2989 this.returnedAmount = null; 2990 } else if (name.equals("amount")) { 2991 this.amount = null; 2992 } else if (name.equals("paymentIdentifier")) { 2993 this.paymentIdentifier = null; 2994 } else if (name.equals("allocation")) { 2995 this.getAllocation().remove((PaymentReconciliationAllocationComponent) value); 2996 } else if (name.equals("formCode")) { 2997 this.formCode = null; 2998 } else if (name.equals("processNote")) { 2999 this.getProcessNote().remove((NotesComponent) value); 3000 } else 3001 super.removeChild(name, value); 3002 3003 } 3004 3005 @Override 3006 public Base makeProperty(int hash, String name) throws FHIRException { 3007 switch (hash) { 3008 case -1618432855: return addIdentifier(); 3009 case 3575610: return getType(); 3010 case -892481550: return getStatusElement(); 3011 case 3292052: return getKind(); 3012 case -991726143: return getPeriod(); 3013 case 1028554472: return getCreatedElement(); 3014 case -1591951995: return getEnterer(); 3015 case 1459974547: return getIssuerType(); 3016 case 1144026207: return getPaymentIssuer(); 3017 case 1095692943: return getRequest(); 3018 case 693934258: return getRequestor(); 3019 case -1106507950: return getOutcomeElement(); 3020 case 583380919: return getDispositionElement(); 3021 case 3076014: return getDateElement(); 3022 case 1901043637: return getLocation(); 3023 case -1077554975: return getMethod(); 3024 case -271889833: return getCardBrandElement(); 3025 case -1011205162: return getAccountNumberElement(); 3026 case -668811523: return getExpirationDateElement(); 3027 case -1094759278: return getProcessorElement(); 3028 case 744563316: return getReferenceNumberElement(); 3029 case -1385570183: return getAuthorizationElement(); 3030 case 1815344299: return getTenderedAmount(); 3031 case -797236473: return getReturnedAmount(); 3032 case -1413853096: return getAmount(); 3033 case 1555852111: return getPaymentIdentifier(); 3034 case -1912450848: return addAllocation(); 3035 case 473181393: return getFormCode(); 3036 case 202339073: return addProcessNote(); 3037 default: return super.makeProperty(hash, name); 3038 } 3039 3040 } 3041 3042 @Override 3043 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 3044 switch (hash) { 3045 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 3046 case 3575610: /*type*/ return new String[] {"CodeableConcept"}; 3047 case -892481550: /*status*/ return new String[] {"code"}; 3048 case 3292052: /*kind*/ return new String[] {"CodeableConcept"}; 3049 case -991726143: /*period*/ return new String[] {"Period"}; 3050 case 1028554472: /*created*/ return new String[] {"dateTime"}; 3051 case -1591951995: /*enterer*/ return new String[] {"Reference"}; 3052 case 1459974547: /*issuerType*/ return new String[] {"CodeableConcept"}; 3053 case 1144026207: /*paymentIssuer*/ return new String[] {"Reference"}; 3054 case 1095692943: /*request*/ return new String[] {"Reference"}; 3055 case 693934258: /*requestor*/ return new String[] {"Reference"}; 3056 case -1106507950: /*outcome*/ return new String[] {"code"}; 3057 case 583380919: /*disposition*/ return new String[] {"string"}; 3058 case 3076014: /*date*/ return new String[] {"date"}; 3059 case 1901043637: /*location*/ return new String[] {"Reference"}; 3060 case -1077554975: /*method*/ return new String[] {"CodeableConcept"}; 3061 case -271889833: /*cardBrand*/ return new String[] {"string"}; 3062 case -1011205162: /*accountNumber*/ return new String[] {"string"}; 3063 case -668811523: /*expirationDate*/ return new String[] {"date"}; 3064 case -1094759278: /*processor*/ return new String[] {"string"}; 3065 case 744563316: /*referenceNumber*/ return new String[] {"string"}; 3066 case -1385570183: /*authorization*/ return new String[] {"string"}; 3067 case 1815344299: /*tenderedAmount*/ return new String[] {"Money"}; 3068 case -797236473: /*returnedAmount*/ return new String[] {"Money"}; 3069 case -1413853096: /*amount*/ return new String[] {"Money"}; 3070 case 1555852111: /*paymentIdentifier*/ return new String[] {"Identifier"}; 3071 case -1912450848: /*allocation*/ return new String[] {}; 3072 case 473181393: /*formCode*/ return new String[] {"CodeableConcept"}; 3073 case 202339073: /*processNote*/ return new String[] {}; 3074 default: return super.getTypesForProperty(hash, name); 3075 } 3076 3077 } 3078 3079 @Override 3080 public Base addChild(String name) throws FHIRException { 3081 if (name.equals("identifier")) { 3082 return addIdentifier(); 3083 } 3084 else if (name.equals("type")) { 3085 this.type = new CodeableConcept(); 3086 return this.type; 3087 } 3088 else if (name.equals("status")) { 3089 throw new FHIRException("Cannot call addChild on a singleton property PaymentReconciliation.status"); 3090 } 3091 else if (name.equals("kind")) { 3092 this.kind = new CodeableConcept(); 3093 return this.kind; 3094 } 3095 else if (name.equals("period")) { 3096 this.period = new Period(); 3097 return this.period; 3098 } 3099 else if (name.equals("created")) { 3100 throw new FHIRException("Cannot call addChild on a singleton property PaymentReconciliation.created"); 3101 } 3102 else if (name.equals("enterer")) { 3103 this.enterer = new Reference(); 3104 return this.enterer; 3105 } 3106 else if (name.equals("issuerType")) { 3107 this.issuerType = new CodeableConcept(); 3108 return this.issuerType; 3109 } 3110 else if (name.equals("paymentIssuer")) { 3111 this.paymentIssuer = new Reference(); 3112 return this.paymentIssuer; 3113 } 3114 else if (name.equals("request")) { 3115 this.request = new Reference(); 3116 return this.request; 3117 } 3118 else if (name.equals("requestor")) { 3119 this.requestor = new Reference(); 3120 return this.requestor; 3121 } 3122 else if (name.equals("outcome")) { 3123 throw new FHIRException("Cannot call addChild on a singleton property PaymentReconciliation.outcome"); 3124 } 3125 else if (name.equals("disposition")) { 3126 throw new FHIRException("Cannot call addChild on a singleton property PaymentReconciliation.disposition"); 3127 } 3128 else if (name.equals("date")) { 3129 throw new FHIRException("Cannot call addChild on a singleton property PaymentReconciliation.date"); 3130 } 3131 else if (name.equals("location")) { 3132 this.location = new Reference(); 3133 return this.location; 3134 } 3135 else if (name.equals("method")) { 3136 this.method = new CodeableConcept(); 3137 return this.method; 3138 } 3139 else if (name.equals("cardBrand")) { 3140 throw new FHIRException("Cannot call addChild on a singleton property PaymentReconciliation.cardBrand"); 3141 } 3142 else if (name.equals("accountNumber")) { 3143 throw new FHIRException("Cannot call addChild on a singleton property PaymentReconciliation.accountNumber"); 3144 } 3145 else if (name.equals("expirationDate")) { 3146 throw new FHIRException("Cannot call addChild on a singleton property PaymentReconciliation.expirationDate"); 3147 } 3148 else if (name.equals("processor")) { 3149 throw new FHIRException("Cannot call addChild on a singleton property PaymentReconciliation.processor"); 3150 } 3151 else if (name.equals("referenceNumber")) { 3152 throw new FHIRException("Cannot call addChild on a singleton property PaymentReconciliation.referenceNumber"); 3153 } 3154 else if (name.equals("authorization")) { 3155 throw new FHIRException("Cannot call addChild on a singleton property PaymentReconciliation.authorization"); 3156 } 3157 else if (name.equals("tenderedAmount")) { 3158 this.tenderedAmount = new Money(); 3159 return this.tenderedAmount; 3160 } 3161 else if (name.equals("returnedAmount")) { 3162 this.returnedAmount = new Money(); 3163 return this.returnedAmount; 3164 } 3165 else if (name.equals("amount")) { 3166 this.amount = new Money(); 3167 return this.amount; 3168 } 3169 else if (name.equals("paymentIdentifier")) { 3170 this.paymentIdentifier = new Identifier(); 3171 return this.paymentIdentifier; 3172 } 3173 else if (name.equals("allocation")) { 3174 return addAllocation(); 3175 } 3176 else if (name.equals("formCode")) { 3177 this.formCode = new CodeableConcept(); 3178 return this.formCode; 3179 } 3180 else if (name.equals("processNote")) { 3181 return addProcessNote(); 3182 } 3183 else 3184 return super.addChild(name); 3185 } 3186 3187 public String fhirType() { 3188 return "PaymentReconciliation"; 3189 3190 } 3191 3192 public PaymentReconciliation copy() { 3193 PaymentReconciliation dst = new PaymentReconciliation(); 3194 copyValues(dst); 3195 return dst; 3196 } 3197 3198 public void copyValues(PaymentReconciliation dst) { 3199 super.copyValues(dst); 3200 if (identifier != null) { 3201 dst.identifier = new ArrayList<Identifier>(); 3202 for (Identifier i : identifier) 3203 dst.identifier.add(i.copy()); 3204 }; 3205 dst.type = type == null ? null : type.copy(); 3206 dst.status = status == null ? null : status.copy(); 3207 dst.kind = kind == null ? null : kind.copy(); 3208 dst.period = period == null ? null : period.copy(); 3209 dst.created = created == null ? null : created.copy(); 3210 dst.enterer = enterer == null ? null : enterer.copy(); 3211 dst.issuerType = issuerType == null ? null : issuerType.copy(); 3212 dst.paymentIssuer = paymentIssuer == null ? null : paymentIssuer.copy(); 3213 dst.request = request == null ? null : request.copy(); 3214 dst.requestor = requestor == null ? null : requestor.copy(); 3215 dst.outcome = outcome == null ? null : outcome.copy(); 3216 dst.disposition = disposition == null ? null : disposition.copy(); 3217 dst.date = date == null ? null : date.copy(); 3218 dst.location = location == null ? null : location.copy(); 3219 dst.method = method == null ? null : method.copy(); 3220 dst.cardBrand = cardBrand == null ? null : cardBrand.copy(); 3221 dst.accountNumber = accountNumber == null ? null : accountNumber.copy(); 3222 dst.expirationDate = expirationDate == null ? null : expirationDate.copy(); 3223 dst.processor = processor == null ? null : processor.copy(); 3224 dst.referenceNumber = referenceNumber == null ? null : referenceNumber.copy(); 3225 dst.authorization = authorization == null ? null : authorization.copy(); 3226 dst.tenderedAmount = tenderedAmount == null ? null : tenderedAmount.copy(); 3227 dst.returnedAmount = returnedAmount == null ? null : returnedAmount.copy(); 3228 dst.amount = amount == null ? null : amount.copy(); 3229 dst.paymentIdentifier = paymentIdentifier == null ? null : paymentIdentifier.copy(); 3230 if (allocation != null) { 3231 dst.allocation = new ArrayList<PaymentReconciliationAllocationComponent>(); 3232 for (PaymentReconciliationAllocationComponent i : allocation) 3233 dst.allocation.add(i.copy()); 3234 }; 3235 dst.formCode = formCode == null ? null : formCode.copy(); 3236 if (processNote != null) { 3237 dst.processNote = new ArrayList<NotesComponent>(); 3238 for (NotesComponent i : processNote) 3239 dst.processNote.add(i.copy()); 3240 }; 3241 } 3242 3243 protected PaymentReconciliation typedCopy() { 3244 return copy(); 3245 } 3246 3247 @Override 3248 public boolean equalsDeep(Base other_) { 3249 if (!super.equalsDeep(other_)) 3250 return false; 3251 if (!(other_ instanceof PaymentReconciliation)) 3252 return false; 3253 PaymentReconciliation o = (PaymentReconciliation) other_; 3254 return compareDeep(identifier, o.identifier, true) && compareDeep(type, o.type, true) && compareDeep(status, o.status, true) 3255 && compareDeep(kind, o.kind, true) && compareDeep(period, o.period, true) && compareDeep(created, o.created, true) 3256 && compareDeep(enterer, o.enterer, true) && compareDeep(issuerType, o.issuerType, true) && compareDeep(paymentIssuer, o.paymentIssuer, true) 3257 && compareDeep(request, o.request, true) && compareDeep(requestor, o.requestor, true) && compareDeep(outcome, o.outcome, true) 3258 && compareDeep(disposition, o.disposition, true) && compareDeep(date, o.date, true) && compareDeep(location, o.location, true) 3259 && compareDeep(method, o.method, true) && compareDeep(cardBrand, o.cardBrand, true) && compareDeep(accountNumber, o.accountNumber, true) 3260 && compareDeep(expirationDate, o.expirationDate, true) && compareDeep(processor, o.processor, true) 3261 && compareDeep(referenceNumber, o.referenceNumber, true) && compareDeep(authorization, o.authorization, true) 3262 && compareDeep(tenderedAmount, o.tenderedAmount, true) && compareDeep(returnedAmount, o.returnedAmount, true) 3263 && compareDeep(amount, o.amount, true) && compareDeep(paymentIdentifier, o.paymentIdentifier, true) 3264 && compareDeep(allocation, o.allocation, true) && compareDeep(formCode, o.formCode, true) && compareDeep(processNote, o.processNote, true) 3265 ; 3266 } 3267 3268 @Override 3269 public boolean equalsShallow(Base other_) { 3270 if (!super.equalsShallow(other_)) 3271 return false; 3272 if (!(other_ instanceof PaymentReconciliation)) 3273 return false; 3274 PaymentReconciliation o = (PaymentReconciliation) other_; 3275 return compareValues(status, o.status, true) && compareValues(created, o.created, true) && compareValues(outcome, o.outcome, true) 3276 && compareValues(disposition, o.disposition, true) && compareValues(date, o.date, true) && compareValues(cardBrand, o.cardBrand, true) 3277 && compareValues(accountNumber, o.accountNumber, true) && compareValues(expirationDate, o.expirationDate, true) 3278 && compareValues(processor, o.processor, true) && compareValues(referenceNumber, o.referenceNumber, true) 3279 && compareValues(authorization, o.authorization, true); 3280 } 3281 3282 public boolean isEmpty() { 3283 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, type, status 3284 , kind, period, created, enterer, issuerType, paymentIssuer, request, requestor 3285 , outcome, disposition, date, location, method, cardBrand, accountNumber, expirationDate 3286 , processor, referenceNumber, authorization, tenderedAmount, returnedAmount, amount 3287 , paymentIdentifier, allocation, formCode, processNote); 3288 } 3289 3290 @Override 3291 public ResourceType getResourceType() { 3292 return ResourceType.PaymentReconciliation; 3293 } 3294 3295 /** 3296 * Search parameter: <b>allocation-account</b> 3297 * <p> 3298 * Description: <b>The account to which payment or adjustment was applied.</b><br> 3299 * Type: <b>reference</b><br> 3300 * Path: <b>PaymentReconciliation.allocation.account</b><br> 3301 * </p> 3302 */ 3303 @SearchParamDefinition(name="allocation-account", path="PaymentReconciliation.allocation.account", description="The account to which payment or adjustment was applied.", type="reference", target={Account.class } ) 3304 public static final String SP_ALLOCATION_ACCOUNT = "allocation-account"; 3305 /** 3306 * <b>Fluent Client</b> search parameter constant for <b>allocation-account</b> 3307 * <p> 3308 * Description: <b>The account to which payment or adjustment was applied.</b><br> 3309 * Type: <b>reference</b><br> 3310 * Path: <b>PaymentReconciliation.allocation.account</b><br> 3311 * </p> 3312 */ 3313 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ALLOCATION_ACCOUNT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ALLOCATION_ACCOUNT); 3314 3315/** 3316 * Constant for fluent queries to be used to add include statements. Specifies 3317 * the path value of "<b>PaymentReconciliation:allocation-account</b>". 3318 */ 3319 public static final ca.uhn.fhir.model.api.Include INCLUDE_ALLOCATION_ACCOUNT = new ca.uhn.fhir.model.api.Include("PaymentReconciliation:allocation-account").toLocked(); 3320 3321 /** 3322 * Search parameter: <b>allocation-encounter</b> 3323 * <p> 3324 * Description: <b>The encounter to which payment or adjustment was applied.</b><br> 3325 * Type: <b>reference</b><br> 3326 * Path: <b>PaymentReconciliation.allocation.encounter</b><br> 3327 * </p> 3328 */ 3329 @SearchParamDefinition(name="allocation-encounter", path="PaymentReconciliation.allocation.encounter", description="The encounter to which payment or adjustment was applied.", type="reference", target={Encounter.class } ) 3330 public static final String SP_ALLOCATION_ENCOUNTER = "allocation-encounter"; 3331 /** 3332 * <b>Fluent Client</b> search parameter constant for <b>allocation-encounter</b> 3333 * <p> 3334 * Description: <b>The encounter to which payment or adjustment was applied.</b><br> 3335 * Type: <b>reference</b><br> 3336 * Path: <b>PaymentReconciliation.allocation.encounter</b><br> 3337 * </p> 3338 */ 3339 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ALLOCATION_ENCOUNTER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ALLOCATION_ENCOUNTER); 3340 3341/** 3342 * Constant for fluent queries to be used to add include statements. Specifies 3343 * the path value of "<b>PaymentReconciliation:allocation-encounter</b>". 3344 */ 3345 public static final ca.uhn.fhir.model.api.Include INCLUDE_ALLOCATION_ENCOUNTER = new ca.uhn.fhir.model.api.Include("PaymentReconciliation:allocation-encounter").toLocked(); 3346 3347 /** 3348 * Search parameter: <b>created</b> 3349 * <p> 3350 * Description: <b>The creation date</b><br> 3351 * Type: <b>date</b><br> 3352 * Path: <b>PaymentReconciliation.created</b><br> 3353 * </p> 3354 */ 3355 @SearchParamDefinition(name="created", path="PaymentReconciliation.created", description="The creation date", type="date" ) 3356 public static final String SP_CREATED = "created"; 3357 /** 3358 * <b>Fluent Client</b> search parameter constant for <b>created</b> 3359 * <p> 3360 * Description: <b>The creation date</b><br> 3361 * Type: <b>date</b><br> 3362 * Path: <b>PaymentReconciliation.created</b><br> 3363 * </p> 3364 */ 3365 public static final ca.uhn.fhir.rest.gclient.DateClientParam CREATED = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_CREATED); 3366 3367 /** 3368 * Search parameter: <b>disposition</b> 3369 * <p> 3370 * Description: <b>The contents of the disposition message</b><br> 3371 * Type: <b>string</b><br> 3372 * Path: <b>PaymentReconciliation.disposition</b><br> 3373 * </p> 3374 */ 3375 @SearchParamDefinition(name="disposition", path="PaymentReconciliation.disposition", description="The contents of the disposition message", type="string" ) 3376 public static final String SP_DISPOSITION = "disposition"; 3377 /** 3378 * <b>Fluent Client</b> search parameter constant for <b>disposition</b> 3379 * <p> 3380 * Description: <b>The contents of the disposition message</b><br> 3381 * Type: <b>string</b><br> 3382 * Path: <b>PaymentReconciliation.disposition</b><br> 3383 * </p> 3384 */ 3385 public static final ca.uhn.fhir.rest.gclient.StringClientParam DISPOSITION = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_DISPOSITION); 3386 3387 /** 3388 * Search parameter: <b>identifier</b> 3389 * <p> 3390 * Description: <b>The business identifier of the ExplanationOfBenefit</b><br> 3391 * Type: <b>token</b><br> 3392 * Path: <b>PaymentReconciliation.identifier</b><br> 3393 * </p> 3394 */ 3395 @SearchParamDefinition(name="identifier", path="PaymentReconciliation.identifier", description="The business identifier of the ExplanationOfBenefit", type="token" ) 3396 public static final String SP_IDENTIFIER = "identifier"; 3397 /** 3398 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 3399 * <p> 3400 * Description: <b>The business identifier of the ExplanationOfBenefit</b><br> 3401 * Type: <b>token</b><br> 3402 * Path: <b>PaymentReconciliation.identifier</b><br> 3403 * </p> 3404 */ 3405 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 3406 3407 /** 3408 * Search parameter: <b>outcome</b> 3409 * <p> 3410 * Description: <b>The processing outcome</b><br> 3411 * Type: <b>token</b><br> 3412 * Path: <b>PaymentReconciliation.outcome</b><br> 3413 * </p> 3414 */ 3415 @SearchParamDefinition(name="outcome", path="PaymentReconciliation.outcome", description="The processing outcome", type="token" ) 3416 public static final String SP_OUTCOME = "outcome"; 3417 /** 3418 * <b>Fluent Client</b> search parameter constant for <b>outcome</b> 3419 * <p> 3420 * Description: <b>The processing outcome</b><br> 3421 * Type: <b>token</b><br> 3422 * Path: <b>PaymentReconciliation.outcome</b><br> 3423 * </p> 3424 */ 3425 public static final ca.uhn.fhir.rest.gclient.TokenClientParam OUTCOME = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_OUTCOME); 3426 3427 /** 3428 * Search parameter: <b>payment-issuer</b> 3429 * <p> 3430 * Description: <b>The organization which generated this resource</b><br> 3431 * Type: <b>reference</b><br> 3432 * Path: <b>PaymentReconciliation.paymentIssuer</b><br> 3433 * </p> 3434 */ 3435 @SearchParamDefinition(name="payment-issuer", path="PaymentReconciliation.paymentIssuer", description="The organization which generated this resource", type="reference", target={Organization.class, Patient.class, RelatedPerson.class } ) 3436 public static final String SP_PAYMENT_ISSUER = "payment-issuer"; 3437 /** 3438 * <b>Fluent Client</b> search parameter constant for <b>payment-issuer</b> 3439 * <p> 3440 * Description: <b>The organization which generated this resource</b><br> 3441 * Type: <b>reference</b><br> 3442 * Path: <b>PaymentReconciliation.paymentIssuer</b><br> 3443 * </p> 3444 */ 3445 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PAYMENT_ISSUER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PAYMENT_ISSUER); 3446 3447/** 3448 * Constant for fluent queries to be used to add include statements. Specifies 3449 * the path value of "<b>PaymentReconciliation:payment-issuer</b>". 3450 */ 3451 public static final ca.uhn.fhir.model.api.Include INCLUDE_PAYMENT_ISSUER = new ca.uhn.fhir.model.api.Include("PaymentReconciliation:payment-issuer").toLocked(); 3452 3453 /** 3454 * Search parameter: <b>request</b> 3455 * <p> 3456 * Description: <b>The reference to the claim</b><br> 3457 * Type: <b>reference</b><br> 3458 * Path: <b>PaymentReconciliation.request</b><br> 3459 * </p> 3460 */ 3461 @SearchParamDefinition(name="request", path="PaymentReconciliation.request", description="The reference to the claim", type="reference", target={Task.class } ) 3462 public static final String SP_REQUEST = "request"; 3463 /** 3464 * <b>Fluent Client</b> search parameter constant for <b>request</b> 3465 * <p> 3466 * Description: <b>The reference to the claim</b><br> 3467 * Type: <b>reference</b><br> 3468 * Path: <b>PaymentReconciliation.request</b><br> 3469 * </p> 3470 */ 3471 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam REQUEST = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_REQUEST); 3472 3473/** 3474 * Constant for fluent queries to be used to add include statements. Specifies 3475 * the path value of "<b>PaymentReconciliation:request</b>". 3476 */ 3477 public static final ca.uhn.fhir.model.api.Include INCLUDE_REQUEST = new ca.uhn.fhir.model.api.Include("PaymentReconciliation:request").toLocked(); 3478 3479 /** 3480 * Search parameter: <b>requestor</b> 3481 * <p> 3482 * Description: <b>The reference to the provider who submitted the claim</b><br> 3483 * Type: <b>reference</b><br> 3484 * Path: <b>PaymentReconciliation.requestor</b><br> 3485 * </p> 3486 */ 3487 @SearchParamDefinition(name="requestor", path="PaymentReconciliation.requestor", description="The reference to the provider who submitted the claim", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Practitioner") }, target={Organization.class, Practitioner.class, PractitionerRole.class } ) 3488 public static final String SP_REQUESTOR = "requestor"; 3489 /** 3490 * <b>Fluent Client</b> search parameter constant for <b>requestor</b> 3491 * <p> 3492 * Description: <b>The reference to the provider who submitted the claim</b><br> 3493 * Type: <b>reference</b><br> 3494 * Path: <b>PaymentReconciliation.requestor</b><br> 3495 * </p> 3496 */ 3497 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam REQUESTOR = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_REQUESTOR); 3498 3499/** 3500 * Constant for fluent queries to be used to add include statements. Specifies 3501 * the path value of "<b>PaymentReconciliation:requestor</b>". 3502 */ 3503 public static final ca.uhn.fhir.model.api.Include INCLUDE_REQUESTOR = new ca.uhn.fhir.model.api.Include("PaymentReconciliation:requestor").toLocked(); 3504 3505 /** 3506 * Search parameter: <b>status</b> 3507 * <p> 3508 * Description: <b>The status of the payment reconciliation</b><br> 3509 * Type: <b>token</b><br> 3510 * Path: <b>PaymentReconciliation.status</b><br> 3511 * </p> 3512 */ 3513 @SearchParamDefinition(name="status", path="PaymentReconciliation.status", description="The status of the payment reconciliation", type="token" ) 3514 public static final String SP_STATUS = "status"; 3515 /** 3516 * <b>Fluent Client</b> search parameter constant for <b>status</b> 3517 * <p> 3518 * Description: <b>The status of the payment reconciliation</b><br> 3519 * Type: <b>token</b><br> 3520 * Path: <b>PaymentReconciliation.status</b><br> 3521 * </p> 3522 */ 3523 public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS); 3524 3525 3526} 3527